diff --git a/packages/pl-api/.gitignore b/packages/pl-api/.gitignore index a547bf36d..312c14a36 100644 --- a/packages/pl-api/.gitignore +++ b/packages/pl-api/.gitignore @@ -7,11 +7,16 @@ yarn-error.log* pnpm-debug.log* lerna-debug.log* +/.eslintcache + node_modules dist dist-ssr *.local +.idea +.DS_Store + # Editor directories and files .vscode/* !.vscode/extensions.json diff --git a/packages/pl-api/lib/features.ts b/packages/pl-api/lib/features.ts index b29627c7f..a2ce7e7df 100644 --- a/packages/pl-api/lib/features.ts +++ b/packages/pl-api/lib/features.ts @@ -26,7 +26,7 @@ const FIREFISH = 'Firefish'; const FRIENDICA = 'Friendica'; /** - * GoToSocial, an ActivityPub server writter in Golang. + * GoToSocial, an ActivityPub server written in Golang. * @see {@link https://gotosocial.org/} */ const GOTOSOCIAL = 'GoToSocial'; @@ -518,6 +518,11 @@ const getFeatures = (instance: Instance) => { v.software === MASTODON, ]), + /** + * TODO + */ + // followAccountLanguages: any([]), + /** * Ability to follow hashtags. * @see POST /api/v1/tags/:name/follow diff --git a/packages/pl-api/lib/params/accounts.ts b/packages/pl-api/lib/params/accounts.ts index 2caba3203..6c22ed3ea 100644 --- a/packages/pl-api/lib/params/accounts.ts +++ b/packages/pl-api/lib/params/accounts.ts @@ -21,7 +21,7 @@ interface FollowAccountParams { notify?: boolean; /** * Array of String (ISO 639-1 language two-letter code). Filter received statuses for these languages. If not provided, you will receive this account’s posts in all languages. - * Requires `features.followAccountLangugaes`. + * Requires `features.followAccountLanguages`. */ languages?: string[]; } diff --git a/packages/pl-fe/.gitignore b/packages/pl-fe/.gitignore index 5c5018c61..353254e5a 100644 --- a/packages/pl-fe/.gitignore +++ b/packages/pl-fe/.gitignore @@ -15,7 +15,6 @@ yarn-error.log* /dist/ /static/ /public/ -/dist/ /pl-fe.zip .idea @@ -27,9 +26,3 @@ yarn-error.log* /custom/*.* !/custom/.gitkeep !/custom/**/.gitkeep - -# surge.sh -/CNAME -/AUTH -/CORS -/ROUTER diff --git a/packages/pl-fe/package.json b/packages/pl-fe/package.json index 5217a5857..134ad20ce 100644 --- a/packages/pl-fe/package.json +++ b/packages/pl-fe/package.json @@ -29,7 +29,6 @@ "lint": "${npm_execpath} run lint:js && ${npm_execpath} run lint:sass", "lint:js": "npx eslint --ext .js,.jsx,.cjs,.mjs,.ts,.tsx . --cache", "lint:sass": "npx stylelint src/styles/**/*.scss", - "prepare": "husky install", "precommit": "npx lint-staged" }, "license": "AGPL-3.0-or-later", @@ -56,7 +55,6 @@ "@lexical/utils": "^0.18.0", "@mkljczk/lexical-remark": "^0.4.0", "@mkljczk/react-hotkeys": "^1.2.2", - "@popperjs/core": "^2.11.5", "@reach/combobox": "^0.18.0", "@reach/menu-button": "^0.18.0", "@reach/popover": "^0.18.0", @@ -73,8 +71,7 @@ "@tanstack/react-virtual": "^3.10.8", "@uidotdev/usehooks": "^2.4.1", "@vitejs/plugin-react": "^4.3.1", - "@webbtc/webln-types": "^3.0.0", - "autoprefixer": "^10.4.15", + "autoprefixer": "^10.4.20", "blurhash": "^2.0.0", "bowser": "^2.11.0", "browserslist": "^4.16.6", @@ -93,23 +90,22 @@ "fuzzysort": "^3.0.0", "graphemesplit": "^2.4.4", "html-react-parser": "^5.0.0", - "http-link-header": "^1.0.2", "immer": "^10.1.1", "immutable": "^4.3.7", "intersection-observer": "^0.12.2", - "intl-messageformat": "10.5.11", - "intl-pluralrules": "^2.0.0", + "intl-messageformat": "^10.5.14", + "intl-pluralrules": "^2.0.1", "isomorphic-dompurify": "^2.3.0", "leaflet": "^1.8.0", "lexical": "^0.18.0", "line-awesome": "^1.3.0", "localforage": "^1.10.0", "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.6.0", + "mini-css-extract-plugin": "^2.9.1", "multiselect-react-dropdown": "^2.0.25", "path-browserify": "^1.0.1", "pl-api": "^0.0.37", - "postcss": "^8.4.29", + "postcss": "^8.4.47", "process": "^0.11.10", "punycode": "^2.1.1", "qrcode.react": "^4.0.1", @@ -123,9 +119,8 @@ "react-hot-toast": "^2.4.0", "react-immutable-pure-component": "^2.2.2", "react-inlinesvg": "^4.0.0", - "react-intl": "^6.0.0", + "react-intl": "^6.7.0", "react-motion": "^0.5.2", - "react-popper": "^2.3.0", "react-redux": "^9.0.4", "react-router-dom": "^5.3.4", "react-router-dom-v5-compat": "^6.24.1", @@ -159,7 +154,7 @@ "zustand": "^5.0.0-rc.2" }, "devDependencies": { - "@formatjs/cli": "^6.2.0", + "@formatjs/cli": "^6.2.12", "@gitbeaker/node": "^35.8.0", "@jedmao/redux-mock-store": "^3.0.5", "@stylistic/eslint-plugin": "^2.8.0", @@ -168,7 +163,6 @@ "@testing-library/react-hooks": "^8.0.1", "@testing-library/user-event": "^14.5.1", "@types/escape-html": "^1.0.1", - "@types/http-link-header": "^1.0.3", "@types/leaflet": "^1.8.0", "@types/lodash": "^4.17.9", "@types/object-assign": "^4.0.30", diff --git a/packages/pl-fe/src/api/__mocks__/index.ts b/packages/pl-fe/src/api/__mocks__/index.ts index b28d2e252..3945260f6 100644 --- a/packages/pl-fe/src/api/__mocks__/index.ts +++ b/packages/pl-fe/src/api/__mocks__/index.ts @@ -1,5 +1,4 @@ // import MockAdapter from 'axios-mock-adapter'; -import LinkHeader from 'http-link-header'; import { vi } from 'vitest'; const api = await vi.importActual('../index') as Record; @@ -15,19 +14,6 @@ const __clear = (): Function[] => mocks = []; const staticClient = api.staticClient; -const getLinks = (response: Response): LinkHeader => - new LinkHeader(response.headers?.get('link') || undefined); - -const getNextLink = (response: Response) => { - const nextLink = new LinkHeader(response.headers?.get('link') || undefined); - return nextLink.refs.find(link => link.rel === 'next')?.uri; -}; - -const getPrevLink = (response: Response) => { - const prevLink = new LinkHeader(response.headers?.get('link') || undefined); - return prevLink.refs.find(link => link.rel === 'prev')?.uri; -}; - const baseClient = (...params: any[]) => { const axios = api.baseClient(...params); // setupMock(axios); @@ -40,4 +26,4 @@ export default (...params: any[]) => { return axios; }; -export { __stub, __clear, staticClient, getLinks, getNextLink, getPrevLink, baseClient }; +export { __stub, __clear, staticClient, baseClient }; diff --git a/packages/pl-fe/src/components/profile-hover-card.tsx b/packages/pl-fe/src/components/profile-hover-card.tsx index f5f1f8173..7434a4455 100644 --- a/packages/pl-fe/src/components/profile-hover-card.tsx +++ b/packages/pl-fe/src/components/profile-hover-card.tsx @@ -1,7 +1,7 @@ +import { shift, useFloating, useTransitionStyles } from '@floating-ui/react'; import clsx from 'clsx'; -import React, { useEffect, useState } from 'react'; +import React, { useEffect } from 'react'; import { useIntl, FormattedMessage } from 'react-intl'; -import { usePopper } from 'react-popper'; import { useHistory } from 'react-router-dom'; import { fetchRelationships } from 'pl-fe/actions/accounts'; @@ -52,8 +52,6 @@ const ProfileHoverCard: React.FC = ({ visible = true }) => { const history = useHistory(); const intl = useIntl(); - const [popperElement, setPopperElement] = useState(null); - const me = useAppSelector(state => state.me); const accountId: string | undefined = useAppSelector(state => state.profile_hover_card.accountId || undefined); const { account } = useAccount(accountId, { withRelationship: true, withScrobble: true }); @@ -75,7 +73,29 @@ const ProfileHoverCard: React.FC = ({ visible = true }) => { }; }, []); - const { styles, attributes } = usePopper(targetRef, popperElement); + const { x, y, strategy, refs, context, placement } = useFloating({ + open: !!account, + elements: { + reference: targetRef, + }, + middleware: [ + shift({ + padding: 8, + }), + ], + }); + + const { styles } = useTransitionStyles(context, { + initial: { + opacity: 0, + transform: 'scale(0.8)', + transformOrigin: placement === 'bottom' ? 'top' : 'bottom', + }, + duration: { + open: 100, + close: 100, + }, + }); if (!account) return null; const accountBio = { __html: account.note_emojified }; @@ -89,9 +109,13 @@ const ProfileHoverCard: React.FC = ({ visible = true }) => { 'opacity-100': visible, 'opacity-0 pointer-events-none': !visible, })} - ref={setPopperElement} - style={styles.popper} - {...attributes.popper} + ref={refs.setFloating} + style={{ + position: strategy, + top: y ?? 0, + left: x ?? 0, + ...styles, + }} onMouseEnter={handleMouseEnter(dispatch)} onMouseLeave={handleMouseLeave(dispatch)} > diff --git a/packages/pl-fe/src/components/status-action-bar.tsx b/packages/pl-fe/src/components/status-action-bar.tsx index c9a8792f8..add2c0267 100644 --- a/packages/pl-fe/src/components/status-action-bar.tsx +++ b/packages/pl-fe/src/components/status-action-bar.tsx @@ -190,6 +190,10 @@ const StatusActionBar: React.FC = ({ } }; + const handleFavouriteLongPress = status.favourites_count ? () => { + openModal('FAVOURITES', { statusId: status.id }); + } : undefined; + const handleDislikeClick: React.EventHandler = (e) => { if (me) { dispatch(toggleDislike(status)); @@ -198,6 +202,10 @@ const StatusActionBar: React.FC = ({ } }; + const handleDislikeLongPress = status.dislikes_count ? () => { + openModal('DISLIKES', { statusId: status.id }); + } : undefined; + const handlePickEmoji = (emoji: EmojiType) => { dispatch(emojiReact(status, emoji.custom ? emoji.id : emoji.native, emoji.custom ? emoji.imageUrl : undefined)); }; @@ -225,6 +233,10 @@ const StatusActionBar: React.FC = ({ } }; + const handleReblogLongPress = status.reblogs_count ? () => { + openModal('REBLOGS', { statusId: status.id }); + } : undefined; + const handleQuoteClick: React.EventHandler = (e) => { if (me) { dispatch(quoteCompose(status)); @@ -670,6 +682,7 @@ const StatusActionBar: React.FC = ({ title={!publicStatus ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} active={status.reblogged} onClick={handleReblogClick} + onLongPress={handleReblogLongPress} count={reblogCount + quoteCount} text={withLabels ? intl.formatMessage(messages.reblog) : undefined} theme={statusActionButtonTheme} @@ -734,6 +747,7 @@ const StatusActionBar: React.FC = ({ color='accent' filled onClick={handleFavouriteClick} + onLongPress={handleFavouriteLongPress} active={status.favourited} count={favouriteCount} text={withLabels ? intl.formatMessage(messages.favourite) : undefined} @@ -747,6 +761,7 @@ const StatusActionBar: React.FC = ({ color='accent' filled onClick={handleDislikeClick} + onLongPress={handleDislikeLongPress} active={status.disliked} count={status.dislikes_count} text={withLabels ? intl.formatMessage(messages.disfavourite) : undefined} diff --git a/packages/pl-fe/src/components/status-action-button.tsx b/packages/pl-fe/src/components/status-action-button.tsx index a7fcdaa64..ab29ed4b5 100644 --- a/packages/pl-fe/src/components/status-action-button.tsx +++ b/packages/pl-fe/src/components/status-action-button.tsx @@ -1,3 +1,4 @@ +import { useLongPress } from '@uidotdev/usehooks'; import clsx from 'clsx'; import React from 'react'; @@ -40,10 +41,20 @@ interface IStatusActionButton extends React.ButtonHTMLAttributes void; } const StatusActionButton = React.forwardRef((props, ref): JSX.Element => { - const { icon, className, iconClassName, active, color, filled = false, count = 0, emoji, text, theme = 'default', ...filteredProps } = props; + const { icon, className, iconClassName, active, color, filled = false, count = 0, emoji, text, theme = 'default', onLongPress, ...filteredProps } = props; + + const longPressBind = useLongPress((e) => { + if (!onLongPress || e.type !== 'touchstart') return; + + e.stopPropagation(); + + if ('vibrate' in navigator) navigator.vibrate(1); + onLongPress(e); + }); const renderIcon = () => { if (emoji) { @@ -100,6 +111,7 @@ const StatusActionButton = React.forwardRef {renderIcon()} diff --git a/packages/pl-fe/src/components/status-hover-card.tsx b/packages/pl-fe/src/components/status-hover-card.tsx index 465e04add..0323a688d 100644 --- a/packages/pl-fe/src/components/status-hover-card.tsx +++ b/packages/pl-fe/src/components/status-hover-card.tsx @@ -1,7 +1,7 @@ +import { shift, useFloating, useTransitionStyles } from '@floating-ui/react'; import clsx from 'clsx'; -import React, { useEffect, useState, useCallback } from 'react'; +import React, { useEffect, useCallback } from 'react'; import { useIntl } from 'react-intl'; -import { usePopper } from 'react-popper'; import { useHistory } from 'react-router-dom'; import { closeStatusHoverCard, updateStatusHoverCard } from 'pl-fe/actions/status-hover-card'; @@ -22,8 +22,6 @@ const StatusHoverCard: React.FC = ({ visible = true }) => { const intl = useIntl(); const history = useHistory(); - const [popperElement, setPopperElement] = useState(null); - const statusId: string | undefined = useAppSelector(state => state.status_hover_card.statusId || undefined); const status = useAppSelector(state => state.statuses.get(statusId!)); const targetRef = useAppSelector(state => state.status_hover_card.ref?.current); @@ -45,8 +43,29 @@ const StatusHoverCard: React.FC = ({ visible = true }) => { }; }, []); - const { styles, attributes } = usePopper(targetRef, popperElement, { + const { x, y, strategy, refs, context, placement } = useFloating({ + open: !!statusId, + elements: { + reference: targetRef, + }, placement: 'top', + middleware: [ + shift({ + padding: 8, + }), + ], + }); + + const { styles } = useTransitionStyles(context, { + initial: { + opacity: 0, + transform: 'scale(0.8)', + transformOrigin: placement === 'bottom' ? 'top' : 'bottom', + }, + duration: { + open: 100, + close: 100, + }, }); const handleMouseEnter = useCallback((): React.MouseEventHandler => () => { @@ -77,9 +96,13 @@ const StatusHoverCard: React.FC = ({ visible = true }) => { 'opacity-100': visible, 'opacity-0 pointer-events-none': !visible, })} - ref={setPopperElement} - style={styles.popper} - {...attributes.popper} + ref={refs.setFloating} + style={{ + position: strategy, + top: y ?? 0, + left: x ?? 0, + ...styles, + }} onMouseEnter={handleMouseEnter()} onMouseLeave={handleMouseLeave()} > diff --git a/packages/pl-fe/src/components/ui/hstack/hstack.tsx b/packages/pl-fe/src/components/ui/hstack/hstack.tsx index 65a5b03d2..d97a5dd7a 100644 --- a/packages/pl-fe/src/components/ui/hstack/hstack.tsx +++ b/packages/pl-fe/src/components/ui/hstack/hstack.tsx @@ -31,7 +31,10 @@ const spaces = { 8: 'gap-8', }; -interface IHStack extends Pick, 'children' | 'className' | 'onClick' | 'style' | 'title'> { +interface IHStack extends Pick< + React.HTMLAttributes, + 'children' | 'className' | 'draggable' | 'onClick' | 'onDragEnd' | 'onDragEnter' | 'onDragStart' | 'style' | 'title' +> { /** Vertical alignment of children. */ alignItems?: keyof typeof alignItemsOptions; /** Horizontal alignment of children. */ diff --git a/packages/pl-fe/src/components/ui/streamfield/streamfield.tsx b/packages/pl-fe/src/components/ui/streamfield/streamfield.tsx index 1345d33bb..66fee9649 100644 --- a/packages/pl-fe/src/components/ui/streamfield/streamfield.tsx +++ b/packages/pl-fe/src/components/ui/streamfield/streamfield.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useRef } from 'react'; import { useIntl, defineMessages } from 'react-intl'; import Button from '../button/button'; @@ -39,6 +39,8 @@ interface IStreamfield { minItems?: number; /** Maximum number of allowed inputs. */ maxItems?: number; + /** Allow changing order of the items. */ + draggable?: boolean; } /** List of inputs that can be added or removed. */ @@ -52,9 +54,29 @@ const Streamfield: React.FC = ({ component: Component, maxItems = Infinity, minItems = 0, + draggable, }) => { const intl = useIntl(); + const dragItem = useRef(); + const dragOverItem = useRef(); + + const handleDragStart = (i: number) => () => { + dragItem.current = i; + }; + + const handleDragEnter = (i: number) => () => { + dragOverItem.current = i; + }; + + const handleDragEnd = () => { + const newData = [...values]; + const item = newData.splice(dragItem.current!, 1)[0]; + newData.splice(dragOverItem.current!, 0, item); + + onChange(newData); + }; + const handleChange = (i: number) => (value: any) => { const newData = [...values]; newData[i] = value; @@ -71,7 +93,15 @@ const Streamfield: React.FC = ({ {(values.length > 0) && ( {values.map((value, i) => value?._destroy ? null : ( - + = ({ children }): JSX.Element => ( interface IWidget { /** Widget title text. */ - title: React.ReactNode; + title?: React.ReactNode; /** Callback when the widget action is clicked. */ onActionClick?: () => void; /** URL to the svg icon for the widget action. */ @@ -47,17 +47,19 @@ const Widget: React.FC = ({ action, }): JSX.Element => ( - - - {action || (onActionClick && ( - - ))} - + {title || action || onActionClick && ( + + {title && } + {action || (onActionClick && ( + + ))} + + )} {children} ); diff --git a/packages/pl-fe/src/features/directory/components/account-card.tsx b/packages/pl-fe/src/features/directory/components/account-card.tsx index 79347ab19..c60a9efb0 100644 --- a/packages/pl-fe/src/features/directory/components/account-card.tsx +++ b/packages/pl-fe/src/features/directory/components/account-card.tsx @@ -70,7 +70,7 @@ const AccountCard: React.FC = ({ id }) => { diff --git a/packages/pl-fe/src/features/draft-statuses/components/draft-status.tsx b/packages/pl-fe/src/features/draft-statuses/components/draft-status.tsx index d6c908f64..2a9a7ef73 100644 --- a/packages/pl-fe/src/features/draft-statuses/components/draft-status.tsx +++ b/packages/pl-fe/src/features/draft-statuses/components/draft-status.tsx @@ -54,8 +54,6 @@ const DraftStatus: React.FC = ({ draftStatus, ...other }) => { } /> diff --git a/packages/pl-fe/src/features/edit-profile/index.tsx b/packages/pl-fe/src/features/edit-profile/index.tsx index 434fadfe9..00441f62d 100644 --- a/packages/pl-fe/src/features/edit-profile/index.tsx +++ b/packages/pl-fe/src/features/edit-profile/index.tsx @@ -452,6 +452,7 @@ const EditProfile: React.FC = () => { onRemoveItem={handleRemoveField} component={ProfileField} maxItems={maxFields} + draggable /> )} diff --git a/packages/pl-fe/src/features/pl-fe-config/index.tsx b/packages/pl-fe/src/features/pl-fe-config/index.tsx index d528ac9b6..f682691c7 100644 --- a/packages/pl-fe/src/features/pl-fe-config/index.tsx +++ b/packages/pl-fe/src/features/pl-fe-config/index.tsx @@ -288,6 +288,7 @@ const PlFeConfig: React.FC = () => { onChange={handleStreamItemChange(['promoPanel', 'items'])} onAddItem={addStreamItem(['promoPanel', 'items'], templates.promoPanel)} onRemoveItem={deleteStreamItem(['promoPanel', 'items'])} + draggable /> { onChange={handleStreamItemChange(['navlinks', 'homeFooter'])} onAddItem={addStreamItem(['navlinks', 'homeFooter'], templates.footerItem)} onRemoveItem={deleteStreamItem(['navlinks', 'homeFooter'])} + draggable /> @@ -347,6 +349,7 @@ const PlFeConfig: React.FC = () => { onChange={handleStreamItemChange(['cryptoAddresses'])} onAddItem={addStreamItem(['cryptoAddresses'], templates.cryptoAddress)} onRemoveItem={deleteStreamItem(['cryptoAddresses'])} + draggable /> diff --git a/packages/pl-fe/src/features/status/components/status-interaction-bar.tsx b/packages/pl-fe/src/features/status/components/status-interaction-bar.tsx index 91ebfeb3a..92292b2a4 100644 --- a/packages/pl-fe/src/features/status/components/status-interaction-bar.tsx +++ b/packages/pl-fe/src/features/status/components/status-interaction-bar.tsx @@ -20,15 +20,15 @@ const StatusInteractionBar: React.FC = ({ status }): JSX. if (!account || typeof account !== 'object') return null; - const onOpenReblogsModal = (username: string, statusId: string): void => { + const onOpenReblogsModal = (statusId: string): void => { openModal('REBLOGS', { statusId }); }; - const onOpenFavouritesModal = (username: string, statusId: string): void => { + const onOpenFavouritesModal = (statusId: string): void => { openModal('FAVOURITES', { statusId }); }; - const onOpenDislikesModal = (username: string, statusId: string): void => { + const onOpenDislikesModal = (statusId: string): void => { openModal('DISLIKES', { statusId }); }; @@ -36,7 +36,7 @@ const StatusInteractionBar: React.FC = ({ status }): JSX. e.preventDefault(); // if (!me) onOpenUnauthorizedModal(); - onOpenReblogsModal(account.acct, status.id); + onOpenReblogsModal(status.id); }; const getReposts = () => { @@ -75,14 +75,14 @@ const StatusInteractionBar: React.FC = ({ status }): JSX. e.preventDefault(); // if (!me) onOpenUnauthorizedModal(); - onOpenFavouritesModal(account.acct, status.id); + onOpenFavouritesModal(status.id); }; const handleOpenDislikesModal: React.EventHandler> = (e) => { e.preventDefault(); // if (!me) onOpenUnauthorizedModal(); - onOpenDislikesModal(account.acct, status.id); + onOpenDislikesModal(status.id); }; const getFavourites = () => { diff --git a/packages/pl-fe/src/features/ui/components/panels/profile-fields-panel.tsx b/packages/pl-fe/src/features/ui/components/panels/profile-fields-panel.tsx index d7948f87c..ee34b2be2 100644 --- a/packages/pl-fe/src/features/ui/components/panels/profile-fields-panel.tsx +++ b/packages/pl-fe/src/features/ui/components/panels/profile-fields-panel.tsx @@ -1,5 +1,4 @@ import React from 'react'; -import { FormattedMessage } from 'react-intl'; import { Widget, Stack } from 'pl-fe/components/ui'; @@ -13,7 +12,7 @@ interface IProfileFieldsPanel { /** Custom profile fields for sidebar. */ const ProfileFieldsPanel: React.FC = ({ account }) => ( - }> + {account.fields.map((field, i) => ( diff --git a/packages/pl-fe/src/locales/en.json b/packages/pl-fe/src/locales/en.json index 1e4c9c573..aef4e2fd2 100644 --- a/packages/pl-fe/src/locales/en.json +++ b/packages/pl-fe/src/locales/en.json @@ -1288,7 +1288,6 @@ "profile_dropdown.logout": "Log out @{acct}", "profile_dropdown.switch_account": "Switch accounts", "profile_dropdown.theme": "Theme", - "profile_fields_panel.title": "Profile fields", "reactions.all": "All", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", diff --git a/packages/pl-fe/src/styles/components/video-player.scss b/packages/pl-fe/src/styles/components/video-player.scss index e0928282a..0f8611aa9 100644 --- a/packages/pl-fe/src/styles/components/video-player.scss +++ b/packages/pl-fe/src/styles/components/video-player.scss @@ -1,6 +1,6 @@ .detailed, .fullscreen { - .video-player__volume__currnt, + .video-player__volume__current, .video-player__volume::before { bottom: 27px; } diff --git a/packages/pl-fe/tsconfig.json b/packages/pl-fe/tsconfig.json index fb4f34f03..cf139779d 100644 --- a/packages/pl-fe/tsconfig.json +++ b/packages/pl-fe/tsconfig.json @@ -24,8 +24,7 @@ "types": [ "vite/client", "vitest/globals", - "vite-plugin-compile-time/client", - "@webbtc/webln-types" + "vite-plugin-compile-time/client" ], }, "exclude": ["src/**/*.test.ts", "src/**/*.test.tsx"] diff --git a/packages/pl-fe/yarn.lock b/packages/pl-fe/yarn.lock index bb559e359..a937fcc2c 100644 --- a/packages/pl-fe/yarn.lock +++ b/packages/pl-fe/yarn.lock @@ -1488,26 +1488,10 @@ resolved "https://registry.yarnpkg.com/@fontsource/tajawal/-/tajawal-5.0.8.tgz#cd8a593ec5062b283b093b56ee5d38b6b97fa93d" integrity sha512-KILlXB6B8YYcssz3pccPs/4s1XcXwTWogCtE4Ag3oTpK+81DIQLc2b9o77UiBP4yC17MmqeOp1lvoaJQP80RoA== -"@formatjs/cli@^6.2.0": - version "6.2.0" - resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.2.0.tgz#17fbd40753eeb1f6e79c3caf25845c3a9c044d90" - integrity sha512-sP04UpocRHYwSovUnunAZHYvCTVbNcaLtWKnr1lETGRUnRRQqnXy/3d2Ce271ELXmNUSde2eHRdu4rv2XaVaiQ== - -"@formatjs/ecma402-abstract@1.17.2": - version "1.17.2" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.2.tgz#d197c6e26b9fd96ff7ba3b3a0cc2f25f1f2dcac3" - integrity sha512-k2mTh0m+IV1HRdU0xXM617tSQTi53tVR2muvYOsBeYcUgEAyxV1FOC7Qj279th3fBVQ+Dj6muvNJZcHSPNdbKg== - dependencies: - "@formatjs/intl-localematcher" "0.4.2" - tslib "^2.4.0" - -"@formatjs/ecma402-abstract@1.18.2": - version "1.18.2" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.2.tgz#bf103712a406874eb1e387858d5be2371ab3aa14" - integrity sha512-+QoPW4csYALsQIl8GbN14igZzDbuwzcpWrku9nyMXlaqAlwRBgl5V+p0vWMGFqHOw37czNXaP/lEk4wbLgcmtA== - dependencies: - "@formatjs/intl-localematcher" "0.5.4" - tslib "^2.4.0" +"@formatjs/cli@^6.2.12": + version "6.2.12" + resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.2.12.tgz#5295e4f6351ed563bcd49fb6479905165098bcd4" + integrity sha512-bt1NEgkeYN8N9zWcpsPu3fZ57vv+biA+NtIQBlyOZnCp1bcvh+vNTXvmwF4C5qxqDtCylpOIb3yi3Ktgp4v0JQ== "@formatjs/ecma402-abstract@2.0.0": version "2.0.0" @@ -1524,24 +1508,6 @@ dependencies: tslib "^2.4.0" -"@formatjs/icu-messageformat-parser@2.6.2": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.6.2.tgz#9bbb29099416e4ce2c7df50029c48985d4f901b3" - integrity sha512-nF/Iww7sc5h+1MBCDRm68qpHTCG4xvGzYs/x9HFcDETSGScaJ1Fcadk5U/NXjXeCtzD+DhN4BAwKFVclHfKMdA== - dependencies: - "@formatjs/ecma402-abstract" "1.17.2" - "@formatjs/icu-skeleton-parser" "1.6.2" - tslib "^2.4.0" - -"@formatjs/icu-messageformat-parser@2.7.6": - version "2.7.6" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.6.tgz#3d69806de056d2919d53dad895a5ff4851e4e9ff" - integrity sha512-etVau26po9+eewJKYoiBKP6743I1br0/Ie00Pb/S/PtmYfmjTcOn2YCh2yNkSZI12h6Rg+BOgQYborXk46BvkA== - dependencies: - "@formatjs/ecma402-abstract" "1.18.2" - "@formatjs/icu-skeleton-parser" "1.8.0" - tslib "^2.4.0" - "@formatjs/icu-messageformat-parser@2.7.8": version "2.7.8" resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz#f6d7643001e9bb5930d812f1f9a9856f30fa0343" @@ -1551,22 +1517,6 @@ "@formatjs/icu-skeleton-parser" "1.8.2" tslib "^2.4.0" -"@formatjs/icu-skeleton-parser@1.6.2": - version "1.6.2" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.6.2.tgz#00303034dc08583973c8aa67b96534c49c0bad8d" - integrity sha512-VtB9Slo4ZL6QgtDFJ8Injvscf0xiDd4bIV93SOJTBjUF4xe2nAWOoSjLEtqIG+hlIs1sNrVKAaFo3nuTI4r5ZA== - dependencies: - "@formatjs/ecma402-abstract" "1.17.2" - tslib "^2.4.0" - -"@formatjs/icu-skeleton-parser@1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.0.tgz#5f3d3a620c687d6f8c180d80d1241e8f213acf79" - integrity sha512-QWLAYvM0n8hv7Nq5BEs4LKIjevpVpbGLAJgOaYzg9wABEoX1j0JO1q2/jVkO6CVlq0dbsxZCngS5aXbysYueqA== - dependencies: - "@formatjs/ecma402-abstract" "1.18.2" - tslib "^2.4.0" - "@formatjs/icu-skeleton-parser@1.8.2": version "1.8.2" resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz#2252c949ae84ee66930e726130ea66731a123c9f" @@ -1575,29 +1525,22 @@ "@formatjs/ecma402-abstract" "2.0.0" tslib "^2.4.0" -"@formatjs/intl-displaynames@6.5.2": - version "6.5.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.5.2.tgz#b14ffd0962d5b5cfd71457efc389f0bca83a00db" - integrity sha512-uC2VBlz+WydGTDDpJwMTQuPH3CUpTricr91WH1QMfz5oEHg2sB7mUERcZONE/lu8MOe1jREIx4vBciZEVTqkmA== +"@formatjs/intl-displaynames@6.6.8": + version "6.6.8" + resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.6.8.tgz#2f5afac8df83167f5a6ef8543600eaf1ef99c885" + integrity sha512-Lgx6n5KxN16B3Pb05z3NLEBQkGoXnGjkTBNCZI+Cn17YjHJ3fhCeEJJUqRlIZmJdmaXQhjcQVDp6WIiNeRYT5g== dependencies: - "@formatjs/ecma402-abstract" "1.17.2" - "@formatjs/intl-localematcher" "0.4.2" + "@formatjs/ecma402-abstract" "2.0.0" + "@formatjs/intl-localematcher" "0.5.4" tslib "^2.4.0" -"@formatjs/intl-listformat@7.4.2": - version "7.4.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.4.2.tgz#c8d86d3b15eead41f74748d1c79d6450fd1bad82" - integrity sha512-+6bSVudEQkf12Hh7kuKt8Xv/MyFlqdwA4V4NLnTZW8uYdF9RxlOELDD0rPaOc2++TMKIzI5o6XXwHPvpL6VrPA== - dependencies: - "@formatjs/ecma402-abstract" "1.17.2" - "@formatjs/intl-localematcher" "0.4.2" - tslib "^2.4.0" - -"@formatjs/intl-localematcher@0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.4.2.tgz#7e6e596dbaf2f0c5a7c22da5a01d5c55f4c37e9a" - integrity sha512-BGdtJFmaNJy5An/Zan4OId/yR9Ih1OojFjcduX/xOvq798OgWSyDtd6Qd5jqJXwJs1ipe4Fxu9+cshic5Ox2tA== +"@formatjs/intl-listformat@7.5.7": + version "7.5.7" + resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.5.7.tgz#125e05105fabd1ae5f11881d6ab74484f2098ee4" + integrity sha512-MG2TSChQJQT9f7Rlv+eXwUFiG24mKSzmF144PLb8m8OixyXqn4+YWU+5wZracZGCgVTVmx8viCf7IH3QXoiB2g== dependencies: + "@formatjs/ecma402-abstract" "2.0.0" + "@formatjs/intl-localematcher" "0.5.4" tslib "^2.4.0" "@formatjs/intl-localematcher@0.5.4": @@ -1607,17 +1550,17 @@ dependencies: tslib "^2.4.0" -"@formatjs/intl@2.9.3": - version "2.9.3" - resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.9.3.tgz#e570c4b1afb173dfb1f80a42624425dde9841329" - integrity sha512-hclPdyCF1zk2XmhgdXfl5Sd30QEdRBnIijH7Vc1AWz2K0/saVRrxuL3UYn+m3xEyfOa4yDbTWVbmXDL0XEzlsQ== +"@formatjs/intl@2.10.5": + version "2.10.5" + resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.10.5.tgz#1a83960fc1871f476385e006f2fee23cc439f416" + integrity sha512-f9qPNNgLrh2KvoFvHGIfcPTmNGbyy7lyyV4/P6JioDqtTE7Akdmgt+ZzVndr+yMLZnssUShyTMXxM/6aV9eVuQ== dependencies: - "@formatjs/ecma402-abstract" "1.17.2" + "@formatjs/ecma402-abstract" "2.0.0" "@formatjs/fast-memoize" "2.2.0" - "@formatjs/icu-messageformat-parser" "2.6.2" - "@formatjs/intl-displaynames" "6.5.2" - "@formatjs/intl-listformat" "7.4.2" - intl-messageformat "10.5.3" + "@formatjs/icu-messageformat-parser" "2.7.8" + "@formatjs/intl-displaynames" "6.6.8" + "@formatjs/intl-listformat" "7.5.7" + intl-messageformat "10.5.14" tslib "^2.4.0" "@formatjs/ts-transformer@3.13.14": @@ -2103,11 +2046,6 @@ resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== -"@popperjs/core@^2.11.5": - version "2.11.5" - resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64" - integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw== - "@prettier/eslint@npm:prettier-eslint@^15.0.1": version "15.0.1" resolved "https://registry.yarnpkg.com/prettier-eslint/-/prettier-eslint-15.0.1.tgz#2543a43e9acec2a9767ad6458165ce81f353db9c" @@ -2813,13 +2751,6 @@ resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== -"@types/http-link-header@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@types/http-link-header/-/http-link-header-1.0.3.tgz#899adf1d8d2036074514f3dbd148fb901ceff920" - integrity sha512-y8HkoD/vyid+5MrJ3aas0FvU3/BVBGcyG9kgxL0Zn4JwstA8CglFPnrR0RuzOjRCXwqzL5uxWC2IO7Ub0rMU2A== - dependencies: - "@types/node" "*" - "@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.13" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" @@ -3504,11 +3435,6 @@ "@webassemblyjs/ast" "1.11.6" "@xtuc/long" "4.2.2" -"@webbtc/webln-types@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@webbtc/webln-types/-/webln-types-3.0.0.tgz#448b2138423865087ba8859e9e6430fc2463b864" - integrity sha512-aXfTHLKz5lysd+6xTeWl+qHNh/p3qVYbeLo+yDN5cUDmhie2ZoGvkppfWxzbGkcFBzb6dJyQ2/i2cbmDHas+zQ== - "@xtuc/ieee754@^1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" @@ -3964,16 +3890,16 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@^10.4.15: - version "10.4.15" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.15.tgz#a1230f4aeb3636b89120b34a1f513e2f6834d530" - integrity sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew== +autoprefixer@^10.4.20: + version "10.4.20" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" + integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== dependencies: - browserslist "^4.21.10" - caniuse-lite "^1.0.30001520" - fraction.js "^4.2.0" + browserslist "^4.23.3" + caniuse-lite "^1.0.30001646" + fraction.js "^4.3.7" normalize-range "^0.1.2" - picocolors "^1.0.0" + picocolors "^1.0.1" postcss-value-parser "^4.2.0" available-typed-arrays@^1.0.5: @@ -4169,6 +4095,16 @@ browserslist@^4.23.1: node-releases "^2.0.18" update-browserslist-db "^1.1.0" +browserslist@^4.23.3: + version "4.24.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.0.tgz#a1325fe4bc80b64fda169629fc01b3d6cecd38d4" + integrity sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A== + dependencies: + caniuse-lite "^1.0.30001663" + electron-to-chromium "^1.5.28" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" + buffer-equal-constant-time@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" @@ -4291,7 +4227,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001517, caniuse-lite@^1.0.30001520: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001517: version "1.0.30001660" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz" integrity sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg== @@ -4301,6 +4237,11 @@ caniuse-lite@^1.0.30001639, caniuse-lite@^1.0.30001646: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001662.tgz#3574b22dfec54a3f3b6787331da1040fe8e763ec" integrity sha512-sgMUVwLmGseH8ZIrm1d51UbrhqMCH3jvS7gF/M6byuHOnKyLOBL7W8yz5V02OHwgLGA36o/AFhWzzh4uc5aqTA== +caniuse-lite@^1.0.30001663: + version "1.0.30001664" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz#d588d75c9682d3301956b05a3749652a80677df4" + integrity sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g== + chai@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/chai/-/chai-5.1.1.tgz#f035d9792a22b481ead1c65908d14bb62ec1c82c" @@ -5228,6 +5169,11 @@ electron-to-chromium@^1.4.477: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.519.tgz#01b9bc3f1bb50c4971bdd1eeca6d9a73575bd581" integrity sha512-kqs9oGYL4UFVkLKhqCTgBCYZv+wZ374yABDMqlDda9HvlkQxvSr7kgf4hfWVjMieDbX+1MwPHFBsOGCMIBaFKg== +electron-to-chromium@^1.5.28: + version "1.5.29" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.29.tgz#aa592a3caa95d07cc26a66563accf99fa573a1ee" + integrity sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw== + electron-to-chromium@^1.5.4: version "1.5.27" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.27.tgz#5203ce5d6054857d84ba84d3681cbe59132ade78" @@ -6505,10 +6451,10 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fraction.js@^4.2.0: - version "4.3.6" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.6.tgz#e9e3acec6c9a28cf7bc36cbe35eea4ceb2c5c92d" - integrity sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg== +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== fresh@0.5.2: version "0.5.2" @@ -7022,11 +6968,6 @@ http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" -http-link-header@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.0.3.tgz#abbc2cdc5e06dd7e196a4983adac08a2d085ec90" - integrity sha512-nARK1wSKoBBrtcoESlHBx36c1Ln/gnbNQi1eB6MeTUefJIT3NvUOsV15bClga0k38f0q/kN5xxrGSDS3EFnm9w== - http-link-header@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.1.3.tgz#b367b7a0ad1cf14027953f31aa1df40bb433da2a" @@ -7194,27 +7135,17 @@ intersection-observer@^0.12.2: resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.2.tgz#4a45349cc0cd91916682b1f44c28d7ec737dc375" integrity sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg== -intl-messageformat@10.5.11: - version "10.5.11" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.11.tgz#95d6a3b0b303f924d5d8c3f8d3ad057d1dc73c64" - integrity sha512-eYq5fkFBVxc7GIFDzpFQkDOZgNayNTQn4Oufe8jw6YY6OHVw70/4pA3FyCsQ0Gb2DnvEJEMmN2tOaXUGByM+kg== +intl-messageformat@10.5.14, intl-messageformat@^10.5.14: + version "10.5.14" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.14.tgz#e5bb373f8a37b88fbe647d7b941f3ab2a37ed00a" + integrity sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w== dependencies: - "@formatjs/ecma402-abstract" "1.18.2" + "@formatjs/ecma402-abstract" "2.0.0" "@formatjs/fast-memoize" "2.2.0" - "@formatjs/icu-messageformat-parser" "2.7.6" + "@formatjs/icu-messageformat-parser" "2.7.8" tslib "^2.4.0" -intl-messageformat@10.5.3: - version "10.5.3" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.3.tgz#db0779d4a1988faa2977d76574489b7a25f0d5d0" - integrity sha512-TzKn1uhJBMyuKTO4zUX47SU+d66fu1W9tVzIiZrQ6hBqQQeYscBMIzKL/qEXnFbJrH9uU5VV3+T5fWib4SIcKA== - dependencies: - "@formatjs/ecma402-abstract" "1.17.2" - "@formatjs/fast-memoize" "2.2.0" - "@formatjs/icu-messageformat-parser" "2.6.2" - tslib "^2.4.0" - -intl-pluralrules@^2.0.0: +intl-pluralrules@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/intl-pluralrules/-/intl-pluralrules-2.0.1.tgz#de16c3df1e09437635829725e88ea70c9ad79569" integrity sha512-astxTLzIdXPeN0K9Rumi6LfMpm3rvNO0iJE+h/k8Kr/is+wPbRe4ikyDjlLr6VTh/mEfNv8RjN+gu3KwDiuhqg== @@ -8529,12 +8460,13 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-css-extract-plugin@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz#578aebc7fc14d32c0ad304c2c34f08af44673f5e" - integrity sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w== +mini-css-extract-plugin@^2.9.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.1.tgz#4d184f12ce90582e983ccef0f6f9db637b4be758" + integrity sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ== dependencies: schema-utils "^4.0.0" + tapable "^2.2.1" mini-svg-data-uri@^1.2.3: version "1.4.3" @@ -9425,7 +9357,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.23, postcss@^8.4.29, postcss@^8.4.32, postcss@^8.4.4: +postcss@^8.4.23, postcss@^8.4.32, postcss@^8.4.4: version "8.4.32" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== @@ -9702,7 +9634,7 @@ react-event-listener@^0.6.0: prop-types "^15.6.0" warning "^4.0.1" -react-fast-compare@^3.0.1, react-fast-compare@^3.1.1: +react-fast-compare@^3.1.1: version "3.2.0" resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== @@ -9741,20 +9673,20 @@ react-inlinesvg@^4.0.0: dependencies: react-from-dom "^0.6.2" -react-intl@^6.0.0: - version "6.4.7" - resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.4.7.tgz#28ec40350ff791a6a773f5e76b9e12835ae17e19" - integrity sha512-0hnOHAZhxTFqD1hGTxrF40qNyZJPPYiGhWIIxIz0Udz+3e3c7sdN80qlxArR+AbJ+jb5ALXZkJYH20+GPFCM0Q== +react-intl@^6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.7.0.tgz#e84c20424017004f99e1af4e2cbc098f1eaace2e" + integrity sha512-f5QhjuKb+WEqiAbL5hDqUs2+sSRkF0vxkTbJ4A8ompt55XTyOHcrDlCXGq4o73ywFFrpgz+78C9IXegSLlya2A== dependencies: - "@formatjs/ecma402-abstract" "1.17.2" - "@formatjs/icu-messageformat-parser" "2.6.2" - "@formatjs/intl" "2.9.3" - "@formatjs/intl-displaynames" "6.5.2" - "@formatjs/intl-listformat" "7.4.2" + "@formatjs/ecma402-abstract" "2.0.0" + "@formatjs/icu-messageformat-parser" "2.7.8" + "@formatjs/intl" "2.10.5" + "@formatjs/intl-displaynames" "6.6.8" + "@formatjs/intl-listformat" "7.5.7" "@types/hoist-non-react-statics" "^3.3.1" "@types/react" "16 || 17 || 18" hoist-non-react-statics "^3.3.2" - intl-messageformat "10.5.3" + intl-messageformat "10.5.14" tslib "^2.4.0" react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: @@ -9776,14 +9708,6 @@ react-motion@^0.5.2: prop-types "^15.5.8" raf "^3.1.0" -react-popper@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.3.0.tgz#17891c620e1320dce318bad9fede46a5f71c70ba" - integrity sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q== - dependencies: - react-fast-compare "^3.0.1" - warning "^4.0.2" - react-property@2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/react-property/-/react-property-2.0.2.tgz#d5ac9e244cef564880a610bc8d868bd6f60fdda6" @@ -11209,7 +11133,7 @@ tailwindcss@^3.4.12: resolve "^1.22.2" sucrase "^3.32.0" -tapable@^2.1.1, tapable@^2.2.0: +tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== @@ -12067,7 +11991,7 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -warning@^4.0.1, warning@^4.0.2: +warning@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==