From 0c8dcaf9542c59caa6a41b11521f856fdd50b530 Mon Sep 17 00:00:00 2001 From: Joseph Andersen <12385932+jpandersen87@users.noreply.github.com> Date: Tue, 16 Apr 2024 19:07:27 -0500 Subject: [PATCH 01/32] initial - do not directly import uswds image files (so as not to create library copies, defeating the purpose of peer dependency) - use custom user-configurable uswds image object to use for references to uswds images (icons, govbanner) - icons reworked based on above - remove uswds css logic from vite config - remove vite settings that manipulated output filenames (let vite organize output as close to default as possible) - limit library formats to cjs/es for now - use @uswds/compile for creating uswds assets (provide uswds assets from a fresh init, preventing those assets from being processed via vite and being mutated in unexpected ways) - package.json exports (we can be backward-compatible with new output structure) - package.json scripts (use glob pattern matching for eslint) --- custom.d.ts | 2 + gulpfile.ts | 29 + package.json | 31 +- scripts/getUSWDSImageInfo.ts | 57 + src/bundles.test.tsx | 64 - src/components/Icon/Icon.tsx | 13 +- src/components/Icon/Icons.ts | 954 +----- src/components/banner/GovBanner/GovBanner.tsx | 18 +- src/utils/defaultUswdsImages.ts | 271 ++ src/utils/uswdsImages.ts | 14 + vite.config.ts | 88 +- yarn.lock | 2969 ++++++++++++++++- 12 files changed, 3368 insertions(+), 1142 deletions(-) create mode 100644 gulpfile.ts create mode 100644 scripts/getUSWDSImageInfo.ts delete mode 100644 src/bundles.test.tsx create mode 100644 src/utils/defaultUswdsImages.ts create mode 100644 src/utils/uswdsImages.ts diff --git a/custom.d.ts b/custom.d.ts index a76b36c5ba..ad90a19f9b 100644 --- a/custom.d.ts +++ b/custom.d.ts @@ -31,3 +31,5 @@ declare namespace globalThis { MSStream: object } } + +declare module '@uswds/compile' diff --git a/gulpfile.ts b/gulpfile.ts new file mode 100644 index 0000000000..76342c222b --- /dev/null +++ b/gulpfile.ts @@ -0,0 +1,29 @@ +import uswds from '@uswds/compile' + +uswds.settings.version = 3 +uswds.paths.dist = { + ...uswds.paths.dist, + theme: 'lib/assets/uswds/sass', + img: 'lib/assets/uswds/img', + fonts: 'lib/assets/uswds/fonts', + js: 'lib/assets/uswds/js', + css: 'lib/assets/uswds/css', +} + +export { + settings, + paths, + sprite, + copyTheme, + copyFonts, + copyImages, + copyJS, + copyAssets, + copyAll, + compileSass, + compileIcons, + compile, + updateUswds, + init, + watch, +} from '@uswds/compile' diff --git a/package.json b/package.json index 755808a6bc..4dc3921de2 100644 --- a/package.json +++ b/package.json @@ -24,16 +24,17 @@ "require": { "types": "./lib/index.d.ts", "default": "./lib/index.cjs" - }, - "browser": "./lib/index.iife.js", - "default": "./lib/index.umd.cjs" + } }, - "./lib/index.css": "./lib/index.css", - "./lib/uswds.css": "./lib/uswds.css" + "./lib/index.css": "./lib/assets/style.css", + "./lib/uswds.css": "./lib/assets/uswds/css/styles.css" }, "files": [ "lib" ], + "sideEffects": [ + "/lib/assets/**/*" + ], "engines": { "node": ">= 18" }, @@ -42,18 +43,17 @@ "test:debug": "vitest --inspect --pool threads --poolOptions.threads.singleThread", "test:watch": "vitest", "test:coverage": "vitest --run --coverage", - "test:bundles": "vitest --run bundles.test.tsx --mode bundles", "test:serverside": "yarn build && node src/serverSideTest.js", "storybook": "storybook dev -p 9009", "build-storybook": "storybook build", - "build": "vite build && yarn run build:uswds && yarn run test:bundles", - "build:uswds": "vite build --mode uswds", + "build": "vite build && yarn run build:uswds", + "build:uswds": "gulp init", "build:watch": "vite dev", - "lint": "tsc && eslint --ext js,jsx,ts,tsx src && stylelint \"src/**/*.{css,scss}\"", - "lint:fix": "tsc && eslint --ext js,jsx,ts,tsx src --fix && stylelint \"src/**/*.{css,scss}\" --fix", - "format:check": "prettier --check \"src/**/*.{js,jsx,ts,tsx,css,scss,json,md}\"", - "format:fix": "prettier --write \"src/**/*.{js,jsx,ts,tsx,css,scss,json,md}\"", - "prepare": "husky && yarn build", + "lint": "tsc && eslint \"{scripts,src}/**.{js,jsx,ts,tsx}\" && stylelint \"{scripts,src}/**/*.{css,scss}\"", + "lint:fix": "tsc && eslint \"{scripts,src}/**.{js,jsx,ts,tsx}\" --fix && stylelint \"{scripts,src}/**/*.{css,scss}\" --fix", + "format:check": "prettier --check \"{scripts,src}/**/*.{js,jsx,ts,tsx,css,scss,json,md}\"", + "format:fix": "prettier --write \"{scripts,src}/**/*.{js,jsx,ts,tsx,css,scss,json,md}\"", + "prepare": "husky && yarn build && yarn test:serverside", "prepublishOnly": "yarn test && yarn lint", "happo": "happo --config ./.happo.cjs", "happo-ci": "HAPPO_CONFIG_FILE='./.happo.cjs' happo-ci-github-actions --config ./.happo.cjs", @@ -98,6 +98,7 @@ "@types/react-test-renderer": "^18.0.7", "@typescript-eslint/eslint-plugin": "^7.0.0", "@typescript-eslint/parser": "^7.1.1", + "@uswds/compile": "^1.1.0", "@uswds/uswds": "3.7.1", "@vitejs/plugin-react": "^4.2.1", "@vitest/coverage-istanbul": "^1.2.1", @@ -115,7 +116,10 @@ "eslint-plugin-security": "^2.1.0", "eslint-plugin-storybook": "^0.8.0", "eslint-plugin-vitest": "^0.3.21", + "fast-case": "^1.7.0", "focus-trap-react": "^10.2.3", + "glob": "^10.3.12", + "gulp": "^5.0.0", "happo-plugin-storybook": "^4.1.0", "happo.io": "^9.1.2", "husky": "^9.0.10", @@ -133,6 +137,7 @@ "stylelint-config-sass-guidelines": "^11.0.0", "stylelint-config-standard-scss": "^13.0.0", "stylelint-prettier": "^5.0.0", + "tsx": "^4.7.2", "typescript": "^5.1.6", "vite": "^5.0.12", "vite-plugin-checker": "^0.6.2", diff --git a/scripts/getUSWDSImageInfo.ts b/scripts/getUSWDSImageInfo.ts new file mode 100644 index 0000000000..e49420a96e --- /dev/null +++ b/scripts/getUSWDSImageInfo.ts @@ -0,0 +1,57 @@ +import { glob } from 'glob' +import { writeFileSync, readFileSync } from 'node:fs' +import { pascalize } from 'fast-case' +import { join } from 'node:path' + +const OUTPUT_PATH = 'src/utils/defaultUswdsImages.ts' +const FILENAME_REGEX = /.+\/(.+)\.(\w+)$/ +const USWDS_PATH = 'node_modules/@uswds/uswds' +const USWDS_IMG_PATH = join(USWDS_PATH, 'dist/img') + +// Manually set PascalCase names here +const manualDisplayName = { + linkedin: 'LinkedIn', +} + +function getImageEntry(f: string, isExtIncluded = false) { + const [imageName, ext] = FILENAME_REGEX.exec(f)?.slice(1) ?? [] + if (imageName == null) throw new Error('Image name not found') + + return [ + // eslint-disable-next-line security/detect-object-injection + manualDisplayName[imageName] ?? pascalize(imageName), + isExtIncluded ? `${imageName}.${ext}` : imageName, + ] +} + +// All svg files under usa-icons are used in USWDS' sprite.svg using their filename +const spriteIcons = Object.fromEntries( + glob + .globSync(join(USWDS_IMG_PATH, 'usa-icons/*.svg')) + .map((f) => getImageEntry(f)) +) + +// All other image files in USWDS img root +const otherImages = Object.fromEntries( + glob + .globSync(join(USWDS_IMG_PATH, '*.{svg,png,jpg,webp,gif}')) + .map((f) => getImageEntry(f, true)) +) + +// Get USWDS package.json for version output +const packageJson = JSON.parse( + readFileSync(join(USWDS_PATH, 'package.json'), { encoding: 'utf-8' }) +) + +const imagesObj = { + version: packageJson.version, + spriteIcons, + otherImages, + imageDir: USWDS_IMG_PATH, +} + +// Write out to typescript file +writeFileSync( + OUTPUT_PATH, + 'export default ' + JSON.stringify(imagesObj, undefined, 2) + ' as const;' +) diff --git a/src/bundles.test.tsx b/src/bundles.test.tsx deleted file mode 100644 index 878fb86c41..0000000000 --- a/src/bundles.test.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import React from 'react' -import jsxRuntime from 'react/jsx-runtime' -import reactDom from 'react-dom' -import FocusTrap from 'focus-trap-react' -import { render, within } from '@testing-library/react' -import fs from 'node:fs' - -describe('test lib bundles', () => { - async function setup({ - filename, - isEval, - }: { - type: string - filename: string - isEval?: boolean - }) { - let ReactUSWDS - if (!isEval) { - ReactUSWDS = await vi.importActual(`../lib/${filename}`) - } else { - // eslint-disable-next-line security/detect-non-literal-fs-filename - const file = fs.readFileSync(`./lib/${filename}`).toString() - // IIFE expects to be ran as a HTML script import which assigns to global namespace. - // So we remove 'var ' from beginning of the file so that it assigns to our local - // variable instead. - // eslint-disable-next-line security/detect-eval-with-expression - eval(file.replace('var ', '')) - } - return ReactUSWDS - } - beforeEach(() => { - // stub globals for IIFE - vi.stubGlobal('jsxRuntime', jsxRuntime) - vi.stubGlobal('React', React) - vi.stubGlobal('ReactDOM', reactDom) - vi.stubGlobal('FocusTrap', FocusTrap) - }) - afterEach(() => { - vi.unstubAllGlobals() - }) - describe.each([ - { type: 'cjs', filename: 'index.cjs' }, - { type: 'esm', filename: 'index.js' }, - { type: 'umd', filename: 'index.umd.cjs' }, - { type: 'iife', filename: 'index.iife.js', isEval: true }, - ])('type: $type', (info) => { - test('imports', async () => { - const lib = await setup(info) - expect(lib?.Button).toBeDefined() - }) - test('renders', async () => { - const lib = await setup(info) - const Button = (lib?.Button ?? React.Fragment) as React.ComponentType< - React.PropsWithChildren<{ type: string }> - > - const { getByRole } = render( - - ) - const button = getByRole('button') - expect(button).toBeInTheDocument() - expect(within(button).getByText('Component test')).toBeInTheDocument() - }) - }) -}) diff --git a/src/components/Icon/Icon.tsx b/src/components/Icon/Icon.tsx index 4752f8fd25..242559f5bc 100644 --- a/src/components/Icon/Icon.tsx +++ b/src/components/Icon/Icon.tsx @@ -11,7 +11,9 @@ interface USWDSIconProps { export type IconProps = USWDSIconProps & JSX.IntrinsicElements['svg'] export const makeUSWDSIcon = ( - Component: React.ComponentType + name: string, + displayName: string, + spriteUrl: string ): React.FunctionComponent => { const IconFunctionalComponent = (props: IconProps): JSX.Element => { const { @@ -37,8 +39,13 @@ export const makeUSWDSIcon = ( ...iconProps, } - return + return ( + + {displayName} + + + ) } - IconFunctionalComponent.displayName = Component.displayName + IconFunctionalComponent.displayName = displayName return IconFunctionalComponent } diff --git a/src/components/Icon/Icons.ts b/src/components/Icon/Icons.ts index e5a61411bc..a105022457 100644 --- a/src/components/Icon/Icons.ts +++ b/src/components/Icon/Icons.ts @@ -1,929 +1,33 @@ -import AccessibilityNewSvg from '@uswds/uswds/img/usa-icons/accessibility_new.svg?svgr' -import AccessibleForwardSvg from '@uswds/uswds/img/usa-icons/accessible_forward.svg?svgr' -import AccountBalanceSvg from '@uswds/uswds/img/usa-icons/account_balance.svg?svgr' -import AccountBoxSvg from '@uswds/uswds/img/usa-icons/account_box.svg?svgr' -import AccountCircleSvg from '@uswds/uswds/img/usa-icons/account_circle.svg?svgr' -import AddSvg from '@uswds/uswds/img/usa-icons/add.svg?svgr' -import AddCircleSvg from '@uswds/uswds/img/usa-icons/add_circle.svg?svgr' -import AddCircleOutlineSvg from '@uswds/uswds/img/usa-icons/add_circle_outline.svg?svgr' -import AlarmSvg from '@uswds/uswds/img/usa-icons/alarm.svg?svgr' -import AlternateEmailSvg from '@uswds/uswds/img/usa-icons/alternate_email.svg?svgr' -import AnnouncementSvg from '@uswds/uswds/img/usa-icons/announcement.svg?svgr' -import ArrowBackSvg from '@uswds/uswds/img/usa-icons/arrow_back.svg?svgr' -import ArrowDownwardSvg from '@uswds/uswds/img/usa-icons/arrow_downward.svg?svgr' -import ArrowDropDownSvg from '@uswds/uswds/img/usa-icons/arrow_drop_down.svg?svgr' -import ArrowDropUpSvg from '@uswds/uswds/img/usa-icons/arrow_drop_up.svg?svgr' -import ArrowForwardSvg from '@uswds/uswds/img/usa-icons/arrow_forward.svg?svgr' -import ArrowUpwardSvg from '@uswds/uswds/img/usa-icons/arrow_upward.svg?svgr' -import ApiSvg from '@uswds/uswds/img/usa-icons/api.svg?svgr' -import AssessmentSvg from '@uswds/uswds/img/usa-icons/assessment.svg?svgr' -import AttachFileSvg from '@uswds/uswds/img/usa-icons/attach_file.svg?svgr' -import AttachMoneySvg from '@uswds/uswds/img/usa-icons/attach_money.svg?svgr' -import AutorenewSvg from '@uswds/uswds/img/usa-icons/autorenew.svg?svgr' -import BackpackSvg from '@uswds/uswds/img/usa-icons/backpack.svg?svgr' -import BathtubSvg from '@uswds/uswds/img/usa-icons/bathtub.svg?svgr' -import BeddingSvg from '@uswds/uswds/img/usa-icons/bedding.svg?svgr' -import BookmarkSvg from '@uswds/uswds/img/usa-icons/bookmark.svg?svgr' -import BugReportSvg from '@uswds/uswds/img/usa-icons/bug_report.svg?svgr' -import BuildSvg from '@uswds/uswds/img/usa-icons/build.svg?svgr' -import CalendarTodaySvg from '@uswds/uswds/img/usa-icons/calendar_today.svg?svgr' -import CampaignSvg from '@uswds/uswds/img/usa-icons/campaign.svg?svgr' -import CampingSvg from '@uswds/uswds/img/usa-icons/camping.svg?svgr' -import CancelSvg from '@uswds/uswds/img/usa-icons/cancel.svg?svgr' -import ChatSvg from '@uswds/uswds/img/usa-icons/chat.svg?svgr' -import CheckSvg from '@uswds/uswds/img/usa-icons/check.svg?svgr' -import CheckBoxOutlineBlankSvg from '@uswds/uswds/img/usa-icons/check_box_outline_blank.svg?svgr' -import CheckCircleSvg from '@uswds/uswds/img/usa-icons/check_circle.svg?svgr' -import CheckCircleOutlineSvg from '@uswds/uswds/img/usa-icons/check_circle_outline.svg?svgr' -import CheckroomSvg from '@uswds/uswds/img/usa-icons/checkroom.svg?svgr' -import CleanHandsSvg from '@uswds/uswds/img/usa-icons/clean_hands.svg?svgr' -import ClothesSvg from '@uswds/uswds/img/usa-icons/clothes.svg?svgr' -import CloseSvg from '@uswds/uswds/img/usa-icons/close.svg?svgr' -import ClosedCaptionSvg from '@uswds/uswds/img/usa-icons/closed_caption.svg?svgr' -import CloudSvg from '@uswds/uswds/img/usa-icons/cloud.svg?svgr' -import CodeSvg from '@uswds/uswds/img/usa-icons/code.svg?svgr' -import CommentSvg from '@uswds/uswds/img/usa-icons/comment.svg?svgr' -import ConnectWithoutContactSvg from '@uswds/uswds/img/usa-icons/connect_without_contact.svg?svgr' -import ConstructionSvg from '@uswds/uswds/img/usa-icons/construction.svg?svgr' -import ConstructionWorkerSvg from '@uswds/uswds/img/usa-icons/construction_worker.svg?svgr' -import ContactPageSvg from '@uswds/uswds/img/usa-icons/contact_page.svg?svgr' -import ContentCopySvg from '@uswds/uswds/img/usa-icons/content_copy.svg?svgr' -import CoronavirusSvg from '@uswds/uswds/img/usa-icons/coronavirus.svg?svgr' -import CreditCardSvg from '@uswds/uswds/img/usa-icons/credit_card.svg?svgr' -import DeckSvg from '@uswds/uswds/img/usa-icons/deck.svg?svgr' -import DeleteSvg from '@uswds/uswds/img/usa-icons/delete.svg?svgr' -import DeviceThermostatSvg from '@uswds/uswds/img/usa-icons/device_thermostat.svg?svgr' -import DirectionsSvg from '@uswds/uswds/img/usa-icons/directions.svg?svgr' -import DirectionsBikeSvg from '@uswds/uswds/img/usa-icons/directions_bike.svg?svgr' -import DirectionsBusSvg from '@uswds/uswds/img/usa-icons/directions_bus.svg?svgr' -import DirectionsCarSvg from '@uswds/uswds/img/usa-icons/directions_car.svg?svgr' -import DirectionsWalkSvg from '@uswds/uswds/img/usa-icons/directions_walk.svg?svgr' -import DoNotDisturbSvg from '@uswds/uswds/img/usa-icons/do_not_disturb.svg?svgr' -import DoNotTouchSvg from '@uswds/uswds/img/usa-icons/do_not_touch.svg?svgr' -import DragHandleSvg from '@uswds/uswds/img/usa-icons/drag_handle.svg?svgr' -import EcoSvg from '@uswds/uswds/img/usa-icons/eco.svg?svgr' -import EditSvg from '@uswds/uswds/img/usa-icons/edit.svg?svgr' -import ElectricalServicesSvg from '@uswds/uswds/img/usa-icons/electrical_services.svg?svgr' -import EmojiEventsSvg from '@uswds/uswds/img/usa-icons/emoji_events.svg?svgr' -import ErrorSvg from '@uswds/uswds/img/usa-icons/error.svg?svgr' -import ErrorOutlineSvg from '@uswds/uswds/img/usa-icons/error_outline.svg?svgr' -import EventSvg from '@uswds/uswds/img/usa-icons/event.svg?svgr' -import ExpandLessSvg from '@uswds/uswds/img/usa-icons/expand_less.svg?svgr' -import ExpandMoreSvg from '@uswds/uswds/img/usa-icons/expand_more.svg?svgr' -import FacebookSvg from '@uswds/uswds/img/usa-icons/facebook.svg?svgr' -import FastForwardSvg from '@uswds/uswds/img/usa-icons/fast_forward.svg?svgr' -import FastRewindSvg from '@uswds/uswds/img/usa-icons/fast_rewind.svg?svgr' -import FavoriteSvg from '@uswds/uswds/img/usa-icons/favorite.svg?svgr' -import FavoriteBorderSvg from '@uswds/uswds/img/usa-icons/favorite_border.svg?svgr' -import FaxSvg from '@uswds/uswds/img/usa-icons/fax.svg?svgr' -import FileDownloadSvg from '@uswds/uswds/img/usa-icons/file_download.svg?svgr' -import FilePresentSvg from '@uswds/uswds/img/usa-icons/file_present.svg?svgr' -import FileUploadSvg from '@uswds/uswds/img/usa-icons/file_upload.svg?svgr' -import FilterAltSvg from '@uswds/uswds/img/usa-icons/filter_alt.svg?svgr' -import FilterListSvg from '@uswds/uswds/img/usa-icons/filter_list.svg?svgr' -import FingerprintSvg from '@uswds/uswds/img/usa-icons/fingerprint.svg?svgr' -import FirstPageSvg from '@uswds/uswds/img/usa-icons/first_page.svg?svgr' -import FlagSvg from '@uswds/uswds/img/usa-icons/flag.svg?svgr' -import FlickrSvg from '@uswds/uswds/img/usa-icons/flickr.svg?svgr' -import FlightSvg from '@uswds/uswds/img/usa-icons/flight.svg?svgr' -import FloodingSvg from '@uswds/uswds/img/usa-icons/flooding.svg?svgr' -import FolderSvg from '@uswds/uswds/img/usa-icons/folder.svg?svgr' -import FolderOpenSvg from '@uswds/uswds/img/usa-icons/folder_open.svg?svgr' -import FormatQuoteSvg from '@uswds/uswds/img/usa-icons/format_quote.svg?svgr' -import FormatSizeSvg from '@uswds/uswds/img/usa-icons/format_size.svg?svgr' -import ForumSvg from '@uswds/uswds/img/usa-icons/forum.svg?svgr' -import GithubSvg from '@uswds/uswds/img/usa-icons/github.svg?svgr' -import GridViewSvg from '@uswds/uswds/img/usa-icons/grid_view.svg?svgr' -import GroupAddSvg from '@uswds/uswds/img/usa-icons/group_add.svg?svgr' -import GroupsSvg from '@uswds/uswds/img/usa-icons/groups.svg?svgr' -import HearingSvg from '@uswds/uswds/img/usa-icons/hearing.svg?svgr' -import HelpSvg from '@uswds/uswds/img/usa-icons/help.svg?svgr' -import HelpOutlineSvg from '@uswds/uswds/img/usa-icons/help_outline.svg?svgr' -import HighlightOffSvg from '@uswds/uswds/img/usa-icons/highlight_off.svg?svgr' -import HistorySvg from '@uswds/uswds/img/usa-icons/history.svg?svgr' -import HomeSvg from '@uswds/uswds/img/usa-icons/home.svg?svgr' -import HospitalSvg from '@uswds/uswds/img/usa-icons/hospital.svg?svgr' -import HotelSvg from '@uswds/uswds/img/usa-icons/hotel.svg?svgr' -import HourglassEmptySvg from '@uswds/uswds/img/usa-icons/hourglass_empty.svg?svgr' -import HurricaneSvg from '@uswds/uswds/img/usa-icons/hurricane.svg?svgr' -import IdentificationSvg from '@uswds/uswds/img/usa-icons/identification.svg?svgr' -import ImageSvg from '@uswds/uswds/img/usa-icons/image.svg?svgr' -import InfoSvg from '@uswds/uswds/img/usa-icons/info.svg?svgr' -import InfoOutlineSvg from '@uswds/uswds/img/usa-icons/info_outline.svg?svgr' -import InsightsSvg from '@uswds/uswds/img/usa-icons/insights.svg?svgr' -import InstagramSvg from '@uswds/uswds/img/usa-icons/instagram.svg?svgr' -import KeyboardSvg from '@uswds/uswds/img/usa-icons/keyboard.svg?svgr' -import LabelSvg from '@uswds/uswds/img/usa-icons/label.svg?svgr' -import LanguageSvg from '@uswds/uswds/img/usa-icons/language.svg?svgr' -import LastPageSvg from '@uswds/uswds/img/usa-icons/last_page.svg?svgr' -import LaunchSvg from '@uswds/uswds/img/usa-icons/launch.svg?svgr' -import LightbulbSvg from '@uswds/uswds/img/usa-icons/lightbulb.svg?svgr' -import LightbulbOutlineSvg from '@uswds/uswds/img/usa-icons/lightbulb_outline.svg?svgr' -import LinkedInSvg from '@uswds/uswds/img/usa-icons/linkedin.svg?svgr' -import LinkSvg from '@uswds/uswds/img/usa-icons/link.svg?svgr' -import LinkOffSvg from '@uswds/uswds/img/usa-icons/link_off.svg?svgr' -import ListSvg from '@uswds/uswds/img/usa-icons/list.svg?svgr' -import LocalCafeSvg from '@uswds/uswds/img/usa-icons/local_cafe.svg?svgr' -import LocalFireDepartmentSvg from '@uswds/uswds/img/usa-icons/local_fire_department.svg?svgr' -import LocalGasStationSvg from '@uswds/uswds/img/usa-icons/local_gas_station.svg?svgr' -import LocalGroceryStoreSvg from '@uswds/uswds/img/usa-icons/local_grocery_store.svg?svgr' -import LocalHospitalSvg from '@uswds/uswds/img/usa-icons/local_hospital.svg?svgr' -import LocalLaundryServiceSvg from '@uswds/uswds/img/usa-icons/local_laundry_service.svg?svgr' -import LocalLibrarySvg from '@uswds/uswds/img/usa-icons/local_library.svg?svgr' -import LocalOfferSvg from '@uswds/uswds/img/usa-icons/local_offer.svg?svgr' -import LocalParkingSvg from '@uswds/uswds/img/usa-icons/local_parking.svg?svgr' -import LocalPharmacySvg from '@uswds/uswds/img/usa-icons/local_pharmacy.svg?svgr' -import LocalPoliceSvg from '@uswds/uswds/img/usa-icons/local_police.svg?svgr' -import LocalTaxiSvg from '@uswds/uswds/img/usa-icons/local_taxi.svg?svgr' -import LocationCitySvg from '@uswds/uswds/img/usa-icons/location_city.svg?svgr' -import LocationOnSvg from '@uswds/uswds/img/usa-icons/location_on.svg?svgr' -import LockSvg from '@uswds/uswds/img/usa-icons/lock.svg?svgr' -import LockOpenSvg from '@uswds/uswds/img/usa-icons/lock_open.svg?svgr' -import LockOutlineSvg from '@uswds/uswds/img/usa-icons/lock_outline.svg?svgr' -import LoginSvg from '@uswds/uswds/img/usa-icons/login.svg?svgr' -import LogoutSvg from '@uswds/uswds/img/usa-icons/logout.svg?svgr' -import LoopSvg from '@uswds/uswds/img/usa-icons/loop.svg?svgr' -import MailSvg from '@uswds/uswds/img/usa-icons/mail.svg?svgr' -import MailOutlineSvg from '@uswds/uswds/img/usa-icons/mail_outline.svg?svgr' -import MapSvg from '@uswds/uswds/img/usa-icons/map.svg?svgr' -import MasksSvg from '@uswds/uswds/img/usa-icons/masks.svg?svgr' -import MedicalServicesSvg from '@uswds/uswds/img/usa-icons/medical_services.svg?svgr' -import MenuSvg from '@uswds/uswds/img/usa-icons/menu.svg?svgr' -import MilitaryTechSvg from '@uswds/uswds/img/usa-icons/military_tech.svg?svgr' -import MoreHorizSvg from '@uswds/uswds/img/usa-icons/more_horiz.svg?svgr' -import MoreVertSvg from '@uswds/uswds/img/usa-icons/more_vert.svg?svgr' -import MyLocationSvg from '@uswds/uswds/img/usa-icons/my_location.svg?svgr' -import NavigateBeforeSvg from '@uswds/uswds/img/usa-icons/navigate_before.svg?svgr' -import NavigateNextSvg from '@uswds/uswds/img/usa-icons/navigate_next.svg?svgr' -import NavigateFarBeforeSvg from '@uswds/uswds/img/usa-icons/navigate_far_before.svg?svgr' -import NavigateFarNextSvg from '@uswds/uswds/img/usa-icons/navigate_far_next.svg?svgr' -import NearMeSvg from '@uswds/uswds/img/usa-icons/near_me.svg?svgr' -import NotificationsSvg from '@uswds/uswds/img/usa-icons/notifications.svg?svgr' -import NotificationsActiveSvg from '@uswds/uswds/img/usa-icons/notifications_active.svg?svgr' -import NotificationsNoneSvg from '@uswds/uswds/img/usa-icons/notifications_none.svg?svgr' -import NotificationsOffSvg from '@uswds/uswds/img/usa-icons/notifications_off.svg?svgr' -import ParkSvg from '@uswds/uswds/img/usa-icons/park.svg?svgr' -import PeopleSvg from '@uswds/uswds/img/usa-icons/people.svg?svgr' -import PersonSvg from '@uswds/uswds/img/usa-icons/person.svg?svgr' -import PetsSvg from '@uswds/uswds/img/usa-icons/pets.svg?svgr' -import PhoneSvg from '@uswds/uswds/img/usa-icons/phone.svg?svgr' -import PhotoCameraSvg from '@uswds/uswds/img/usa-icons/photo_camera.svg?svgr' -import PrintSvg from '@uswds/uswds/img/usa-icons/print.svg?svgr' -import PriorityHighSvg from '@uswds/uswds/img/usa-icons/priority_high.svg?svgr' -import PublicSvg from '@uswds/uswds/img/usa-icons/public.svg?svgr' -import PushPinSvg from '@uswds/uswds/img/usa-icons/push_pin.svg?svgr' -import RadioButtonUncheckedSvg from '@uswds/uswds/img/usa-icons/radio_button_unchecked.svg?svgr' -import RainSvg from '@uswds/uswds/img/usa-icons/rain.svg?svgr' -import ReduceCapacitySvg from '@uswds/uswds/img/usa-icons/reduce_capacity.svg?svgr' -import RemoveCircleSvg from '@uswds/uswds/img/usa-icons/remove_circle.svg?svgr' -import RemoveSvg from '@uswds/uswds/img/usa-icons/remove.svg?svgr' -import ReportSvg from '@uswds/uswds/img/usa-icons/report.svg?svgr' -import RestaurantSvg from '@uswds/uswds/img/usa-icons/restaurant.svg?svgr' -import RssFeedSvg from '@uswds/uswds/img/usa-icons/rss_feed.svg?svgr' -import SafetyDividerSvg from '@uswds/uswds/img/usa-icons/safety_divider.svg?svgr' -import SanitizerSvg from '@uswds/uswds/img/usa-icons/sanitizer.svg?svgr' -import SaveAltSvg from '@uswds/uswds/img/usa-icons/save_alt.svg?svgr' -import SevereWeatherSvg from '@uswds/uswds/img/usa-icons/severe_weather.svg?svgr' -import ScheduleSvg from '@uswds/uswds/img/usa-icons/schedule.svg?svgr' -import SchoolSvg from '@uswds/uswds/img/usa-icons/school.svg?svgr' -import ScienceSvg from '@uswds/uswds/img/usa-icons/science.svg?svgr' -import SearchSvg from '@uswds/uswds/img/usa-icons/search.svg?svgr' -import SecuritySvg from '@uswds/uswds/img/usa-icons/security.svg?svgr' -import SendSvg from '@uswds/uswds/img/usa-icons/send.svg?svgr' -import SentimentDissatisfiedSvg from '@uswds/uswds/img/usa-icons/sentiment_dissatisfied.svg?svgr' -import SentimentNeutralSvg from '@uswds/uswds/img/usa-icons/sentiment_neutral.svg?svgr' -import SentimentSatisfiedSvg from '@uswds/uswds/img/usa-icons/sentiment_satisfied.svg?svgr' -import SentimentSatisfiedAltSvg from '@uswds/uswds/img/usa-icons/sentiment_satisfied_alt.svg?svgr' -import SentimentVeryDissatisfiedSvg from '@uswds/uswds/img/usa-icons/sentiment_very_dissatisfied.svg?svgr' -import SettingsSvg from '@uswds/uswds/img/usa-icons/settings.svg?svgr' -import ShareSvg from '@uswds/uswds/img/usa-icons/share.svg?svgr' -import ShieldSvg from '@uswds/uswds/img/usa-icons/shield.svg?svgr' -import ShoppingBasketSvg from '@uswds/uswds/img/usa-icons/shopping_basket.svg?svgr' -import SnowSvg from '@uswds/uswds/img/usa-icons/snow.svg?svgr' -import SoapSvg from '@uswds/uswds/img/usa-icons/soap.svg?svgr' -import SocialDistanceSvg from '@uswds/uswds/img/usa-icons/social_distance.svg?svgr' -import SortArrowSvg from '@uswds/uswds/img/usa-icons/sort_arrow.svg?svgr' -import SpellcheckSvg from '@uswds/uswds/img/usa-icons/spellcheck.svg?svgr' -import StarSvg from '@uswds/uswds/img/usa-icons/star.svg?svgr' -import StarHalfSvg from '@uswds/uswds/img/usa-icons/star_half.svg?svgr' -import StarOutlineSvg from '@uswds/uswds/img/usa-icons/star_outline.svg?svgr' -import StoreSvg from '@uswds/uswds/img/usa-icons/store.svg?svgr' -import SupportSvg from '@uswds/uswds/img/usa-icons/support.svg?svgr' -import SupportAgentSvg from '@uswds/uswds/img/usa-icons/support_agent.svg?svgr' -import TextFieldsSvg from '@uswds/uswds/img/usa-icons/text_fields.svg?svgr' -import ThumbDownAltSvg from '@uswds/uswds/img/usa-icons/thumb_down_alt.svg?svgr' -import ThumbUpAltSvg from '@uswds/uswds/img/usa-icons/thumb_up_alt.svg?svgr' -import TimerSvg from '@uswds/uswds/img/usa-icons/timer.svg?svgr' -import ToggleOffSvg from '@uswds/uswds/img/usa-icons/toggle_off.svg?svgr' -import ToggleOnSvg from '@uswds/uswds/img/usa-icons/toggle_on.svg?svgr' -import TopicSvg from '@uswds/uswds/img/usa-icons/topic.svg?svgr' -import TornadoSvg from '@uswds/uswds/img/usa-icons/tornado.svg?svgr' -import TranslateSvg from '@uswds/uswds/img/usa-icons/translate.svg?svgr' -import TrendingDownSvg from '@uswds/uswds/img/usa-icons/trending_down.svg?svgr' -import TrendingUpSvg from '@uswds/uswds/img/usa-icons/trending_up.svg?svgr' -import TwitterSvg from '@uswds/uswds/img/usa-icons/twitter.svg?svgr' -import UndoSvg from '@uswds/uswds/img/usa-icons/undo.svg?svgr' -import UnfoldLessSvg from '@uswds/uswds/img/usa-icons/unfold_less.svg?svgr' -import UnfoldMoreSvg from '@uswds/uswds/img/usa-icons/unfold_more.svg?svgr' -import UpdateSvg from '@uswds/uswds/img/usa-icons/update.svg?svgr' -import UploadFileSvg from '@uswds/uswds/img/usa-icons/upload_file.svg?svgr' -import VerifiedSvg from '@uswds/uswds/img/usa-icons/verified.svg?svgr' -import VerifiedUserSvg from '@uswds/uswds/img/usa-icons/verified_user.svg?svgr' -import VisibilitySvg from '@uswds/uswds/img/usa-icons/visibility.svg?svgr' -import VisibilityOffSvg from '@uswds/uswds/img/usa-icons/visibility_off.svg?svgr' -import VolumeOffSvg from '@uswds/uswds/img/usa-icons/volume_off.svg?svgr' -import WarningSvg from '@uswds/uswds/img/usa-icons/warning.svg?svgr' -import WashSvg from '@uswds/uswds/img/usa-icons/wash.svg?svgr' -import WifiSvg from '@uswds/uswds/img/usa-icons/wifi.svg?svgr' -import WorkSvg from '@uswds/uswds/img/usa-icons/work.svg?svgr' -import XSvg from '@uswds/uswds/img/usa-icons/x.svg?svgr' -import YoutubeSvg from '@uswds/uswds/img/usa-icons/youtube.svg?svgr' -import ZoomInSvg from '@uswds/uswds/img/usa-icons/zoom_in.svg?svgr' -import ZoomOutMapSvg from '@uswds/uswds/img/usa-icons/zoom_out_map.svg?svgr' -import ZoomOutSvg from '@uswds/uswds/img/usa-icons/zoom_out.svg?svgr' - -import { makeUSWDSIcon, IconProps } from './Icon' -import React from 'react' - -export class Icon { - public static AccessibilityNew: React.ComponentType = - makeUSWDSIcon(AccessibilityNewSvg) - - public static AccessibleForward: React.ComponentType = - makeUSWDSIcon(AccessibleForwardSvg) - - public static AccountBalance: React.ComponentType = - makeUSWDSIcon(AccountBalanceSvg) - - public static AccountBox: React.ComponentType = - makeUSWDSIcon(AccountBoxSvg) - - public static AccountCircle: React.ComponentType = - makeUSWDSIcon(AccountCircleSvg) - - public static Add: React.ComponentType = makeUSWDSIcon(AddSvg) - - public static AddCircle: React.ComponentType = - makeUSWDSIcon(AddCircleSvg) - - public static AddCircleOutline: React.ComponentType = - makeUSWDSIcon(AddCircleOutlineSvg) - - public static Alarm: React.ComponentType = makeUSWDSIcon(AlarmSvg) - - public static AlternateEmail: React.ComponentType = - makeUSWDSIcon(AlternateEmailSvg) - - public static Announcement: React.ComponentType = - makeUSWDSIcon(AnnouncementSvg) - - public static ArrowBack: React.ComponentType = - makeUSWDSIcon(ArrowBackSvg) - - public static ArrowDownward: React.ComponentType = - makeUSWDSIcon(ArrowDownwardSvg) - - public static ArrowDropDown: React.ComponentType = - makeUSWDSIcon(ArrowDropDownSvg) - - public static ArrowDropUp: React.ComponentType = - makeUSWDSIcon(ArrowDropUpSvg) - - public static ArrowForward: React.ComponentType = - makeUSWDSIcon(ArrowForwardSvg) - - public static ArrowUpward: React.ComponentType = - makeUSWDSIcon(ArrowUpwardSvg) - - public static Api: React.ComponentType = makeUSWDSIcon(ApiSvg) - - public static Assessment: React.ComponentType = - makeUSWDSIcon(AssessmentSvg) - - public static AttachFile: React.ComponentType = - makeUSWDSIcon(AttachFileSvg) - - public static AttachMoney: React.ComponentType = - makeUSWDSIcon(AttachMoneySvg) - - public static Autorenew: React.ComponentType = - makeUSWDSIcon(AutorenewSvg) - - public static Backpack: React.ComponentType = - makeUSWDSIcon(BackpackSvg) - - public static Bathtub: React.ComponentType = - makeUSWDSIcon(BathtubSvg) - - public static Bedding: React.ComponentType = - makeUSWDSIcon(BeddingSvg) - - public static Bookmark: React.ComponentType = - makeUSWDSIcon(BookmarkSvg) - - public static BugReport: React.ComponentType = - makeUSWDSIcon(BugReportSvg) - - public static Build: React.ComponentType = makeUSWDSIcon(BuildSvg) - - public static CalendarToday: React.ComponentType = - makeUSWDSIcon(CalendarTodaySvg) - - public static Campaign: React.ComponentType = - makeUSWDSIcon(CampaignSvg) - - public static Camping: React.ComponentType = - makeUSWDSIcon(CampingSvg) - - public static Cancel: React.ComponentType = - makeUSWDSIcon(CancelSvg) - - public static Chat: React.ComponentType = makeUSWDSIcon(ChatSvg) - - public static Check: React.ComponentType = makeUSWDSIcon(CheckSvg) - - public static CheckBoxOutlineBlank: React.ComponentType = - makeUSWDSIcon(CheckBoxOutlineBlankSvg) - - public static CheckCircle: React.ComponentType = - makeUSWDSIcon(CheckCircleSvg) - - public static CheckCircleOutline: React.ComponentType = - makeUSWDSIcon(CheckCircleOutlineSvg) - - public static Checkroom: React.ComponentType = - makeUSWDSIcon(CheckroomSvg) - - public static CleanHands: React.ComponentType = - makeUSWDSIcon(CleanHandsSvg) - - public static Clothes: React.ComponentType = - makeUSWDSIcon(ClothesSvg) - - public static Close: React.ComponentType = makeUSWDSIcon(CloseSvg) - - public static ClosedCaption: React.ComponentType = - makeUSWDSIcon(ClosedCaptionSvg) - - public static Cloud: React.ComponentType = makeUSWDSIcon(CloudSvg) - - public static Code: React.ComponentType = makeUSWDSIcon(CodeSvg) - - public static Comment: React.ComponentType = - makeUSWDSIcon(CommentSvg) - - public static ConnectWithoutContact: React.ComponentType = - makeUSWDSIcon(ConnectWithoutContactSvg) - - public static Construction: React.ComponentType = - makeUSWDSIcon(ConstructionSvg) - - public static ConstructionWorker: React.ComponentType = - makeUSWDSIcon(ConstructionWorkerSvg) - - public static ContactPage: React.ComponentType = - makeUSWDSIcon(ContactPageSvg) - - public static ContentCopy: React.ComponentType = - makeUSWDSIcon(ContentCopySvg) - - public static Coronavirus: React.ComponentType = - makeUSWDSIcon(CoronavirusSvg) - - public static CreditCard: React.ComponentType = - makeUSWDSIcon(CreditCardSvg) - - public static Deck: React.ComponentType = makeUSWDSIcon(DeckSvg) - - public static Delete: React.ComponentType = - makeUSWDSIcon(DeleteSvg) - - public static DeviceThermostat: React.ComponentType = - makeUSWDSIcon(DeviceThermostatSvg) - - public static Directions: React.ComponentType = - makeUSWDSIcon(DirectionsSvg) - - public static DirectionsBike: React.ComponentType = - makeUSWDSIcon(DirectionsBikeSvg) - - public static DirectionsBus: React.ComponentType = - makeUSWDSIcon(DirectionsBusSvg) - - public static DirectionsCar: React.ComponentType = - makeUSWDSIcon(DirectionsCarSvg) - - public static DirectionsWalk: React.ComponentType = - makeUSWDSIcon(DirectionsWalkSvg) - - public static DoNotDisturb: React.ComponentType = - makeUSWDSIcon(DoNotDisturbSvg) - - public static DoNotTouch: React.ComponentType = - makeUSWDSIcon(DoNotTouchSvg) - - public static DragHandle: React.ComponentType = - makeUSWDSIcon(DragHandleSvg) - - public static Eco: React.ComponentType = makeUSWDSIcon(EcoSvg) - - public static Edit: React.ComponentType = makeUSWDSIcon(EditSvg) - - public static ElectricalServices: React.ComponentType = - makeUSWDSIcon(ElectricalServicesSvg) - - public static EmojiEvents: React.ComponentType = - makeUSWDSIcon(EmojiEventsSvg) - - public static Error: React.ComponentType = makeUSWDSIcon(ErrorSvg) - - public static ErrorOutline: React.ComponentType = - makeUSWDSIcon(ErrorOutlineSvg) - - public static Event: React.ComponentType = makeUSWDSIcon(EventSvg) - - public static ExpandLess: React.ComponentType = - makeUSWDSIcon(ExpandLessSvg) - - public static ExpandMore: React.ComponentType = - makeUSWDSIcon(ExpandMoreSvg) - - public static Facebook: React.ComponentType = - makeUSWDSIcon(FacebookSvg) - - public static FastForward: React.ComponentType = - makeUSWDSIcon(FastForwardSvg) - - public static FastRewind: React.ComponentType = - makeUSWDSIcon(FastRewindSvg) - - public static Favorite: React.ComponentType = - makeUSWDSIcon(FavoriteSvg) - - public static FavoriteBorder: React.ComponentType = - makeUSWDSIcon(FavoriteBorderSvg) - - public static Fax: React.ComponentType = makeUSWDSIcon(FaxSvg) - - public static FileDownload: React.ComponentType = - makeUSWDSIcon(FileDownloadSvg) - - public static FilePresent: React.ComponentType = - makeUSWDSIcon(FilePresentSvg) - - public static FileUpload: React.ComponentType = - makeUSWDSIcon(FileUploadSvg) - - public static FilterAlt: React.ComponentType = - makeUSWDSIcon(FilterAltSvg) - - public static FilterList: React.ComponentType = - makeUSWDSIcon(FilterListSvg) - - public static Fingerprint: React.ComponentType = - makeUSWDSIcon(FingerprintSvg) - - public static FirstPage: React.ComponentType = - makeUSWDSIcon(FirstPageSvg) - - public static Flag: React.ComponentType = makeUSWDSIcon(FlagSvg) - - public static Flickr: React.ComponentType = - makeUSWDSIcon(FlickrSvg) - - public static Flight: React.ComponentType = - makeUSWDSIcon(FlightSvg) - - public static Flooding: React.ComponentType = - makeUSWDSIcon(FloodingSvg) - - public static Folder: React.ComponentType = - makeUSWDSIcon(FolderSvg) - - public static FolderOpen: React.ComponentType = - makeUSWDSIcon(FolderOpenSvg) - - public static FormatQuote: React.ComponentType = - makeUSWDSIcon(FormatQuoteSvg) - - public static FormatSize: React.ComponentType = - makeUSWDSIcon(FormatSizeSvg) - - public static Forum: React.ComponentType = makeUSWDSIcon(ForumSvg) - - public static Github: React.ComponentType = - makeUSWDSIcon(GithubSvg) - - public static GridView: React.ComponentType = - makeUSWDSIcon(GridViewSvg) - - public static GroupAdd: React.ComponentType = - makeUSWDSIcon(GroupAddSvg) - - public static Groups: React.ComponentType = - makeUSWDSIcon(GroupsSvg) - - public static Hearing: React.ComponentType = - makeUSWDSIcon(HearingSvg) - - public static Help: React.ComponentType = makeUSWDSIcon(HelpSvg) - - public static HelpOutline: React.ComponentType = - makeUSWDSIcon(HelpOutlineSvg) - - public static HighlightOff: React.ComponentType = - makeUSWDSIcon(HighlightOffSvg) - - public static History: React.ComponentType = - makeUSWDSIcon(HistorySvg) - - public static Home: React.ComponentType = makeUSWDSIcon(HomeSvg) - - public static Hospital: React.ComponentType = - makeUSWDSIcon(HospitalSvg) - - public static Hotel: React.ComponentType = makeUSWDSIcon(HotelSvg) - - public static HourglassEmpty: React.ComponentType = - makeUSWDSIcon(HourglassEmptySvg) - - public static Hurricane: React.ComponentType = - makeUSWDSIcon(HurricaneSvg) - - public static Identification: React.ComponentType = - makeUSWDSIcon(IdentificationSvg) - - public static Image: React.ComponentType = makeUSWDSIcon(ImageSvg) - - public static Info: React.ComponentType = makeUSWDSIcon(InfoSvg) - - public static InfoOutline: React.ComponentType = - makeUSWDSIcon(InfoOutlineSvg) - - public static Insights: React.ComponentType = - makeUSWDSIcon(InsightsSvg) - - public static Instagram: React.ComponentType = - makeUSWDSIcon(InstagramSvg) - - public static Keyboard: React.ComponentType = - makeUSWDSIcon(KeyboardSvg) - - public static Label: React.ComponentType = makeUSWDSIcon(LabelSvg) - - public static Language: React.ComponentType = - makeUSWDSIcon(LanguageSvg) - - public static LastPage: React.ComponentType = - makeUSWDSIcon(LastPageSvg) - - public static Launch: React.ComponentType = - makeUSWDSIcon(LaunchSvg) - - public static Lightbulb: React.ComponentType = - makeUSWDSIcon(LightbulbSvg) - - public static LightbulbOutline: React.ComponentType = - makeUSWDSIcon(LightbulbOutlineSvg) - - public static LinkedIn: React.ComponentType = - makeUSWDSIcon(LinkedInSvg) - - public static Link: React.ComponentType = makeUSWDSIcon(LinkSvg) - - public static LinkOff: React.ComponentType = - makeUSWDSIcon(LinkOffSvg) - - public static List: React.ComponentType = makeUSWDSIcon(ListSvg) - - public static LocalCafe: React.ComponentType = - makeUSWDSIcon(LocalCafeSvg) - - public static LocalFireDepartment: React.ComponentType = - makeUSWDSIcon(LocalFireDepartmentSvg) - - public static LocalGasStation: React.ComponentType = - makeUSWDSIcon(LocalGasStationSvg) - - public static LocalGroceryStore: React.ComponentType = - makeUSWDSIcon(LocalGroceryStoreSvg) - - public static LocalHospital: React.ComponentType = - makeUSWDSIcon(LocalHospitalSvg) - - public static LocalLaundryService: React.ComponentType = - makeUSWDSIcon(LocalLaundryServiceSvg) - - public static LocalLibrary: React.ComponentType = - makeUSWDSIcon(LocalLibrarySvg) - - public static LocalOffer: React.ComponentType = - makeUSWDSIcon(LocalOfferSvg) - - public static LocalParking: React.ComponentType = - makeUSWDSIcon(LocalParkingSvg) - - public static LocalPharmacy: React.ComponentType = - makeUSWDSIcon(LocalPharmacySvg) - - public static LocalPolice: React.ComponentType = - makeUSWDSIcon(LocalPoliceSvg) - - public static LocalTaxi: React.ComponentType = - makeUSWDSIcon(LocalTaxiSvg) - - public static LocationCity: React.ComponentType = - makeUSWDSIcon(LocationCitySvg) - - public static LocationOn: React.ComponentType = - makeUSWDSIcon(LocationOnSvg) - - public static Lock: React.ComponentType = makeUSWDSIcon(LockSvg) - - public static LockOpen: React.ComponentType = - makeUSWDSIcon(LockOpenSvg) - - public static LockOutline: React.ComponentType = - makeUSWDSIcon(LockOutlineSvg) - - public static Login: React.ComponentType = makeUSWDSIcon(LoginSvg) - - public static Logout: React.ComponentType = - makeUSWDSIcon(LogoutSvg) - - public static Loop: React.ComponentType = makeUSWDSIcon(LoopSvg) - - public static Mail: React.ComponentType = makeUSWDSIcon(MailSvg) - - public static MailOutline: React.ComponentType = - makeUSWDSIcon(MailOutlineSvg) - - public static Map: React.ComponentType = makeUSWDSIcon(MapSvg) - - public static Masks: React.ComponentType = makeUSWDSIcon(MasksSvg) - - public static MedicalServices: React.ComponentType = - makeUSWDSIcon(MedicalServicesSvg) - - public static Menu: React.ComponentType = makeUSWDSIcon(MenuSvg) - - public static MilitaryTech: React.ComponentType = - makeUSWDSIcon(MilitaryTechSvg) - - public static MoreHoriz: React.ComponentType = - makeUSWDSIcon(MoreHorizSvg) - - public static MoreVert: React.ComponentType = - makeUSWDSIcon(MoreVertSvg) - - public static MyLocation: React.ComponentType = - makeUSWDSIcon(MyLocationSvg) - - public static NavigateBefore: React.ComponentType = - makeUSWDSIcon(NavigateBeforeSvg) - - public static NavigateNext: React.ComponentType = - makeUSWDSIcon(NavigateNextSvg) - - public static NavigateFarBefore: React.ComponentType = - makeUSWDSIcon(NavigateFarBeforeSvg) - - public static NavigateFarNext: React.ComponentType = - makeUSWDSIcon(NavigateFarNextSvg) - - public static NearMe: React.ComponentType = - makeUSWDSIcon(NearMeSvg) - - public static Notifications: React.ComponentType = - makeUSWDSIcon(NotificationsSvg) - - public static NotificationsActive: React.ComponentType = - makeUSWDSIcon(NotificationsActiveSvg) - - public static NotificationsNone: React.ComponentType = - makeUSWDSIcon(NotificationsNoneSvg) - - public static NotificationsOff: React.ComponentType = - makeUSWDSIcon(NotificationsOffSvg) - - public static Park: React.ComponentType = makeUSWDSIcon(ParkSvg) - - public static People: React.ComponentType = - makeUSWDSIcon(PeopleSvg) - - public static Person: React.ComponentType = - makeUSWDSIcon(PersonSvg) - - public static Pets: React.ComponentType = makeUSWDSIcon(PetsSvg) - - public static Phone: React.ComponentType = makeUSWDSIcon(PhoneSvg) - - public static PhotoCamera: React.ComponentType = - makeUSWDSIcon(PhotoCameraSvg) - - public static Print: React.ComponentType = makeUSWDSIcon(PrintSvg) - - public static PriorityHigh: React.ComponentType = - makeUSWDSIcon(PriorityHighSvg) - - public static Public: React.ComponentType = - makeUSWDSIcon(PublicSvg) - - public static PushPin: React.ComponentType = - makeUSWDSIcon(PushPinSvg) - - public static RadioButtonUnchecked: React.ComponentType = - makeUSWDSIcon(RadioButtonUncheckedSvg) - - public static Rain: React.ComponentType = makeUSWDSIcon(RainSvg) - - public static ReduceCapacity: React.ComponentType = - makeUSWDSIcon(ReduceCapacitySvg) - - public static RemoveCircle: React.ComponentType = - makeUSWDSIcon(RemoveCircleSvg) - - public static Remove: React.ComponentType = - makeUSWDSIcon(RemoveSvg) - - public static Report: React.ComponentType = - makeUSWDSIcon(ReportSvg) - - public static Restaurant: React.ComponentType = - makeUSWDSIcon(RestaurantSvg) - - public static RssFeed: React.ComponentType = - makeUSWDSIcon(RssFeedSvg) - - public static SafetyDivider: React.ComponentType = - makeUSWDSIcon(SafetyDividerSvg) - - public static Sanitizer: React.ComponentType = - makeUSWDSIcon(SanitizerSvg) - - public static SaveAlt: React.ComponentType = - makeUSWDSIcon(SaveAltSvg) - - public static SevereWeather: React.ComponentType = - makeUSWDSIcon(SevereWeatherSvg) - - public static Schedule: React.ComponentType = - makeUSWDSIcon(ScheduleSvg) - - public static School: React.ComponentType = - makeUSWDSIcon(SchoolSvg) - - public static Science: React.ComponentType = - makeUSWDSIcon(ScienceSvg) - - public static Search: React.ComponentType = - makeUSWDSIcon(SearchSvg) - - public static Security: React.ComponentType = - makeUSWDSIcon(SecuritySvg) - - public static Send: React.ComponentType = makeUSWDSIcon(SendSvg) - - public static SentimentDissatisfied: React.ComponentType = - makeUSWDSIcon(SentimentDissatisfiedSvg) - - public static SentimentNeutral: React.ComponentType = - makeUSWDSIcon(SentimentNeutralSvg) - - public static SentimentSatisfied: React.ComponentType = - makeUSWDSIcon(SentimentSatisfiedSvg) - - public static SentimentSatisfiedAlt: React.ComponentType = - makeUSWDSIcon(SentimentSatisfiedAltSvg) - - public static SentimentVeryDissatisfied: React.ComponentType = - makeUSWDSIcon(SentimentVeryDissatisfiedSvg) - - public static Settings: React.ComponentType = - makeUSWDSIcon(SettingsSvg) - - public static Share: React.ComponentType = makeUSWDSIcon(ShareSvg) - - public static Shield: React.ComponentType = - makeUSWDSIcon(ShieldSvg) - - public static ShoppingBasket: React.ComponentType = - makeUSWDSIcon(ShoppingBasketSvg) - - public static Snow: React.ComponentType = makeUSWDSIcon(SnowSvg) - - public static Soap: React.ComponentType = makeUSWDSIcon(SoapSvg) - - public static SocialDistance: React.ComponentType = - makeUSWDSIcon(SocialDistanceSvg) - - public static SortArrow: React.ComponentType = - makeUSWDSIcon(SortArrowSvg) - - public static Spellcheck: React.ComponentType = - makeUSWDSIcon(SpellcheckSvg) - - public static Star: React.ComponentType = makeUSWDSIcon(StarSvg) - - public static StarHalf: React.ComponentType = - makeUSWDSIcon(StarHalfSvg) - - public static StarOutline: React.ComponentType = - makeUSWDSIcon(StarOutlineSvg) - - public static Store: React.ComponentType = makeUSWDSIcon(StoreSvg) - - public static Support: React.ComponentType = - makeUSWDSIcon(SupportSvg) - - public static SupportAgent: React.ComponentType = - makeUSWDSIcon(SupportAgentSvg) - - public static TextFields: React.ComponentType = - makeUSWDSIcon(TextFieldsSvg) - - public static ThumbDownAlt: React.ComponentType = - makeUSWDSIcon(ThumbDownAltSvg) - - public static ThumbUpAlt: React.ComponentType = - makeUSWDSIcon(ThumbUpAltSvg) - - public static Timer: React.ComponentType = makeUSWDSIcon(TimerSvg) - - public static ToggleOff: React.ComponentType = - makeUSWDSIcon(ToggleOffSvg) - - public static ToggleOn: React.ComponentType = - makeUSWDSIcon(ToggleOnSvg) - - public static Topic: React.ComponentType = makeUSWDSIcon(TopicSvg) - - public static Tornado: React.ComponentType = - makeUSWDSIcon(TornadoSvg) - - public static Translate: React.ComponentType = - makeUSWDSIcon(TranslateSvg) - - public static TrendingDown: React.ComponentType = - makeUSWDSIcon(TrendingDownSvg) - - public static TrendingUp: React.ComponentType = - makeUSWDSIcon(TrendingUpSvg) - - public static Twitter: React.ComponentType = - makeUSWDSIcon(TwitterSvg) - - public static Undo: React.ComponentType = makeUSWDSIcon(UndoSvg) - - public static UnfoldLess: React.ComponentType = - makeUSWDSIcon(UnfoldLessSvg) - - public static UnfoldMore: React.ComponentType = - makeUSWDSIcon(UnfoldMoreSvg) - - public static Update: React.ComponentType = - makeUSWDSIcon(UpdateSvg) - - public static UploadFile: React.ComponentType = - makeUSWDSIcon(UploadFileSvg) - - public static Verified: React.ComponentType = - makeUSWDSIcon(VerifiedSvg) - - public static VerifiedUser: React.ComponentType = - makeUSWDSIcon(VerifiedUserSvg) - - public static Visibility: React.ComponentType = - makeUSWDSIcon(VisibilitySvg) - - public static VisibilityOff: React.ComponentType = - makeUSWDSIcon(VisibilityOffSvg) - - public static VolumeOff: React.ComponentType = - makeUSWDSIcon(VolumeOffSvg) - - public static Warning: React.ComponentType = - makeUSWDSIcon(WarningSvg) - - public static Wash: React.ComponentType = makeUSWDSIcon(WashSvg) - - public static Wifi: React.ComponentType = makeUSWDSIcon(WifiSvg) - - public static Work: React.ComponentType = makeUSWDSIcon(WorkSvg) - - public static X: React.ComponentType = makeUSWDSIcon(XSvg) - - public static Youtube: React.ComponentType = - makeUSWDSIcon(YoutubeSvg) - - public static ZoomIn: React.ComponentType = - makeUSWDSIcon(ZoomInSvg) - - public static ZoomOutMap: React.ComponentType = - makeUSWDSIcon(ZoomOutMapSvg) +import { IconProps, makeUSWDSIcon } from './Icon' +import { USWDS_IMAGES } from '../../utils/uswdsImages' +import { ComponentType } from 'react' + +export type SpriteEntry = Record + +export let Icon = makeUSWDSIcons( + `${USWDS_IMAGES.imageDir}/${USWDS_IMAGES.otherImages.Sprite}` +) + +export function makeUSWDSIcons< + const T extends SpriteEntry = (typeof USWDS_IMAGES)['spriteIcons'], +>(spriteUrl: string, iconNames?: T): Record> { + const Icon = Object.fromEntries( + Object.entries(iconNames ?? USWDS_IMAGES.spriteIcons).map( + ([displayName, spriteName]) => { + const Component = makeUSWDSIcon(spriteName, displayName, spriteUrl) + if (!Component.displayName) + throw new Error('Icon displayName not found') + + return [Component.displayName, Component] + } + ) + ) as Record> + + return Icon +} - public static ZoomOut: React.ComponentType = - makeUSWDSIcon(ZoomOutSvg) +export function setUSWDSIcons(icon: Record>) { + Icon = icon } export default Icon diff --git a/src/components/banner/GovBanner/GovBanner.tsx b/src/components/banner/GovBanner/GovBanner.tsx index cb0c487899..4059c1a801 100644 --- a/src/components/banner/GovBanner/GovBanner.tsx +++ b/src/components/banner/GovBanner/GovBanner.tsx @@ -8,11 +8,7 @@ import { BannerGuidance } from '../BannerGuidance/BannerGuidance' import { BannerIcon } from '../BannerIcon/BannerIcon' import { MediaBlockBody } from '../../mediablock/MediaBlockBody/MediaBlockBody' import { Icon } from '../../Icon/Icons' - -// assets -import flagImg from '@uswds/uswds/img/us_flag_small.png' -import dotGovIcon from '@uswds/uswds/img/icon-dot-gov.svg' -import httpsIcon from '@uswds/uswds/img/icon-https.svg' +import { USWDS_IMAGES } from '../../../utils/uswdsImages' type Language = 'english' | 'spanish' @@ -138,7 +134,13 @@ export const GovBanner = ({ {...sectionProps}> } + flagImg={ + + } headerText={header} headerActionText={headerAction}>
- +

{tldSectionHeader} @@ -163,7 +165,7 @@ export const GovBanner = ({ - +

{httpsSectionHeader} diff --git a/src/utils/defaultUswdsImages.ts b/src/utils/defaultUswdsImages.ts new file mode 100644 index 0000000000..14fd5a2d97 --- /dev/null +++ b/src/utils/defaultUswdsImages.ts @@ -0,0 +1,271 @@ +export default { + version: '3.7.1', + spriteIcons: { + ZoomOutMap: 'zoom_out_map', + ZoomOut: 'zoom_out', + ZoomIn: 'zoom_in', + Youtube: 'youtube', + X: 'x', + Work: 'work', + Wifi: 'wifi', + Wash: 'wash', + Warning: 'warning', + VolumeOff: 'volume_off', + VisibilityOff: 'visibility_off', + Visibility: 'visibility', + VerifiedUser: 'verified_user', + Verified: 'verified', + UploadFile: 'upload_file', + Update: 'update', + UnfoldMore: 'unfold_more', + UnfoldLess: 'unfold_less', + Undo: 'undo', + Twitter: 'twitter', + TrendingUp: 'trending_up', + TrendingDown: 'trending_down', + Translate: 'translate', + Tornado: 'tornado', + Topic: 'topic', + ToggleOn: 'toggle_on', + ToggleOff: 'toggle_off', + Timer: 'timer', + ThumbUpAlt: 'thumb_up_alt', + ThumbDownAlt: 'thumb_down_alt', + TextFields: 'text_fields', + SupportAgent: 'support_agent', + Support: 'support', + Store: 'store', + StarOutline: 'star_outline', + StarHalf: 'star_half', + Star: 'star', + Spellcheck: 'spellcheck', + SortArrow: 'sort_arrow', + SocialDistance: 'social_distance', + Soap: 'soap', + Snow: 'snow', + ShoppingBasket: 'shopping_basket', + Shield: 'shield', + Share: 'share', + SevereWeather: 'severe_weather', + Settings: 'settings', + SentimentVeryDissatisfied: 'sentiment_very_dissatisfied', + SentimentSatisfiedAlt: 'sentiment_satisfied_alt', + SentimentSatisfied: 'sentiment_satisfied', + SentimentNeutral: 'sentiment_neutral', + SentimentDissatisfied: 'sentiment_dissatisfied', + Send: 'send', + Security: 'security', + Search: 'search', + Science: 'science', + School: 'school', + Schedule: 'schedule', + SaveAlt: 'save_alt', + Sanitizer: 'sanitizer', + SafetyDivider: 'safety_divider', + RssFeed: 'rss_feed', + Restaurant: 'restaurant', + Report: 'report', + RemoveCircle: 'remove_circle', + Remove: 'remove', + ReduceCapacity: 'reduce_capacity', + Rain: 'rain', + RadioButtonUnchecked: 'radio_button_unchecked', + PushPin: 'push_pin', + Public: 'public', + PriorityHigh: 'priority_high', + Print: 'print', + PhotoCamera: 'photo_camera', + Phone: 'phone', + Pets: 'pets', + Person: 'person', + People: 'people', + Park: 'park', + NotificationsOff: 'notifications_off', + NotificationsNone: 'notifications_none', + NotificationsActive: 'notifications_active', + Notifications: 'notifications', + NearMe: 'near_me', + NavigateNext: 'navigate_next', + NavigateFarNext: 'navigate_far_next', + NavigateFarBefore: 'navigate_far_before', + NavigateBefore: 'navigate_before', + MyLocation: 'my_location', + MoreVert: 'more_vert', + MoreHoriz: 'more_horiz', + MilitaryTech: 'military_tech', + Menu: 'menu', + MedicalServices: 'medical_services', + Masks: 'masks', + Map: 'map', + MailOutline: 'mail_outline', + Mail: 'mail', + Loop: 'loop', + Logout: 'logout', + Login: 'login', + LockOutline: 'lock_outline', + LockOpen: 'lock_open', + Lock: 'lock', + LocationOn: 'location_on', + LocationCity: 'location_city', + LocalTaxi: 'local_taxi', + LocalPolice: 'local_police', + LocalPharmacy: 'local_pharmacy', + LocalParking: 'local_parking', + LocalOffer: 'local_offer', + LocalLibrary: 'local_library', + LocalLaundryService: 'local_laundry_service', + LocalHospital: 'local_hospital', + LocalGroceryStore: 'local_grocery_store', + LocalGasStation: 'local_gas_station', + LocalFireDepartment: 'local_fire_department', + LocalCafe: 'local_cafe', + List: 'list', + LinkedIn: 'linkedin', + LinkOff: 'link_off', + Link: 'link', + LightbulbOutline: 'lightbulb_outline', + Lightbulb: 'lightbulb', + Launch: 'launch', + LastPage: 'last_page', + Language: 'language', + Label: 'label', + Keyboard: 'keyboard', + Instagram: 'instagram', + Insights: 'insights', + InfoOutline: 'info_outline', + Info: 'info', + Image: 'image', + Identification: 'identification', + Hurricane: 'hurricane', + HourglassEmpty: 'hourglass_empty', + Hotel: 'hotel', + Hospital: 'hospital', + Home: 'home', + History: 'history', + HighlightOff: 'highlight_off', + HelpOutline: 'help_outline', + Help: 'help', + Hearing: 'hearing', + Groups: 'groups', + GroupAdd: 'group_add', + GridView: 'grid_view', + Github: 'github', + Forum: 'forum', + FormatSize: 'format_size', + FormatQuote: 'format_quote', + FolderOpen: 'folder_open', + Folder: 'folder', + Flooding: 'flooding', + Flight: 'flight', + Flickr: 'flickr', + Flag: 'flag', + FirstPage: 'first_page', + Fingerprint: 'fingerprint', + FilterList: 'filter_list', + FilterAlt: 'filter_alt', + FileUpload: 'file_upload', + FilePresent: 'file_present', + FileDownload: 'file_download', + Fax: 'fax', + FavoriteBorder: 'favorite_border', + Favorite: 'favorite', + FastRewind: 'fast_rewind', + FastForward: 'fast_forward', + Facebook: 'facebook', + ExpandMore: 'expand_more', + ExpandLess: 'expand_less', + Event: 'event', + ErrorOutline: 'error_outline', + Error: 'error', + EmojiEvents: 'emoji_events', + ElectricalServices: 'electrical_services', + Edit: 'edit', + Eco: 'eco', + DragHandle: 'drag_handle', + DoNotTouch: 'do_not_touch', + DoNotDisturb: 'do_not_disturb', + DirectionsWalk: 'directions_walk', + DirectionsCar: 'directions_car', + DirectionsBus: 'directions_bus', + DirectionsBike: 'directions_bike', + Directions: 'directions', + DeviceThermostat: 'device_thermostat', + Delete: 'delete', + Deck: 'deck', + CreditCard: 'credit_card', + Coronavirus: 'coronavirus', + ContentCopy: 'content_copy', + ContactPage: 'contact_page', + ConstructionWorker: 'construction_worker', + Construction: 'construction', + ConnectWithoutContact: 'connect_without_contact', + Comment: 'comment', + Code: 'code', + Cloud: 'cloud', + Clothes: 'clothes', + ClosedCaption: 'closed_caption', + Close: 'close', + CleanHands: 'clean_hands', + ChevronRight: 'chevron_right', + ChevronLeft: 'chevron_left', + Checkroom: 'checkroom', + CheckCircleOutline: 'check_circle_outline', + CheckCircle: 'check_circle', + CheckBoxOutlineBlank: 'check_box_outline_blank', + Check: 'check', + Chat: 'chat', + Cancel: 'cancel', + Camping: 'camping', + Campaign: 'campaign', + CalendarToday: 'calendar_today', + Build: 'build', + BugReport: 'bug_report', + Bookmark: 'bookmark', + Bedding: 'bedding', + Bathtub: 'bathtub', + Backpack: 'backpack', + Autorenew: 'autorenew', + AttachMoney: 'attach_money', + AttachFile: 'attach_file', + Assessment: 'assessment', + ArrowUpward: 'arrow_upward', + ArrowForward: 'arrow_forward', + ArrowDropUp: 'arrow_drop_up', + ArrowDropDown: 'arrow_drop_down', + ArrowDownward: 'arrow_downward', + ArrowBack: 'arrow_back', + Api: 'api', + Announcement: 'announcement', + AlternateEmail: 'alternate_email', + Alarm: 'alarm', + AddCircleOutline: 'add_circle_outline', + AddCircle: 'add_circle', + Add: 'add', + AccountCircle: 'account_circle', + AccountBox: 'account_box', + AccountBalance: 'account_balance', + AccessibleForward: 'accessible_forward', + AccessibilityNew: 'accessibility_new', + }, + otherImages: { + UsFlagSmall: 'us_flag_small.png', + UsFlag: 'us_flag.svg', + Sprite: 'sprite.svg', + LogoImg: 'logo-img.png', + Lock: 'lock.svg', + Loader: 'loader.gif', + IconHttps: 'icon-https.svg', + IconDotGov: 'icon-dot-gov.svg', + Hero: 'hero.jpg', + File: 'file.svg', + FileWord: 'file-word.svg', + FileVideo: 'file-video.svg', + FilePdf: 'file-pdf.svg', + FileExcel: 'file-excel.svg', + Correct8: 'correct8.svg', + Correct8Alt: 'correct8-alt.svg', + CircleGray20: 'circle-gray-20.svg', + Circle124: 'circle-124.png', + }, + imageDir: 'node_modules/@uswds/uswds/dist/img', +} as const diff --git a/src/utils/uswdsImages.ts b/src/utils/uswdsImages.ts new file mode 100644 index 0000000000..52ba5bfc18 --- /dev/null +++ b/src/utils/uswdsImages.ts @@ -0,0 +1,14 @@ +import uswdsImages from './defaultUswdsImages' + +export let USWDS_IMAGES: typeof uswdsImages = uswdsImages + +export interface USWDSImagesConfig { + version: string + spriteIcons: Record + otherImages: Record + imageDir: string +} + +export function setUSWDSImages(config: USWDSImagesConfig) { + USWDS_IMAGES = config as never +} diff --git a/vite.config.ts b/vite.config.ts index 82782cf49f..4b0c4aca84 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,13 +1,11 @@ /// -import { resolve } from 'path' +import { resolve, dirname } from 'path' import url from 'url' import { defineConfig } from 'vite' -import { configDefaults } from 'vitest/config' import dts from 'vite-plugin-dts' -import svgr from 'vite-plugin-svgr' -import libAssetsPlugin from '@laynezh/vite-plugin-lib-assets' import { checker } from 'vite-plugin-checker' import react from '@vitejs/plugin-react' +import { glob } from 'glob' const __dirname = url.fileURLToPath(new URL('.', import.meta.url)) @@ -16,18 +14,26 @@ const uswdsIncludePaths = [ 'node_modules/@uswds/uswds/packages', ] -/** - * Pass `--mode uswds` to build uswds assets - */ -export default defineConfig(({ mode: _mode }) => { - const isUswds = _mode === 'uswds' - const isBundles = _mode === 'bundles' - const mode = isUswds ? 'production' : isBundles ? 'test' : _mode - const entryName = isUswds ? 'uswds' : 'index' +const entries = new Map() +for (const file of glob.sync( + 'src/components/**/!(*.spec|*.stories|*.test).{ts,tsx}' +)) { + const fileName = file.split('/').at(-1)?.split('.')[0] + const path = dirname(file).replace('src/', '') + const libPath = `${path}/${fileName}` + if (!fileName) continue + + entries.set(libPath, url.fileURLToPath(new URL(file, import.meta.url))) +} +entries.set( + 'index', + url.fileURLToPath(new URL('src/index.ts', import.meta.url)) +) + +export default defineConfig(({ mode }) => { const isTest = mode === 'test' || mode === 'benchmark' return { - mode, // ignore some plugins if running tests plugins: [ react(), @@ -36,58 +42,29 @@ export default defineConfig(({ mode: _mode }) => { typescript: true, }), !isTest && - isUswds && - libAssetsPlugin({ - // ignore svg files as they will be inlined via svgr - exclude: /\.svg(\?.*)?$/, - // matches webpack names - name: '[contenthash:20].[ext]', + dts({ + tsconfigPath: 'tsconfig.build.json', + exclude: 'src/setupTests.ts', }), - // default svg url pattern is `*.svg?react`, updated to `*.svg?svgr` - svgr({ - svgrOptions: { icon: true, memo: true }, - include: '**/*.svg?svgr', - }), - !isTest && dts({ tsconfigPath: 'tsconfig.build.json' }), ], build: { outDir: 'lib', - emptyOutDir: !isUswds, // add uswds assets onto lib build lib: { - entry: isUswds - ? resolve(__dirname, 'node_modules/@uswds/uswds/dist/css/uswds.css') - : resolve(__dirname, `src/index.ts`), - name: 'ReactUSWDS', - formats: !isUswds ? ['cjs', 'es', 'iife', 'umd'] : ['es'], - fileName: entryName, + entry: Object.fromEntries(entries), + formats: ['cjs', 'es'], }, - cssCodeSplit: isUswds, - assetsDir: './', rollupOptions: { external: [ 'react', 'react-dom', 'react/jsx-runtime', 'focus-trap-react', + '@uswds/uswds', ], output: { - // Support React Server Components - // See: https://react.dev/reference/react/use-client - banner: (assetInfo) => - assetInfo.fileName.endsWith('.js') || - assetInfo.fileName.endsWith('.mjs') - ? '"use client;"' - : '', - globals: { - react: 'React', - 'react-dom': 'ReactDOM', - 'react/jsx-runtime': 'jsxRuntime', - 'focus-trap-react': 'FocusTrap', - }, - assetFileNames: (assetInfo) => { - if (assetInfo.name === 'style.css') return `${entryName}.css` - return assetInfo.name ?? '' - }, + assetFileNames: 'assets/[name][extname]', + preserveModules: true, + preserveModulesRoot: 'src', }, }, sourcemap: true, @@ -115,11 +92,6 @@ export default defineConfig(({ mode: _mode }) => { ], }, test: { - // bundles test added to default exclude list (so that it can be ran manually after build) - exclude: [ - ...configDefaults.exclude, - !isBundles ? 'src/bundles.test.tsx' : '', - ], globals: true, setupFiles: ['src/setupTests.ts'], environment: 'jsdom', @@ -138,10 +110,6 @@ export default defineConfig(({ mode: _mode }) => { }, css: false, alias: [ - { - find: /.+\.svg\?svgr$/, - replacement: resolve(__dirname, './__mocks__/svgrMock.js'), - }, { find: /.+\.(jpg|jpeg|png|gif|eot|otf|webp|ttf|svg|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$/, replacement: resolve(__dirname, '__mocks__/fileMock.js'), diff --git a/yarn.lock b/yarn.lock index 500383742f..80a19197ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1094,6 +1094,11 @@ resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" integrity sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA== +"@bufbuild/protobuf@^1.0.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-1.8.0.tgz#1c8651ea34adb8019b483e09de02aeeb1cd57d79" + integrity sha512-qR9FwI8QKIveDnUYutvfzbC21UZJJryYrLuZGjeZ/VGz+vXelUkK+xgkOHsvPEdYEdxtgUUq4313N8QtOehJ1Q== + "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -1134,116 +1139,231 @@ resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + "@esbuild/aix-ppc64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + "@esbuild/android-arm64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + "@esbuild/android-arm@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + "@esbuild/android-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + "@esbuild/darwin-arm64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + "@esbuild/darwin-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + "@esbuild/freebsd-arm64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + "@esbuild/freebsd-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + "@esbuild/linux-arm64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + "@esbuild/linux-arm@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + "@esbuild/linux-ia32@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + "@esbuild/linux-loong64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + "@esbuild/linux-mips64el@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + "@esbuild/linux-ppc64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + "@esbuild/linux-riscv64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + "@esbuild/linux-s390x@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + "@esbuild/linux-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + "@esbuild/netbsd-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + "@esbuild/openbsd-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + "@esbuild/sunos-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + "@esbuild/win32-arm64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + "@esbuild/win32-ia32@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + "@esbuild/win32-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" @@ -1318,6 +1438,37 @@ qs "^6.10.1" xcase "^2.0.1" +"@gulp-sourcemaps/identity-map@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz#a6e8b1abec8f790ec6be2b8c500e6e68037c0019" + integrity sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q== + dependencies: + acorn "^6.4.1" + normalize-path "^3.0.0" + postcss "^7.0.16" + source-map "^0.6.0" + through2 "^3.0.1" + +"@gulp-sourcemaps/map-sources@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz#890ae7c5d8c877f6d384860215ace9d7ec945bda" + integrity sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A== + dependencies: + normalize-path "^2.0.1" + through2 "^2.0.3" + +"@gulpjs/messages@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@gulpjs/messages/-/messages-1.1.0.tgz#94e70978ff676ade541faab459c37ae0c7095e5a" + integrity sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg== + +"@gulpjs/to-absolute-glob@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz#1fc2460d3953e1d9b9f2dfdb4bcc99da4710c021" + integrity sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA== + dependencies: + is-negated-glob "^1.0.0" + "@humanwhocodes/config-array@^0.11.14": version "0.11.14" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" @@ -2765,6 +2916,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== +"@types/expect@^1.20.4": + version "1.20.4" + resolved "https://registry.yarnpkg.com/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" + integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== + "@types/express-serve-static-core@^4.17.33": version "4.17.43" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz#10d8444be560cb789c4735aea5eac6e5af45df54" @@ -2996,6 +3152,14 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== +"@types/vinyl@^2.0.4": + version "2.0.12" + resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.12.tgz#17642ca9a8ae10f3db018e9f885da4188db4c6e6" + integrity sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw== + dependencies: + "@types/expect" "^1.20.4" + "@types/node" "*" + "@typescript-eslint/eslint-plugin@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.2.0.tgz#5a5fcad1a7baed85c10080d71ad901f98c38d5b7" @@ -3170,6 +3334,24 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +"@uswds/compile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@uswds/compile/-/compile-1.1.0.tgz#f413285221703cc6453417cadfc14cd15f201d49" + integrity sha512-kKlszBhO13v/qa1jaNqaOWiAJjuKtASHCxjmu+OXw/wMGVdaJcNjkM8hWL9/sx4AUe07PBwlJoGPtkKRWqSxWw== + dependencies: + autoprefixer "10.4.16" + del "6.1.1" + gulp "4.0.2" + gulp-postcss "9.0.1" + gulp-rename "2.0.0" + gulp-replace "1.1.4" + gulp-sass "5.1.0" + gulp-sourcemaps "3.0.0" + gulp-svgstore "9.0.0" + postcss "8.4.31" + postcss-csso "6.0.1" + sass-embedded "1.69.5" + "@uswds/uswds@3.7.1": version "3.7.1" resolved "https://registry.yarnpkg.com/@uswds/uswds/-/uswds-3.7.1.tgz#455dee2d7a9c7b316192bb2e21ecd0df6fad3085" @@ -3539,6 +3721,11 @@ acorn-walk@^8.3.2: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + acorn@^7.1.1, acorn@^7.4.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" @@ -3633,6 +3820,13 @@ all-contributors-cli@^6.24.0: optionalDependencies: prettier "^2" +ansi-colors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== + dependencies: + ansi-wrap "^0.1.0" + ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -3640,6 +3834,18 @@ ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: dependencies: type-fest "^0.21.3" +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + integrity sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw== + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -3669,7 +3875,20 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -anymatch@~3.1.2: +ansi-wrap@0.1.0, ansi-wrap@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + integrity sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.1.3, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -3682,6 +3901,13 @@ app-root-dir@^1.0.2: resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" integrity sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g== +append-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" + integrity sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA== + dependencies: + buffer-equal "^1.0.0" + archiver-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" @@ -3740,6 +3966,11 @@ archiver@^5.0.2: tar-stream "^2.2.0" zip-stream "^4.1.0" +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== + argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -3766,6 +3997,35 @@ aria-query@^5.0.0, aria-query@^5.3.0: dependencies: dequal "^2.0.3" +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== + +arr-filter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" + integrity sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA== + dependencies: + make-iterator "^1.0.0" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-map@^2.0.0, arr-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" + integrity sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw== + dependencies: + make-iterator "^1.0.0" + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== + array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" @@ -3774,6 +4034,11 @@ array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: call-bind "^1.0.5" is-array-buffer "^3.0.4" +array-each@^1.0.0, array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA== + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -3790,11 +4055,45 @@ array-includes@^3.1.6, array-includes@^3.1.7: get-intrinsic "^1.2.1" is-string "^1.0.7" +array-initial@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" + integrity sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw== + dependencies: + array-slice "^1.0.0" + is-number "^4.0.0" + +array-last@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== + dependencies: + is-number "^4.0.0" + +array-slice@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== + +array-sort@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" + integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== + dependencies: + default-compare "^1.0.0" + get-value "^2.0.6" + kind-of "^5.0.2" + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== + array.prototype.filter@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz#423771edeb417ff5914111fff4277ea0624c0d0e" @@ -3899,6 +4198,11 @@ assertion-error@^1.1.0: resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== + ast-types-flow@^0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" @@ -3916,6 +4220,30 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +async-done@^1.2.0, async-done@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" + integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.2" + process-nextick-args "^2.0.0" + stream-exhaust "^1.0.1" + +async-done@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/async-done/-/async-done-2.0.0.tgz#f1ec5df738c6383a52b0a30d0902fd897329c15a" + integrity sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw== + dependencies: + end-of-stream "^1.4.4" + once "^1.4.0" + stream-exhaust "^1.0.2" + +async-each@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.6.tgz#52f1d9403818c179b7561e11a5d1b77eb2160e77" + integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== + async-retry@1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.2.3.tgz#a6521f338358d322b1a0012b79030c6f411d1ce0" @@ -3930,6 +4258,20 @@ async-retry@^1.3.1: dependencies: retry "0.13.1" +async-settle@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" + integrity sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw== + dependencies: + async-done "^1.2.2" + +async-settle@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-2.0.0.tgz#c695ad14e070f6a755d019d32d6eb38029020287" + integrity sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg== + dependencies: + async-done "^2.0.0" + async@^2.6.3: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" @@ -3954,6 +4296,23 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@10.4.16: + version "10.4.16" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" + integrity sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ== + dependencies: + browserslist "^4.21.10" + caniuse-lite "^1.0.30001538" + fraction.js "^4.3.6" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + available-typed-arrays@^1.0.6, available-typed-arrays@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" @@ -4022,6 +4381,30 @@ babel-plugin-polyfill-regenerator@^0.5.5: dependencies: "@babel/helper-define-polyfill-provider" "^0.5.0" +bach@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" + integrity sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg== + dependencies: + arr-filter "^1.1.1" + arr-flatten "^1.0.1" + arr-map "^2.0.0" + array-each "^1.0.0" + array-initial "^1.0.0" + array-last "^1.1.1" + async-done "^1.2.2" + async-settle "^1.0.0" + now-and-later "^2.0.0" + +bach@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/bach/-/bach-2.0.1.tgz#45a3a3cbf7dbba3132087185c60357482b988972" + integrity sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg== + dependencies: + async-done "^2.0.0" + async-settle "^2.0.0" + now-and-later "^3.0.0" + bail@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" @@ -4037,11 +4420,29 @@ balanced-match@^2.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== +bare-events@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.2.2.tgz#a98a41841f98b2efe7ecc5c5468814469b018078" + integrity sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ== + base64-js@^1.3.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + before-after-hook@^2.2.0: version "2.2.3" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" @@ -4064,11 +4465,28 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +binaryextensions@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.3.0.tgz#1d269cbf7e6243ea886aa41453c3651ccbe13c22" + integrity sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + bl@^4.0.3, bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -4078,6 +4496,15 @@ bl@^4.0.3, bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" +bl@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" + integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" + body-parser@1.20.2: version "1.20.2" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" @@ -4096,6 +4523,11 @@ body-parser@1.20.2: type-is "~1.6.18" unpipe "1.0.0" +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + bplist-parser@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" @@ -4118,6 +4550,22 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -4152,6 +4600,11 @@ browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.22.3: node-releases "^2.0.14" update-browserslist-db "^1.0.13" +buffer-builder@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/buffer-builder/-/buffer-builder-0.2.0.tgz#3322cd307d8296dab1f604618593b261a3fade8f" + integrity sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg== + buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" @@ -4162,6 +4615,11 @@ buffer-equal-constant-time@1.0.1: resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== +buffer-equal@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.1.tgz#2f7651be5b1b3f057fcd6e7ee16cf34767077d90" + integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg== + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -4175,6 +4633,14 @@ buffer@^5.1.0, buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -4190,6 +4656,21 @@ cac@^6.7.14: resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + cacheable-lookup@^5.0.3: version "5.0.4" resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" @@ -4224,6 +4705,11 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== + camelcase@^5.0.0: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -4234,6 +4720,11 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +caniuse-lite@^1.0.30001538: + version "1.0.30001610" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001610.tgz#2f44ed6e21d359e914271ae35b68903632628ccf" + integrity sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA== + caniuse-lite@^1.0.30001587: version "1.0.30001594" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001594.tgz#bea552414cd52c2d0c985ed9206314a696e685f5" @@ -4299,7 +4790,32 @@ check-error@^1.0.3: dependencies: get-func-name "^2.0.2" -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1, chokidar@^3.6.0: +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@^1.0.0-rc.10: + version "1.0.0-rc.12" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" + +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1, chokidar@^3.5.3, chokidar@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -4314,6 +4830,25 @@ check-error@^1.0.3: optionalDependencies: fsevents "~2.3.2" +chokidar@^2.0.0: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -4336,6 +4871,16 @@ citty@^0.1.5, citty@^0.1.6: dependencies: consola "^3.2.3" +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + classlist-polyfill@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz#935bc2dfd9458a876b279617514638bcaa964a2e" @@ -4377,6 +4922,15 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w== + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -4386,6 +4940,15 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + cliui@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" @@ -4395,6 +4958,11 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -4411,11 +4979,52 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== + clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== +clone@^2.1.1, clone@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +cloneable-readable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" + integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + +collection-map@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" + integrity sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA== + dependencies: + arr-map "^2.0.2" + for-own "^1.0.0" + make-iterator "^1.0.0" + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -4440,6 +5049,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + colord@^2.9.3: version "2.9.3" resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" @@ -4487,6 +5101,11 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== +component-emitter@^1.2.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + compress-commons@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-2.1.1.tgz#9410d9a534cf8435e3fbbb7c6ce48de2dc2f0610" @@ -4537,6 +5156,16 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +concat-stream@^1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + consola@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f" @@ -4554,6 +5183,11 @@ content-type@~1.0.4, content-type@~1.0.5: resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== +convert-source-map@^1.0.0, convert-source-map@^1.5.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" @@ -4569,6 +5203,27 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== + +copy-props@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.5.tgz#03cf9ae328d4ebb36f8f1d804448a6af9ee3f2d2" + integrity sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw== + dependencies: + each-props "^1.3.2" + is-plain-object "^5.0.0" + +copy-props@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-4.0.0.tgz#01d249198b8c2e4d8a5e87b90c9630f52c99a9c9" + integrity sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw== + dependencies: + each-props "^3.0.0" + is-plain-object "^5.0.0" + core-js-compat@^3.31.0, core-js-compat@^3.34.0: version "3.36.0" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.36.0.tgz#087679119bc2fdbdefad0d45d8e5d307d45ba190" @@ -4653,6 +5308,17 @@ css-functions-list@^3.2.1: resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.1.tgz#2eb205d8ce9f9ce74c5c1d7490b66b77c45ce3ea" integrity sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ== +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + css-tree@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" @@ -4661,16 +5327,45 @@ css-tree@^2.3.1: mdn-data "2.0.30" source-map-js "^1.0.1" +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + css.escape@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== +css@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== + dependencies: + inherits "^2.0.4" + source-map "^0.6.1" + source-map-resolve "^0.6.0" + cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + cssom@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" @@ -4700,6 +5395,14 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +d@1, d@^1.0.1, d@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== + dependencies: + es5-ext "^0.10.64" + type "^2.7.2" + damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" @@ -4771,13 +5474,29 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== -debug@2.6.9: +debug-fabulous@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/debug-fabulous/-/debug-fabulous-1.1.0.tgz#af8a08632465224ef4174a9f06308c3c2a1ebc8e" + integrity sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg== + dependencies: + debug "3.X" + memoizee "0.4.X" + object-assign "4.X" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" +debug@3.X, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -4785,14 +5504,7 @@ debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, d dependencies: ms "2.1.2" -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: +decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== @@ -4809,7 +5521,7 @@ decode-named-character-reference@^1.0.0: dependencies: character-entities "^2.0.0" -decode-uri-component@^0.2.2: +decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== @@ -4865,6 +5577,18 @@ default-browser-id@3.0.0: bplist-parser "^0.2.0" untildify "^4.0.0" +default-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" + integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== + dependencies: + kind-of "^5.0.2" + +default-resolution@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" + integrity sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ== + defaults@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" @@ -4900,12 +5624,34 @@ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + defu@^6.1.3: version "6.1.4" resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== -del@^6.0.0: +del@6.1.1, del@^6.0.0: version "6.1.1" resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== @@ -4949,11 +5695,21 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== + detect-indent@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== +detect-newline@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== + detect-package-manager@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/detect-package-manager/-/detect-package-manager-2.0.1.tgz#6b182e3ae5e1826752bfef1de9a7b828cffa50d8" @@ -5017,6 +5773,20 @@ dom-accessibility-api@^0.6.3: resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" @@ -5024,6 +5794,22 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + dot-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -5052,6 +5838,22 @@ duplexify@^3.5.0, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +each-props@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" + integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== + dependencies: + is-plain-object "^2.0.1" + object.defaults "^1.1.0" + +each-props@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/each-props/-/each-props-3.0.0.tgz#a88fb17634a4828307610ec68269fba2f7280cd8" + integrity sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw== + dependencies: + is-plain-object "^5.0.0" + object.defaults "^1.1.0" + ecdsa-sig-formatter@1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" @@ -5101,7 +5903,7 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1, end-of-stream@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -5116,7 +5918,7 @@ enhanced-resolve@^5.16.0: graceful-fs "^4.2.4" tapable "^2.2.0" -entities@^4.4.0, entities@^4.5.0: +entities@^4.2.0, entities@^4.4.0, entities@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== @@ -5131,7 +5933,7 @@ envinfo@^7.7.3: resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.1.tgz#2ffef77591057081b0129a8fd8cf6118da1b94e1" integrity sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg== -error-ex@^1.3.1: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -5273,6 +6075,43 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.53, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.64" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + esniff "^2.0.1" + next-tick "^1.1.0" + +es6-iterator@^2.0.1, es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== + dependencies: + d "^1.0.2" + ext "^1.7.0" + +es6-weak-map@^2.0.1, es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + esbuild-plugin-alias@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz#45a86cb941e20e7c2bc68a2bea53562172494fcb" @@ -5314,6 +6153,35 @@ esbuild-register@^3.5.0: "@esbuild/win32-ia32" "0.20.2" "@esbuild/win32-x64" "0.20.2" +esbuild@~0.19.10: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + escalade@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" @@ -5324,7 +6192,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== @@ -5539,6 +6407,16 @@ eslint@^8.25.0: strip-ansi "^6.0.1" text-table "^0.2.0" +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" + espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" @@ -5599,6 +6477,14 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -5639,7 +6525,20 @@ execa@^8.0.1: signal-exit "^4.1.0" strip-final-newline "^3.0.0" -expand-tilde@^2.0.2: +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" integrity sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== @@ -5683,6 +6582,13 @@ express@^4.17.3: utils-merge "1.0.1" vary "~1.1.2" +ext@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -5690,7 +6596,15 @@ extend-shallow@^2.0.1: dependencies: is-extendable "^0.1.0" -extend@^3.0.0: +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -5704,6 +6618,35 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fancy-log@^1.3.2, fancy-log@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" + integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + parse-node-version "^1.0.0" + time-stamp "^1.0.0" + +fast-case@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/fast-case/-/fast-case-1.7.0.tgz#0ce670617cdd3b03c32fb7cf7b0be8f91a9dfbef" + integrity sha512-kkLws9Nx9kkXjZ6ng6gaFWm+qssXAxSej37fpdur7V1U5R8/lp0rps5aGo/XkhNjWyr+agjRA5y91rw8ZRBviQ== + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -5714,6 +6657,11 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== +fast-fifo@^1.1.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" @@ -5735,17 +6683,29 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-levenshtein@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz#e6a754cc8f15e58987aa9cbd27af66fd6f4e5af9" + integrity sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw== + fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fastest-levenshtein@^1.0.16: +fast-levenshtein@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz#37b899ae47e1090e40e3fd2318e4d5f0142ca912" + integrity sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ== + dependencies: + fastest-levenshtein "^1.0.7" + +fastest-levenshtein@^1.0.16, fastest-levenshtein@^1.0.7: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== -fastq@^1.6.0: +fastq@^1.13.0, fastq@^1.6.0: version "1.17.1" resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== @@ -5786,6 +6746,11 @@ file-system-cache@2.3.0: fs-extra "11.1.1" ramda "0.29.0" +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" @@ -5793,6 +6758,16 @@ filelist@^1.0.4: dependencies: minimatch "^5.0.1" +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -5844,6 +6819,14 @@ find-cache-dir@^4.0.0: common-path-prefix "^3.0.0" pkg-dir "^7.0.0" +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -5875,6 +6858,68 @@ find-up@^6.3.0: locate-path "^7.1.0" path-exists "^5.0.0" +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + integrity sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g== + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +findup-sync@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +findup-sync@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-5.0.0.tgz#54380ad965a7edca00cc8f63113559aadc541bd2" + integrity sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.3" + micromatch "^4.0.4" + resolve-dir "^1.0.1" + +fined@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" + integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +fined@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-2.0.0.tgz#6846563ed96879ce6de6c85c715c42250f8d8089" + integrity sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A== + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^5.0.0" + object.defaults "^1.1.0" + object.pick "^1.3.0" + parse-filepath "^1.0.2" + +flagged-respawn@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== + +flagged-respawn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-2.0.0.tgz#abf39719dcfe1ac06c86c9466081c541c682987b" + integrity sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA== + flat-cache@^3.0.4: version "3.2.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" @@ -5902,6 +6947,14 @@ flow-parser@0.*: resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.230.0.tgz#f0e54bdac58a20553bb81ef26bdc8a616360f1cd" integrity sha512-ZAfKaarESYYcP/RoLdM91vX0u/1RR7jI5TJaFLnxwRlC2mp0o+Rw7ipIY7J6qpIpQYtAobWb/J6S0XPeu0gO8g== +flush-write-stream@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + focus-trap-react@^10.2.3: version "10.2.3" resolved "https://registry.yarnpkg.com/focus-trap-react/-/focus-trap-react-10.2.3.tgz#a5a2ea7fbb042ffa4337fde72758325ed0fb793a" @@ -5924,6 +6977,18 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + integrity sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg== + dependencies: + for-in "^1.0.1" + foreground-child@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" @@ -5955,6 +7020,18 @@ forwarded@0.2.0: resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== +fraction.js@^4.3.6: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== + dependencies: + map-cache "^0.2.2" + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -6004,11 +7081,35 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" +fs-mkdirp-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" + integrity sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ== + dependencies: + graceful-fs "^4.1.11" + through2 "^2.0.3" + +fs-mkdirp-stream@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz#1e82575c4023929ad35cf69269f84f1a8c973aa7" + integrity sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw== + dependencies: + graceful-fs "^4.2.8" + streamx "^2.12.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" @@ -6039,7 +7140,12 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1: +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== @@ -6096,6 +7202,18 @@ get-symbol-description@^1.0.2: es-errors "^1.3.0" get-intrinsic "^1.2.4" +get-tsconfig@^4.7.2: + version "4.7.3" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.3.tgz#0498163d98f7b58484dd4906999c0c9d5f103f83" + integrity sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg== + dependencies: + resolve-pkg-maps "^1.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== + giget@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/giget/-/giget-1.2.1.tgz#4f42779aae57a5f664a1c4d50401b008e9810f4c" @@ -6124,7 +7242,7 @@ github-slugger@^2.0.0: resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== -glob-parent@5.1.2, glob-parent@^5.1.2, glob-parent@^6.0.2, glob-parent@~5.1.2: +glob-parent@5.1.2, glob-parent@^3.1.0, glob-parent@^5.1.2, glob-parent@^6.0.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -6138,11 +7256,62 @@ glob-promise@^4.2.0: dependencies: "@types/glob" "^7.1.3" +glob-stream@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" + integrity sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw== + dependencies: + extend "^3.0.0" + glob "^7.1.1" + glob-parent "^3.1.0" + is-negated-glob "^1.0.0" + ordered-read-streams "^1.0.0" + pumpify "^1.3.5" + readable-stream "^2.1.5" + remove-trailing-separator "^1.0.1" + to-absolute-glob "^2.0.0" + unique-stream "^2.0.2" + +glob-stream@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-8.0.2.tgz#09e5818e41c16dd85274d72c7a7158d307426313" + integrity sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw== + dependencies: + "@gulpjs/to-absolute-glob" "^4.0.0" + anymatch "^3.1.3" + fastq "^1.13.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" + is-negated-glob "^1.0.0" + normalize-path "^3.0.0" + streamx "^2.12.5" + glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob-watcher@^5.0.3: + version "5.0.5" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.5.tgz#aa6bce648332924d9a8489be41e3e5c52d4186dc" + integrity sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw== + dependencies: + anymatch "^2.0.0" + async-done "^1.2.0" + chokidar "^2.0.0" + is-negated-glob "^1.0.0" + just-debounce "^1.0.0" + normalize-path "^3.0.0" + object.defaults "^1.1.0" + +glob-watcher@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-6.0.0.tgz#8565341978a92233fb3881b8857b4d1e9c6bf080" + integrity sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw== + dependencies: + async-done "^2.0.0" + chokidar "^3.5.3" + glob@^10.0.0: version "10.3.10" resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" @@ -6154,7 +7323,18 @@ glob@^10.0.0: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" -glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0, glob@^7.2.3: +glob@^10.3.12: + version "10.3.12" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.12.tgz#3a65c363c2e9998d220338e88a5f6ac97302960b" + integrity sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.6" + minimatch "^9.0.1" + minipass "^7.0.4" + path-scurry "^1.10.2" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0, glob@^7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -6166,6 +7346,15 @@ glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0, glob@^7.2.3: once "^1.3.0" path-is-absolute "^1.0.0" +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + global-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -6173,6 +7362,17 @@ global-modules@^2.0.0: dependencies: global-prefix "^3.0.0" +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + global-prefix@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" @@ -6218,6 +7418,20 @@ globjoin@^0.1.4: resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== +glogg@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" + integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA== + dependencies: + sparkles "^1.0.0" + +glogg@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-2.2.0.tgz#956ceb855a05a2aa1fa668d748f2be8e7361c11c" + integrity sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A== + dependencies: + sparkles "^2.1.0" + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -6242,7 +7456,7 @@ got@^11.8.3: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4: +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.8: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -6252,6 +7466,147 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +gulp-cli@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.3.0.tgz#ec0d380e29e52aa45e47977f0d32e18fd161122f" + integrity sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A== + dependencies: + ansi-colors "^1.0.1" + archy "^1.0.0" + array-sort "^1.0.0" + color-support "^1.1.3" + concat-stream "^1.6.0" + copy-props "^2.0.1" + fancy-log "^1.3.2" + gulplog "^1.0.0" + interpret "^1.4.0" + isobject "^3.0.1" + liftoff "^3.1.0" + matchdep "^2.0.0" + mute-stdout "^1.0.0" + pretty-hrtime "^1.0.0" + replace-homedir "^1.0.0" + semver-greatest-satisfied-range "^1.1.0" + v8flags "^3.2.0" + yargs "^7.1.0" + +gulp-cli@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-3.0.0.tgz#577008f5323fad6106b44db24803c27c3a649841" + integrity sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA== + dependencies: + "@gulpjs/messages" "^1.1.0" + chalk "^4.1.2" + copy-props "^4.0.0" + gulplog "^2.2.0" + interpret "^3.1.1" + liftoff "^5.0.0" + mute-stdout "^2.0.0" + replace-homedir "^2.0.0" + semver-greatest-satisfied-range "^2.0.0" + string-width "^4.2.3" + v8flags "^4.0.0" + yargs "^16.2.0" + +gulp-postcss@9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/gulp-postcss/-/gulp-postcss-9.0.1.tgz#d43caa2f2ce1018f889f7c1296faf82e9928b66f" + integrity sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw== + dependencies: + fancy-log "^1.3.3" + plugin-error "^1.0.1" + postcss-load-config "^3.0.0" + vinyl-sourcemaps-apply "^0.2.1" + +gulp-rename@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/gulp-rename/-/gulp-rename-2.0.0.tgz#9bbc3962b0c0f52fc67cd5eaff6c223ec5b9cf6c" + integrity sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ== + +gulp-replace@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/gulp-replace/-/gulp-replace-1.1.4.tgz#06a0e9ee36f30e343c1e0a2dd760ec32c8a3d3b2" + integrity sha512-SVSF7ikuWKhpAW4l4wapAqPPSToJoiNKsbDoUnRrSgwZHH7lH8pbPeQj1aOVYQrbZKhfSVBxVW+Py7vtulRktw== + dependencies: + "@types/node" "*" + "@types/vinyl" "^2.0.4" + istextorbinary "^3.0.0" + replacestream "^4.0.3" + yargs-parser ">=5.0.0-security.0" + +gulp-sass@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-5.1.0.tgz#bb3d9094f39a260f62a8d0a6797b95ab826f9663" + integrity sha512-7VT0uaF+VZCmkNBglfe1b34bxn/AfcssquLKVDYnCDJ3xNBaW7cUuI3p3BQmoKcoKFrs9jdzUxyb+u+NGfL4OQ== + dependencies: + lodash.clonedeep "^4.5.0" + picocolors "^1.0.0" + plugin-error "^1.0.1" + replace-ext "^2.0.0" + strip-ansi "^6.0.1" + vinyl-sourcemaps-apply "^0.2.1" + +gulp-sourcemaps@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz#2e154e1a2efed033c0e48013969e6f30337b2743" + integrity sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ== + dependencies: + "@gulp-sourcemaps/identity-map" "^2.0.1" + "@gulp-sourcemaps/map-sources" "^1.0.0" + acorn "^6.4.1" + convert-source-map "^1.0.0" + css "^3.0.0" + debug-fabulous "^1.0.0" + detect-newline "^2.0.0" + graceful-fs "^4.0.0" + source-map "^0.6.0" + strip-bom-string "^1.0.0" + through2 "^2.0.0" + +gulp-svgstore@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/gulp-svgstore/-/gulp-svgstore-9.0.0.tgz#e59af41630410509e5ea044247a42c099a6db2c1" + integrity sha512-+Dz+2Pycw9ayb7JY7U0yz7tX0iRMPJ0ORg3yIIHYLHu5tYku34mPjR4DCt1IGpVOe2Nk3ZMoOJwX1xrqpwqBEQ== + dependencies: + cheerio "^1.0.0-rc.10" + fancy-log "^1.3.3" + plugin-error "^1.0.1" + vinyl "^2.2.1" + +gulp@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" + integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA== + dependencies: + glob-watcher "^5.0.3" + gulp-cli "^2.2.0" + undertaker "^1.2.1" + vinyl-fs "^3.0.0" + +gulp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-5.0.0.tgz#78f4b8ac48a0bf61b354d39e5be844de2c5cc3f3" + integrity sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg== + dependencies: + glob-watcher "^6.0.0" + gulp-cli "^3.0.0" + undertaker "^2.0.0" + vinyl-fs "^4.0.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + integrity sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw== + dependencies: + glogg "^1.0.0" + +gulplog@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-2.2.0.tgz#71adf43ea5cd07c23ded0fb8af4a844b67c63be8" + integrity sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A== + dependencies: + glogg "^2.2.0" + gunzip-maybe@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz#b913564ae3be0eda6f3de36464837a9cd94b98ac" @@ -6355,6 +7710,37 @@ has-tostringtag@^1.0.0, has-tostringtag@^1.0.1, has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + hasown@^2.0.0, hasown@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.1.tgz#26f48f039de2c0f8d3356c223fb8d50253519faa" @@ -6424,6 +7810,16 @@ html-tags@^3.1.0, html-tags@^3.3.1: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== +htmlparser2@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" + integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + entities "^4.4.0" + http-cache-semantics@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" @@ -6517,14 +7913,14 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6.3: +iconv-lite@0.6.3, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@^1.1.13: +ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -6580,7 +7976,7 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@^1.3.5: +ini@^1.3.4, ini@^1.3.5: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -6613,6 +8009,21 @@ internal-slot@^1.0.4, internal-slot@^1.0.5, internal-slot@^1.0.7: hasown "^2.0.0" side-channel "^1.0.4" +interpret@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== + ip@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.1.tgz#e8f3595d33a3ea66490204234b77636965307105" @@ -6628,6 +8039,21 @@ is-absolute-url@^4.0.0: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-4.0.1.tgz#16e4d487d4fded05cfe0685e53ec86804a5e94dc" integrity sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A== +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-accessor-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz#3223b10628354644b86260db29b3e693f5ceedd4" + integrity sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA== + dependencies: + hasown "^2.0.0" + is-arguments@^1.0.4, is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -6663,6 +8089,13 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== + dependencies: + binary-extensions "^1.0.0" + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -6678,6 +8111,11 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" @@ -6690,6 +8128,13 @@ is-core-module@^2.1.0, is-core-module@^2.13.0, is-core-module@^2.13.1: dependencies: hasown "^2.0.0" +is-data-descriptor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz#2109164426166d32ea38c405c1e0945d9e6a4eeb" + integrity sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw== + dependencies: + hasown "^2.0.0" + is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -6702,17 +8147,40 @@ is-deflate@^1.0.0: resolved "https://registry.yarnpkg.com/is-deflate/-/is-deflate-1.0.0.tgz#c862901c3c161fb09dac7cdc7e784f80e98f2f14" integrity sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ== +is-descriptor@^0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.7.tgz#2727eb61fd789dcd5bdf0ed4569f551d2fe3be33" + integrity sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.3.tgz#92d27cb3cd311c4977a4db47df457234a13cb306" + integrity sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw== + dependencies: + is-accessor-descriptor "^1.0.1" + is-data-descriptor "^1.0.1" + is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-extendable@^0.1.0: +is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== -is-extglob@^2.1.1: +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== @@ -6724,6 +8192,13 @@ is-finalizationregistry@^1.0.2: dependencies: call-bind "^1.0.2" +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== + dependencies: + number-is-nan "^1.0.0" + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -6736,6 +8211,13 @@ is-generator-function@^1.0.10, is-generator-function@^1.0.7: dependencies: has-tostringtag "^1.0.0" +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== + dependencies: + is-extglob "^2.1.0" + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -6766,6 +8248,11 @@ is-nan@^1.3.2: call-bind "^1.0.0" define-properties "^1.1.3" +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + integrity sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug== + is-negative-zero@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" @@ -6778,6 +8265,18 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -6803,7 +8302,7 @@ is-plain-object@5.0.0, is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-plain-object@^2.0.4: +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -6815,6 +8314,11 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== +is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -6823,6 +8327,13 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + is-set@^2.0.1, is-set@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" @@ -6866,11 +8377,28 @@ is-typed-array@^1.1.13, is-typed-array@^1.1.3: dependencies: which-typed-array "^1.1.14" +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + +is-valid-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + integrity sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA== + is-weakmap@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" @@ -6891,6 +8419,11 @@ is-weakset@^2.0.1: call-bind "^1.0.2" get-intrinsic "^1.1.1" +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -6898,22 +8431,29 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isobject@^3.0.1: +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== @@ -6960,6 +8500,14 @@ istanbul-reports@^3.1.6: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +istextorbinary@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-3.3.0.tgz#06b1c57d948da11461bd237c00ce09e9902964f2" + integrity sha512-Tvq1W6NAcZeJ8op+Hq7tdZ434rqnMx4CCZ7H0ff83uEloDvVbqAwaMTZcafKGJT0VHkYzuXUiCY4hlXQg6WfoQ== + dependencies: + binaryextensions "^2.2.0" + textextensions "^3.2.0" + iterator.prototype@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" @@ -6971,7 +8519,7 @@ iterator.prototype@^1.1.2: reflect.getprototypeof "^1.0.4" set-function-name "^2.0.1" -jackspeak@2.1.1, jackspeak@^2.3.5: +jackspeak@2.1.1, jackspeak@^2.3.5, jackspeak@^2.3.6: version "2.1.1" resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.1.1.tgz#2a42db4cfbb7e55433c28b6f75d8b796af9669cd" integrity sha512-juf9stUEwUaILepraGOWIJTLwg48bUnBmRqd2ln2Os1sW987zeoj/hzhbvRB95oMuS2ZTpjULmdwHNX4rzZIZw== @@ -7220,6 +8768,11 @@ jsonwebtoken@^9.0.0: object.assign "^4.1.4" object.values "^1.1.6" +just-debounce@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.1.0.tgz#2f81a3ad4121a76bc7cb45dbf704c0d76a8e5ddf" + integrity sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ== + jwa@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" @@ -7249,6 +8802,25 @@ keyv@^4.0.0, keyv@^4.5.3, keyv@^4.5.4: dependencies: json-buffer "3.0.1" +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.2: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -7286,6 +8858,19 @@ language-tags@^1.0.9: dependencies: language-subtag-registry "^0.3.20" +last-run@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" + integrity sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ== + dependencies: + default-resolution "^2.0.0" + es6-weak-map "^2.0.1" + +last-run@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/last-run/-/last-run-2.0.0.tgz#f82dcfbfce6e63d041bd83d64c82e34cdba6572e" + integrity sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ== + lazy-universal-dotenv@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz#0b220c264e89a042a37181a4928cdd298af73422" @@ -7302,6 +8887,13 @@ lazystream@^1.0.0: dependencies: readable-stream "^2.0.5" +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw== + dependencies: + invert-kv "^1.0.0" + lcs-image-diff@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/lcs-image-diff/-/lcs-image-diff-2.2.0.tgz#87fb16c9e41078798526b324c2897bea051f9db0" @@ -7309,6 +8901,18 @@ lcs-image-diff@^2.0.0: dependencies: imagetracerjs "^1.2.5" +lead@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" + integrity sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow== + dependencies: + flush-write-stream "^1.0.2" + +lead@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/lead/-/lead-4.0.0.tgz#5317a49effb0e7ec3a0c8fb9c1b24fb716aab939" + integrity sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg== + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -7327,11 +8931,54 @@ li@^1.3.0: resolved "https://registry.yarnpkg.com/li/-/li-1.3.0.tgz#22c59bcaefaa9a8ef359cf759784e4bf106aea1b" integrity sha512-z34TU6GlMram52Tss5mt1m//ifRIpKH5Dqm7yUVOdHI+BQCs9qGPHFaCUTIzsWX7edN30aa2WrPwR7IO10FHaw== +liftoff@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" + integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== + dependencies: + extend "^3.0.0" + findup-sync "^3.0.0" + fined "^1.0.1" + flagged-respawn "^1.0.0" + is-plain-object "^2.0.4" + object.map "^1.0.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +liftoff@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-5.0.0.tgz#0e5ed275bc334caec0e551ecf08bb22be583e236" + integrity sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg== + dependencies: + extend "^3.0.2" + findup-sync "^5.0.0" + fined "^2.0.0" + flagged-respawn "^2.0.0" + is-plain-object "^5.0.0" + rechoir "^0.8.0" + resolve "^1.20.0" + +lilconfig@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + loader-runner@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" @@ -7383,6 +9030,11 @@ locate-path@^7.1.0: dependencies: p-locate "^6.0.0" +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== + lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" @@ -7532,6 +9184,11 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lru-cache@^10.2.0, "lru-cache@^9.1.1 || ^10.0.0": + version "10.2.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" + integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -7546,10 +9203,12 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -"lru-cache@^9.1.1 || ^10.0.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ== + dependencies: + es5-ext "~0.10.2" lz-string@^1.5.0: version "1.5.0" @@ -7601,11 +9260,30 @@ make-dir@^4.0.0: dependencies: semver "^7.5.3" +make-iterator@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== + dependencies: + kind-of "^6.0.2" + +map-cache@^0.2.0, map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + map-or-similar@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" integrity sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg== +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== + dependencies: + object-visit "^1.0.0" + markdown-table@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" @@ -7616,6 +9294,16 @@ markdown-to-jsx@7.3.2: resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz#f286b4d112dad3028acc1e77dfe1f653b347e131" integrity sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q== +matchdep@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" + integrity sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA== + dependencies: + findup-sync "^2.0.0" + micromatch "^3.0.4" + resolve "^1.4.0" + stack-trace "0.0.10" + matches-selector@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/matches-selector/-/matches-selector-1.2.0.tgz#d1814e7e8f43e69d22ac33c9af727dc884ecf12a" @@ -7748,6 +9436,11 @@ mdast-util-to-string@^4.0.0: dependencies: "@types/mdast" "^4.0.0" +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + mdn-data@2.0.30: version "2.0.30" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" @@ -7765,6 +9458,20 @@ memfs-or-file-map-to-github-branch@^1.2.1: dependencies: "@octokit/rest" "^16.43.0 || ^17.11.0 || ^18.12.0" +memoizee@0.4.X: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + memoizerific@^1.11.3: version "1.11.3" resolved "https://registry.yarnpkg.com/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a" @@ -8070,6 +9777,25 @@ micromark@^4.0.0: micromark-util-symbol "^2.0.0" micromark-util-types "^2.0.0" +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -8170,7 +9896,7 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== @@ -8183,6 +9909,14 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + mkdirp-classic@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" @@ -8228,16 +9962,48 @@ muggle-string@^0.3.1: resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== +mute-stdout@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" + integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== + +mute-stdout@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-2.0.0.tgz#c6a9b4b6185d3b7f70d3ffcb734cbfc8b0f38761" + integrity sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ== + mute-stream@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nanoid@^3.3.7: +nan@^2.12.1: + version "2.19.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" + integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== + +nanoid@^3.3.6, nanoid@^3.3.7: version "3.3.7" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -8253,6 +10019,11 @@ neo-async@^2.5.0, neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + no-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" @@ -8290,7 +10061,7 @@ node-releases@^2.0.14: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== -normalize-package-data@^2.5.0: +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -8300,16 +10071,42 @@ normalize-package-data@^2.5.0: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^3.0.0, normalize-path@~3.0.0: +normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + normalize-url@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== +now-and-later@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" + integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== + dependencies: + once "^1.3.2" + +now-and-later@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-3.0.0.tgz#cdc045dc5b894b35793cf276cc3206077bb7302d" + integrity sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg== + dependencies: + once "^1.4.0" + npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -8324,6 +10121,18 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + nwsapi@^2.2.0, nwsapi@^2.2.7: version "2.2.7" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" @@ -8340,11 +10149,20 @@ nypm@^0.3.3: pathe "^1.1.2" ufo "^1.4.0" -object-assign@4.1.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@4.1.1, object-assign@4.X, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + object-inspect@^1.13.1: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" @@ -8363,7 +10181,14 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0, object.assign@^4.1.4, object.assign@^4.1.5: +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== + dependencies: + isobject "^3.0.0" + +object.assign@^4.0.4, object.assign@^4.1.0, object.assign@^4.1.4, object.assign@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== @@ -8373,6 +10198,16 @@ object.assign@^4.1.0, object.assign@^4.1.4, object.assign@^4.1.5: has-symbols "^1.0.3" object-keys "^1.1.1" +object.defaults@^1.0.0, object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + integrity sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA== + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + object.entries@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" @@ -8410,6 +10245,29 @@ object.hasown@^1.1.3: define-properties "^1.2.0" es-abstract "^1.22.1" +object.map@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + integrity sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w== + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +object.pick@^1.2.0, object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== + dependencies: + isobject "^3.0.1" + +object.reduce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" + integrity sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw== + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + object.values@^1.1.6, object.values@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" @@ -8436,7 +10294,7 @@ on-headers@~1.0.2: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -8493,6 +10351,20 @@ ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" +ordered-read-streams@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" + integrity sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw== + dependencies: + readable-stream "^2.0.1" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g== + dependencies: + lcid "^1.0.0" + os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -8593,6 +10465,15 @@ parse-diff@^0.7.0: resolved "https://registry.yarnpkg.com/parse-diff/-/parse-diff-0.7.1.tgz#9b7a2451c3725baf2c87c831ba192d40ee2237d4" integrity sha512-1j3l8IKcy4yRK2W4o9EYvJLSzpAVwz4DXqCewYyx2vEwk2gcf3DBPqc8Fj4XV3K33OYJ08A8fWwyu/ykD/HUSg== +parse-filepath@^1.0.1, parse-filepath@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + parse-git-config@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/parse-git-config/-/parse-git-config-2.0.3.tgz#6fb840d4a956e28b971c97b33a5deb73a6d5b6bb" @@ -8607,6 +10488,13 @@ parse-github-url@^1.0.2: resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw== +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== + dependencies: + error-ex "^1.2.0" + parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -8624,6 +10512,11 @@ parse-link-header@^2.0.0: dependencies: xtend "~4.0.1" +parse-node-version@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" @@ -8648,12 +10541,20 @@ parse-url@8.1.0: dependencies: parse-path "^7.0.0" +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== + dependencies: + domhandler "^5.0.2" + parse5 "^7.0.0" + parse5@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -parse5@^7.1.2: +parse5@^7.0.0, parse5@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== @@ -8665,11 +10566,23 @@ parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== + path-browserify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== + dependencies: + pinkie-promise "^2.0.0" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -8705,6 +10618,18 @@ path-parse@^1.0.6, path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== + dependencies: + path-root-regex "^0.1.0" + path-scurry@^1.10.1: version "1.10.1" resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" @@ -8713,11 +10638,28 @@ path-scurry@^1.10.1: lru-cache "^9.1.1 || ^10.0.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" +path-scurry@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.2.tgz#8f6357eb1239d5fa1da8b9f70e9c080675458ba7" + integrity sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -8747,6 +10689,11 @@ pegjs@^0.10.0: resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" integrity sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow== +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -8757,6 +10704,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.0, picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" @@ -8767,6 +10719,18 @@ pify@^5.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + pinpoint@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pinpoint/-/pinpoint-1.1.0.tgz#0cf7757a6977f1bf7f6a32207b709e377388e874" @@ -8814,6 +10778,16 @@ pkg-types@^1.0.3: mlly "^1.2.0" pathe "^1.1.0" +plugin-error@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c" + integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA== + dependencies: + ansi-colors "^1.0.1" + arr-diff "^4.0.0" + arr-union "^3.1.0" + extend-shallow "^3.0.2" + pngjs@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" @@ -8826,11 +10800,31 @@ polished@^4.2.2: dependencies: "@babel/runtime" "^7.17.8" +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== + possible-typed-array-names@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== +postcss-csso@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-csso/-/postcss-csso-6.0.1.tgz#6a3e812e236fde6d710a525f2b63e6d9da5a5008" + integrity sha512-ZV4yEziMrx6CEiqabGLrDva0pMD7Fbw7yP+LzJvaynM4OJgTssGN6dHiMsJMJdpmNaLJltXVLsrb/5sxbFa8sA== + dependencies: + csso "^5.0.5" + +postcss-load-config@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" + integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== + dependencies: + lilconfig "^2.0.5" + yaml "^1.10.2" + postcss-media-query-parser@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" @@ -8864,6 +10858,23 @@ 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.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^7.0.16: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + postcss@^8.4.38: version "8.4.38" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" @@ -8913,7 +10924,7 @@ pretty-format@^29.7.0: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-hrtime@^1.0.3: +pretty-hrtime@^1.0.0, pretty-hrtime@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== @@ -8926,7 +10937,7 @@ prettyjson@^1.2.1: colors "1.4.0" minimist "^1.2.0" -process-nextick-args@~2.0.0: +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== @@ -8987,7 +10998,7 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^1.3.3: +pumpify@^1.3.3, pumpify@^1.3.5: version "1.5.1" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== @@ -9035,6 +11046,11 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +queue-tick@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" + integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== + quick-lru@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" @@ -9159,6 +11175,14 @@ react-test-renderer@^18.2.0: dependencies: loose-envify "^1.1.0" +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -9168,6 +11192,15 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + read-pkg@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" @@ -9178,7 +11211,16 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -9191,15 +11233,6 @@ readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.3.6, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readdir-glob@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584" @@ -9207,6 +11240,15 @@ readdir-glob@^1.1.2: dependencies: minimatch "^5.1.0" +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -9251,6 +11293,20 @@ receptor@1.0.0: matches-selector "^1.0.0" object-assign "^4.1.0" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== + dependencies: + resolve "^1.20.0" + redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -9301,6 +11357,14 @@ regenerator-transform@^0.15.2: dependencies: "@babel/runtime" "^7.8.4" +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + regexp-tree@~0.1.1: version "0.1.27" resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" @@ -9389,6 +11453,71 @@ remark-stringify@^11.0.0: mdast-util-to-markdown "^2.0.0" unified "^11.0.0" +remove-bom-buffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" + integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== + dependencies: + is-buffer "^1.1.5" + is-utf8 "^0.2.1" + +remove-bom-stream@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" + integrity sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA== + dependencies: + remove-bom-buffer "^3.0.0" + safe-buffer "^5.1.0" + through2 "^2.0.3" + +remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + +replace-ext@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== + +replace-ext@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-2.0.0.tgz#9471c213d22e1bcc26717cd6e50881d88f812b06" + integrity sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug== + +replace-homedir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" + integrity sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg== + dependencies: + homedir-polyfill "^1.0.1" + is-absolute "^1.0.0" + remove-trailing-separator "^1.1.0" + +replace-homedir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-2.0.0.tgz#245bd9c909275e0beee75eae85bb40780cd61903" + integrity sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw== + +replacestream@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/replacestream/-/replacestream-4.0.3.tgz#3ee5798092be364b1cdb1484308492cb3dff2f36" + integrity sha512-AC0FiLS352pBBiZhd4VXB1Ab/lh0lEgpP+GGvZqbQh8a5cmXVoTe5EX/YeTFArnp4SRGTHh1qCHu9lGs1qG8sA== + dependencies: + escape-string-regexp "^1.0.3" + object-assign "^4.0.1" + readable-stream "^2.0.2" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -9399,6 +11528,11 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== + require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -9424,6 +11558,14 @@ resolve-alpn@^1.0.0: resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -9439,7 +11581,31 @@ resolve-id-refs@0.1.0: resolved "https://registry.yarnpkg.com/resolve-id-refs/-/resolve-id-refs-0.1.0.tgz#3126624b887489da8fc0ae889632f8413ac6c3ec" integrity sha512-hNS03NEmVpJheF7yfyagNh57XuKc0z+NkSO0oBbeO67o6IJKoqlDfnNIxhjp7aTWwjmSWZQhtiGrOgZXVyM90w== -resolve@^1.10.0, resolve@^1.14.2, resolve@^1.22.1, resolve@^1.22.4, resolve@^1.22.8, resolve@~1.22.1: +resolve-options@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" + integrity sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A== + dependencies: + value-or-function "^3.0.0" + +resolve-options@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-2.0.0.tgz#a1a57a9949db549dd075de3f5550675f02f1e4c5" + integrity sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A== + dependencies: + value-or-function "^4.0.0" + +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4, resolve@^1.22.8, resolve@^1.4.0, resolve@~1.22.1: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -9480,6 +11646,11 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + retry@0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -9562,6 +11733,13 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" +rxjs@^7.4.0: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + safe-array-concat@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" @@ -9591,6 +11769,13 @@ safe-regex-test@^1.0.3: es-errors "^1.3.0" is-regex "^1.1.4" +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== + dependencies: + ret "~0.1.10" + safe-regex@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" @@ -9603,6 +11788,67 @@ safe-regex@^2.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sass-embedded-darwin-arm64@1.69.5: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.69.5.tgz#69e246d4a6875184a593906dfd7b84a21eb6eeb2" + integrity sha512-zVuXJzgT54t24E4QPP/iteHsw/cawZE8gAXGEm20cP2DKsIQBF7bvSTk0zzY0bS01YFtJviYM13HcGUe4q7/7w== + +sass-embedded-darwin-x64@1.69.5: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.69.5.tgz#82c2a659dafa93b54d2690f08f7aac9b2447c43f" + integrity sha512-HcA9YER3Ax7lMnHouxnIY462gnst5lNL56QXkZaTQmg9nH7oqR2bMfWbckEQL+mHIXGSM/QfX0aD59VOm5iKZw== + +sass-embedded-linux-arm64@1.69.5: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.69.5.tgz#8585bbcc6996ba04d8aa4216a2bf65de2e6592ea" + integrity sha512-HWCjdFSLGh0dMUNLNh+slc2j9koSZnfTEO9qQR6WEIuC+We6vYKJugGPo1V9pFbBeoW6VAJGYdlqsRPquteCZw== + +sass-embedded-linux-arm@1.69.5: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.69.5.tgz#ded653fe37d6b07d778c5f414cba5f28107dc438" + integrity sha512-m0NxVkrfcS3UsF33q0FgItMWIz/F1FZdfVZpjp+dP6qd0KLeTuoPUCh2GSize0DAU5T0Zj24b2mXeowDKv463g== + +sass-embedded-linux-ia32@1.69.5: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.69.5.tgz#61ad8b3b43be563f6fcd6ff04d0e121b195ecc2a" + integrity sha512-0taR6AJDb+eLOBTEMc1nfX2fI1hgRF9M+Hmv+wwGrxfBu/MkASk6fmR9B8MDw9hPHIqGVUkTVizjOh50O7nIKg== + +sass-embedded-linux-x64@1.69.5: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.69.5.tgz#3d490f520200d596b2b6072d6d3f4460b7114241" + integrity sha512-gN9yLTbKC0hUHukx4mdRs4V39WD719PM2GhWQBUA+3Z8qr9ywywi7LiU2atWrKESRF34V+eqF9lYiYVQxtTHZw== + +sass-embedded-win32-ia32@1.69.5: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.69.5.tgz#e84a053d25aec1176fac485bee65a384f39dfa9e" + integrity sha512-9OgSaufHP53b33gaH1Y5NZ/Im3druCHIQvLUEqJBCFuOzly47g/hZGrO+dBDiWgYGYKbSYI7Z4/PBtQoK5Vkxg== + +sass-embedded-win32-x64@1.69.5: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.69.5.tgz#8d803e99cccc0e8105dde50e49a2fd7839e360ec" + integrity sha512-p1PsOJnpwXdPfiRbX6QdRa4PnL2QXPpIRy8fkeAZpQFYZ278ZIlwemC2MukKMVLcE3iQ5lBulbC8IYm91rod6Q== + +sass-embedded@1.69.5: + version "1.69.5" + resolved "https://registry.yarnpkg.com/sass-embedded/-/sass-embedded-1.69.5.tgz#ae217d4b17b0fb07e5ed146917c9c9de0c4383c6" + integrity sha512-0YNcRcbSpgGd4AnE+mm3a3g4S97puFLIZ0cYJgbwdD4iGz/hiOzE+yh72XS+u1LMhE+pQfNeC9MNnRsc8n1yRg== + dependencies: + "@bufbuild/protobuf" "^1.0.0" + buffer-builder "^0.2.0" + immutable "^4.0.0" + rxjs "^7.4.0" + supports-color "^8.1.1" + varint "^6.0.0" + optionalDependencies: + sass-embedded-darwin-arm64 "1.69.5" + sass-embedded-darwin-x64 "1.69.5" + sass-embedded-linux-arm "1.69.5" + sass-embedded-linux-arm64 "1.69.5" + sass-embedded-linux-ia32 "1.69.5" + sass-embedded-linux-x64 "1.69.5" + sass-embedded-win32-ia32 "1.69.5" + sass-embedded-win32-x64 "1.69.5" + sass@^1.26.0: version "1.74.1" resolved "https://registry.yarnpkg.com/sass/-/sass-1.74.1.tgz#686fc227d3707dd25cb2925e1db8e4562be29319" @@ -9652,12 +11898,26 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" +semver-greatest-satisfied-range@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" + integrity sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ== + dependencies: + sver-compat "^1.5.0" + +semver-greatest-satisfied-range@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz#4b62942a7a1ccbdb252e5329677c003bac546fe7" + integrity sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g== + dependencies: + sver "^1.8.3" + "semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.0.0, semver@^6.3.1: +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -9739,6 +11999,16 @@ set-function-name@^2.0.0, set-function-name@^2.0.1: functions-have-names "^1.2.3" has-property-descriptors "^1.0.2" +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + setprototypeof@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" @@ -9815,11 +12085,60 @@ snake-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2, source-map-js@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + source-map-support@^0.5.16, source-map-support@^0.5.9, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -9828,6 +12147,16 @@ source-map-support@^0.5.16, source-map-support@^0.5.9, source-map-support@~0.5.2 buffer-from "^1.0.0" source-map "^0.6.0" +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.1, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -9838,6 +12167,16 @@ space-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== +sparkles@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" + integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== + +sparkles@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-2.1.0.tgz#8ad4e8cecba7e568bba660c39b6db46625ecf1ad" + integrity sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg== + spdx-correct@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" @@ -9869,16 +12208,36 @@ split-on-first@^1.0.0: resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== +stack-trace@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + stackback@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -9908,11 +12267,33 @@ storybook@^8.0.4: dependencies: "@storybook/cli" "8.0.6" +stream-composer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-composer/-/stream-composer-1.0.2.tgz#7ee61ca1587bf5f31b2e29aa2093cbf11442d152" + integrity sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w== + dependencies: + streamx "^2.13.2" + +stream-exhaust@^1.0.1, stream-exhaust@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== + stream-shift@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.3.tgz#85b8fab4d71010fc3ba8772e8046cc49b8a3864b" integrity sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== +streamx@^2.12.0, streamx@^2.12.5, streamx@^2.13.2, streamx@^2.14.0: + version "2.16.1" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.16.1.tgz#2b311bd34832f08aa6bb4d6a80297c9caef89614" + integrity sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ== + dependencies: + fast-fifo "^1.1.0" + queue-tick "^1.0.1" + optionalDependencies: + bare-events "^2.2.0" + strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -9923,6 +12304,15 @@ string-argv@~0.3.1: resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -9988,6 +12378,13 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -10002,6 +12399,18 @@ strip-ansi@^7.1.0: dependencies: ansi-regex "^6.0.1" +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== + dependencies: + is-utf8 "^0.2.0" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -10169,7 +12578,7 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0, supports-color@~8.1.1: +supports-color@^8.0.0, supports-color@^8.1.1, supports-color@~8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -10197,6 +12606,21 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +sver-compat@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" + integrity sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg== + dependencies: + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +sver@^1.8.3: + version "1.8.4" + resolved "https://registry.yarnpkg.com/sver/-/sver-1.8.4.tgz#9bd6f6265263f01aab152df935dc7a554c15673f" + integrity sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA== + optionalDependencies: + semver "^6.3.0" + svg-parser@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" @@ -10271,6 +12695,13 @@ tar@^6.2.0: mkdirp "^1.0.3" yallist "^4.0.0" +teex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/teex/-/teex-1.0.1.tgz#b8fa7245ef8e8effa8078281946c85ab780a0b12" + integrity sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg== + dependencies: + streamx "^2.12.5" + telejson@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/telejson/-/telejson-7.2.0.tgz#3994f6c9a8f8d7f2dba9be2c7c5bbb447e876f32" @@ -10336,7 +12767,19 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -through2@^2.0.3: +textextensions@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-3.3.0.tgz#03530d5287b86773c08b77458589148870cc71d3" + integrity sha512-mk82dS8eRABNbeVJrEiN5/UMSCliINAuz8mkUwH4SwslkNP//gbEzlWNS5au0z5Dpx40SQxzqZevZkn+WYJ9Dw== + +through2-filter@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.1.0.tgz#4a1b45d2b76b3ac93ec137951e372c268efc1a4e" + integrity sha512-VhZsTsfrIJjyUi6GeecnwcOJlmoqgIdGFDjqnV5ape+F1DN8GejfPO66XyIhoinxmxGImiUTrq9RwpTN5yszGA== + dependencies: + through2 "^4.0.2" + +through2@^2.0.0, through2@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -10344,11 +12787,39 @@ through2@^2.0.3: readable-stream "~2.3.6" xtend "~4.0.1" +through2@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" + integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== + dependencies: + inherits "^2.0.4" + readable-stream "2 || 3" + +through2@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + integrity sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw== + +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + tiny-invariant@^1.1.0, tiny-invariant@^1.3.1, tiny-invariant@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" @@ -10376,11 +12847,34 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +to-absolute-glob@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" + integrity sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA== + dependencies: + is-absolute "^1.0.0" + is-negated-glob "^1.0.0" + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -10388,6 +12882,30 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +to-through@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" + integrity sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q== + dependencies: + through2 "^2.0.3" + +to-through@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/to-through/-/to-through-3.0.0.tgz#bf4956eaca5a0476474850a53672bed6906ace54" + integrity sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw== + dependencies: + streamx "^2.12.5" + tocbot@^4.20.1: version "4.25.0" resolved "https://registry.yarnpkg.com/tocbot/-/tocbot-4.25.0.tgz#bc38aea5ec8f076779bb39636f431b044129a237" @@ -10476,7 +12994,7 @@ tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.0.3, tslib@^2.4.0: +tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -10488,6 +13006,16 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" +tsx@^4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.7.2.tgz#a108b1a6e16876cd4c9a4b4ba263f2a07f9cf562" + integrity sha512-BCNd4kz6fz12fyrgCTEdZHGJ9fWTGeUzXmQysh0RVocDY3h4frk05ZNCXSy4kIenF7y/QnrdiVpTsyNRn6vlAw== + dependencies: + esbuild "~0.19.10" + get-tsconfig "^4.7.2" + optionalDependencies: + fsevents "~2.3.3" + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -10538,6 +13066,11 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +type@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" + integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== + typed-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" @@ -10582,6 +13115,11 @@ typed-array-length@^1.0.5: is-typed-array "^1.1.13" possible-typed-array-names "^1.0.0" +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + typescript@5.4.2, typescript@^5.1.6: version "5.4.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.2.tgz#0ae9cebcfae970718474fe0da2c090cad6577372" @@ -10607,6 +13145,47 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== + +undertaker-registry@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" + integrity sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw== + +undertaker-registry@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-2.0.0.tgz#d434246e398444740dd7fe4c9543e402ad99e4ca" + integrity sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew== + +undertaker@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.3.0.tgz#363a6e541f27954d5791d6fa3c1d321666f86d18" + integrity sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg== + dependencies: + arr-flatten "^1.0.1" + arr-map "^2.0.0" + bach "^1.0.0" + collection-map "^1.0.0" + es6-weak-map "^2.0.1" + fast-levenshtein "^1.0.0" + last-run "^1.1.0" + object.defaults "^1.0.0" + object.reduce "^1.0.0" + undertaker-registry "^1.0.0" + +undertaker@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-2.0.0.tgz#fe4d40dc71823ce5a80f1ecc63ec8b88ad40b54a" + integrity sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ== + dependencies: + bach "^2.0.1" + fast-levenshtein "^3.0.0" + last-run "^2.0.0" + undertaker-registry "^2.0.0" + undici-types@~5.26.4: version "5.26.5" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" @@ -10648,6 +13227,24 @@ unified@^11.0.0: trough "^2.0.0" vfile "^6.0.0" +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +unique-stream@^2.0.2: + version "2.3.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" + integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== + dependencies: + json-stable-stringify-without-jsonify "^1.0.1" + through2-filter "^3.0.0" + unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -10721,11 +13318,24 @@ unplugin@^1.3.1: webpack-sources "^3.2.3" webpack-virtual-modules "^0.6.1" +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + untildify@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + update-browserslist-db@^1.0.13: version "1.0.13" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" @@ -10741,6 +13351,11 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== + url-parse@^1.5.3: version "1.5.10" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" @@ -10749,6 +13364,11 @@ url-parse@^1.5.3: querystringify "^2.1.1" requires-port "^1.0.0" +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -10775,6 +13395,18 @@ uuid@^9.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== +v8flags@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" + integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== + dependencies: + homedir-polyfill "^1.0.1" + +v8flags@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-4.0.1.tgz#98fe6c4308317c5f394d85a435eb192490f7e132" + integrity sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg== + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -10788,6 +13420,21 @@ validator@^13.7.0: resolved "https://registry.yarnpkg.com/validator/-/validator-13.11.0.tgz#23ab3fd59290c61248364eabf4067f04955fbb1b" integrity sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ== +value-or-function@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" + integrity sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg== + +value-or-function@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-4.0.0.tgz#70836b6a876a010dc3a2b884e7902e9db064378d" + integrity sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg== + +varint@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" + integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -10810,6 +13457,112 @@ vfile@^6.0.0: unist-util-stringify-position "^4.0.0" vfile-message "^4.0.0" +vinyl-contents@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/vinyl-contents/-/vinyl-contents-2.0.0.tgz#cc2ba4db3a36658d069249e9e36d9e2b41935d89" + integrity sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q== + dependencies: + bl "^5.0.0" + vinyl "^3.0.0" + +vinyl-fs@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" + integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== + dependencies: + fs-mkdirp-stream "^1.0.0" + glob-stream "^6.1.0" + graceful-fs "^4.0.0" + is-valid-glob "^1.0.0" + lazystream "^1.0.0" + lead "^1.0.0" + object.assign "^4.0.4" + pumpify "^1.3.5" + readable-stream "^2.3.3" + remove-bom-buffer "^3.0.0" + remove-bom-stream "^1.2.0" + resolve-options "^1.1.0" + through2 "^2.0.0" + to-through "^2.0.0" + value-or-function "^3.0.0" + vinyl "^2.0.0" + vinyl-sourcemap "^1.1.0" + +vinyl-fs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-4.0.0.tgz#06cb36efc911c6e128452f230b96584a9133c3a1" + integrity sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw== + dependencies: + fs-mkdirp-stream "^2.0.1" + glob-stream "^8.0.0" + graceful-fs "^4.2.11" + iconv-lite "^0.6.3" + is-valid-glob "^1.0.0" + lead "^4.0.0" + normalize-path "3.0.0" + resolve-options "^2.0.0" + stream-composer "^1.0.2" + streamx "^2.14.0" + to-through "^3.0.0" + value-or-function "^4.0.0" + vinyl "^3.0.0" + vinyl-sourcemap "^2.0.0" + +vinyl-sourcemap@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" + integrity sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA== + dependencies: + append-buffer "^1.0.2" + convert-source-map "^1.5.0" + graceful-fs "^4.1.6" + normalize-path "^2.1.1" + now-and-later "^2.0.0" + remove-bom-buffer "^3.0.0" + vinyl "^2.0.0" + +vinyl-sourcemap@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz#422f410a0ea97cb54cebd698d56a06d7a22e0277" + integrity sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q== + dependencies: + convert-source-map "^2.0.0" + graceful-fs "^4.2.10" + now-and-later "^3.0.0" + streamx "^2.12.5" + vinyl "^3.0.0" + vinyl-contents "^2.0.0" + +vinyl-sourcemaps-apply@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + integrity sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw== + dependencies: + source-map "^0.5.1" + +vinyl@^2.0.0, vinyl@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" + integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +vinyl@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-3.0.0.tgz#11e14732bf56e2faa98ffde5157fe6c13259ff30" + integrity sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g== + dependencies: + clone "^2.1.2" + clone-stats "^1.0.0" + remove-trailing-separator "^1.1.0" + replace-ext "^2.0.0" + teex "^1.0.1" + vite-node@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.4.0.tgz#265529d60570ca695ceb69391f87f92847934ad8" @@ -11146,6 +13899,11 @@ which-collection@^1.0.1: is-weakmap "^2.0.1" is-weakset "^2.0.1" +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ== + which-module@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" @@ -11162,7 +13920,7 @@ which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.2, gopd "^1.0.1" has-tostringtag "^1.0.1" -which@^1.3.1: +which@^1.2.14, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -11189,6 +13947,14 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -11264,11 +14030,21 @@ xtend@~4.0.1: resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== +y18n@^3.2.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== + y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -11279,6 +14055,16 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@>=5.0.0-security.0: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -11287,6 +14073,19 @@ yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.1.tgz#7ede329c1d8cdbbe209bd25cdb990e9b1ebbb394" + integrity sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA== + dependencies: + camelcase "^3.0.0" + object.assign "^4.1.0" + yargs@^15.0.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" @@ -11304,6 +14103,38 @@ yargs@^15.0.1: y18n "^4.0.0" yargs-parser "^18.1.2" +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^7.1.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.2.tgz#63a0a5d42143879fdbb30370741374e0641d55db" + integrity sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA== + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.1" + yarn@^1.22.22: version "1.22.22" resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.22.tgz#ac34549e6aa8e7ead463a7407e1c7390f61a6610" From 81a149858d7d32b6d0e3fd938bf32cdb4ce8b8b3 Mon Sep 17 00:00:00 2001 From: Joseph Andersen <12385932+jpandersen87@users.noreply.github.com> Date: Tue, 16 Apr 2024 22:31:44 -0500 Subject: [PATCH 02/32] normalization pass - export everything - helper fns moved to local utils - comp props type added / updated --- .../Accordion/Accordion.stories.tsx | 2 +- src/components/Accordion/Accordion.test.tsx | 2 +- src/components/Accordion/Accordion.tsx | 4 +- src/components/Alert/Alert.stories.tsx | 4 +- src/components/Alert/Alert.test.tsx | 2 +- src/components/Alert/Alert.tsx | 4 +- src/components/Button/Button.stories.tsx | 2 +- src/components/Button/Button.test.tsx | 2 +- src/components/Button/Button.tsx | 2 +- .../ButtonGroup/ButtonGroup.stories.tsx | 6 +- .../ButtonGroup/ButtonGroup.test.tsx | 2 +- src/components/ButtonGroup/ButtonGroup.tsx | 4 +- .../Collection/Collection.stories.tsx | 20 +- src/components/Collection/Collection.test.tsx | 2 +- src/components/Collection/Collection.tsx | 10 +- .../CollectionCalendarDate.test.tsx | 2 +- .../Collection/CollectionCalendarDate.tsx | 8 +- .../Collection/CollectionDescription.test.tsx | 2 +- .../Collection/CollectionDescription.tsx | 8 +- .../Collection/CollectionHeading.test.tsx | 2 +- .../Collection/CollectionHeading.tsx | 19 +- .../Collection/CollectionItem.test.tsx | 2 +- src/components/Collection/CollectionItem.tsx | 10 +- .../Collection/CollectionMeta.test.tsx | 4 +- src/components/Collection/CollectionMeta.tsx | 8 +- .../Collection/CollectionMetaItem.test.tsx | 2 +- .../Collection/CollectionMetaItem.tsx | 8 +- .../Collection/CollectionMetaItemTag.test.tsx | 2 +- .../Collection/CollectionMetaItemTag.tsx | 11 +- .../Collection/CollectionThumbnail.test.tsx | 2 +- .../Collection/CollectionThumbnail.tsx | 8 +- .../Footer/Address/Address.stories.tsx | 2 +- .../Footer/Address/Address.test.tsx | 2 +- src/components/Footer/Address/Address.tsx | 10 +- .../Footer/Footer/Footer.stories.tsx | 19 +- src/components/Footer/Footer/Footer.test.tsx | 2 +- src/components/Footer/Footer/Footer.tsx | 10 +- .../FooterExtendedNavList.test.tsx | 2 +- .../FooterExtendedNavList.tsx | 37 +-- .../FooterExtendedNavListSection.tsx | 31 +++ .../Footer/FooterNav/FooterNav.stories.tsx | 4 +- .../Footer/FooterNav/FooterNav.test.tsx | 2 +- src/components/Footer/FooterNav/FooterNav.tsx | 20 +- src/components/Footer/FooterNav/utils.ts | 7 + src/components/Footer/Logo/Logo.stories.tsx | 2 +- src/components/Footer/Logo/Logo.test.tsx | 2 +- src/components/Footer/Logo/Logo.tsx | 10 +- .../Footer/SocialLinks/SocialLink.tsx | 41 ++++ .../SocialLinks/SocialLinks.stories.tsx | 3 +- .../Footer/SocialLinks/SocialLinks.test.tsx | 4 +- .../Footer/SocialLinks/SocialLinks.tsx | 46 +--- src/components/IconList/IconList.stories.tsx | 12 +- src/components/IconList/IconList.test.tsx | 12 +- src/components/IconList/IconList.tsx | 9 +- .../IconListContent/IconListContent.test.tsx | 2 +- .../IconListContent/IconListContent.tsx | 8 +- .../IconListIcon/IconListIcon.test.tsx | 4 +- .../IconList/IconListIcon/IconListIcon.tsx | 10 +- .../IconListItem/IconListItem.test.tsx | 10 +- .../IconList/IconListItem/IconListItem.tsx | 8 +- .../IconListTitle/IconListTitle.test.tsx | 2 +- .../IconList/IconListTitle/IconListTitle.tsx | 12 +- .../Identifier/Identifier.stories.tsx | 20 +- .../Identifier/Identifier/Identifier.test.tsx | 20 +- .../Identifier/Identifier/Identifier.tsx | 8 +- .../IdentifierGov/IdentifierGov.test.tsx | 2 +- .../IdentifierGov/IdentifierGov.tsx | 9 +- .../IdentifierIdentity.test.tsx | 4 +- .../IdentifierIdentity/IdentifierIdentity.tsx | 9 +- .../IdentifierLink/IdentifierLink.test.tsx | 2 +- .../IdentifierLink/IdentifierLink.tsx | 18 +- .../IdentifierLinkItem.test.tsx | 4 +- .../IdentifierLinkItem/IdentifierLinkItem.tsx | 11 +- .../IdentifierLinks/IdentifierLinks.test.tsx | 6 +- .../IdentifierLinks/IdentifierLinks.tsx | 4 +- .../IdentifierLogo/IdentifierLogo.test.tsx | 2 +- .../IdentifierLogo/IdentifierLogo.tsx | 10 +- .../IdentifierLogos/IdentifierLogos.test.tsx | 2 +- .../IdentifierLogos/IdentifierLogos.tsx | 8 +- .../IdentifierMasthead.test.tsx | 10 +- .../IdentifierMasthead/IdentifierMasthead.tsx | 9 +- .../InPageNavigation.stories.tsx | 2 +- .../InPageNavigation.test.tsx | 2 +- .../InPageNavigation/InPageNavigation.tsx | 6 +- .../LanguageSelector.stories.tsx | 2 +- .../LanguageSelector.test.tsx | 3 +- .../LanguageSelector/LanguageSelector.tsx | 9 +- .../LanguageSelectorButton.tsx | 9 +- .../LanguageSelectorDropdown.tsx | 39 +-- src/components/LanguageSelector/utils.tsx | 34 +++ src/components/Link/Link.stories.tsx | 2 +- src/components/Link/Link.test.tsx | 2 +- src/components/Link/Link.tsx | 44 +--- src/components/Link/utils.ts | 32 +++ src/components/Modal/Modal.stories.tsx | 10 +- src/components/Modal/Modal.test.tsx | 12 +- src/components/Modal/Modal.tsx | 8 +- .../ModalCloseButton.test.tsx | 2 +- .../ModalCloseButton/ModalCloseButton.tsx | 15 +- .../Modal/ModalFooter/ModalFooter.test.tsx | 2 +- .../Modal/ModalFooter/ModalFooter.tsx | 10 +- .../Modal/ModalHeading/ModalHeading.test.tsx | 2 +- .../Modal/ModalHeading/ModalHeading.tsx | 8 +- src/components/Modal/ModalOpenLink.test.tsx | 2 +- src/components/Modal/ModalOpenLink.tsx | 29 ++- .../Modal/ModalToggleButton.test.tsx | 2 +- src/components/Modal/ModalToggleButton.tsx | 15 +- .../Modal/ModalWindow/ModalWindow.test.tsx | 2 +- .../Modal/ModalWindow/ModalWindow.tsx | 12 +- .../Modal/ModalWrapper/ModalWrapper.test.tsx | 2 +- .../Modal/ModalWrapper/ModalWrapper.tsx | 8 +- src/components/Modal/OpenModal.stories.tsx | 12 +- .../Pagination/Pagination.stories.tsx | 2 +- src/components/Pagination/Pagination.test.tsx | 2 +- src/components/Pagination/Pagination.tsx | 74 +----- .../Pagination/PaginationOverflow.tsx | 11 + src/components/Pagination/PaginationPage.tsx | 56 +++++ .../ProcessList/ProcessList.stories.tsx | 6 +- .../ProcessList/ProcessList.test.tsx | 6 +- .../ProcessList/ProcessList/ProcessList.tsx | 8 +- .../ProcessListHeading.test.tsx | 2 +- .../ProcessListHeading/ProcessListHeading.tsx | 18 +- .../ProcessListItem/ProcessListItem.test.tsx | 4 +- .../ProcessListItem/ProcessListItem.tsx | 8 +- .../Search/Search/Search.stories.tsx | 2 +- src/components/Search/Search/Search.test.tsx | 2 +- src/components/Search/Search/Search.tsx | 12 +- .../SearchButton/SearchButton.stories.tsx | 2 +- .../Search/SearchButton/SearchButton.test.tsx | 2 +- .../Search/SearchButton/SearchButton.tsx | 10 +- .../SearchField/SearchField.stories.tsx | 2 +- .../Search/SearchField/SearchField.test.tsx | 2 +- .../Search/SearchField/SearchField.tsx | 13 +- src/components/SideNav/SideNav.stories.tsx | 2 +- src/components/SideNav/SideNav.test.tsx | 2 +- src/components/SideNav/SideNav.tsx | 6 +- .../SiteAlert/SiteAlert.stories.tsx | 4 +- src/components/SiteAlert/SiteAlert.test.tsx | 4 +- src/components/SiteAlert/SiteAlert.tsx | 8 +- .../SummaryBox/SummaryBox.stories.tsx | 6 +- .../SummaryBox/SummaryBox/SummaryBox.test.tsx | 6 +- .../SummaryBox/SummaryBox/SummaryBox.tsx | 8 +- .../SummaryBoxContent.test.tsx | 2 +- .../SummaryBoxContent/SummaryBoxContent.tsx | 4 +- .../SummaryBoxHeading.test.tsx | 2 +- .../SummaryBoxHeading/SummaryBoxHeading.tsx | 15 +- src/components/Table/Table.stories.tsx | 2 +- src/components/Table/Table.test.tsx | 2 +- src/components/Table/Table.tsx | 4 +- src/components/Tag/Tag.stories.tsx | 2 +- src/components/Tag/Tag.test.tsx | 2 +- src/components/Tag/Tag.tsx | 8 +- src/components/Tooltip/Tooltip.stories.tsx | 2 +- src/components/Tooltip/Tooltip.test.tsx | 2 +- src/components/Tooltip/Tooltip.tsx | 24 +- src/components/Tooltip/utils.ts | 8 + src/components/banner/Banner/Banner.test.tsx | 2 +- src/components/banner/Banner/Banner.tsx | 6 +- .../banner/BannerButton/BannerButton.test.tsx | 2 +- .../banner/BannerButton/BannerButton.tsx | 6 +- .../BannerContent/BannerContent.test.tsx | 2 +- .../banner/BannerContent/BannerContent.tsx | 6 +- .../banner/BannerFlag/BannerFlag.test.tsx | 2 +- .../banner/BannerFlag/BannerFlag.tsx | 8 +- .../BannerGuidance/BannerGuidance.test.tsx | 2 +- .../banner/BannerGuidance/BannerGuidance.tsx | 8 +- .../banner/BannerHeader/BannerHeader.test.tsx | 4 +- .../banner/BannerHeader/BannerHeader.tsx | 6 +- .../banner/BannerIcon/BannerIcon.test.tsx | 2 +- .../banner/BannerIcon/BannerIcon.tsx | 8 +- .../banner/CustomBanner.stories.tsx | 2 +- .../banner/GovBanner/GovBanner.stories.tsx | 2 +- .../banner/GovBanner/GovBanner.test.tsx | 2 +- src/components/banner/GovBanner/GovBanner.tsx | 119 +-------- src/components/banner/GovBanner/utils.tsx | 95 +++++++ .../breadcrumb/Breadcrumb/Breadcrumb.test.tsx | 6 +- .../breadcrumb/Breadcrumb/Breadcrumb.tsx | 5 +- .../BreadcrumbBar/BreadcrumbBar.stories.tsx | 6 +- .../BreadcrumbBar/BreadcrumbBar.test.tsx | 6 +- .../BreadcrumbBar/BreadcrumbBar.tsx | 6 +- .../BreadcrumbLink/BreadcrumbLink.test.tsx | 2 +- .../BreadcrumbLink/BreadcrumbLink.tsx | 18 +- src/components/card/Card.stories.tsx | 14 +- src/components/card/Card/Card.test.tsx | 2 +- src/components/card/Card/Card.tsx | 7 +- .../card/CardBody/CardBody.test.tsx | 2 +- src/components/card/CardBody/CardBody.tsx | 6 +- .../card/CardFooter/CardFooter.test.tsx | 2 +- src/components/card/CardFooter/CardFooter.tsx | 8 +- .../card/CardGroup/CardGroup.test.tsx | 2 +- src/components/card/CardGroup/CardGroup.tsx | 6 +- .../card/CardHeader/CardHeader.test.tsx | 2 +- src/components/card/CardHeader/CardHeader.tsx | 10 +- .../card/CardMedia/CardMedia.test.tsx | 2 +- src/components/card/CardMedia/CardMedia.tsx | 4 +- .../CharacterCount/CharacterCount.stories.tsx | 8 +- .../CharacterCount/CharacterCount.test.tsx | 2 +- .../forms/CharacterCount/CharacterCount.tsx | 37 +-- src/components/forms/CharacterCount/utils.ts | 28 +++ .../forms/Checkbox/Checkbox.stories.tsx | 2 +- .../forms/Checkbox/Checkbox.test.tsx | 2 +- src/components/forms/Checkbox/Checkbox.tsx | 8 +- .../forms/ComboBox/ComboBox.stories.tsx | 10 +- .../forms/ComboBox/ComboBox.test.tsx | 4 +- src/components/forms/ComboBox/ComboBox.tsx | 43 +--- .../forms/ComboBox/ComboBoxInput.tsx | 31 +++ src/components/forms/ComboBox/useComboBox.ts | 6 +- .../forms/DateInput/DateInput.stories.tsx | 12 +- .../forms/DateInput/DateInput.test.tsx | 2 +- src/components/forms/DateInput/DateInput.tsx | 14 +- .../DateInputGroup/DateInputGroup.test.tsx | 2 +- .../forms/DateInputGroup/DateInputGroup.tsx | 6 +- .../DatePicker/Calendar.stories.internal.tsx | 2 +- .../forms/DatePicker/Calendar.test.tsx | 2 +- src/components/forms/DatePicker/Calendar.tsx | 16 +- .../forms/DatePicker/DatePicker.stories.tsx | 10 +- .../forms/DatePicker/DatePicker.test.tsx | 2 +- .../forms/DatePicker/DatePicker.tsx | 8 +- .../forms/DatePicker/Day.stories.internal.tsx | 2 +- src/components/forms/DatePicker/Day.test.tsx | 2 +- src/components/forms/DatePicker/Day.tsx | 8 +- .../MonthPicker.stories.internal.tsx | 2 +- .../forms/DatePicker/MonthPicker.test.tsx | 2 +- .../forms/DatePicker/MonthPicker.tsx | 20 +- .../YearPicker.stories.internal.tsx | 2 +- .../forms/DatePicker/YearPicker.test.tsx | 2 +- .../forms/DatePicker/YearPicker.tsx | 4 +- .../DateRangePicker.stories.tsx | 4 +- .../DateRangePicker/DateRangePicker.test.tsx | 2 +- .../forms/DateRangePicker/DateRangePicker.tsx | 16 +- .../ErrorMessage/ErrorMessage.stories.tsx | 2 +- .../forms/ErrorMessage/ErrorMessage.test.tsx | 2 +- .../forms/ErrorMessage/ErrorMessage.tsx | 4 +- .../forms/Fieldset/Fieldset.stories.tsx | 12 +- .../forms/Fieldset/Fieldset.test.tsx | 2 +- src/components/forms/Fieldset/Fieldset.tsx | 12 +- .../forms/FileInput/FileInput.stories.tsx | 8 +- .../forms/FileInput/FileInput.test.tsx | 2 +- src/components/forms/FileInput/FileInput.tsx | 12 +- .../FilePreview.stories.internal.tsx | 2 +- .../forms/FileInput/FilePreview.test.tsx | 2 +- .../forms/FileInput/FilePreview.tsx | 20 +- src/components/forms/FileInput/utils.ts | 7 + src/components/forms/Form/Form.stories.tsx | 22 +- src/components/forms/Form/Form.test.tsx | 2 +- src/components/forms/Form/Form.tsx | 10 +- .../forms/FormGroup/FormGroup.stories.tsx | 8 +- .../forms/FormGroup/FormGroup.test.tsx | 2 +- src/components/forms/FormGroup/FormGroup.tsx | 6 +- .../forms/InputGroup/InputGroup.test.tsx | 2 +- .../forms/InputGroup/InputGroup.tsx | 4 +- .../forms/InputPrefix/InputPrefix.stories.tsx | 10 +- .../forms/InputPrefix/InputPrefix.test.tsx | 2 +- .../forms/InputPrefix/InputPrefix.tsx | 6 +- .../forms/InputSuffix/InputSuffix.stories.tsx | 10 +- .../forms/InputSuffix/InputSuffix.test.tsx | 2 +- .../forms/InputSuffix/InputSuffix.tsx | 6 +- src/components/forms/Label/Label.stories.tsx | 2 +- src/components/forms/Label/Label.test.tsx | 2 +- src/components/forms/Label/Label.tsx | 10 +- src/components/forms/Label/RequiredMarker.tsx | 4 +- src/components/forms/Radio/Radio.stories.tsx | 2 +- src/components/forms/Radio/Radio.test.tsx | 2 +- src/components/forms/Radio/Radio.tsx | 8 +- .../forms/RangeInput/RangeInput.stories.tsx | 4 +- .../forms/RangeInput/RangeInput.test.tsx | 2 +- .../forms/RangeInput/RangeInput.tsx | 8 +- .../forms/Select/Select.stories.tsx | 4 +- src/components/forms/Select/Select.test.tsx | 2 +- src/components/forms/Select/Select.tsx | 10 +- .../forms/TextInput/TextInput.stories.tsx | 2 +- .../forms/TextInput/TextInput.test.tsx | 2 +- src/components/forms/TextInput/TextInput.tsx | 8 +- .../TextInputMask/TextInputMask.stories.tsx | 6 +- .../TextInputMask/TextInputMask.test.tsx | 2 +- .../forms/TextInputMask/TextInputMask.tsx | 42 +--- src/components/forms/TextInputMask/utils.ts | 32 +++ .../forms/Textarea/Textarea.stories.tsx | 2 +- .../forms/Textarea/Textarea.test.tsx | 2 +- src/components/forms/Textarea/Textarea.tsx | 10 +- .../forms/TimePicker/TimePicker.stories.tsx | 4 +- .../forms/TimePicker/TimePicker.test.tsx | 2 +- .../forms/TimePicker/TimePicker.tsx | 14 +- src/components/forms/TimePicker/utils.ts | 6 +- .../forms/Validation/Validation.stories.tsx | 16 +- .../Validation/ValidationChecklist.test.tsx | 2 +- .../forms/Validation/ValidationChecklist.tsx | 9 +- .../forms/Validation/ValidationItem.test.tsx | 2 +- .../forms/Validation/ValidationItem.tsx | 8 +- src/components/grid/Grid.stories.tsx | 4 +- src/components/grid/Grid/Grid.test.tsx | 3 +- src/components/grid/Grid/Grid.tsx | 54 +--- src/components/grid/Grid/utils.ts | 51 ++++ .../grid/GridContainer/GridContainer.test.tsx | 4 +- .../grid/GridContainer/GridContainer.tsx | 32 +-- src/components/grid/GridContainer/utils.ts | 26 ++ .../ExtendedNav/ExtendedNav.stories.tsx | 2 +- .../header/ExtendedNav/ExtendedNav.test.tsx | 2 +- .../header/ExtendedNav/ExtendedNav.tsx | 12 +- .../header/Header/Header.stories.tsx | 18 +- src/components/header/Header/Header.test.tsx | 2 +- src/components/header/Header/Header.tsx | 10 +- .../header/MegaMenu/MegaMenu.stories.tsx | 2 +- .../header/MegaMenu/MegaMenu.test.tsx | 2 +- src/components/header/MegaMenu/MegaMenu.tsx | 10 +- src/components/header/Menu/Menu.stories.tsx | 2 +- src/components/header/Menu/Menu.test.tsx | 2 +- src/components/header/Menu/Menu.tsx | 10 +- .../NavCloseButton/NavCloseButton.stories.tsx | 2 +- .../NavCloseButton/NavCloseButton.test.tsx | 2 +- .../header/NavCloseButton/NavCloseButton.tsx | 9 +- .../NavDropDownButton.stories.tsx | 6 +- .../NavDropDownButton.test.tsx | 2 +- .../NavDropDownButton/NavDropDownButton.tsx | 9 +- .../header/NavList/NavList.stories.tsx | 2 +- .../header/NavList/NavList.test.tsx | 2 +- src/components/header/NavList/NavList.tsx | 6 +- .../NavMenuButton/NavMenuButton.stories.tsx | 2 +- .../NavMenuButton/NavMenuButton.test.tsx | 2 +- .../header/NavMenuButton/NavMenuButton.tsx | 11 +- .../header/PrimaryNav/PrimaryNav.stories.tsx | 2 +- .../header/PrimaryNav/PrimaryNav.test.tsx | 2 +- .../header/PrimaryNav/PrimaryNav.tsx | 12 +- src/components/header/Title/Title.stories.tsx | 2 +- src/components/header/Title/Title.test.tsx | 2 +- src/components/header/Title/Title.tsx | 8 +- .../hoc/withDeprecationWarning.test.tsx | 4 +- src/components/hoc/withDeprecationWarning.tsx | 4 +- .../MediaBlockBody/MediaBlockBody.test.tsx | 2 +- .../MediaBlockBody/MediaBlockBody.tsx | 8 +- .../StepIndicator/StepIndicator.stories.tsx | 4 +- .../StepIndicator/StepIndicator.test.tsx | 4 +- .../StepIndicator/StepIndicator.tsx | 9 +- .../StepIndicatorStep.test.tsx | 2 +- .../StepIndicatorStep/StepIndicatorStep.tsx | 4 +- src/index.ts | 232 +++++++++--------- src/serverSideTest.js | 2 +- .../templates/createaccount.stories.tsx | 2 +- .../templates/documentation.stories.tsx | 30 ++- src/stories/templates/landing.stories.tsx | 28 +-- vite.config.ts | 37 +-- 341 files changed, 1705 insertions(+), 1508 deletions(-) create mode 100644 src/components/Footer/FooterExtendedNavList/FooterExtendedNavListSection.tsx create mode 100644 src/components/Footer/FooterNav/utils.ts create mode 100644 src/components/Footer/SocialLinks/SocialLink.tsx create mode 100644 src/components/LanguageSelector/utils.tsx create mode 100644 src/components/Link/utils.ts create mode 100644 src/components/Pagination/PaginationOverflow.tsx create mode 100644 src/components/Pagination/PaginationPage.tsx create mode 100644 src/components/banner/GovBanner/utils.tsx create mode 100644 src/components/forms/CharacterCount/utils.ts create mode 100644 src/components/forms/ComboBox/ComboBoxInput.tsx create mode 100644 src/components/forms/TextInputMask/utils.ts create mode 100644 src/components/grid/Grid/utils.ts create mode 100644 src/components/grid/GridContainer/utils.ts diff --git a/src/components/Accordion/Accordion.stories.tsx b/src/components/Accordion/Accordion.stories.tsx index e9292085d4..1038e6328a 100644 --- a/src/components/Accordion/Accordion.stories.tsx +++ b/src/components/Accordion/Accordion.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Accordion, AccordionItemProps } from './Accordion' +import Accordion, { AccordionItemProps } from './Accordion' export default { title: 'Components/Accordion', diff --git a/src/components/Accordion/Accordion.test.tsx b/src/components/Accordion/Accordion.test.tsx index 2dddb7388f..373babe52e 100644 --- a/src/components/Accordion/Accordion.test.tsx +++ b/src/components/Accordion/Accordion.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render, fireEvent } from '@testing-library/react' -import { Accordion, AccordionItemProps } from './Accordion' +import Accordion, { AccordionItemProps } from './Accordion' import { HeadingLevel } from '../../types/headingLevel' const firstAmendment = ( diff --git a/src/components/Accordion/Accordion.tsx b/src/components/Accordion/Accordion.tsx index 9314517076..fd65c1c13c 100644 --- a/src/components/Accordion/Accordion.tsx +++ b/src/components/Accordion/Accordion.tsx @@ -13,7 +13,7 @@ export interface AccordionItemProps { handleToggle?: (event: React.MouseEvent) => void } -type AccordionProps = { +export type AccordionProps = { bordered?: boolean multiselectable?: boolean items: AccordionItemProps[] @@ -62,7 +62,7 @@ export const AccordionItem = ({ ) } -export const Accordion = ({ +const Accordion = ({ bordered, items, className, diff --git a/src/components/Alert/Alert.stories.tsx b/src/components/Alert/Alert.stories.tsx index a794543d23..7541974d1e 100644 --- a/src/components/Alert/Alert.stories.tsx +++ b/src/components/Alert/Alert.stories.tsx @@ -1,7 +1,7 @@ import React from 'react' -import { Alert } from './Alert' +import Alert from './Alert' -import { Button } from '../Button/Button' +import Button from '../Button/Button' export default { title: 'Components/Alert', diff --git a/src/components/Alert/Alert.test.tsx b/src/components/Alert/Alert.test.tsx index 2e73820abb..fa6867bc3b 100644 --- a/src/components/Alert/Alert.test.tsx +++ b/src/components/Alert/Alert.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { Alert } from './Alert' +import Alert from './Alert' import { HeadingLevel } from '../../types/headingLevel' describe('Alert component', () => { diff --git a/src/components/Alert/Alert.tsx b/src/components/Alert/Alert.tsx index bacbedb9b3..1f40777479 100644 --- a/src/components/Alert/Alert.tsx +++ b/src/components/Alert/Alert.tsx @@ -5,7 +5,7 @@ import { HeadingLevel } from '../../types/headingLevel' import styles from './Alert.module.scss' -type AlertProps = { +export type AlertProps = { type: 'success' | 'warning' | 'error' | 'info' heading?: React.ReactNode headingLevel: HeadingLevel @@ -16,7 +16,7 @@ type AlertProps = { validation?: boolean } -export const Alert = ({ +const Alert = ({ type, heading, headingLevel, diff --git a/src/components/Button/Button.stories.tsx b/src/components/Button/Button.stories.tsx index 7140616486..b5c75e837d 100644 --- a/src/components/Button/Button.stories.tsx +++ b/src/components/Button/Button.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Button } from './Button' +import Button from './Button' export default { title: 'Components/Button', diff --git a/src/components/Button/Button.test.tsx b/src/components/Button/Button.test.tsx index dd5d030766..69dfa50cf6 100644 --- a/src/components/Button/Button.test.tsx +++ b/src/components/Button/Button.test.tsx @@ -2,7 +2,7 @@ import React from 'react' import { render, fireEvent } from '@testing-library/react' vi.mock('../../deprecation') -import { Button } from './Button' +import Button from './Button' describe('Button component', () => { beforeEach(() => { diff --git a/src/components/Button/Button.tsx b/src/components/Button/Button.tsx index 28b9ca2379..7769b98db7 100644 --- a/src/components/Button/Button.tsx +++ b/src/components/Button/Button.tsx @@ -13,7 +13,7 @@ export type ButtonProps = { unstyled?: boolean } -export const Button = ({ +const Button = ({ type, children, secondary, diff --git a/src/components/ButtonGroup/ButtonGroup.stories.tsx b/src/components/ButtonGroup/ButtonGroup.stories.tsx index f285b952f5..4eeda500e0 100644 --- a/src/components/ButtonGroup/ButtonGroup.stories.tsx +++ b/src/components/ButtonGroup/ButtonGroup.stories.tsx @@ -1,7 +1,7 @@ import React from 'react' -import { ButtonGroup } from './ButtonGroup' -import { Button } from '../Button/Button' -import { Link } from '../Link/Link' +import ButtonGroup from './ButtonGroup' +import Button from '../Button/Button' +import Link from '../Link/Link' export default { title: 'Components/Button groups', diff --git a/src/components/ButtonGroup/ButtonGroup.test.tsx b/src/components/ButtonGroup/ButtonGroup.test.tsx index 491c70c793..95bb5f0794 100644 --- a/src/components/ButtonGroup/ButtonGroup.test.tsx +++ b/src/components/ButtonGroup/ButtonGroup.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { ButtonGroup } from './ButtonGroup' +import ButtonGroup from './ButtonGroup' describe('ButtonGroup component', () => { it('renders without errors', () => { diff --git a/src/components/ButtonGroup/ButtonGroup.tsx b/src/components/ButtonGroup/ButtonGroup.tsx index 2d27b16a3e..13ef91ec06 100644 --- a/src/components/ButtonGroup/ButtonGroup.tsx +++ b/src/components/ButtonGroup/ButtonGroup.tsx @@ -1,13 +1,13 @@ import React from 'react' import classnames from 'classnames' -type ButtonGroupProps = { +export type ButtonGroupProps = { children: React.ReactNode className?: string type?: 'default' | 'segmented' } & JSX.IntrinsicElements['ul'] -export const ButtonGroup = ({ +const ButtonGroup = ({ className, children, type = 'default', diff --git a/src/components/Collection/Collection.stories.tsx b/src/components/Collection/Collection.stories.tsx index 8b14cd6335..ae796ab026 100644 --- a/src/components/Collection/Collection.stories.tsx +++ b/src/components/Collection/Collection.stories.tsx @@ -1,14 +1,14 @@ import React from 'react' -import { Link } from './../Link/Link' -import { Collection } from './Collection' -import { CollectionItem } from './CollectionItem' -import { CollectionHeading } from './CollectionHeading' -import { CollectionDescription } from './CollectionDescription' -import { CollectionMeta } from './CollectionMeta' -import { CollectionMetaItem } from './CollectionMetaItem' -import { CollectionMetaItemTag } from './CollectionMetaItemTag' -import { CollectionThumbnail } from './CollectionThumbnail' -import { CollectionCalendarDate } from './CollectionCalendarDate' +import Link from './../Link/Link' +import Collection from './Collection' +import CollectionItem from './CollectionItem' +import CollectionHeading from './CollectionHeading' +import CollectionDescription from './CollectionDescription' +import CollectionMeta from './CollectionMeta' +import CollectionMetaItem from './CollectionMetaItem' +import CollectionMetaItemTag from './CollectionMetaItemTag' +import CollectionThumbnail from './CollectionThumbnail' +import CollectionCalendarDate from './CollectionCalendarDate' const wosb1Image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQMAAACnCAIAAACaSa7QAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABImVYSWZNTQAqAAAACAAGARIAAwAAAAEAAQAAARoABQAAAAEAAABWARsABQAAAAEAAABeATEAAgAAACYAAABmATIAAgAAABQAAACMh2kABAAAAAEAAACgAAAAAAAAABQAAAABAAAAFAAAAAFXaW5kb3dzIFBob3RvIEVkaXRvciAxMC4wLjEwMDExLjE2Mzg0ADIwMjA6MTA6MjYgMTY6NDk6NTYAAAeQAwACAAAAFAAAAPqQBAACAAAAFAAAAQ6SkQACAAAAAzAwAACSkgACAAAAAzAwAACgAQADAAAAAQABAACgAgAEAAAAAQAAAQOgAwAEAAAAAQAAAKcAAAAAMjAyMDoxMDoyNiAxMjo0NTo0MAAyMDIwOjEwOjI2IDEyOjQ1OjQwAHVdVO4AAAAJcEhZcwAAAxMAAAMTAT1mg8cAAATaaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIj4KICAgICAgICAgPGV4aWY6U3Vic2VjVGltZURpZ2l0aXplZD4wMDwvZXhpZjpTdWJzZWNUaW1lRGlnaXRpemVkPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjM4ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yNTA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpTdWJzZWNUaW1lT3JpZ2luYWw+MDA8L2V4aWY6U3Vic2VjVGltZU9yaWdpbmFsPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPldpbmRvd3MgUGhvdG8gRWRpdG9yIDEwLjAuMTAwMTEuMTYzODQ8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMjAtMTAtMjZUMTY6NDk6NTY8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAyMC0xMC0yNlQxMjo0NTo0MC4wMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDxwaG90b3Nob3A6RGF0ZUNyZWF0ZWQ+MjAyMC0xMC0yNlQxMjo0NTo0MC4wMDwvcGhvdG9zaG9wOkRhdGVDcmVhdGVkPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD51dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4MmYxYjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cj0m+/QAAHyFSURBVHja7b0HmFzXeR58+/SZ3dmZ7X2x6L2RANgAFomiKVlyFFlSHMlyYqU4iR0nsfM/yfMrtuM4cZ44xU7i31bcFBfJkmWZokRJFAvYAJKoi+3Y3tvs9HbL/57zzczOzs4uFiBAAeBeQcs7t5x7ytfPV0TLsoS7+qDuibelldvQ0F0+V5bIR2jd5wO94URYgijyvzgXLb7uIkBdFNkPXJfYU6bJrkr8IX67pBUTD+AJUTRNS5IkizeMn/y/VjE0ieVeL9wWxeI2WQdESRJX+loGOItfsfIfNXFimfyeWLguiuIG4CDQsAsP87Ga7IvsFr1b0oLFgceyDDZ0QSx0hea0qEuCkB81m9ZCJ/kABXqz8C7/J+Fh9F+Syy1YbpHYp/lPaeW7VqHx4q5a1KpVmGSxZBAFvC9esg2m6+4AXIv6CXi7tdfFonkrHqxpAZglga+9KImmoeMnDqwXTS2beQA8ILMElPMNmfxELkaP/MzjjplfBhnwJUp5eM3dNmnBJFHOwUoRjPO7Ikczk98tAAzBqMThzCwMBj2WZcm0dIuhpSIWQaWZQ0tRWMFV9i71Q+LwKlF3LVNmnZSK35U4uhMVNU2dNyXxDpiCaXBqIrOh8TUi0sBes3LjpZ6XxUmaK36dwa1hWooi58bOR5mjVDnM5J3HSuQwymTUp2g52TDpJ82tVVgIKT/bYp6a4D2DI6RSTHEIvBhd47NByHpXYQJGPTY2hr7V1tbiPBqNer1eXNc0DT9xPZ1OOxyOpaUlXMHJ8vKyx+PBKGRZnp+fDwaDhmEQUNnt9mQyaRrm7OJcndMbGp/0tzZGZ2Yy0UhVW5ueSsZDYZuiZSzdVRNcHp9xuhyZVLZ29075S1/6UhG9YaS3p3/YpimSorz1TldtdTCeSA1PTAWrKmnRMdUSg3CZrwRbQoEvjySzqwBZmS0qAE9irWHaJSmpm2+cuzhwfSwYrLJrGvUYyyPia/wl3hRrEBAoSjqHeIuwFo9dvNpj6kaFz4ffPQNDaCpjmNUBPwceBgwEE5yDiWL+xxtvX/a4nFd6Bmw2xe1yxVPp189d7O7rWwxFaqoDiiLyznGoBJ2QFRrO2dfedjmdLpeL90cESpgCRsQwUDfSbGgEsqYuyRK9gnU0DOHdyz2Xr/VMT8/WBIOqxjHWYhiBx/DGq+e6An6PxsduCVlLkEGmxPwA+ImwuBy5fOVac2MDJwTSwPD4G+cuSKISqPTkP5rFTz48IjHmfCjidjo4/zJo3LmZzH061zyGrKqSIgP6DZFfNfCJu4NREM7HYrFMJoOZGh8fn5mZUVUVsI4Tt9u9sLCA81AohL8A8UgkgmfwJK5MT08DQ7LZLCb22rVr8Xgc58ANvIi3KqoqlVgy0jsgSLoRj2fmZi1VFlVVTOvxpWUFgBxLYEr00LKpCPbq6lXMiNNT8Wrf9eujs7F45h/++h8vhcL914f7+6/j7tW+/pmFJUDFwlJ4ZGxidGpmbjHSPzyS0YEc0uDwyNjklCypi6HwxNTMwPBoWre4qCb82defT+tZt9fzh3/2V6F4emFpCdAzOTOb0dPLkcRyOLq4tHx9dGxiZlZSpEzaBPiGIjGwgnhKHxgZeen85UgkgYW71jv4/dcu7tu3P5mIxVOJufmlgeGRucXw2NTM2NQUnp+dX+jq7V1cCmG9r1wbjsWT3dfH8Sg6v7Qcf+3tvqNHjl7uH3vrnYuJlBFLJqPJ1HwobErK9dHx3usjmazhC/gVVQtF4mOT0+iSzuiv1jd4fWx2XpFtiVS2q79/bGJKkNWZ+aUrPX3LUTQuJVOp5156p7ahuaW5WdPUhVCku68/bQiyIi8thy9e7X/j3ct4LBpPXu7pwYobenYxGp9eWJoNRUYnp7v6B/GhRDJ9qXuAU3vpas/gt198tb29zQKzEqWJyemB6yOipMQT0anZxYHrQ/F0emRi+jd/+096hkYj0chyPDM1v7S0vDw8MXltcAjQISvS0nK0u79/fjn8B1/76++++lY4Fk2mrWt9A1idHNW7aw4gAzDB6XSCFTQ2NoLeA6BxglsZfvj9fmAF7uIvrldWVuIZnAAlqqurwRDwFxdxF6+ALTQ2Ndb4A5LLqdXVOAPV7qYmqbLKXlGViaWlCrevrUn2epKG4WuolYJ+T2MrGI2yVsTfvb1janrB5XL+4ueeASYshEI7t3f+9ffPxhPp+aXLn/yxD33nxTdcbvfYxHRTU/3c3Nypo/tlwewamQqHIh8+feJKV1c4pmcy+vbWhdOnjkxPzyXS+lMPP4Dhjo4v9HYPTk5Nf+iJR//1b3753//iF670jNbWBV74wdn9+/de7ur+4mc/+vobl9Kq+sr5K5/+xNPffv4ln9+TSGYVTUPH3C53LLK0tDBz/PC+cDTxm1/+i0dPHn/tzRcfPnHgwqWen/30RwBbA+NLL7x0+Wc+84zXp0G4czocYFZ4VwGAK/LI0CDEku2dnd/9wWsH921PG/rE7JzH4Xj17WvHD+ysC1YN9A8HKyqef/F1t7diZn7hzIl0MpUdmpheXI595LHjZ99821Qdh3a3Z8dn/89Xv3vywT1eT7TC44T4EgxUNlf7Kiu908uR7774httl6x9aOHFi7x//6Td3bN+tyHIsnnjh1bcdHnt37/hjDx36rd//Vn3A9eEnH55dWuoZmBy6PnH86EG7w03L8FZXzyeeeaq5Lojzy71Db56/rDnsc8tJt03665fe3tfe+s7VgUMHdy/HhcVQVFHV//mV51uDno88+fDo3PJAP0Y5cfLEoT/46gs7WxsMCZKANjMHmpP59ndfcvkDu1rM2pqAyARj4UfOFYgvufmBk6qqKroOgYdOAP0g/DabbeN2Ci/i8Pl8RNYh/zgqfKYiaYrqrqkzJLGiVbO4CEBPGoZeW9corOjQK3jAuhWs9M4uR4enFk4c6BibW4qmTbDb2fn4Zz72xMPHDnRd6/VXeJ8+c+L4vs4ju9qffOjYUije1T24vb19Z0cb+JhN0554+PiTDx+OxOKksiiylNeKDY9LcbhdXX0jzz756PjCkm5k62uq6mr8zzx2dN/29tGphb6phYN7OxuqK6/099rt2o8/+cjh3Z0goni5ran2H3/h09Mzc1/+yl9Fk9mDO9p/7JEjO1rrHj22b9+OjtByVFW1nR0NmkNbDi+rsp2bCQp6hSmroqeiyu91RCJhWdNsmt3lcEmW1FRXU1flNw1wTg1yl2GaDpfzzKnDZ04dnApHL/YO7tm+s7OxLhSO7N+9Q0OLpuB12Q7uaDPSGZuKOYUSIofDka+/8NIb71y+1ntdldT9e3bLknX+Qu/phx746BPHmxpqr0/NxRLpQ/sPQHxJxFJVbvcX/+4n6oOVDkU5vLttMbTM9EWmpXDVwYB2lFPS3r7a94lnT3/hk08PXh+KpbKPPbD/w0+cMrNmQ7Dm1PFdDx3ZC0z2aPI//NxPBPwVLpt8dHdrIpu52NX7wOE9P/bUyX3bWjubm5596uGm6uDuzlbVyiqyauWUlXvjABqsZ+Esez1nJJAYcCs2LJGCKzJOVA0qIHQLiz+C/2HhTH7K5PBVmMAVxOrqwMTE3KWrA9vaWy5fHRgdmaprqI2nIl0Do1d6B2vqa0NRTHUmnkhks3o8HoW66a/0DI2NBqorW1oaQiA+2QxEOl1nHaqpqTF18/W3L13puz44OtrZ2eF0ub/8je89evLw91+9hs+7HPb5cBwqaigcc9ohx5kgYJ3bd7U2N4/PLA5MzF/tGjWYIiiMjI+PjE8cOXY4HM+i/VQypRtmNJ4A90xDYEqkn3vhrKzaF5YjACqIRoDqBFeeGJMFMpl6Q2OdJYsjk7OiKvUOTV3qGYzHk5pmP3h0//fPXxkYuA4SldX1RCJpZNPJWNwmSAGPa3h8rK6lqjZY7fO623Zv+8pffz8Uix08tGMpFgf3wLd0PStr6qc//szDxw831FbOTM3pGX3P7lYA+pXu631D00MjEwGvezkCbF3cf3iPJclV1RUOm3bpas+l7nFZdURjmAELYyG+fGBn5ze+++L1yYXR6fmmmqq3L/S8ebHP53ZBu0gkoeClo+kU9BTMxtDUPHhmc0ONpipXLnV1945KNldoMdRQX9fVC0luMhzPyKLx1sWuSCJbX1fZ2tH+5b/4diKRggxm3fUW9BLWscnr+Yt5K2DBWshsJpKQM3/k7kg506KwSmMmgoR7brva3BBsrA06NKG9uQET3dJQd/HylfaW+qN7d4imUV8T1FSp0u9xu5xul3Zg757ZmenlxaXmutpKjzPg99ltmtvtDPp9WLAd21sGrk9A8/n4Rx7zQsWza9Uued/OdlXQt7c3Q7pw2231NQGgYVN9cHtb80B/n6Bn9rS3Bisr+/v72lrr21saXE4H1Olu6CVDo48/crShJqgqcl1NwKaxvzjHu9WBypmJiZ0dzeiw2+2oDlS5XDZcdNht0BfT8dTA4JDX4Txz8qjf6xoeGfW47Lu2tUJnu3Lx0tHd2/fv2QmRoSZY5cG7wSqbaq/0OPbt2TE+Nh4LJ1qbaqHPjA0MP/3Yqepqf9fFbq/ddvrRB512UBrR6dAaA5WKZAX9fqfLNjI04nQ49+zuiMcic4uLuzqa9+zoQH+G+6677JBdAy6bVlsNll4VDS9m0uk9O9qqA+iUHRdBWerrauyq3HW12+dxHzu8Z2piaiG09NTjD9tVwed2V1S4Hara1FANHjB8faS5ud7nsdcGq6qC/nBoEfjf2dy4d2c7ZOhr13paGqq3tTf29w5UVVVGo6nxoeGnn3gQK0tGP/GDve2wCn/W0gWyXTAWreuyouQ06cJOALNKSCVW2zVbOXnTnmUwE4lQbN+FtMb4PhZMlsi2aIgimFRWEtXCztBaw3Dh+eK79C5uAqU3MlAwiy0kArlk/2mtNa9gac2PZ3NbVCtPWwUhs3TeVrXEfoBZSbJY2j7tazAjniSU7mjkmjAFQxLkwjLlWhNMqZjD82VaZ3UKC/QB2Gx8L5hQtINGuwFWjpPmt7TIwM5viYVdHMs085tWVsG6LRYEX77zlH9dyFnlTbJt01qLJoE+v83xKG/L5xK0QMZ/boO3cgZdq7C3xa/nd9PEXIfZlgIBPe8U32ThmkNul8Aq2X4qGPKL2hRy+xs58Lbyln2B7xms7CcUwSVtV/Ah5fZ0LM6GhZW9MpHgW8phqZCbmpIdosKE5zcocnBPJlQaIx+PSHNr5VoT+RDFfAtSvnub2pfcwoQ1CseaLdgP+uzdvilYr6U1nHbreP8OqazCsXY9bm2B7oRKtsk218PwW2/85qdgvdaK3TfWqno3ZSfZOu4UJkSj0YmJiaWlpXg8XuwQgivhcDhvhTVwXlgY2g/HCS4SH6efeX8Kq3DFyh/FLRevNFpOJpOZTIa+jp8F54XCu7QliccMftDXU6lUNpulx0x+rPLVWc3ldF2n/tORSDCLDf6iTTEvVBRGiutoDY1PT0/jK8V9LhnOikpjGMWOSXgdjRQ/PDs7i2/RAxjL8vIyWk6n07heYAtYCHqmWFLCFTy/dmbwt2S96DzND4y30KW818zWUXooaz1AsAbMZDky0tzcjHm32+1er7e3t7etrY1tYldUhEIhTC5uYXJxgrs4l2UZ042H5+fnATculwvL73A4nE4nFglLiFu0o45zn8+HV/AtPKAoCuDAZrMRIEYiEXwXkDo3N1dfX49GZmZm8FE8gxbwCYJ4tEB773gdj6F7gUAAjaM/jY2NeBftV1VV4dMaP4DJ1CX0FnfRK7fbjTHiFuDvwIEDGBTtaOIt8m9BU3hscHDw8OHDU1NT+Ba5teArhDatra14Fx1DZ9BhtI+LeAWdxGzQkNEBVVXxRXwCE4tG8Dp+HjlyBBSHGe9kGV1taGjAT7SPj5K/zeTkZHV1Ndon3xtMFF7HYNFtNALkIQcbzBut0eLiImYAT3o8HiwTuoSmcIL+YPbwLnpVWVmJoeEnntySxEqOFSsqTQ1mGZOOn5jQoaEhUBRydcIyE4jjAUIGQAPuYm0ImDDXNTU1gCQ8g3MsA5YHK4HHMPtYBiwYlgcnWDxcx11yL8G7AA68iDXGT8CE3+9HywCXYDCIJ9EfgAUuEilFO2gBiwoMIVqO/lBPCEnQGm4RsKK3RMgBKOgVGsHreBIn+BZGhBebmprwaXwO38KT9BYhORrEk/gWAB3Qg1sYOP7iYQJKNIIT4CEADs+gJ2gffwcGBtANmj08g09gloBOGDV+7ty5E42AyaBLGAtNL2YGr6BL1ENgCMZLeIIG8Ra6h5+EyXQFE4hxoYfoFSYfbRLC4AGMuq6uDh1AtwmdMDN4DH3GV/A54a53UP0Ra8xYTswvgACTjtkEPNGEYtZwiyaUYBrUDhOKqccJZh/nWHWATk9PD4gZnsQaE3Ri6tEU1gBXcEJwjwdIckBraAQfpcdwhRAAL+JkdHQUSw52RBwGD6MdPAzII3yjnXZAFcEiOTMCEwAfJBKgDyQh4HV0G1CCr4NvAOZwEd0mcEfLeAyjJmTAWIhT4SKGgzGS5yM+gUYAf4BFPDk8PAzOgGdoKxRv4dP0Fv4C7nEd7eBDGAthAjqPj5JQBLCWueciEXhyLENnMHwME2+h8/QKDRCThndxFyfUW+4sKGIImB9aDnwFT9LAMQP4iweIsWDIoEr79u27ofPCFia81wMLDKABHSo4C9yaTkzkCqCAlSPx7Lar3e+dIpLkQ9ThXjB9McaI3hKT3wL9G2ACgQhJusVKKg9uyLnOC3mv94LdvbiRwjMFh3t6hrzkC7eK9enCrYLDNunBxehUuFsMxGtXtMgd3yzuc/EuQXHHCnrt2l4V2i+2xK/ealhl9in7lQ3M02vDfYq/UtaaVNKTktbWPlw2hIXmZAv0b4AJxEMxZeQZCyqCK5AEFH6AI9Mk4hyyO0QR0gcKdgm8AtmDMAcsm/g+3gIpgpCAu6T1kuBRWBVi9KCveAXXSRaHVIbH8CFqEC0Qfsb4QTo0rqAPpIiTHYmkbYG75uIBkiJI/cVftI+v4Hm0Q13CT5JkdH5AdsJ3cbGAEoRa1DF6HscW3NzntiMsP0AB8itBZ2HhoUFC64L0iXPIo5CbIY/iIoADEoKDH3gRQAPwImQgMwiAiaRVkoYBp3X19XF+EMmnWCQSM8gmA/UUP0kWh2gEuQgneBdyM2EmRC+8hfbRPWoKgjU6Q6oz2T1JPsYDpP2TggHcRoM4x3UoHhgmRGoomgl+QNkguxk6hnPcJeMs/uKLkP5J0Wxubt4Cmvt/PyGVTkMjBMQzTZTv3gP4QA4JFsleyY3ZzHUZwMo0RVF0upx4hln0OegTFwaSVAUClZV+ssPIilJRWeHyuHEOIHPwsAECWYg7AEegEJmJYvEYWUjwIWo2wA98C7yCBBigDamYAG50lZvhGZsCVmSyWbzrq6hYWFzEM2gQL5I70Aw3UgGaSc8mvROgn+sG405yTW0tXgHWzc7N4eGCDRSv4ARaL/ojFOUH2DruW+koGo1YpgUYSiSTLqcTMC8KYiqdUhXGHABSgBu3yw0EwAkzDWUyPmbEZIIKniTYYkZ3WbJMSi0gZLhoAckFoIYH4mwjQrDZNT2rU+wiORplM1k0yIh9OlXhq4gn4pIoMaGIZxjA9XQqTeZ89JlxqmiEWBbovdPhpCi+nOjMQjINclqyyPNHlBQFWK2zv5ms2+POpDNAXVVRkqkURppIJjBGxrskMZVMAeuaW5pj0ZjKZSr00Ga36zqzgwG/hK3t3g+U7agk+UQuU0P+XFzzWOFha/Vb4upn6Dq5fVpFTZX4skprGi/bTklPxM2lhSlxzrSKWiNeBMQXy7nXCluum/exnkCJHr7x3A++8e3v1wT9OtvJlwoZR8gBVCInU4F5jMrcPZW5HJczkhR7ZeZgyDIL0VjcC1TIu3auhmOLJDIyNIk8on8VkK+YR7hzqmEWsmmsuGcWECGfNYM+kEuAYeYHRRkAChYwsjIVTDGKLBmmmfOZzfnWWsVpNYQtK+R9iQm0qsFA1YNH97uZRGRuLAjfbFopS1yh01aeaku3R74QV7Mu62aeX/lpleNgK5wwP9pCn01xFV/aOu5RgYiWWixOYrV1bB1bPCFPufMupZsipjd1d+vYOu7eA1K1VZrOMS8Wc35xQ8WzVOvM/xbX0buLBQ7BWk9zLasKC+sr31bR3w3kN2v18xvIeGvHXfYTJdetNdaC9eavrIFBvFF/hHW+LqxvV9igzxsv5g0n82afsdafB7GcxWIzIxVvKflrGTFY3ITtaOvYOj6I0hEd0Wi0JMzljjAky/J6vVt+YFvHXYoJANBMJuNyue6chxaZLAnfNvBXXevNVuJhVuKCtjb2ejM5otf6wN1UZun3IdilxPduvQ5sstt3bXTOeksslHM3LOu5ePt5ArkZ32lfxRs6sRU7gZZkTi/riLrWwXM9l8+yrqwrSYvLvbXeGrwPUFWUM9wsyqNhrTcVawf7Pnf4vQxzg5Utu9a3dzjKWux8HzSHjT+Bu+T+RGEx5Eg3NDRUV1cHmYqCHv1+P048Hk9tba1hGGNjY4qiNDU1FRyPFxYWKPKLsmSunVM8c/369UAgQC6AVVVVkUgknWYOHfg08asST+ZiKhWLxbLZbGVl5Z0jtODPGKOu69XV1RUVFQIPXyZfRnpgamoKHUD/Kca6tbW1BEqKf1IMLcZ7t6EB5hwjJU9nosJYCPSWwrMwAw0NDfhJ8YwQWJaWlrAcAABcBADcrm6U5sAr9OZOD369rxBgXb16FRBw7tw5AOX4+DiWHJM1MzMD+MOtbdu2ATHm5uZwnUI933nnHUAJZhDN9vb2ut1uQDlmilIELC4uYqJHR0cBuxQujAl99913MdHUMl7HnOLn5OQkgVp/fz+lIB8YGACovfDCCxSKiZ9ArVAo9IMf/ABfIcC6E5hAYuTIyEhfX19HRwcGhW6gz+gYEAPdAMZ2d3cDgdGZV155Bc+gw9RtTBreouDYwcFBiiB/6aWXMBv19fV3m4yEZerq6oLAjM7jJzq8zA8sHNYaowD5O3/+POABiwVkePvttzFkQAKGQ5GDt2U4ZTCBImvXSqJrvCqstXL5WpZXtqMb4xuFN2B2QOQA/YA8TNOpU6dwzvxM89kAyAUQfABrj68cPHjw4sWLBP14slBpAugBAMIDIJyYOMxjMBjECR4+c+YMegJ+0tjYSEERgCE0C/jDixRCiXfJp7CmpgYIA1TBIuEKcID52/IUzXcIsDAJ5HVLfuPoP0YKUMAV9ISCPzEbYAvEQNBhTAsGgqnDEDA0ilAF8uMET6LDYKHC3RTBTM6Uw8PDpKBisdC39vZ2LH1PT8+uXbsWuU8xBoW1xupgpSApYP5pFTADFKr63kckrSe6sBS8qVQhT0mxUFGin2F5KC1FyVEsgt+sxIURgqiDgIH44S8AF2SPqDKaIkJO8Tf4NOYIfANkA7yCAnQAwSRIYAYB6GSn6uzsBDQDDQAlALKWlpaXX355dnYW8w6GiwcoLQVFKVH/8S7JSwVejJ4AFvEYuYjfaUBhyY85baJob8iHQAnqFUZNESB4Bg9gBijhCK5jmHgYQI8OA6QwUYA2Cr24C3VlCtLCqqG3WI7du3dfu3YNqE7lEXAdFylQjPIMbd++HfNAiVduY9Ka0p01ICVlsgerAtBgcjHpFONPWVJwAOBAdMkBGyQZCwOSg/7hXYr5LASyEXgBhugKFozYGWUA2MB2RKIOekJ5A9AOoB9SAV4BhUPH0BSu4BZoM4Uo4BbWnlJpULwb8Ra0wF2p7YSfIJwAawAKugECDyTBAlAUPM4p4QBeef3110FET548SdFCuIhlwIsQydANfAVDQDcowOjOAUqWHyQiYqT4HPqPDqOHuEihfHgMc4IhYziQANFnDBYMBLOn8ITpRIwwEFKK7kKNmZJKUYwXBWnhBCMCXOEEpAdXAPdYX8qWgIcxNBAjLMHtokflMQGtz/EDXcTHKKELAQ3OQaQhWmC6IRvgIhaJgm9wC5BENSDQyx07dmAAABRKJCHw7A+gxJvBhOKY5kIIZVlpjahCcezyJs2ja+N6C1fAZzAigrwN7I/vWzG/Qg/XhiAXdwzdRocpxuMeilQuWdO1gy0ezgaWwNuPCUSDKd2LwMPWiEhTXi0SXgH0+EslHnAL5+AMpO+TdI4ncQt0CMgDLCekx/NEk+grG+e/KIltL3hQF05IZisG/bWvF8ciF6CqGHOEfAqCtYUu1wvbX2vOe+8bBRsYbYuvFxIgFHzIi/IHr9hYixMel2QwKBZcC1dKpuhHolKXpqBevYjFK7V2ou4gTyi2rJcVXUqAeL25W484bQYTNmihbDKI4gVeu6hrJ27tKMq2X0KZbguUrFc1dS13Kv7uxkaItfNQPMCyc1Ly2G2nsu99QkoWrtDVDdbuNtuO1i45/aTccsQxwIVpcolRUB4AOqFsUyVbOcUNbt5WSxbV3t5eSI2kGQs8bwUke2gyaAE8h5YZ8lhPTw/l1YLcPDw8jFssWDQehwBdMPxjCH19fZQkC9oFGqGEcLhImgB9FK11d3djKsiATWkwqQWo8rioKMp7WXU0+OKLL4JbkkUc8j0uokuFbkCAxDkEnkLPIShDlcTD0BAwOowRtwAQVL8V79I8QCLFPBR6TqPAgYtQHgpsGXJsV1cXZfLDY/gWWqOFGxoasrFaTOr7iQZYo8HBQfSf1FRoRwMDA1hlTBEuYhQAPEwLhoAVhOBKuwq3MdmUdMPdzeIDswxyDqEfEImuY2EASVQkFF3ExcuXL2Nh8PPChQuUm/GWZQkiBpgOfAiLCs0Jg3/33XehvZCO1dzcfOXKFXyL3DfQGagolHQRUAK9llp45513zp49S1CCd7H80MDQDsaCxvEYruMTlF0GWEd4/tZbb0G9wWP4KMDu0qVLBTT4y7/8S0odewumGGoEr58/f56SWAo8t8BXvvIVfAiN0yYJYBFYCiTBp3ERrwBwoZuRro+ek3SKRrAc6CrtNtI8nDt3jozuWBFAP+YEhIOMv62trZTABg+/8cYbeB7jwtcxRcCo119/Hdfx1p//+Z/jYeH9ys7NKvzqOgaIBcUY6dNk0cZg0UOMAiiKCSHcQIfxF/28vTnXpE1uABMcY4qxfugBlGYyyEBjBi2hfBOk0QNfKQHRbbFwYe0pFQXAAufHjh2jZtEBTBAl+sVPICdmEGCEGQRC4i/toAECoNYfOHCA9ApKFQMOAwTALcAT5hfA1N7e3tTUROYBIroYF+gQVT49ePAg7RsAQ8BhPvKRj9zy0GgaMW8gdQB9dAP0Ah3+xCc+IfAc2ocPH96/fz86v23bNko8Q9sFIISUy5GMV/v27aMUyOje8ePHCyIQZbwEUcAzeGCeH0APfIVS0JKxi6ANH8KCAtSA82gQa4eHAWfPPPPM+6lwU+JK8HwQKaozi4HgBBexBFgXSvOMK2T+xuqAUmAIoIMl1PaO8ISyB2gzFgadBriji9CPMeNYXVxsaWkBPO3evbumpgYXAXzvMfkmyaxY7FOnTmHYoBZ0nZKNYprwCYJOEhxra2vxdUA5qAvACH0DycQy0xbyHM/aQk4cgACgCuYXQ9ixYwcWAOd4GBCPoRFBwqcJ63CLdp1xoB38hCBBQtotH+j8iRMnMFGg32A74EWj/KAkUbRVQkN+6KGHCgIbQPzQoUO0BYveYry7du0qbMDRCZnYjx49ir/knrBnzx7aTHzqqafAgvBF6gDBEO1F0DmGCZaIt9ATTOP7hgm00BgyFhT9wRoRGSUShqneu3cv1hd8AEMmgoWHAXJYSly8XbzrBnvMa3c981XlpcJfOgq6AS4WQOcWvC3WaiZYHjwPGMXzAA7ANIADVIGM+uBRuAKoglQGmoefkAEgswEmcBFwgI6B6nd2doIJkJxAO1BAG0AVqCzYC1ojzkMV3smIDIyiTQPIJ8QfgOpoH8IJOvNedpfJPYTSkKEbWGAgAwAd4gGgFh1AtwGy+CIlXwNo4osYHWXJRudxhYQrgA6wHQCBUYCToD94DJCNBnfu3AkRgqYL4wJBxXDwGFkF8QxRjQceeADzgDHic8A0SgyOUYOcvW+70RgIrTJ6iIkFX8K40CXKmoyR4goWCGQL3cPQsBAYMk6w1kQZ33s/y9uObrtifsu2I3QJMwKgByGnihuUYx238BMLhqaw2AAd3KKtFtqMxE9gQsE8ghYgZUL2IF8u0igosSTtlFElDoAIsAIAgVfQLG0pUI54fJe8jFgOGP7zvZgL0W2sPQQb4pyUegzfoq1rrD2GADjAFJGMh54DUICE6Dmu4HUq7yDmE09R4u4jR47gOoQcdJWSo2GwpDKR8xXwDVwIk4m7RDgoXSfNScEEUuzn9z4cGD7mH2sBQKcdWywxuoSeYBFpROg55Q9HbynZOM5vo99RKSagE+9DLmV8peDvuRnQKfHBLD4otXpZM1yxPX6DxzZjDr4TW2mUpLWseXQ9Y+gmDZEbjKXEZrrWgincZXUV1lvZDQzKtyiyrp0pSqB75+wGBJc3ZUEqgMLajadi+C7xwi+eo/UeW4s2Zfc+hXXKz72XbWMS7td63pdsKZZsJ5WNZSm7fV52gAX7eEnQwt0QwLABMq+3sndqZ03gBRBof+CODljgPnZb0Ztbx91zbEX0bx1bx81bUe+t425D8g2KwL8/oYI31asPGom8P3nCVmHJrWMLE3IHWeXIBkfqcqE6DvTv2+VLt/mDYsocDofL5aL6QLQlH41GyYSAXlEcEqmGd8LJbO0UUc1mKr5WmBB8enZ2luKTyA+C/JpK7Bb3WYmq+xATaEX7+vpGRka2b9+O9SboJ3ON0+mkGLq2trY7DWrF/VlaWhoYGKitrcUJVSfC38nJSdzdsWMHekubkl6vNxwOA/62bdsGQLxD6Fpwf+rv7ydLLqCf8JMqiKb4QSa+ZDJZVVVFlb6ohBIe6+jooF2dLT3hLkZubh8ElLe0tMzPzwOwCgtMoXNADKrs9r71R+BmXErNQLtClFoKB/ABfcMt4ABt/SYSiUJ08h3iWjRFmBB8EfgGHMAVdICiwPFp/KWQbtwKBoPERdE3t9tNmEC1hbZ4wo/mABxv3vWNZI+5uTkAfX19PUUakRwC3KAVvWGyGQJEvLixDzYaL+yQrK2cWegPiT0UfFwoLlpsGqco6kLR0fXQ4GY7tgE60V2q11iQdqhgNvGxQCBQbNSnjSYay1pSUtgJwa1b9lrfwoQbQ/bi4iLIJy1GIY5pY1AmYlaykVcI5trg3UJECL4CsIB4sIFYTCXbite+UMx3rZWmGPRL0zOvE85RtmO4S9EL68Ec5bkg/67iasJUsL0kGKu4Dm8xX10PkdZ2jzpG5U9BfcBq7i1kuGf6SmEZEC0ICMCpb2PWp7UHCTD0ieXl5Q0ig8mpmCLNKVaJoAQwdCf8ViDAoDPUsRJMK0sICklQCNYxb5Ttk+qjFgwJmFucUPYAIV9Q+KY6BlEKr1OeNXDd25h1YgsT1vSVu9aNj49TDguoAXfCfEFGm4sXL4LiPvXUU5vRWQnup6enqf40JVmigI3b6CJG2Hj16lXwxmeeeWYzzJwSQBAyC9y/kEJ8aIwkH5ILOs7B2aAqAJpJ6Gpubt6kHx51DEr/8PDwxz/+8eKQ6C3p6I4oCSC6FFdAoghE2DtnBjX5QfwdYA1KuYEQQq6sVG6dTC4AqWg0Coy97QaWzXeM8v/hL0CcrFXk4w3cIHsRBBiALCU4o2geyFrQDSgDAyVKurWOoTVMxe2NKdvChBVMKPhyF/S8O23wocmhXGsbSL2kwJCsTAploVTubcfV4sw0mJANOkbBOpTOjJ4h1YVoNqnIxa6pFB9TuFUIPrmFGYNsSdsmW5hw+w/yGC/JdH2nO1/QIDf2F0TH1no7C++Lu8cGYR74OoWw0V5KAdzXmnrKejjfWucLMwZN5t6Ske4lTPgROlDcte4bG6vyWy4nmz/WnUTTtEquWOUfNHKF026EUe8R5X60i3rXgtQGdHcLDd6r7SjvVSIWZ1DDvJo4Z5W9JYuDPmOCoiVLimkaFMBs8VreQr6koCgVsVrTkmSpkGk4n8dOWFXxe+vYOu4qnsAS/sTiXX39y9FoQW1aWFqKRFjSAVavkx/MxGaJY2PTeCOT1ScmJ9ktPE/aliwV583GTzLnFaL+ybyxtQBbx13KE4gJjI7PTIfCTfVNV7sHAoEqURZfevXNw/sPTM/MVwVrwstLds0Wjsa9Fd6RqYXmprq5UOSlc10f/7B/eno2mc3U1gSnp2aaGhtGRieCAb+sKMvhsE3TUoYwNz9XX1MzMj61rb2lwmNn7MPaKnW/ddyV0hGOrG7q6czI+OTFnqGG2ohupKsbW9691q+qij+UtPRkc0tjz9CI3e2p8lTouj50fVSVlXcu98qKapjZnsFJRVVml6IOt3u6f9jIZPbt6pycXVgcGE1k9EjSuNrdZ3c6Kj1tpmWAX2wtw9Zxl2JCbZW3ranG4bDPLS22NVfrGWN2PnTswI7Z2dnqmmClx2kJZqDCU1tXY1O0VCpdXxs8sG/H5MzsxMwCjiMH9i0sLjTU1dldzkyyKhZLRGKxxppAbdA/MT3T1lAtGSmfw8aVCaZbiFtMYev4UR9iuZwOZg40yWDPfuSy2hdXgDSZ9lx0wiH6cnev3eHc2dYMNVpixD4n+ui6oSg5Dy08a5rc3dIyBNaCuCUebR13IyYQcOdQgZHt0meKtrRMIQfs0IBFvonDk54bJgdvBuaWkG/IKlUIPiBWo7swidDWsVlM2PwqF9rJrbllcsOozK/ksAAfWTm38g/n3y3Cj9W5bm5earrZV6w7acN9DxtbWzaEuwkTiqvXbIaQ860EBv3vYQ3FW0VF8WZgKPcM/YfDaxFGr+PEUTYnV9ki8sUIkEgkCrUYqQ7AjQdEG5riRkY1wnZTsHJERhDF1WRJKKI2G0+HlR+7eEN0FK3c2opWAUTywu39qzELRSnfNknY0qnMD156LZ5IyMot588TNwHZVhFL2eB5a/XFQuMrUM+CHDJ6MFh5+uGTxa47G9DyshNStr48NUL5Rml/xev1boKNFLYjGXMTyz5AcqbFtj5NxoE5Oq/PrXNrUUDR3K6nmGvLzM2TuVEbhR88QAqir2XJinL2tddaWlqam5sLG6b3tASorMcNrly5Anp29OjR8fHxmZmZw4cP9/b2ZjKZQ4cOlVRbyU2paU6MzywuR1SbVuqqcSPAvw2s7eabAoGOJTMEAUNDQw6Hg/L++v3+WCxGFUcpS2w8Hi8k2XU6nbiLiwDxyspKvDU9PY1XKCCB2wb0QmZi2n8kTNhAhSCR0hIlANnz3//hQiTNso2zSZVo/97KMTHT0AGF2aDfY1e0WCKuOV2Wye8XMTrCIikn+0l6NoszRVUzGTYiy4QSZ2iqhp+yogqinExE7TbF7nAYVk62FAseryseBqzVdCqpKYLX67OoLEsoImuzwITiGnZl8zTeEx5QSlnKBzigojWvvPJKIBAAHJw/fx4LX1FRce3atYMHD64aW/6/NpvmcNhUTV2fJ9w13n4W8/4wBJmqB3R3d2/fvp3SSmO8GGx9fT3Fs1+9erWhoQE/QQjm5+cxdiq9g4tAiaamptHRUbQQDoepjgQIRyHpdAnEl5NN2ERK+R2Vc2+f+w+/839dbUct1a1bBhCBi6+mwoETj9oVdXh65IuPH6j0enuuj7e0dWR1Q7AkDnck5Vklskx+0jMcL4x8X9L8RkZTtNnppSqfranRl8mwGB2L2iCmUURkcCsZtzKJxQOBau4VL7W2todCi2+9/W6l15POpN1uN6s3Wc5UcE/wCmU9MQDkH6BA3u1gDoAJKoW0gdM51pTjh2mVyJ5F5Sr5+oirVW2rVLZddS6uUc2t9cXasu+WCEj5E2b7tXgNC1t7e/uVK1cfffSRy5cvUzAX2CBuAfN37tw5NzfX19dHqYHGxsYKeWLS/ICEcOnSJaAEZZGhsOnNuOZzeBNTydT3z57bs2NbTU0gWFtzcldwWpLdfp9uZPJ2CLIDcJSQVa9V7XHaNYfq93ndLkc2q4uCXGZC1oqNJBTxNbByTpOmomgVXrfHpdpsqijnnMrENdoG0FWWFNHSVcGlaDZwEo4ppt9flUpnRidnXC7H8NhkT2//4YMHgBI8F3+QZE4AEuCHojrvPekICwnqCKng5MmTIHILCwsQk0AUcQuQUSoRWqThWZFYdHk5YtNsgJPVovRKSGuxW96PlCew1Ywn4skEWyGA/kMPnbLb7QcOHABw79+/H2QekwBa4HK5IOJjLfG3trYWq5tKpU6fPk0JUSgbyuOPP46LuIWfu3fvpoiwG8d8MgC3TEn41ivv/O633+loCNa4xKHRSaGm1u42MswSLRZDNWbYsIwUuIBhgORnUmlDh6RjSIwBrPoYns9tCVklhCLfUh4TBMvULQv/mPBvSCbXgK08bxFXNG6WEImJUumswesL01WePkdz1tSgqWaXOx6NXbrSZXHp4PKVK9Bk9u7d+/LLL584cQKYUNiAet+M12srC985K+rKAUI4PjmjGzo3ofKZtwqUzyoYanIhI+srwu/fTIlMsHVqamNjg3S7cx/RGizzg7wYIV+Vlu7lkjVko7PvXP5/v/JyQ7BhaWJotusHjftOV9RB7MkKeapRCPyRFDW8MP2hoy1NzS3XrnZ7qwKQ73VDFAqqsFBkrC6vPYkrmCBYYDLhxfkKt1pTXQ/kXwMxVr4NII2oKur0+PCO9nqP12fkc14QSpEgQSoRdJv5+QV/hauxvoHHylnBQDAaizmcTuX9jd25Kf1E2aCVDewnZRqS5ebGOnOduRfyqRbku09kLCTwWWsMLTGbltzaeEI2o+WT5WZ7c129TQFpNxOz0fCsrKmg6Ez4XwWPDHWZ/EKAJ8r+gH9ycqK9Y7tO+/viWiOqdQNVjZLlMJcXsnCY3De52PIq5pkJGzD+L6tqIpny+Sr0PBcS81ZcmsasnpmfnT1+5Eh1sIqayJrmn379r91Ox9NPnrYo8ccqa/Dtp4D5OqvzUP9aW1vTmUxHe9sNsxMom0QDagUyAJW1WkPPrUQq9bWvP7cciSuaapWajjADEEWSe3a0f+RDj2PCwODJ0lJS97sYNPl29Ur5eCJCUj6pTiGZSrG94qYxIK/PrVeiYjNm0/dk8uIYVVnpb/ZZPbGwJ9i849RPeAL1WcMU14CvWCT7A+ACwSAGMDYy3NTekdFv3b/dIjkC6h2fBsZfihm0WMyVMNuWSQ4EpVyc6xiiFYlGtm3btry0KAlWRVXVxOTUN77z/Yvdw//uF/+Bmo+lLgWd22pZski5TyZ7+3ptDufc/EIsFnU6bE1NzRt/qDwmQFYeHh6GFggFEaBPRa+mp6epKN1aLk8zk8noqXRWtYQSTMAFIGQylYFkBLn2lVdfhTAdjydUVcEnBgcH8bmqqiooJJRVYceOHZC1+vv7SXn1+/24tWvXLpzjImntENMhoOMvrt9ivOxdYNHIlZ1Uld0d9edfm2xrarGnU0ADflMmZ5YioGOPU3wHup7JZGtqa5OJ5PBgT1NLhyVqlmDeinXOYm5gbMnyUVZcbCviSOKKZCvLimFaeSOVWCxFgdhdvHBJtrkHR5cuvfv2Fz73qXeef/WdoSVZtXkCLb/yP/7sZ37izAOHds/Mzo/PLMwvLXuctocfOAJYUTX1NjIGiwuco6Ojms1WVRVAv6G0bEYDKI8JAEHAXF9fX0NDAxBgaWkJiB4IBACmZXI452zQAk8BKOGftZL1iZg5kyAVRZZkNqmUjxGPgsNkMplQKARkA0xTBVKbzTY3N9fS0kJWfMrnjFsUzv/aa68dPHgQuFEoO1eyrXuvbuuIQs/oSHWFS1Rs3K5gcSGFzKMMSpm1ink1QkfO6mx62W5DNpNpaW1dvrQILVpRxVtQtmi7TLUpdlXNMuOfKKyIR6XGN7Y/6PPGY8tc97VWoQF/YHY5YTh8qk3eceyRP/zGK/PheLC2QXO4JNkuuwJ//MI7PzjXPbUQC5mOqVj8YI39O290f/jBHU88eoqD7+3YrubiAxgCqxZZXc2z3zJTHt+xuSVMwLzX1tYCDZgbdnV1XV0dEAAM4erVq9u3b6d8aeXK9Uk8wNMkD9aVqSZyY4mGAalGrvD5gF3QIMFngAPUGjoNZANu4BaIPXAa38WVCxcuUM5ayHwdHR3Hjx9fXFwEZu7Zs+fSpUuHDx9e6w9yLx6tLY1//6mDsmhdHF52VwSSqSTohmWKGT0jZpM2IevQFICLbEqmGF+cn21paqLgwUyWVQ3GNOpMoLrJieDEHgx1cmo6k7b0bJqBo5XbmDCtnLhU2F2QmYHYMDOghmZu0zqnjzBRdnZxSRc1t8dmGcBUafueXU2JRHQ5urg0nc0YNn/AVVlzaXyyQpM6q9QfP9Y5v7Q0NrvUMzCcScSffvopK2/uek8aAjdPsYweFmX0MLgiZG4Gx8pjAoR4Ki1O2S0pxRDg70Mf+tAGSd2y2VQmnRYsW2k2AFGHdISJhozJVr2tDUiFFoJM0rWAEmicLPHAwJqaGtJGKKk1IB5CEa4ALfEApCmqiYgXT58+Tdl77gM3T4fT01jb6HXb+6+/nlqarq/yJOIRSE3eKlddsNnpdrP0ppysgO/OTk3MTk8GahtMNnwhvLyEeaipbxNkedXeTU6tlzYwnzHNXLIm5qLLusMgs0HOrGYV1CjScQFPmqrNzc2c2tuiKRpWuuBqjHVJZVJvnr/kCrZZfEGYqGxams1ZXecMVgdT0eWBsQnNqHykWd3R0Xjs6JFYIt5/fXRqaPDHP/exSq9LZHkh5M0jgmXl3PuLd+4KqubI6JjbW2FaOYFEkZWpqanGxsaN81uWxwS0CEDEmChLJslLVL9+LeTRDxD3n/zUR1lv1gyIxM8sA3cFDxACUOJEapDSZhW+W7iu8gPn1I28qMqUB+H+OkDMkumU1+t87KFj2Wza5/Waui5IXNYULd3gOi1ntqKsqjY7C/RjW5gW6PT2HTuXFuZjkXBFoDqtpynOnHklge6QX+R6lCKnLBseX5XXHzT0nOfGeuAHfl6r2aLJNPPUEGSrEIYO+UqxVQUCMSgrgkTqisQtUlkDiGh5ArXi5FSdPf5jH/pQZ3sbvhKJx58/25XSmv/7H77w5Mmdj506rCmkGm3GNMQSk5H/f35bQ2cSpSSFw5G333kbOAChkRuF2Y4HpOi52RlIN6C5G9BN5aZUyg0awqxm0xmiK1aJrZDtZSrVQX9xI2W34ottl+sVURXuxyORSCmaDcqo3e50OJxM/JBVtu2VzeY3o7kuK0pmNr28ONe5Y7dpkNHMqqyq8Xp9XVe7PJUVjHDwiQotzKrMlsNiRcSiSZNEKefoyqVYVdWS4WXdYGKPoRsbU2WoeKpmn5mfSyVTbpdLN/MbetxvKpPRNZdirdrMo36L6VR6Z3O9kFpMp1MA4Rd+8MM//ou/quh80GP3xjPGl//6tf17OmsDG5dNydnNLIYG4nIidfFity7y/CvZWHNdkCV7NcVLl64shZZOn36MoQH/OG3mNDc3X7x4saqqqkBzN7vHTN4W0DwoY2YhqyYxijVFc9mEpFLZr/3Vd5eWw+DjxdIR02DSqbraqr/7k5/QVDmT1W2aVqj4xLUZi3IVkoxE7WcZBAh0HXyAbpFRi8pe3GeYkM5kVRbERzZKvjmQE06KN9YwUfLi/HxVVUCzaZhJfhsrlbUpWkNjw9jI9apAENO1MDsjW5lHHjklGAUWbeV331ZiOCwmwNjGJ9T5gWnGRERD2HBiSWZSsBCQY4v0c+43K9s1aWphOljbqDMUMVd8XiRZNFKR0HxLXWDf7j0Ly+G/eLHL9O9Qbe5sOm2zO7wVPpZDNuC/0e4LRmPIkrwYjv7G73/9a9cWatzu80uhn+tw/tovfsFpt6XSrI54PddpWVYhCQI5iHMWcwoBklwhb046oszP3/72tzs7O4ED586dg6q6c+fOs2fPPv7442X2E/L7I3abyjzwVM0sUtU5ETLtPIv/66+9hqUifYAsP2BYXV1dR44cwVwMDg62tbWBi7W2tg4PD0M1B/TjLp7HCeVkh+oMIe3+yu7GBhKNxWRR5VJ9AcbEsoJ9Ih4PVlUU68YQ9LFewWBtMpUSjQyotX9beyQ0JwkmyzFFrqXF5vb8RrPFUE5iFr2ViMKSbekyrmOWaFgCgN1Y8bngjk/HjhwcGLh+bWgoWN+aFcQVXw9QcdWRlhy7tneAiI+NTmdlV2NzfSKe1mQpnc46BSkYqNrYwEVICH1+fmHxv/3hN98cSz/a0QBJudrrqqywQFsVVeu9cs3t9hlGmiUqVhXw1lfPvvr9H3zv6Q89ffLECeiZG5sZpfW21cBQyAmPiPHY2Nj09PTCwoKwUTY7kRv/DArV5/+wECazgvNXXA7n3Nw8Xr9+/Tq6C+CmPQGyny4uLoILgQ8ADcbHx2P8ePvtt/HX5/Ndu3atv78fHaByL/cFDqx4PfCgG9lc8YEujzLMKZCns179jAgYyerZxqaWxpZWf6Da46sA5YYWyq15XL/kdkQzd842EOjcIqOekNtQ4/kVhJUIQ24K5P/ysUOQN0S0DZ7EUmGrGjscmmJXZZuqHDq47+ietujSLMifKeQwiwnrguh2Oxsa63Gte3BYULUM6DcQGOCXCX/iicM/fOWt3sHhtTFSfGvKIlnOYNKgfPaNt37v3ER7XV08kYJAtxSPed0gzjZQ0ompqarqoG6CNKjz83Nvvfl6MBD45X/5S5/623+74Dp+0ztr5BkxOTlJFhuqvnjw4MH5+Xno4KXN5dkkZE09a1LlpAJxQQeyWSvLhVqn27UQCmEt0QgQDCCORa2ursaHgAA1NTW4GIlEamtr8TDwAeT/xIkTlCl+x44d6BKFgN03QhEZKOOJZDieVp1u8HFxw6cBV5DmXU5XWa1upcIVryBIVtK80iaWC2kjLQ6oIDMfJ5mL1hBnCtZRySr4+Oa9KsVUIjE5Ps4ccvlms5jjLwTClsduV82EkU1LKje18xFCx3UoUpXPzblfRmIpxFnDgIpKl9Y9MvV/Xun7Bd3aua1trZRO+R/ATCgjhODwbKutTGUyEgiHZXo1bXR6PplKTk1NOxxuJm8b2eXlxVgsfuLEyaamJq5PG5vJ+11eOgJcohVIRw6HA+BIpelIVVhnZ4295fJoumBXFbtlWsXXMzbF42ZFKxqbmlrb2vF6TXU12oEGgwcg8FApF1IeAoEA1BraYcCTJIwBEyA4kc30nivgtQFgW2yNhcmZ2VA8W+uVdT27cQ3IXAqRdQzvRa4iAt/c5M6uRW55q8WcAhEzjXQ8m0ry3R6eviTnEcS2huhEFiVNs3HNAgssVgd8imwriqAz8+EMlqqoDTW+4UjaqdktbtJBM8lkalugwsGXsqUp+Opgn+R26ZahKdJy1rY4Ejna2b4UCpvGSvIrQoPZ+cW/fO4HoZje0lAV8PuGxqZfuDDZ4PdDBGK+6JbpVLXpcASSSyqVdDndqsaKpCwszj394acVKZchfJPFgdaFKgJTMvALOfbEKliuRay8FdX2yU88S7st1ho1C1OoyJLm9hTYX8FCygJQuCJOCEDVkASeD13Ih0HhvFAa7L5REgjY8P+5hSW7wwmGYFlFVpecrzWJLCuklzRUk27nBHdiwXkHVDEnDuUlnbKabx7eyOaaTWrZWCadYkk8WS62XO8sU8xvF2TjpiBLQlq3Gn32uto6ng+X3P4YwtCC4IrNbp9ZDF2bmqsKBLIMQ6Cnig6TUk6zr+7e2e56tY9wDAqHKksuhxazpJmlMEi7y+UmURFoCSYA+ef3zw65Ao364GgiqVfYpZrKKsPQiRiolpAUJLeihKPxWVbqzhtPZiZml58+/SDQAOIi0PImtvk3tp8W1O2ytRaLD1D060Mj2SwzclmrLV8gOts62tYT1IqBu/hvoULeGoJ3vxmOIGEzdwM2v2YhfojDl8X/JxHs0mzIEtO9mGFUkgqOoBK7K+WCoLgmrCiasFaILcNj2N+Ojm2B6jojmy3kBhCLVBMu3pixSBi6QWg5FF2cyGZ0SzLMclzOTMTbm5smJpeuXe3y+nxZIwOpPZnKKJWKAeGN2f0UpjhabL8DkJK1mI/O8uLCsR0VThaManB1hPnmZA3jQld/Z221bLfJbpm/ATFbh4ZvMv2HxVQoqri0lPjV//1NKA1Q/CE1pSKhn3jmKQbZ0s3JDuvmyh4ZAVhn29vbIRFBK8I5JHict7a2rrGiMhTNZLPf/+FrC0sRm03NhYfnaBmYif5PvvjTIA4LS4tV/iqIOmAC4GgVFRVQlPEXMICLEHvwFfIyIrc/fJFCwHC43W7aJbmflAQSwis8HjMzmtH1VDKhCBLbL1NkWcLas+0rnpNcEojMG3oqFZd5aWQeQsmBVWa7DMy70RJzmodp8bqM0roB3kWSEviGzhozdO6bkE/DY5U8766oxPcbfL4pUQcBbmmsy2T0NXusDGmgQD/84IGewee+czHkdTmguQ9H4892BgUu+fT1D4GxiKrA4xtFu6wmYtFTLd5PffwZzsMsSWabEgPD43/xrRe+fnmytbY5mwzzXUVyQJSAK8AeUVYNyVJ1I7w8P7zsg8iuyVKl07Gttk5x2Ln4pIiC/J4wgcz5AwMDXq+XCipCbgF0Ajd27dolrENZMAseF4BVVDSF1P1CEiSsks1mv3z5EnO4S2e6urr27t07PT1N9B4aM3SA8+fPU2n4nTt3UlnBU6dOdXd3Q4IKBoPoDHR3XH/ggQfuK+mIizR1tTU93V+9tngZCw011BBMu6babJokKVYiAvnY7vExDZht6ppg+kATdTwsUKpCYIGe1oxkbX0Tj0HTIWqD+ip6XORyfRkBqSjtBb9vmSsBN9zKWm6jmckkzN044/JWjkzMNDY2rLVxiVxMAi33+yuPH9vz7emrzb6gnkntrKz61uD03xubrHA7/+a7P/S7gkZkTshaKVEDoV+cmfjQpz7vdrI9L12w3rl47YWX3/zm5YmMqLZXVqbCEe4ZK3Hlk2ECECoRDVVW12ruysVQ7NkTO47u2gk8XorFXn7z4u+9MLa/9W/2dNSfeeSRmwrAWrdYnd/vb2lp6e3tBTKANu/evfvIkSNXrlzZtm1b+Y06LtKajL8Xqo7k/oKgQRlqam564823MB7SB4BmPT09e/bsATcAVszNzYVCIRD+4eFhECjwInyU1ImlpSX0BIr1zMzMfSYdkWTodrt27Oj8na9fO9VUGReykBmiOkAerEHMhtK2CsWUmX5JoY+iJmYBkRbFdnLXS92olDS715/VDYknYgF9V9KyqshsT1rIW3hKc7aIfJsMsomMv7KqMu1DErlVwiyzrUBmHKhzdndoZjYRT9g1zQTiFW19mNxNL5FIv3nx3PNvdjX5gvG0DvSQdbHCbv/md1/es73t9GMPCZKqKsLUzPwfPPemzeXH1/7kq3/9xKMPKJr99QvXfuk73UIm8cz2Npvbl0hnZK2YhTEDgAwGJSuLUxM1LVrGSre3dLS1NKQzujwzVWE3fueLx0OhudrgYeVmlIR1MQHiUDQavXjx4uHDhymEF+C4uLgIcFxXW7CEVDIVjyUydpn2mEVLIkLByQnzQg1UBTo6OkDaAd+QhR566KHl5WXyRT1z5gwQgDa2gRs4RwfALhR+4LvAE4fDQfal+8/bgpUmsimyZKqMHkuKzJVdGQCu8koUEmkH7CZtleVMTEyHYDopy31kmGRXYkK+FInFZuZnJVHGfUqQtJqT5sgVFmJhKRwJRRVZ05mIbrqcDtVmz/nCrFExmDOYYrMkLRGP+9zuLNNdpSJ7l6Qq4sLswk//ySuP79jrwMpDEaBgQNN0uT3+QA2WGM2pmuR2uWRHpeIOgvD+3+7FX3v324IptzncP9bZEluYAcik05lcMB0ZY/PCHFMzZOZnkFqciY6PDDZLPo/r2rWuzpaGf/zFn25ubgovLxvMVcvkfXvPesLp06cLQWE48fl8TU1NZaFQzOvW7W0NNbVAFaXYBpIzg4hCsLo6UBXEukLOKSjEtbW1VGm8ZCecqmsWYx00h/r6+vsOAdjsxeKJ3qGFJqfC/RTkQnoUyeAmFg5HopWPjxFXy/Hcr1/imwAcCcg7SVFc1Rf6ZyRZA80ZHRobWYyobq9ZSMlproT2Q7NkTQ8ua7K2sDD11PEd2zp3ZPn2ZZlAXItH/isMf1xOj66ngWzcMZK1aGTSbpcjEks/0livyaKu5z28hZynE3Nu4k4ioq6YBt81M7OCqXcGK3eKlWy3xDSSKTOdStmdLrGQUZEn9sjn37MAFvHQNLDK4XRcfOlbe1qrPG7Pjs5tDxw5GAxU8YwklZYl3KzooKxnOLLyh5AvqFgImCzbkN2mPfXk6TVM1cp5sYu5elPFwZYFp7rCtwp2pEIdy7VbLfcXJjD3uMmJyf/1vauPHNsTz+gkMOX9Gvgmq1lMlcUV8pJTd/lzudj/nLcP+IMdIOl1W8xMKburEnbB7bDbizz1ubGbmzqsHL3FlCtOQ+fsWjKZLCYVfbYQ+8Dc+iqqgs+9/Jqp9qiajXXQsFgGNdPI6JZiJMcXl5WKFmYpojRN+Q06pg0zEBCtXNQD5xbcksujTzmymOCHopGKSnI1AC63K8KxwOSb4IAgQ5A0p8/Kxkan4l/5tV9++onTTofTblOFXFV5aSVw4r1LR8I6XqIbgGM6mz3/7hWovJJM2SBZThyQ9gqv+8ih/WuNoWtx7z7IKHizB9/Jslpamv/zzzz0L34weirgSTNTppS3SUoFd6ONFG+xNIcq35fVuX8F239ieVkMk+niPHpfKLFx53YddMCrIkC2mXHYICnphY23XPCmQAHlbPMC3MMLvXkx4bEHdUll5koOGg7VHg7NZ2XDo9ryDoJWPo1rQU6w8h3UoVs7i8OLeIpLwHMksuzLpBXNxpIs8ZLnTAZklmXDYLsaumwkjAw0AwfYl7/CZxpZIppEQG8NgspgApH/hYWF69evQ6PFCeC7s7NzaGgIAtJaDzziRAD6S5euLYTCmmaj2oQYRCSZ2t3ZfOTwAVJ2VZaTMKtpLCiHks9B6IJiQIWsoSJDE4CCDmUdQ4Ji4HQ6qSo45dIq4/x3Xxx2u+3Tn3zmD1//babyAjdW/CPyRGcjRy9KW1SS6EvI7cWtzqtWTt4pSgfDs6RqTq/d489mdSkHx7RnZ+ZRhme5MK32nbsyPVdnIyFPVS1AmoQ2I5vyOdV5U8+kkpJq40YpMeeAxg1VhYFJPNYGxHLFW4dC8S09Gl44uLtDc9kjscW+wRHZylS6nbpsz6outBNfmvarWckdCLTstc2N1wR8ORHxPRNQqSyhAnRevXoVkAct+c033wRu4Mq7775LVQNLPfDyXhXQgXwej9fr9Hqc+Ovxenw+t9PJ1K+zZ88C3AH6Fy9eAKxfuHBhenq6u7sbLw4PD7/Lj4GBAeghQL/x8XHg3ksvvTQyMgKV+sqVK7g1OzsrvC+1vt938xEnSJJQZzOyklSUxoI7prI9MiknG4jrBuxzYJNW4wFTHgrM3aJEYwyMpbL/COR1KMQgUQ67DcIuWIPdrtnwV+Mndvy12R2a5tLsLlFRgzW1lpkyTF0ouM4yfzV7c3NzNjIjmtCVlfzumwVt3MYi93PSH5O9FDkaiTDdX+E6vyyJRlYPTe1prGrdfaClo7O2OrijKXjm1IM2TEs6Hk1D9HFYeizgsB4/2DE4Of5LP/loa0M9lzBvQ7oqab0NYzLUTE1NPfjggwDWa9euARlwsqHvgEQKHIk5ZDQwmYYjbdvWMTo6So50VVVVBd8KshSBAwSDQbfbffHiRVysqakB3FdUVIAhTE5Obtu2DTiJJ+9LhkDEzOtyHmjwXZwL21TVtHJlt5iZRJIjyyFZzOchKldpQszF8ayTe5Xps4aQj9S3ivxLV/3Lcx4mQvFUF8ztuuSE/nEWpLM047V+j5ZMpSVJtlZcsAW701ddFYzPTwhGmvYEWaYmWQSf4aknmKKY1bPzi3O7a51GeC4TDSciYUlPJxfGdrQ3Nre0G1kxnsoEqmp27js0OjM/arjCjoAejaix6eag31Pd9sDRXb/9xceeOXMq50x+O+hjeduRx+MJBAL9/f379++HYFNbW1tZWfmpT30K56DrJbmyc9kgLSsWj4UiYbumkhUV8J2IJ1LBBMQ8RVYaGxs9/ACfgawFzgOJaGxsDNchDkEEAkpAWMpkMkAD4AlwhtLIkQK9QbTRfaA3g+z+o5/9dO+//71pJj1qbBuNmWOydpdnZjGczQw2trbpQnHarCJpNm/xLCcfMEbAHXVuBCxiUTWJze0LokVNUcS0sCpZrSimdaMiWBuLhbJmVpJtTPAHQzATXo8HiAEmgzdff+vtxaRwYP/+cCS8uLSIt69fH9rR3lFd35xMp0FNRUWenhgbGhofiYneyqDJQlhDaibq8lYODF6/1NP0tz/6lMz9BW9XGOO6tiNQ4o6ODkpjSB/DNLW3t5dLCsYbUpQHj+1n7rLQmMkHUJTA7jweJ6jK3n37ChtJAH16ES0Xe7aCLRT29QoXwWrxCrkD3rui0cZSLPMgMPS2hpp/+uknnvrcf3ro5N5ERrB7KjCFumnZvFXTkQVrGMjQYXINuyRSXKKy8CsS9ypGzbNXgDPrG2fWp1yoMtt/UDaVM4mcnCweQVBUZIQHN4s6j72DTGHTmK67HE8ca/E21NdAAJianp5fXFg2bL6aunTGdHn8Hl8V20A29Or6RmCRyaKi5Uw0+sN3e2RfsMLvzWRNWTQqK3yvfefK//hPj03Ozn3zudf+3mc+SVvOt2uNbpANsiTz4QZ2TE3Vjh4+uNrEl8sIm88oJVgr28/FxhOzBFYKdtXijdh70axUyDNpmhvl22EKAciHkX3owSO/+6Wf+Af/828e2nUwlTM8CxlTd1ZUheLLqb6+ts52RdF0M2fXXCH7VIGhKDWqmHddJTfGfLCascoCmyslQlIyllZhaQIswxLWcWItwRzmA8cdBleU3nywqSg3NnVMjI5kBdnu9dqNFHj76+cux+MJSAhuX6XbV8U3FkACeOoCUaysqIrHwhVV1RD7ZUG/2ntN81Xb7J6UrsssrlRyVQaEWGWwJlhVW71v356qCg/Ljnz7EtquG6lTkvpzo1h+imNOp773vVcjyZQiM6nRMA2HTfnwE4+5XE5K7UjQUFJ1Ym38RNn8xvfoTgLESKfTSfuGG/SfYAi00KEqj508aX3uT7MHPQKTkAyue1lWNis5KuPJSH9/7/btOxTVwdNF5og8FGnmsSdzdy/mNJSLgyYixLOxSYqVNxyVZNDOJbjjeogoJxlkW8xNw8xnES1XuYousBRvvGaMtbpug0A5HGz2xobm/uEBFmkSW6jZeVB0Vdk9GY9qM5jPX5bif1gmDJFxAZfL/fb5N1pbO6FAj0+MDS5lGVfMppVcFjQrkzGF3drg0FBbW9vHP/KEwCLebqe3Qfm2oKpCmofOmk6nIbVDbtk4QwaHbGt6Zn4uErGrrM1MVvd6XJIs9ff3AQV8Fb5IOAyJC7pHdXX1/Pw8xgMleHBwEJIPpbtjecsCAfK3w8WlpSUoFRTyD4Hq3kIGoh3QbfIW7hsETDEZRmbz1lBf+zt/8Pk/fm1IEOxkZqHATgj7msOTzcr9/dd3dHTY7M5MLlu1pUri0uKirA4bRpYnfzAKe6DMD0jR5qcm9Hg6nYxQlR2T7+7mMsxyUIdebmV1VRYgkC0tifLwMO0E8yfZLjcPocwJQCwsnYVSWJKihMNRrdKfKxkkClZRcmH2nl3zqKbfJQTaDnk8wbSRwNfTmRSzFHHDCvETCFDLSwvfe+N8RHBP9EzFoC+r9kq3h4U/Ut51cmmzhMagb3xq+u9+9icdrAKQeXvzm6+b+QsIEIlEoMIODQ1BS97A06EweM2mOew2TVV4QgMZPzEAtONwONNpFv85PDx85coV2i5oaGgAoKPlnp4eYMhLL72Ev1SQhiKbgY34WVdXl0qlCqrFvaUbFLLkbyp/P/dvczkdn/zYE3/68n9NK25JyOb8hXj2RYOFxjszgnytp2/H9ja7uzKbsZhJXpYylpwUbaak5qz/xBy4/YlVqbK7moKNiuagStv5DIW57QIG07KsJ5LRhfFAdTCeNiMT88wcZJkOu9PhcjHnWNEqZJDPsRbJkkwhkUzb5GlJsbMtL8J22m6Aiqw6JZuWzcT8vnrJTM+Mdnu8bpYdj/ucmywhosHKoMhKNr48OjLSXlNlU22j08sulsxKt7JRObcVwRUhYIIhdW7r+N2/ePmZxy80PfNhwdo4vO827aw5+DExMQFMQDdCoVD5LNmrUYFHwlKRcoHS6ohc5X31VZYUo3+gH/Dt9XrRMrhBX19fU1OTpmkHDhygkGUK18S3gB5kV52cnMQJRMx7WlHePCsjgUERxLpK18X5VK3LljJ0iQnuUi5xvGnImmaJFT39gzs6Ox3uinQqHgstsNB6ZvXO6wd5+swc5gCyNruoamyry7RKLLAmOUKAh8jJkbnkcGQJ6q7E+JMMkX57Q1VHTU1G56EOxWWSSC0ws031NQ8e6IRoZpi8iIPEtzwsE8t6rXvw+2fffPDYIX8wCD5Q3xhQVZtpFrINMxxn2bFMXVIbdx84nIqFpyfHwatcFdUm4yjMq1nM1VuhPiqxxZmPPLrr8pWuDz95hqVkv60Z59e1HXV0dIAPYEgf/ehHY7HYBnabvLeTFYtHlsPLds3GgrUzWRqyw2F//PEzwKj9+/aDG1BmCirPCijftWsXPoETSGJgBcABkIr29nbSKMAK8CTevf88jtbDHAgelZUVv/pPPv2hn/sfpqNRFuXiiu4ggqZuyopDcgf7Bkb27uww03GHKlcGatj+NM+VtMqziKcztUyez4L9WZNc3pSEgruX0626AmxDgclLoiKxdcRy8LyGVqFUyYqSwaLPNKfbDdaRtSyxaC8c0k9bS8OeqbFgXZ3N6bUxhwkza1j5bPMk9QiKCCXdkU5nr/cPjs2ENE+lo7o6A43ZyhCTpIr3BGTokGqzpyVzanoOvMi7TnLe24wJ3GmeHcQiqILqeh+mawDoZ595HIAsiVL+YShVcnV1LT3mcrmMfNkEHz8KLIjyQwIZ1iru9/E2QnlkkBQI+jvbm77y//6dR/71Hz28syOehmhk5Gp88Dgaw7Qgeypu/+DweH2lvaKqSrY7DU65i2w+JNCQyzQ3vFpSOTPrir+waGYsI5VTHVjyvKxlssmXKD9F3iok5hLTCNBPolkjHk1oIPZcacm5KfGUh6qsVtU0ON2eDM/KqLK6pjzujqojmhJ3JrGGRkbHpxcFxeHwV5uGnk5EKWCCb5Jwf01ibgILH5OMdHtz/YN7W+fnZ30+z+2deWUDGbfYpnlDLi/LUl1do8mojkFRIA62i2zmraFUQlgqNtEWVMkSi+3aejYfHLc87rrJ7GwPP7D/v33u1D/7Zu+Z5kAslTb1NEuIJHBXTppiWTFkb+/o6EGXy+bNOXWW2bSzeFK9Ile7NdsIdIIvy0yflnLVG9hysdAIHhhBpidLXGV3Yh4ePF5A4lmNcqGfHB8kaXBwMJEyl5fCejaFf+FIUtVYniRm0mW8Jq2oGhTRq31jvqoqMRNziFnI1prNlkgsh6OCzeXGBzSbnUUrs5QZdj1tfOO//+XffO/X92zb5uE0+v3AhOJSNwSaVE6vUFVytYmTzUMylf7q154LRaL5tI2Zz3zy2bq66pVIA7HUPltw9qattIJyWeIEvnml875ABUb1adt4z7YW4fr3xx0g00pzpSeVNbKGXshUxLRfRVK8wUg45gvq65Wq47lDc1sLG8jVfJFNIQ/sHB+lVDql61lN0XjkgGjm42aomwZLq6rIqlpc1ZxnmNTm5ubGFsLNHTvTGUvRPOF46nuXhny+YNY0WRC2ng2H5/2BetGSfb6GycXZJp/Wsn0nT9rFNGnX3JxuGhCgoWA4vQGboi0szFVJc//tf3+x3s9ifTezX3mzh/ylL32pLCZ873vfg3QE/RU9u3jxYk1NzfPPP0+OGGfPnm1oaCiO2mHRq1n90pXeeCLNo7qtVDr9wNGDodDC1a6ulpaW7u5u6AD9/f0QikZHR1m+PkW5cOECtPCenh6IQFNTU9CYIYbhmfn5eagTXV1daPnq1asbJ3a9mw8Mk+KQyBx3E6ozV3yrKt0feaTj0d2NSnzpL84O2LyOKoctY1jEFiSueEJXDi9M+ysrNLvDKldoi1XXTkQV1SGxaMbyyh4jRtn04nJEUp0FtU+RpWQyMTk2ImUzLChAMEGhZeY4xwopgA1IsppNJ1rrq2way3BFn+Z5682Lly56q5tVuxucC2uXTEQXllkANEvso9kcLKuP7vX67TYNyGd3Vc4vR+2K5fZWZqBeSrLHU+n2enwVPj2+HE8mfjA2++O7q/7tP/38Y6dO1NXXUl458XbXZ1tXOgLg9vb2QmcNh8PDw8Pbtm0DYpB36vXr1/ET8F2iObB8DAr7x62oEphtKpkCZg8NDV25cqW5uRk6MVACsH7q1ClgFOXAA9BPTk7imYMHD6ZSqWg0inmmrEfQHPDwfRmuuYn9acHtdPkUIdhQ9cgv/vRnfnzoK9946bffmD3VFkwbPLUXAzspmUrWBf12tzefOrs8n7khEhZt6q/UYLZsfkv19s/FjMmwQ9KDHkWydIcXyioEm7Al2T0O8Po2CHM6MRNWkdo+PHJ9MWG11FdCLuBJjYx0ImWYkCn0wu4q1PBsOiVpDjCarGC5vIGh0Umn0+P2+FjcAgviZlve/rrmyujcUwfqnjhx0O/z8mx24h3Kl16eJ4A8U57g2dlZiiWgnL6AY6pwk0wmKdVerkgdKyOiX+3uTaZSVHEe7x7av8vtcl66eAlEHZAN1HI4GDkgZztcgUS0sLAA9gIuAaUZ36KSU/giOoD2E4kEHq6urr71soL3Jk8oHLW1dV6fx25Tqiq8O7fVn2qr+K2zF7ZXVgmsJqxk01QznWioCbjcPiNfWWMtUUslYipgju3crcsT9HR6fnFZtjlXxxxCsRVVm1MDYVJt4ZS4lJHnE+J0JBs1bJGUMbEYEePLHR0tiqqwfTJJtKna0PBARnbZnR6Ce/CW+fmF6Sir3ExWXMAyNAfmiG2zsQoiLJxINlXb1MRoTTCgMnHLkNGgJaRDE7/8s584ffJYZWUF9fPOgUF5cguIBAkHpEKn8eZoQATc4LHHHgM0UwHCleD6lbyomWw+5Ern1je7w3n60ccamhq4Gc0EEwArQLNgBRhVfX19R0cHsOLMmTOAGEA//pJbHqYDj1F5cOH+LZuw8UYbbRKnUylZUTB1bkX8yWfPjE7P/PJfXt1eV9Ufy7Cdt0x4d1Mli+yijHclgJKPwxVWss+v5NJbrTrnOYIlWKurzrMknDwvvOZ02wqp96gord17cWi2c2jYzsPcmI6rKMvLIdldt2J2B9XPMocQ01rJlivLqqlneI4a2RKNrABF0WY6vYP9vbt279M0RzabHB25/nM/caquplpnOcLEm69qbgllCsbdJCYACsmEStVrAMSV/ChwUqoxVWxFtTtsn/7UJ3i6eMyRCdXO6cL8aA1OJ1F02jSgrJJ+/0qyfMptAaQq3rmjxu/XILVN77OxmQDt4PqxlebuGI8e3f/Uub49HRWfdao11VXDI8PfuTJx2BN02FVNlHQGtoYgFIvRPAEY06/NXOkovmedq8ZsUTZ2KV8qqlBOnv4j5SJNCmaoors8lzCkfFvMUDI6FlHFIxlRSlsuMWsWdhVxMRaLyKKz4KTHUpsB1qMh7pKRQzzd1G0O38L8TDy8JNqcQmzmX/7Uk8cP7Te5ki0Kt+KGbFJi/M3pFDcQwcmqIxU5ghebOIs/ChkRgg1Jqyw3MjCDk/Niil4INi2plCOszgBZ4nT+AdlW22CXGjPg4odpZI7s3/6Xv/3/2DRFlZnxMpFMPNs98NblgctD03FDq/B6nHYbJ14GwSzliJG4oTORyjJTkq47FYk7cugyt1pDBtAzyTVVtEtyJJWUaGaIZbIsTJbT7ZMVjRsZTQhyUHYXQtGqlbwNrF1Z5lFCOSbFUlAnWRizzmW23EAzhlUZqHnznSsfOVT7z3/+ZwP+Cl5BR1799U2jgcU3xnkctLQJ5+11a+pAgmd17GpqoMKCNdfV1UFqD4VCOCkb7A/16Otf//ZCKGxz2BcjsZNHDnzsI2fi8RjGwPylmJNJtiDzUNptvMWEQl46DY2z7RhVxQlUCOghJBRSafUPLCaUkgmZlSPzKKRRM6cmp8N56siBY/t3z82HrvUPn792vXtyRpcdXpdT4vZTpuTqZjJjeq3Ydj8r0La8FPnaKxdaa2sNvtcgMSCFNGvKDh+XjAxrkw49bHNNXYzqodBiELpcNguozabSs/OzwfqOrK4zkJdkPZuNxxOy3cMSV+QrBbE4aXxYls28157ESzrHsqkGj/nz/+gLQAOWOvtWna65U1I2aQAs9QqX7YaZWYQNauqcP38eHd2+ffvMzAwQAMgwPz8PSIX+Wiq151oXbXanywkep0Led9q1ZDL13HPPPfHEk3hxbm4OisfIyEhrayvUbigGUDzIETWTyQD0x8fHoYTggYmJCWgm+OKuXbsuXbrU1tbW2dn5QWYLJaZVQVipO0W7VKwqpqI01lfj32MnD49NTl/uuX6+d1LXsyKPZLG7xaX44kcfPf7EY6fSmQwIzmPHX//of/7WiY5OycrwLI9MYBdZTJy5+WmWANmimpYco6MTwWAN3lMVZXpiVNPsLq8vk8aHFIhqbGtOVvnGBpV4o4xMIrRMZglmaYKp1qdg0+SXxpe+9Q8+Vl0dQOfRz1uLzDKY8AfEUr/2nVe/89I7//1LXwx6nWBAiixtoDOUl46ACaD9QIPvfOc7u3fv3rlz50svvdTU1HTs2LFyQSf5rOZCLgRX5E7amqbW1dX39/dDP8akAOjBHHp6emZnZzP8wDpBYQD0g/MAu4AwxA3AFhobGynenwqSC1tHkWQiikVSCvN5lKy8HK9pcmdbM/596JEYF5BWtGS7zQb4cDIHYevZJx960eV6/Ff+7+GmBlWRsaQy908yhc2Hb5IrUtrldIxOz+5JJmzM34zRYsvILk6PGlk9a1o1DU0KsxZ6svGUmErwNH0sODuRTBnpuOWulBSbaPEsT7KUzSQOO1P79+4mlVq4JQc7UAYZHE7Uvv7dNz73G88Lqs32G3/467/8hXqvZpm6IKk3pyeA9oMVgE6fPn36+vXrL7/88sMPPzw6OvrDH/7wkUceKW/JYRnOMlk9o+iKkc6avCwFix9RlAceeGB6ehrEvqWlhTgDjnlWOY+F9sfjcYHXE8HngADAwEAgAI6BK2WdkbaO9fAj5/HFzall/RHyXi0sj/+Zk4cu/Zb3l37rL+Z1F2QmXkfTdKkq2krrZjZv/F0f4ChFnZnJZrcF/A6bHUJVNmsEa2uDvHagbhnjo2Ox5SXgw8jU1KW5kN41LexpZZ1VHCc7GmTdrSeWUoapsKTCLCny7PRMS6XkdNg3b/BZS5K56qJ+6wfnPvWv/uT4wSZwyz96Y8L8zS//5r/8mRqvPRfmVi5FnriW4tIVEGbyw0tDA8hkKJYAUAvRpSwmgJZ/829eCMdids0Ri8R27+k88+hJPA8+UHDcoLTb1Diu84q5YsHbolAyR+JZ0bWiEp33qGiEURSqwmG8mx+FlfONWP3GZmCjkEC0kCRbLOEkOY0D2irm9k+/8Z3P/tE7T7ZULifTgqi8PRMWssLeGp/f6UhkMpK0lv/nrKyM7QuGS3ONh8PHqsUHjh0VOeGTuKdIKpV0iplrVy4c2tXxyEOnWEG05bCezdTV1KDFCxev/sZXfrjkaZmMLp8OqCMZpdHrMVJxUc8ujfR++4/+fVtr860tOukDL7524YmH//cjX9i1FE9C9Kt02N4cmv/Cox3/8V/9nYDHqeeKTZValNb1RS2UtAFE0s4amUHXM+bYHfZP/sTHKJsr5YfCOdXCKTgOUWaXQuEc2mwipyb6W8BDMq3KuXR6H6DDzBkv85XOhHxCznzJzM2YXnOAL26kcdBs79+3XZh8bj7o99vdZnLxf376qKrKL75x+c+HQo80VCcypiSulYkMnu5Z8RqRrpGhGpt2fMf+oCs7s7A8vQB9MtGxfbvD7pIs5kW9a1dnZ0drSRM7t7W1tzb+/p8//9mf+/EDOzv/1598/d+8OHqmpV4wsz2Dy6OTM7eMCbSXtWN7++f+9ZE/Ojf0YFMgnMwsJ5Mn2qv/z6vDmvJHv/aLn69y27lZX77xHnPBPa5Q0Ekoij9cx4oq6Fl9YHBwZmZ2cXF5anYum876fN7CWyXtFIKYi82mJbXKC1+/d3Xlm91jtriqx+qLLSx09fZ73B67TcvHepv54lG3ZzYoJSlQ4ENHW/r6ur/9R9f++c8+8I9/6mOHd2979OgebXHylevhgNuul4pJbDfMZbdBFnr16tX/+bNP/Lt/9rlHHjy6t7NtZ1vD/s7mB/bvWJibHh6fBAfw2lXB0JubGuyckhZl2rUa6mqeeuzBztYmh13bu7tz+dq5i9PpKpdjKJNsr7SfOn5AEq3iWtSbHhSL/qlwO08e3TXRP/TdwelWvyerW2k9vT3o+qsLU/GFxSMHtnkcClUzvIF0RGydSulgISmWEtwAcjykfFxcWFgotiCR0JWIJ7/8h19dWAo5XM75SOSRowc+9mNPLi8vU14jkhNI4MErJHSRwRQntGkNuQudwUUq1YyflCXy3vU7uinpiJk0LTGVzrz42rnn3+wdD+stXvUjD+1vrK+pra6orPDKTKsULcG6nc5n3I4aisRee/vdIwf21gf8oGiKqs4uRT/5L/6brvjM4rSl4NKS4pCMl0anttvM3/lXnzp94shaM2csnhifnHI5HND0uq9d6+hoD/AU1qss7yRf8UBpVVbmIuFf+o9//PZkttZj7xkaee4//PSh/btMlqZYvoWxsvIRsjK9nPz5L/3vr3YtHql3pTKmblqNfs+Lv3vpz5/73KeeeYyKnN+AJ9AS9vf3A0x7enouXboUDAYXFxeh8kajUazoq6++2traqhWChniAHT7ff30U0+p0QwET25oa62oD3/72c62tbZOTk1C7fT7fhQsXoG9cuXIFavHly5dJ8UCzY2NjUJGhLpPbX4gfQDx8FIhByY7ub78jFp/ON3p//2vf/a3v9bhcgQqXO5qVznZPfPdc35Xeof7hqXcvd9dW+St9bpMiEW7HhLBqhabptNt2tLd6nA4mx7Jqb7rH5RCNxG8/d2VXY00ym2UlXwXBJktmOvLG5Tf+10+f/pV/+plDu7fzLY0V9s6L1ZrgAMEqPyQCm6Y2NjYAitYuH7l8UA5Iy8g4Ha6+4ck/uza5ze/vievO6StPnDkpisqtLTs0FtMwvU7twaN7rvf0jswn7ZrmcbjOvjv0G7/61Gc//oSmiKJQ6sK07h4KiBnYAtbvyJEjU1NTUIiPHj0K4bK7uxtQCzBdq6pR3kAqrUOFOpuamq9evQo0AMTPz88DAXACUgFG0dDQAN4yPDwM/kBQMj09jY+CDzQ1NQFhBgcHcQs/dV2/vzcTiMyHo7HXLvaf7Z3bXRfUJCOZ1WVFDVZWNlbXLKVt5wbDv/3KxPlLvfnJvl1GJ4nkUsOkai+8CIOoAjefffLUTz0Y6JtedqiaKejM0UCP9/W++8P/8otf/Pxnmutr2AYwbV8X5F5J5KpdIaylTIarYjErx5Nk2+Ji6Nyb54/5nOmsXue0pW2BLEswbRXSMd2sJY1lFTLStVWuHS21I+F4pdt27urIr3/x5M99/mNum0wJO0q3R8pKq3Y7sEh79913Aa+0GwDQfPHFF8EQampqnn76aSoNuKJE8deSqWQsnkziXzTB45jZFnIgEDh16lRLSwv4CSCbpCAwAbQJVrNt2zY01dHRQQLS6OgoxDDakH7kkUeAGOgAGrm/9WaL58/q7ht89j/+qWb3gsjqBiNZJi+9kdV1TbEq3Gp7wKGShdEyLfH24QJP18vyszMlksO1xEC5yuP5t//4M3v9ejqTBZQ4Vfnshatf/teff/ThUwaLbrbEdYupCnkF78bpbUj4cTjsrXUVkTSw0Wh0O94cjk3NzAm5xH63NKUsLsAWjqXOd00erve/eun6r37hgX/y9/6Wi2+elE2UtG7mr4MHD+7fvx8oDhJONBvwWhDZa2trSaMtDEaS5c721vq6pKaq6WS6tiYICnHo0CEKYaNIaEwgRCDQeIrUQSOFz+ErZEslBdrvZ1l0yPH7vt9gZl7KpnniyMFv/oL67//kh3U1dRnTkgVWpTxXIMQUIWRldJ6e7tYs7TcrNEkqBLvOloaPnt7zD79y9anO6oVQ6HDAeujkCYL+2+UdTF5qbqfjycdO/de3vtMUrIBQ8fpc6vyFK20Nte9x5RVZDlS4X/lW97/7hYd//u9/3M3QgFza1ibZ37CmDkVUkj5QbNMsrZTM/9o07cnHH7XyKRVEi+I2VJIjC+VzCAeEfKbEYqJCWwcFuF8vSd59iAms1oQUYxqR87Nndn7/XL/sDpjcgFmUlYVndrcs4Y6jQT4XErdIPnBgp/BfXoo2Q23xVG/bpki3035V2KKDPHXqgSOf7/zeO6HlGp+3vdr78rn+Z8485HY5b6FOVF6HslyQbKzov/kHB37hi3/LzWpe61KOG4ib4gkEjsX+p6XqTrmuQZI5d/5CktUJNpsb6vbt2UHfK2kBJ0Zua0O8YZXyYsS4b0UjPsCl5fBv/Z+/Gp5Lb28OGjYHxcpbaxbs/ZQReQC0sW/Htv/7bz/yP7569uyU2ebVs4Z02/FOFFi6JJ/H+XM/+6mj/+z36o74U6YJ5YR7od66oYxyY3z2Yw+dOHrAw+plWbnCJesxkLI8AWI61FnoBolEYnFxEdQa4g10371790Lxxa3jx4+78/v5hLWQHK9eHVyKxmLpxKMnj+zds6O/v6/KXwXMUHnJcbLJCrwAM3QGtMwiXJNJUh4gCKXT6VAohI+SlRZ6udPp5N759zVD4Hjudju3tda9OXbdPR92aa6YTh7FpcUvy5VPuKOsgQHPZ5598vTxg8OT82+88WZoOVRT7b/dBgNB5in3Du3b9Xt/79Fff6GnwuFtqPPYbCpzZJPEW+4/tJ8PP/qAnHPjpc33m/FFJYF+enoaWuzg4CCgc8+ePXNzcwDW8fFxKM2QedzFbi35PDdOt10XBSUluZzOTDp78cKFJ554Mh6LAbLx7vnz56ENA/QfeuihS5cuQZOO8wNXgCRANkB/V1fXiRMngGx9fX34yoEDB4T7/UilM/Pzc7W1dZ969syPnT4Ziqd+92vfjyxCUJeM3ORS1i0eb3NLtpT3cEiUvq2uJoh/Jw7v5vkvbrNFO98Wk1w+/1MfH5sN/eq/+uq+z/0KK49gvCcelOs998m68cPlr0pSKpUaGxsDK9i3b9+1a9cAsuRRBzpd8Lkoi+ASc+rOAqGbmpp7enqAMyQOgbrX1dVBiAIHQDtALTITbdu2DUAfDodxTnHMVE8E0z06OircjxWlSnjC9Mzc9PSUXVUHhkf+/G9enotaag4NcqRthS2I77eMlFNqLQgXOi+FfOfYEdseVgTrJ5859Vff+oU9HU1kS3ivKhjbpdlUkEN5PQFyS2NjI9gC0GBoaAg8AfwB+ICfuBWLxVYRhnxNnWg0thxJxJOxdIYVWqmsrKiqCuD6rl27AN+7dzNv26NHj4IJoB2glt1uB9CDyeAvRCNgSGtrK/ABV86cOQMJiqI37289waapx48exsnY5Ox/+MpLli3g1VSJG9J5WmodSirLjy7LdpVFDwrFIun7xxqk25yPtxxn0A1rYnqirbVp9+6dAm2ziO+xyZuQI9f1wGvhB37u4+VwSL6nE1D3YkU2t4eqKA+fPJbVs7phVAfZrvDu3Xs2+HCxAuAu50JMe5P3t8ZMeQxUTVMV5n6rshivtAKGwDamrWwqW+U2ouGIqGeXFefzM7G/k2YZY2VREO6/ORFF4HxNTa2Wtze+z+surid70DYhWZBK3ObK0WkKJswxbzGXXFxcm9SxpK5z4W+hjk5JBsh7Gg1u6HcETADr83i8ppnt6u2bmo+/0zP6zkjU4XBKptRRLVc6pNjC7GMn99m9/onZ0PLSbHNt8Pixo5Ikem/GwnjPEZT1HD3fV0woQKS4EpS9krG04D69ylwFzS+Vev6FV2LJlJ7J7N657cHjh24qpWnZyuf3OkPYvAeexermZDTNdqV36KvffUnU3O/0hT/1SOvRXa0tTQ0ej6tgqr56rf+bz3+vqb76p//Op1VVvomohXsNDWZnZzGBkJBZXVyHIxKJUEo43IKSSYGNtMeFxyByQ+0kVfbWPrqum+fbb7+N1k+ePAk9YX5+fufOnVevXkWHjh07VnaewUJm5xaXo/F4KtbUVItr17qu1dbXmdxySptolEAJQhf+Qivw+/2UDgw/6+vrQR1DoVBlZSX5d9BOM4VJ3McHFlLXWXg70MAyrZ3t9b/28z/zwtm308mesZGBhw+0Ag2YyUGULZYoVzlyaG8mk/4n//RfHD247/ChA3xjXrkhVIVCyy63SyO/FcsS74X8UZQga2JioqamZnFxEeeBQACgCHEdPxcWFgD3k5OTRGKoXDIE+FumnlJZPQG0B/3Yvn37iy++iHN0BZ8EzkG1LRM9k4+Vtdlkh11z2e2YcT1j9Pf3G7oOXjE8PIzWrl+/jmUbHR0FlAPLcfLOO+9QTPPg4KDA6hotjY2N4RYGiRPo6yyP2P1+YDJ5UHeaCZ+SqGn2C5ev9HT1fvFTTz19+mRjYzN3oZGhslKmFkswjh3Z/9M/9ZN/9tWvTUzNsBJqG9rWdD07PTNz4eIlEFH+Uxdz2XrMu9Yol99jYdpjbW2tqrJy6c3NzdAtg8EgQB8kEgwB4OT1egGcuNjW1vYeh7NuhmCAbyHTEaCZctehc1T3YK2TbVbXu7r706wSiNFQV93R3hJaDgGDgaYg/3gLjUA7bGhowKjGx8eB36D3AHcqsaNpGoXz4xV8dP/+/TjHXTx/78pIN/TKpqHhlqKqkijOzy/88KWX37ly9XOf/dsNVe6G+gaFeW2tNk4w6VTBwv/pn30V5P3IoQMbi6CYTM1m6+hoh5Rh6MYPX37V5XbbNU1mBQ3Eu3luMS0AcdBfQF1NbW2lz+fx+QBOsiQDnAA/uFVbVwdkwE8gDABptQOsxX0VixP+icWCYmm6wPXimEGnQan27NkDcAR07t27NxwOl+6pFS1nPJH4gz/66nI4nkjFHzl1/MNPPDY0PIS+4pbC95jxLolxaA1dZ3msTDMej7MkUMkklSVnVkUe6AzEAP5QTuIPgp6QSKbAJEEqaqqrq/wVkJTIUCrk6jqVhDMzAWd+cUFVtQqvezPbRvnkMNZyOCrK8uWLlxVZ3rF9eyDoZwWepbuV0Fi5mg93FF1zWnFZnlJWf934ANudmppl3rqWAepeW1stfOCPYkzAnEALIr5KmQrALiCxUEIDkBtw3ZsprPielOBQJHrlytXampodnR08djq3h32XslbLnJtfnA3FVFnMeXJS0XUqw8bTKJnEOTlEUwZVFkgtsBAjntSVOVvIomiySyz0gaXGsVhGlYKGva4VtdjuKdyoJDPPLWImEkmTZxT0eNxCmdwMGxnL1n7iPthJKKR1IkwgtQcTBa4IFgG9iHgs+DsxzLVWu42n7haIZT4/AMs4NzI+daWn/8xDD7qd9rtzttOZTCQchoz08pvvnP7o/yecrGGuJzYVmmhQ1Xya4lJVu01zqopLk1nqCVV1aqLTptggbNtUhybbNNVhV+ya5LTjCp6U7JrssKkeh2oZWbSMaac0LsrGWkvZk3WssUIsGtNZphbBbrNpNm3zulHZT9wHG2qUsaYwEMr7DUyoq6ujkIxik9/mceC9zA9VQ2PZqGRhYm7xb84PAT0//uFHqXzt3SccCZFIBPDKwOlY9enaAIv5ZGlD8T9Fwz8IiGxfUraposLOVZsq2xTZDjSwqbhhx09NcWiKzaZo+KfImk1WGdooli6QCScWi1VVVd22YHksam1d7ZZEVKKtro1oKSR7LaHr798WUr4iW53f99j+1pPH9wmikZc47jpcSCWShp5lznQ2UVZ42R5FAgMFjVElUWU1QpnDrMT+MhGI29gk2WIBb1KR2xbPOsSqo3CTmVkoOefidTwkSbptmFAcS7CVw3STtPxHNVE8ebDV3Fjf1NQAMskyCtyVSgL4aROv45FOZoRvTv3gCe6Y69QgIAmqWq8plXbFZbc7VdmjMYnIweUfcACnzeYyVIeRzRoaL4euS6ImgRmILE2xrkvsGg+/aWxqAmdgQuxW1tEP9mHxPC93NeUCgA4MDXcNTkDaoQAAkam/Es+9JHCP1fxuCwvJtngZOCl3yBKeVEWLlT6jYG3GAWQo31CzIXdRdPFGGvPW8cE4zKIswncnpjJ5Rr4Nm+IrscslVTu2MGHruIc410q2GKvgbc0KBeUvWmWrT+UyIuRKBbHf8nrGiY0wwSquw3ijEj0U689bL8RVSTc72tV6ZCmhItfLXIfFXCLc2ytqU4RTvhzYVtGGu0pEKoHvFbBbN6zVWgc1yh1KeaDmZU5FEsnyAFFU0o5qJaykllyxgVAmtBUotsr1TlyNOQLX2KQVF2MWIiiaQj7wNIfYPNmClQ9GtciLQSqkhC7cyIeT3tpsr3TJ5IUu8pOwdfyIDQ3lV2ylloS15smyVoD13VLKEEVRTOuAAzOrZ1npRdNMp7OZLC6t5KLjOStXAQgey2SzLDkgA1ZpfSQtiGi0p2amdZ0Xf7fyAM8isTkzNEz2TzTJ6CUKKZZuzCT1TuRJ9zMZPS/6sXCKdFbPI4NVniSshwF5NxV0KZHNxhJJQ+T54O41f+YPIH6IKwnCS/ZExHL/1j1WeeDx4kLSwlL0h6+9lTXEhUhST6dtDkdX96CkaDabBpRQZDmVSouKPDQ0qiiqrKgs/liWewZGlpcj1cGqS1f74/Fold8fT6YMXlzRZNELaVVVdF0H7c/ouiEIc/OLoeVohc9zsavP6XTaNDuvA2lG4/FX3njb7XQkEplQJHl9dMxhU6dn52dD4Svd/XV1dYZhqrK0HEu+9NrbTrvd6XAASVVFuT4yNjcfqqj0mSz5K3nriDcxpZZhSfLodLh7ZGFyOb6wFPa53TZVNkVTFKQtmLvvD2U1wQaISt29A0f37ZpdSkzOzs4Jlnd+SZDEheXI5Oz84vxi+7bmhfnlpJGZmZnf2ZZaiqU0Ways8PQMDO7fuSNrGD3D0/W1fkudvXqlW1W0Sr9Ls9nT6ZQiKfV1tdFYYnZ+3pKEeCJpE4TGxtpoJH3pardsc3icLqcm1gYDS5FM1+Bka1P91BzwZRlINTo5p2nqhx450T0wdO5K/2c+/lRv/8DBPdsDAf8r59512Oxej3t0es5mc46//q7baT95dL8k3ETGRBarLinDs8DlhMepTSyEt+1suDo4dmhPq10QthDhg3AUF3ulMr1CTXXltYHhdDZVXekTZSmZSINRROKJaCJld3vGpuci8VQybrS3tKuKHIlE9ayxsBByurwgzIuLoaDfg+szs4s7t3c0tzcqdhvAy5KU5Vi8q29kam6+qjoQrK6uqHD7AxX4qubQEoZQ5/devjbgcrkgk+zZ0WYYmeGxSVkSagMVoxOzfn9QlpSuvuuS6sik9PBSqK6mun94dGh8ypKVtGFOzy+5Pb5EMhWJppgvtMnl+01bxURe2Xt0Zqm9LagqYiKVaqr0qHYtFI6RqLYFKB8gnpBz4DONzo42CEIVFT5V1WZnZmvra7PZNMSgifnl77/4xrNPPaypoqraIO0kE8nGhno9k/Z43DOz83W11RDuz5w4YAhmIp6yqzZdMCE4pVPZeDwWrN4zPT3j9Xk1laUgFxqrI0shwTB2tjUA8iq8ntaGEBiCYOodzTXtLXXJRMrndUuyuByOgltAKJqfX/BXeJ4984Df65EDfl5NzBXwscLdPp93fGLy6L5tsWiE7SUyRdoUxE0T8xyoM/9EvDo4vswmhCUnlbdUhQ+KyrGa4OV831cL2DnjTCKZhErs87o2BCgWx8mgSZDXt8qusVNBkUgmLVFysKraJudUuVoTecZV6qPP3xPXtJN/LJdJcZMQbPFUa+LEQmR6btHurny3Z/TBXc2xaPjAzmZFFrb0hA8gJqwAWlF8An/MpCTeIs+CJq6YTPl/cillcwktCJ/yJ5TGTVjtfZ3/MJ1bhX0Rq/B0LiWmWLrPIPIKFGIOfgvQz3ph5MJaCp/Y9CyYLP8uy+Q/Ph8Zm1mCVOZQlY62epfK/Ze3rKgfWExYl3ha96dtnUVX8OQ0oixndNMydLtNEXIW6S082MKED95hGQZUZM5xeDpGSbK2MGELEz4gRzqdvnjxYiwWa21t3bZtW3EVsy0c+OAc/z/Jn7NZNF5YbwAAAABJRU5ErkJggg==' diff --git a/src/components/Collection/Collection.test.tsx b/src/components/Collection/Collection.test.tsx index 5559d35a55..59cc1daa4e 100644 --- a/src/components/Collection/Collection.test.tsx +++ b/src/components/Collection/Collection.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { Collection } from './Collection' +import Collection from './Collection' describe('Collection component', () => { it('renders without errors', () => { diff --git a/src/components/Collection/Collection.tsx b/src/components/Collection/Collection.tsx index 38ea55a32a..2428df4c02 100644 --- a/src/components/Collection/Collection.tsx +++ b/src/components/Collection/Collection.tsx @@ -1,16 +1,16 @@ import React from 'react' import classnames from 'classnames' -type CollectionProps = { +export type CollectionProps = { condensed?: boolean -} +} & JSX.IntrinsicElements['ul'] -export const Collection = ({ +const Collection = ({ children, className, condensed, ...ulProps -}: CollectionProps & JSX.IntrinsicElements['ul']): React.ReactElement => { +}: CollectionProps): React.ReactElement => { const classes = classnames( 'usa-collection', { 'usa-collection--condensed': condensed }, @@ -22,3 +22,5 @@ export const Collection = ({ ) } + +export default Collection diff --git a/src/components/Collection/CollectionCalendarDate.test.tsx b/src/components/Collection/CollectionCalendarDate.test.tsx index 4e7b7c797e..12a213c209 100644 --- a/src/components/Collection/CollectionCalendarDate.test.tsx +++ b/src/components/Collection/CollectionCalendarDate.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { CollectionCalendarDate } from './CollectionCalendarDate' +import CollectionCalendarDate from './CollectionCalendarDate' describe('CollectionCalendarDate', () => { it('renders without errors', () => { diff --git a/src/components/Collection/CollectionCalendarDate.tsx b/src/components/Collection/CollectionCalendarDate.tsx index addedf6452..b191d02a42 100644 --- a/src/components/Collection/CollectionCalendarDate.tsx +++ b/src/components/Collection/CollectionCalendarDate.tsx @@ -1,10 +1,10 @@ import React from 'react' -interface CollectionCalendarDateProps { +export interface CollectionCalendarDateProps { datetime: string } -const SHORT_MONTH_LABELS = [ +export const SHORT_MONTH_LABELS = [ 'Jan', 'Feb', 'Mar', @@ -19,7 +19,7 @@ const SHORT_MONTH_LABELS = [ 'Dec', ] -export const CollectionCalendarDate = ({ +const CollectionCalendarDate = ({ datetime, }: CollectionCalendarDateProps): React.ReactElement => { const dateObj = new Date(datetime) @@ -44,3 +44,5 @@ export const CollectionCalendarDate = ({

) } + +export default CollectionCalendarDate diff --git a/src/components/Collection/CollectionDescription.test.tsx b/src/components/Collection/CollectionDescription.test.tsx index 106bc2003a..795244d219 100644 --- a/src/components/Collection/CollectionDescription.test.tsx +++ b/src/components/Collection/CollectionDescription.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { CollectionDescription } from './CollectionDescription' +import CollectionDescription from './CollectionDescription' describe('CollectionDescription component', () => { it('renders without errors', () => { diff --git a/src/components/Collection/CollectionDescription.tsx b/src/components/Collection/CollectionDescription.tsx index 3592a49c39..a7c657a99e 100644 --- a/src/components/Collection/CollectionDescription.tsx +++ b/src/components/Collection/CollectionDescription.tsx @@ -1,11 +1,13 @@ import React from 'react' import classname from 'classnames' -export const CollectionDescription = ({ +export type CollectionDescriptionProps = JSX.IntrinsicElements['p'] + +const CollectionDescription = ({ className, children, ...props -}: JSX.IntrinsicElements['p']): React.ReactElement => { +}: CollectionDescriptionProps): React.ReactElement => { const classes = classname('usa-collection__description', className) return (

@@ -13,3 +15,5 @@ export const CollectionDescription = ({

) } + +export default CollectionDescription diff --git a/src/components/Collection/CollectionHeading.test.tsx b/src/components/Collection/CollectionHeading.test.tsx index cc61a408cb..55c849c0fe 100644 --- a/src/components/Collection/CollectionHeading.test.tsx +++ b/src/components/Collection/CollectionHeading.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { CollectionHeading } from './CollectionHeading' +import CollectionHeading from './CollectionHeading' import { HeadingLevel } from '../../types/headingLevel' describe('CollectionHeading component', () => { diff --git a/src/components/Collection/CollectionHeading.tsx b/src/components/Collection/CollectionHeading.tsx index 919a3c285c..b2195aac84 100644 --- a/src/components/Collection/CollectionHeading.tsx +++ b/src/components/Collection/CollectionHeading.tsx @@ -1,19 +1,20 @@ import React from 'react' import classnames from 'classnames' import { HeadingLevel } from '../../types/headingLevel' -interface CollectionHeadingProps { + +export type CollectionHeadingProps = { headingLevel: HeadingLevel -} -export const CollectionHeading = ({ +} & React.DetailedHTMLProps< + React.HTMLAttributes, + HTMLHeadingElement +> + +const CollectionHeading = ({ headingLevel, className, children, ...props -}: CollectionHeadingProps & - React.DetailedHTMLProps< - React.HTMLAttributes, - HTMLHeadingElement - >): React.ReactElement => { +}: CollectionHeadingProps): React.ReactElement => { const Heading = headingLevel const classes = classnames('usa-collection__heading', className) @@ -23,3 +24,5 @@ export const CollectionHeading = ({ ) } + +export default CollectionHeading diff --git a/src/components/Collection/CollectionItem.test.tsx b/src/components/Collection/CollectionItem.test.tsx index 9baee6bb39..9bbcf9c38e 100644 --- a/src/components/Collection/CollectionItem.test.tsx +++ b/src/components/Collection/CollectionItem.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { CollectionItem } from './CollectionItem' +import CollectionItem from './CollectionItem' describe('CollectionItem component', () => { it('renders without errors', () => { diff --git a/src/components/Collection/CollectionItem.tsx b/src/components/Collection/CollectionItem.tsx index ac876993be..9ad4e72d7f 100644 --- a/src/components/Collection/CollectionItem.tsx +++ b/src/components/Collection/CollectionItem.tsx @@ -1,16 +1,16 @@ import React from 'react' import classnames from 'classnames' -interface CollectionItemProps { +export type CollectionItemProps = { variantComponent?: React.ReactNode -} +} & JSX.IntrinsicElements['li'] -export const CollectionItem = ({ +const CollectionItem = ({ className, children, variantComponent, ...props -}: CollectionItemProps & JSX.IntrinsicElements['li']): React.ReactElement => { +}: CollectionItemProps): React.ReactElement => { const classes = classnames('usa-collection__item', className) return ( @@ -20,3 +20,5 @@ export const CollectionItem = ({ ) } + +export default CollectionItem diff --git a/src/components/Collection/CollectionMeta.test.tsx b/src/components/Collection/CollectionMeta.test.tsx index 0b51fce1fa..5c2ddc46ef 100644 --- a/src/components/Collection/CollectionMeta.test.tsx +++ b/src/components/Collection/CollectionMeta.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { CollectionMeta } from './CollectionMeta' -import { CollectionMetaItem } from './CollectionMetaItem' +import CollectionMeta from './CollectionMeta' +import CollectionMetaItem from './CollectionMetaItem' describe('CollectionMeta component', () => { it('renders without errors', () => { diff --git a/src/components/Collection/CollectionMeta.tsx b/src/components/Collection/CollectionMeta.tsx index 7e06be50a1..e22f60b607 100644 --- a/src/components/Collection/CollectionMeta.tsx +++ b/src/components/Collection/CollectionMeta.tsx @@ -1,11 +1,13 @@ import React from 'react' import classnames from 'classnames' -export const CollectionMeta = ({ +export type CollectionMetaProps = JSX.IntrinsicElements['ul'] + +const CollectionMeta = ({ className, children, ...props -}: JSX.IntrinsicElements['ul']): React.ReactElement => { +}: CollectionMetaProps): React.ReactElement => { const classes = classnames('usa-collection__meta', className) return ( @@ -14,3 +16,5 @@ export const CollectionMeta = ({ ) } + +export default CollectionMeta diff --git a/src/components/Collection/CollectionMetaItem.test.tsx b/src/components/Collection/CollectionMetaItem.test.tsx index 4929766a8e..2538cf0543 100644 --- a/src/components/Collection/CollectionMetaItem.test.tsx +++ b/src/components/Collection/CollectionMetaItem.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { CollectionMetaItem } from './CollectionMetaItem' +import CollectionMetaItem from './CollectionMetaItem' describe('CollectionMetaItem', () => { it('renders without errors', () => { diff --git a/src/components/Collection/CollectionMetaItem.tsx b/src/components/Collection/CollectionMetaItem.tsx index 1eb5bd6ed5..e9ca2dc7a8 100644 --- a/src/components/Collection/CollectionMetaItem.tsx +++ b/src/components/Collection/CollectionMetaItem.tsx @@ -1,11 +1,13 @@ import React from 'react' import classnames from 'classnames' -export const CollectionMetaItem = ({ +export type CollectionMetaItemProps = JSX.IntrinsicElements['li'] + +const CollectionMetaItem = ({ className, children, ...props -}: JSX.IntrinsicElements['li']): React.ReactElement => { +}: CollectionMetaItemProps): React.ReactElement => { const classes = classnames('usa-collection__meta-item', className) return ( @@ -14,3 +16,5 @@ export const CollectionMetaItem = ({ ) } + +export default CollectionMetaItem diff --git a/src/components/Collection/CollectionMetaItemTag.test.tsx b/src/components/Collection/CollectionMetaItemTag.test.tsx index 03c5d64d6d..9c9e7cf5ad 100644 --- a/src/components/Collection/CollectionMetaItemTag.test.tsx +++ b/src/components/Collection/CollectionMetaItemTag.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { CollectionMetaItemTag } from './CollectionMetaItemTag' +import CollectionMetaItemTag from './CollectionMetaItemTag' describe('CollectionMetaItemTag', () => { it('renders without errors', () => { diff --git a/src/components/Collection/CollectionMetaItemTag.tsx b/src/components/Collection/CollectionMetaItemTag.tsx index 51a711e5d3..519321620f 100644 --- a/src/components/Collection/CollectionMetaItemTag.tsx +++ b/src/components/Collection/CollectionMetaItemTag.tsx @@ -1,17 +1,16 @@ import React from 'react' import classnames from 'classnames' -interface CollectionMetaItemTagProps { +export type CollectionMetaItemTagProps = { tagStyle?: 'new' | 'default' -} +} & JSX.IntrinsicElements['li'] -export const CollectionMetaItemTag = ({ +const CollectionMetaItemTag = ({ className, children, tagStyle, ...props -}: CollectionMetaItemTagProps & - JSX.IntrinsicElements['li']): React.ReactElement => { +}: CollectionMetaItemTagProps): React.ReactElement => { const classes = classnames( 'usa-collection__meta-item', 'usa-tag', @@ -25,3 +24,5 @@ export const CollectionMetaItemTag = ({ ) } + +export default CollectionMetaItemTag diff --git a/src/components/Collection/CollectionThumbnail.test.tsx b/src/components/Collection/CollectionThumbnail.test.tsx index 587cc0d566..2920eff950 100644 --- a/src/components/Collection/CollectionThumbnail.test.tsx +++ b/src/components/Collection/CollectionThumbnail.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { CollectionThumbnail } from './CollectionThumbnail' +import CollectionThumbnail from './CollectionThumbnail' describe('CollectionThumbnail component', () => { it('renders without errors', () => { diff --git a/src/components/Collection/CollectionThumbnail.tsx b/src/components/Collection/CollectionThumbnail.tsx index e99084b912..2dd36b45f2 100644 --- a/src/components/Collection/CollectionThumbnail.tsx +++ b/src/components/Collection/CollectionThumbnail.tsx @@ -1,13 +1,17 @@ import React from 'react' import classnames from 'classnames' -export const CollectionThumbnail = ({ +export type CollectionThumbnailProps = JSX.IntrinsicElements['img'] + +const CollectionThumbnail = ({ className, src, alt, ...props -}: JSX.IntrinsicElements['img']): React.ReactElement => { +}: CollectionThumbnailProps): React.ReactElement => { const classes = classnames('usa-collection__img', className) return {alt} } + +export default CollectionThumbnail diff --git a/src/components/Footer/Address/Address.stories.tsx b/src/components/Footer/Address/Address.stories.tsx index 68a89f83f0..0405d6c9e9 100644 --- a/src/components/Footer/Address/Address.stories.tsx +++ b/src/components/Footer/Address/Address.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Address } from './Address' +import Address from './Address' export default { title: 'Components/Footer/Address', diff --git a/src/components/Footer/Address/Address.test.tsx b/src/components/Footer/Address/Address.test.tsx index 69cf531acc..110af0ff65 100644 --- a/src/components/Footer/Address/Address.test.tsx +++ b/src/components/Footer/Address/Address.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { Address } from './Address' +import Address from './Address' const addressItems = [ diff --git a/src/components/Footer/Address/Address.tsx b/src/components/Footer/Address/Address.tsx index 8190c2d193..9476e06ec8 100644 --- a/src/components/Footer/Address/Address.tsx +++ b/src/components/Footer/Address/Address.tsx @@ -1,19 +1,19 @@ import React from 'react' import classnames from 'classnames' -type AddressProps = { +export type AddressProps = { size?: 'big' | 'medium' | 'slim' /* Contact info items - e.g. anchor tags or text for email, phone, website, etc. */ items: React.ReactNode[] -} +} & React.HTMLAttributes -export const Address = ({ +const Address = ({ size, className, items, -}: AddressProps & React.HTMLAttributes): React.ReactElement => { +}: AddressProps): React.ReactElement => { const isBig = size === 'big' const isMedium = size === 'medium' const isSlim = size === 'slim' @@ -46,3 +46,5 @@ export const Address = ({ ) } + +export default Address diff --git a/src/components/Footer/Footer/Footer.stories.tsx b/src/components/Footer/Footer/Footer.stories.tsx index 9ae97202b6..343c97e489 100644 --- a/src/components/Footer/Footer/Footer.stories.tsx +++ b/src/components/Footer/Footer/Footer.stories.tsx @@ -1,15 +1,16 @@ /* eslint-disable jsx-a11y/anchor-is-valid */ import React from 'react' -import { Address } from '../Address/Address' -import { Button } from '../../Button/Button' -import { Footer } from './Footer' -import { FooterNav } from '../FooterNav/FooterNav' -import { Form } from '../../forms/Form/Form' -import { Label } from '../../forms/Label/Label' -import { Logo } from '../Logo/Logo' -import { SocialLinks, SocialLink } from '../SocialLinks/SocialLinks' -import { TextInput } from '../../forms/TextInput/TextInput' +import Address from '../Address/Address' +import Button from '../../Button/Button' +import Footer from './Footer' +import FooterNav from '../FooterNav/FooterNav' +import Form from '../../forms/Form/Form' +import Label from '../../forms/Label/Label' +import Logo from '../Logo/Logo' +import TextInput from '../../forms/TextInput/TextInput' +import SocialLink from '../SocialLinks/SocialLink' +import SocialLinks from '../SocialLinks/SocialLinks' // assets import logoImg from '@uswds/uswds/img/logo-img.png' diff --git a/src/components/Footer/Footer/Footer.test.tsx b/src/components/Footer/Footer/Footer.test.tsx index 1703fd3ac0..2157f69b84 100644 --- a/src/components/Footer/Footer/Footer.test.tsx +++ b/src/components/Footer/Footer/Footer.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { Footer } from './Footer' +import Footer from './Footer' const nav = ( ) } + +export default FooterNav diff --git a/src/components/Footer/FooterNav/utils.ts b/src/components/Footer/FooterNav/utils.ts new file mode 100644 index 0000000000..777831229f --- /dev/null +++ b/src/components/Footer/FooterNav/utils.ts @@ -0,0 +1,7 @@ +import { ExtendedNavLinksType } from '../FooterExtendedNavList/FooterExtendedNavList' + +export function isExtendedNavLinks( + links: React.ReactNode[] | ExtendedNavLinksType +): links is ExtendedNavLinksType { + return (links as ExtendedNavLinksType)[0].constructor === Array +} diff --git a/src/components/Footer/Logo/Logo.stories.tsx b/src/components/Footer/Logo/Logo.stories.tsx index b587feca87..e9391b5f43 100644 --- a/src/components/Footer/Logo/Logo.stories.tsx +++ b/src/components/Footer/Logo/Logo.stories.tsx @@ -1,6 +1,6 @@ import React from 'react' -import { Logo } from './Logo' +import Logo from './Logo' // assets import logoImg from '@uswds/uswds/img/logo-img.png' diff --git a/src/components/Footer/Logo/Logo.test.tsx b/src/components/Footer/Logo/Logo.test.tsx index d99fc5fc40..0e010f0571 100644 --- a/src/components/Footer/Logo/Logo.test.tsx +++ b/src/components/Footer/Logo/Logo.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { Logo } from './Logo' +import Logo from './Logo' const heading =

Swoosh Branding

const logoImage = ( diff --git a/src/components/Footer/Logo/Logo.tsx b/src/components/Footer/Logo/Logo.tsx index 49ee13f914..ee42c57cbb 100644 --- a/src/components/Footer/Logo/Logo.tsx +++ b/src/components/Footer/Logo/Logo.tsx @@ -1,18 +1,18 @@ import React from 'react' import classnames from 'classnames' -type LogoProps = { +export type LogoProps = { size?: 'big' | 'medium' | 'slim' heading?: React.ReactNode image: React.ReactNode -} +} & React.HtmlHTMLAttributes -export const Logo = ({ +const Logo = ({ size, heading, image, ...elementAttributes -}: LogoProps & React.HtmlHTMLAttributes): React.ReactElement => { +}: LogoProps): React.ReactElement => { const isBig = size === 'big' const isMedium = size === 'medium' const isSlim = size === 'slim' @@ -40,3 +40,5 @@ export const Logo = ({ ) } + +export default Logo diff --git a/src/components/Footer/SocialLinks/SocialLink.tsx b/src/components/Footer/SocialLinks/SocialLink.tsx new file mode 100644 index 0000000000..8925acd7b0 --- /dev/null +++ b/src/components/Footer/SocialLinks/SocialLink.tsx @@ -0,0 +1,41 @@ +import React from 'react' +import { IconProps } from '../../Icon/Icon' +import Icon from '../../Icon/Icons' + +export type SocialLinkProps = { + name: 'Facebook' | 'Twitter' | 'YouTube' | 'Instagram' | 'RSS' +} & JSX.IntrinsicElements['a'] + +const SocialLink = ({ + name, + ...props +}: SocialLinkProps): React.ReactElement => { + let IconComponent: React.ComponentType + switch (name) { + case 'Facebook': + IconComponent = Icon.Facebook + break + case 'Twitter': + IconComponent = Icon.Twitter + break + case 'YouTube': + IconComponent = Icon.Youtube + break + case 'Instagram': + IconComponent = Icon.Instagram + break + case 'RSS': + IconComponent = Icon.RssFeed + break + } + + return ( +
+ {IconComponent && ( + + )} + + ) +} + +export default SocialLink diff --git a/src/components/Footer/SocialLinks/SocialLinks.stories.tsx b/src/components/Footer/SocialLinks/SocialLinks.stories.tsx index 78d1422fe4..d7f5145dd0 100644 --- a/src/components/Footer/SocialLinks/SocialLinks.stories.tsx +++ b/src/components/Footer/SocialLinks/SocialLinks.stories.tsx @@ -1,6 +1,7 @@ /* eslint-disable jsx-a11y/anchor-is-valid */ import React from 'react' -import { SocialLinks, SocialLink } from './SocialLinks' +import SocialLink from './SocialLink' +import SocialLinks from './SocialLinks' export default { title: 'Components/Footer/SocialLinks', diff --git a/src/components/Footer/SocialLinks/SocialLinks.test.tsx b/src/components/Footer/SocialLinks/SocialLinks.test.tsx index 04e0c71155..2793511f53 100644 --- a/src/components/Footer/SocialLinks/SocialLinks.test.tsx +++ b/src/components/Footer/SocialLinks/SocialLinks.test.tsx @@ -1,8 +1,8 @@ /* eslint-disable jsx-a11y/anchor-is-valid */ import React from 'react' import { render, screen } from '@testing-library/react' - -import { SocialLinks, SocialLink } from './SocialLinks' +import SocialLinks from './SocialLinks' +import SocialLink from './SocialLink' const links = [ diff --git a/src/components/Footer/SocialLinks/SocialLinks.tsx b/src/components/Footer/SocialLinks/SocialLinks.tsx index 1f70126720..c660fca1f2 100644 --- a/src/components/Footer/SocialLinks/SocialLinks.tsx +++ b/src/components/Footer/SocialLinks/SocialLinks.tsx @@ -1,21 +1,15 @@ /* eslint-disable jsx-a11y/anchor-is-valid */ import React from 'react' import classnames from 'classnames' -import { Icon } from '../../Icon/Icons' -import { IconProps } from '../../Icon/Icon' -type SocialLinksProps = { +export type SocialLinksProps = { links: React.ReactNode[] -} - -type SocialLinkProps = { - name: 'Facebook' | 'Twitter' | 'YouTube' | 'Instagram' | 'RSS' -} +} & JSX.IntrinsicElements['div'] -export const SocialLinks = ({ +const SocialLinks = ({ className, links, -}: SocialLinksProps & JSX.IntrinsicElements['div']): React.ReactElement => { +}: SocialLinksProps): React.ReactElement => { const classes = classnames( 'usa-footer__social-links grid-row grid-gap-1', className @@ -31,34 +25,4 @@ export const SocialLinks = ({ ) } -export const SocialLink = ({ - name, - ...props -}: SocialLinkProps & JSX.IntrinsicElements['a']): React.ReactElement => { - let IconComponent: React.ComponentType - switch (name) { - case 'Facebook': - IconComponent = Icon.Facebook - break - case 'Twitter': - IconComponent = Icon.Twitter - break - case 'YouTube': - IconComponent = Icon.Youtube - break - case 'Instagram': - IconComponent = Icon.Instagram - break - case 'RSS': - IconComponent = Icon.RssFeed - break - } - - return ( - - {IconComponent && ( - - )} - - ) -} +export default SocialLinks diff --git a/src/components/IconList/IconList.stories.tsx b/src/components/IconList/IconList.stories.tsx index 7f850b127c..09946b4274 100644 --- a/src/components/IconList/IconList.stories.tsx +++ b/src/components/IconList/IconList.stories.tsx @@ -1,10 +1,10 @@ import React, { ReactElement } from 'react' -import { Icon } from '../Icon/Icons' -import { IconList } from './IconList' -import { IconListItem } from './IconListItem/IconListItem' -import { IconListIcon } from './IconListIcon/IconListIcon' -import { IconListTitle } from './IconListTitle/IconListTitle' -import { IconListContent } from './IconListContent/IconListContent' +import Icon from '../Icon/Icons' +import IconList from './IconList' +import IconListItem from './IconListItem/IconListItem' +import IconListIcon from './IconListIcon/IconListIcon' +import IconListTitle from './IconListTitle/IconListTitle' +import IconListContent from './IconListContent/IconListContent' export default { title: 'Components/Icon list', diff --git a/src/components/IconList/IconList.test.tsx b/src/components/IconList/IconList.test.tsx index be29acfd9d..ab4b6b872c 100644 --- a/src/components/IconList/IconList.test.tsx +++ b/src/components/IconList/IconList.test.tsx @@ -1,11 +1,11 @@ import { render } from '@testing-library/react' import React from 'react' -import { IconList } from './IconList' -import { Icon } from '../Icon/Icons' -import { IconListItem } from './IconListItem/IconListItem' -import { IconListIcon } from './IconListIcon/IconListIcon' -import { IconListContent } from './IconListContent/IconListContent' -import { IconListTitle } from './IconListTitle/IconListTitle' +import IconList from './IconList' +import Icon from '../Icon/Icons' +import IconListItem from './IconListItem/IconListItem' +import IconListIcon from './IconListIcon/IconListIcon' +import IconListContent from './IconListContent/IconListContent' +import IconListTitle from './IconListTitle/IconListTitle' describe('Icon List', () => { it('renders without errors', () => { diff --git a/src/components/IconList/IconList.tsx b/src/components/IconList/IconList.tsx index 188e4d3471..6f4a112472 100644 --- a/src/components/IconList/IconList.tsx +++ b/src/components/IconList/IconList.tsx @@ -1,15 +1,12 @@ import React, { ReactElement } from 'react' import classnames from 'classnames' -interface IconListProps { +export type IconListProps = { children: React.ReactNode className?: string -} +} & JSX.IntrinsicElements['ul'] -export const IconList = ({ - children, - className, -}: IconListProps & JSX.IntrinsicElements['ul']): ReactElement => { +const IconList = ({ children, className }: IconListProps): ReactElement => { const classes = classnames(className, 'usa-icon-list') return ( diff --git a/src/components/IconList/IconListContent/IconListContent.test.tsx b/src/components/IconList/IconListContent/IconListContent.test.tsx index c382f4f68b..67e6beef3b 100644 --- a/src/components/IconList/IconListContent/IconListContent.test.tsx +++ b/src/components/IconList/IconListContent/IconListContent.test.tsx @@ -1,6 +1,6 @@ import { render } from '@testing-library/react' import React from 'react' -import { IconListContent } from './IconListContent' +import IconListContent from './IconListContent' describe('Icon List Content', () => { it('renders without errors', () => { diff --git a/src/components/IconList/IconListContent/IconListContent.tsx b/src/components/IconList/IconListContent/IconListContent.tsx index 0765541d4f..c93c2664d9 100644 --- a/src/components/IconList/IconListContent/IconListContent.tsx +++ b/src/components/IconList/IconListContent/IconListContent.tsx @@ -1,16 +1,16 @@ import classnames from 'classnames' import React, { ReactElement, ReactNode } from 'react' -interface IconListContentProps { +export type IconListContentProps = { className?: string children?: ReactNode -} +} & JSX.IntrinsicElements['div'] -export const IconListContent = ({ +const IconListContent = ({ className, children, ...divProps -}: IconListContentProps & JSX.IntrinsicElements['div']): ReactElement => { +}: IconListContentProps): ReactElement => { const classes = classnames(className, 'usa-icon-list__content') return ( diff --git a/src/components/IconList/IconListIcon/IconListIcon.test.tsx b/src/components/IconList/IconListIcon/IconListIcon.test.tsx index 6a40e56add..20ef668004 100644 --- a/src/components/IconList/IconListIcon/IconListIcon.test.tsx +++ b/src/components/IconList/IconListIcon/IconListIcon.test.tsx @@ -1,7 +1,7 @@ import { render } from '@testing-library/react' import React from 'react' -import { Icon } from '../../Icon/Icons' -import { IconListIcon } from './IconListIcon' +import Icon from '../../Icon/Icons' +import IconListIcon from './IconListIcon' describe('Icon List Icon', () => { it('renders without errors', () => { diff --git a/src/components/IconList/IconListIcon/IconListIcon.tsx b/src/components/IconList/IconListIcon/IconListIcon.tsx index df8535992b..bb062d005a 100644 --- a/src/components/IconList/IconListIcon/IconListIcon.tsx +++ b/src/components/IconList/IconListIcon/IconListIcon.tsx @@ -1,16 +1,16 @@ import classnames from 'classnames' import React, { ReactElement, ReactNode } from 'react' -interface IconListIconProps { +export type IconListIconProps = { className?: string children: ReactNode -} +} & JSX.IntrinsicElements['div'] -export const IconListIcon = ({ +const IconListIcon = ({ className, children, ...divProps -}: IconListIconProps & JSX.IntrinsicElements['div']): ReactElement => { +}: IconListIconProps): ReactElement => { const classes = classnames(className, 'usa-icon-list__icon') return ( @@ -19,4 +19,4 @@ export const IconListIcon = ({ ) } -export default IconListIconProps +export default IconListIcon diff --git a/src/components/IconList/IconListItem/IconListItem.test.tsx b/src/components/IconList/IconListItem/IconListItem.test.tsx index a16b44b918..9425130603 100644 --- a/src/components/IconList/IconListItem/IconListItem.test.tsx +++ b/src/components/IconList/IconListItem/IconListItem.test.tsx @@ -1,10 +1,10 @@ import { render } from '@testing-library/react' import React from 'react' -import { Icon } from '../../Icon/Icons' -import { IconListItem } from './IconListItem' -import { IconListIcon } from '../IconListIcon/IconListIcon' -import { IconListContent } from '../IconListContent/IconListContent' -import { IconListTitle } from '../IconListTitle/IconListTitle' +import Icon from '../../Icon/Icons' +import IconListItem from './IconListItem' +import IconListIcon from '../IconListIcon/IconListIcon' +import IconListContent from '../IconListContent/IconListContent' +import IconListTitle from '../IconListTitle/IconListTitle' describe('Icon List Item', () => { it('renders without errors', () => { diff --git a/src/components/IconList/IconListItem/IconListItem.tsx b/src/components/IconList/IconListItem/IconListItem.tsx index fe8aa99ede..36bbd39944 100644 --- a/src/components/IconList/IconListItem/IconListItem.tsx +++ b/src/components/IconList/IconListItem/IconListItem.tsx @@ -1,16 +1,16 @@ import React, { ReactElement, ReactNode } from 'react' import classnames from 'classnames' -interface IconListItemProps { +export type IconListItemProps = { className?: string children: ReactNode -} +} & JSX.IntrinsicElements['li'] -export const IconListItem = ({ +const IconListItem = ({ className, children, ...liProps -}: IconListItemProps & JSX.IntrinsicElements['li']): ReactElement => { +}: IconListItemProps): ReactElement => { const classes = classnames(className, 'usa-icon-list__item') return ( diff --git a/src/components/IconList/IconListTitle/IconListTitle.test.tsx b/src/components/IconList/IconListTitle/IconListTitle.test.tsx index 72fbce586d..666266a5d8 100644 --- a/src/components/IconList/IconListTitle/IconListTitle.test.tsx +++ b/src/components/IconList/IconListTitle/IconListTitle.test.tsx @@ -1,6 +1,6 @@ import { render } from '@testing-library/react' import React from 'react' -import { IconListTitle } from './IconListTitle' +import IconListTitle from './IconListTitle' describe('Icon List Title', () => { it('renders without errors', () => { diff --git a/src/components/IconList/IconListTitle/IconListTitle.tsx b/src/components/IconList/IconListTitle/IconListTitle.tsx index 49d669a80a..1c568ddcd6 100644 --- a/src/components/IconList/IconListTitle/IconListTitle.tsx +++ b/src/components/IconList/IconListTitle/IconListTitle.tsx @@ -2,30 +2,30 @@ import React, { ReactElement } from 'react' import classnames from 'classnames' import { HeadingLevel } from '../../../types/headingLevel' -interface BaseIconListTitleProps { +export interface BaseIconListTitleProps { type: string children: React.ReactNode className?: string } -interface HeadingIconListTitleProps extends BaseIconListTitleProps { +export interface HeadingIconListTitleProps extends BaseIconListTitleProps { type: HeadingLevel } -interface ParagraphIconListTitleProps extends BaseIconListTitleProps { +export interface ParagraphIconListTitleProps extends BaseIconListTitleProps { type: 'p' } -type IconListHeadingTitleProps = HeadingIconListTitleProps & +export type IconListHeadingTitleProps = HeadingIconListTitleProps & React.DetailedHTMLProps< React.HTMLAttributes, HTMLHeadingElement > -type IconListParagraphTitleProps = ParagraphIconListTitleProps & +export type IconListParagraphTitleProps = ParagraphIconListTitleProps & JSX.IntrinsicElements['p'] -export const IconListTitle = ({ +const IconListTitle = ({ type, children, className, diff --git a/src/components/Identifier/Identifier/Identifier.stories.tsx b/src/components/Identifier/Identifier/Identifier.stories.tsx index ff519c2dc5..5fcc0c1a2d 100644 --- a/src/components/Identifier/Identifier/Identifier.stories.tsx +++ b/src/components/Identifier/Identifier/Identifier.stories.tsx @@ -1,17 +1,17 @@ /* eslint-disable jsx-a11y/anchor-is-valid */ import React from 'react' -import { Identifier } from './Identifier' -import { IdentifierMasthead } from '../IdentifierMasthead/IdentifierMasthead' -import { IdentifierIdentity } from '../IdentifierIdentity/IdentifierIdentity' -import { IdentifierLinks } from '../IdentifierLinks/IdentifierLinks' -import { IdentifierGov } from '../IdentifierGov/IdentifierGov' -import { IdentifierLinkItem } from '../IdentifierLinkItem/IdentifierLinkItem' -import { IdentifierLink } from '../IdentifierLink/IdentifierLink' -import { IdentifierLogo } from '../IdentifierLogo/IdentifierLogo' -import { IdentifierLogos } from '../IdentifierLogos/IdentifierLogos' +import Identifier from './Identifier' +import IdentifierMasthead from '../IdentifierMasthead/IdentifierMasthead' +import IdentifierIdentity from '../IdentifierIdentity/IdentifierIdentity' +import IdentifierLinks from '../IdentifierLinks/IdentifierLinks' +import IdentifierGov from '../IdentifierGov/IdentifierGov' +import IdentifierLinkItem from '../IdentifierLinkItem/IdentifierLinkItem' +import IdentifierLink from '../IdentifierLink/IdentifierLink' +import IdentifierLogo from '../IdentifierLogo/IdentifierLogo' +import IdentifierLogos from '../IdentifierLogos/IdentifierLogos' -import { Link } from '../../Link/Link' +import Link from '../../Link/Link' import dotGovIcon from '@uswds/uswds/img/icon-dot-gov.svg' diff --git a/src/components/Identifier/Identifier/Identifier.test.tsx b/src/components/Identifier/Identifier/Identifier.test.tsx index b5fa7b9e6c..f7f1c2c1f5 100644 --- a/src/components/Identifier/Identifier/Identifier.test.tsx +++ b/src/components/Identifier/Identifier/Identifier.test.tsx @@ -1,16 +1,16 @@ import React from 'react' import { render } from '@testing-library/react' -import { Identifier } from './Identifier' -import { IdentifierMasthead } from '../IdentifierMasthead/IdentifierMasthead' -import { IdentifierLogos } from '../IdentifierLogos/IdentifierLogos' -import { IdentifierLogo } from '../IdentifierLogo/IdentifierLogo' -import { IdentifierIdentity } from '../IdentifierIdentity/IdentifierIdentity' -import { IdentifierLinks } from '../IdentifierLinks/IdentifierLinks' -import { IdentifierLink } from '../IdentifierLink/IdentifierLink' -import { IdentifierLinkItem } from '../IdentifierLinkItem/IdentifierLinkItem' -import { IdentifierGov } from '../IdentifierGov/IdentifierGov' -import { Link } from '../../Link/Link' +import Identifier from './Identifier' +import IdentifierMasthead from '../IdentifierMasthead/IdentifierMasthead' +import IdentifierLogos from '../IdentifierLogos/IdentifierLogos' +import IdentifierLogo from '../IdentifierLogo/IdentifierLogo' +import IdentifierIdentity from '../IdentifierIdentity/IdentifierIdentity' +import IdentifierLinks from '../IdentifierLinks/IdentifierLinks' +import IdentifierLink from '../IdentifierLink/IdentifierLink' +import IdentifierLinkItem from '../IdentifierLinkItem/IdentifierLinkItem' +import IdentifierGov from '../IdentifierGov/IdentifierGov' +import Link from '../../Link/Link' import dotGovIcon from '@uswds/uswds/img/icon-dot-gov.svg' diff --git a/src/components/Identifier/Identifier/Identifier.tsx b/src/components/Identifier/Identifier/Identifier.tsx index 948f5c7989..2a14df1aed 100644 --- a/src/components/Identifier/Identifier/Identifier.tsx +++ b/src/components/Identifier/Identifier/Identifier.tsx @@ -1,16 +1,16 @@ import React from 'react' import classnames from 'classnames' -type IdentifierProps = { +export type IdentifierProps = { className?: string children: React.ReactNode -} +} & JSX.IntrinsicElements['div'] -export const Identifier = ({ +const Identifier = ({ className, children, ...divProps -}: IdentifierProps & JSX.IntrinsicElements['div']): React.ReactElement => { +}: IdentifierProps): React.ReactElement => { const classes = classnames('usa-identifier', className) return (
diff --git a/src/components/Identifier/IdentifierGov/IdentifierGov.test.tsx b/src/components/Identifier/IdentifierGov/IdentifierGov.test.tsx index 397abb555f..9a8ae8a6f3 100644 --- a/src/components/Identifier/IdentifierGov/IdentifierGov.test.tsx +++ b/src/components/Identifier/IdentifierGov/IdentifierGov.test.tsx @@ -2,7 +2,7 @@ import React from 'react' import { render } from '@testing-library/react' import renderer from 'react-test-renderer' -import { IdentifierGov } from './IdentifierGov' +import IdentifierGov from './IdentifierGov' describe('IdentifierGov component', () => { it('renders without errors', () => { diff --git a/src/components/Identifier/IdentifierGov/IdentifierGov.tsx b/src/components/Identifier/IdentifierGov/IdentifierGov.tsx index b5f96932bf..249bdc78d8 100644 --- a/src/components/Identifier/IdentifierGov/IdentifierGov.tsx +++ b/src/components/Identifier/IdentifierGov/IdentifierGov.tsx @@ -1,17 +1,16 @@ import React from 'react' import classnames from 'classnames' -interface IdentifierGovProps { +export type IdentifierGovProps = { children?: React.ReactNode className?: string -} +} & JSX.IntrinsicElements['section'] -export const IdentifierGov = ({ +const IdentifierGov = ({ children, className, ...sectionProps -}: IdentifierGovProps & - JSX.IntrinsicElements['section']): React.ReactElement => { +}: IdentifierGovProps): React.ReactElement => { const classes = classnames( 'usa-identifier__section usa-identifier__section--usagov', className diff --git a/src/components/Identifier/IdentifierIdentity/IdentifierIdentity.test.tsx b/src/components/Identifier/IdentifierIdentity/IdentifierIdentity.test.tsx index 897364452c..5eccedb251 100644 --- a/src/components/Identifier/IdentifierIdentity/IdentifierIdentity.test.tsx +++ b/src/components/Identifier/IdentifierIdentity/IdentifierIdentity.test.tsx @@ -2,8 +2,8 @@ import React from 'react' import { render } from '@testing-library/react' -import { IdentifierIdentity } from './IdentifierIdentity' -import { Link } from '../../Link/Link' +import IdentifierIdentity from './IdentifierIdentity' +import Link from '../../Link/Link' describe('IdentifierIdentity component', () => { it('renders without errors', () => { diff --git a/src/components/Identifier/IdentifierIdentity/IdentifierIdentity.tsx b/src/components/Identifier/IdentifierIdentity/IdentifierIdentity.tsx index 9e3228b97c..d1cd0be56d 100644 --- a/src/components/Identifier/IdentifierIdentity/IdentifierIdentity.tsx +++ b/src/components/Identifier/IdentifierIdentity/IdentifierIdentity.tsx @@ -1,19 +1,18 @@ import React from 'react' import classnames from 'classnames' -interface IdentifierIdentityProps { +export type IdentifierIdentityProps = { children: React.ReactNode domain: string className?: string -} +} & JSX.IntrinsicElements['div'] -export const IdentifierIdentity = ({ +const IdentifierIdentity = ({ children, domain, className, ...divProps -}: IdentifierIdentityProps & - JSX.IntrinsicElements['div']): React.ReactElement => { +}: IdentifierIdentityProps): React.ReactElement => { const classes = classnames('usa-identifier__identity', className) return (
diff --git a/src/components/Identifier/IdentifierLink/IdentifierLink.test.tsx b/src/components/Identifier/IdentifierLink/IdentifierLink.test.tsx index d923926963..a0039819b2 100644 --- a/src/components/Identifier/IdentifierLink/IdentifierLink.test.tsx +++ b/src/components/Identifier/IdentifierLink/IdentifierLink.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { IdentifierLink } from './IdentifierLink' +import IdentifierLink from './IdentifierLink' const testPageName = 'Test Page' diff --git a/src/components/Identifier/IdentifierLink/IdentifierLink.tsx b/src/components/Identifier/IdentifierLink/IdentifierLink.tsx index ac935ad0ba..ea6e7c0e00 100644 --- a/src/components/Identifier/IdentifierLink/IdentifierLink.tsx +++ b/src/components/Identifier/IdentifierLink/IdentifierLink.tsx @@ -1,16 +1,16 @@ import React from 'react' import classnames from 'classnames' -import { - CustomLinkProps, - DefaultLinkProps, - isCustomProps, - Link, -} from '../../Link/Link' +import Link, { CustomLinkProps, DefaultLinkProps } from '../../Link/Link' +import { isCustomProps } from '../../Link/utils' -export function IdentifierLink(props: DefaultLinkProps): React.ReactElement -export function IdentifierLink(props: CustomLinkProps): React.ReactElement -export function IdentifierLink({ +export default function IdentifierLink( + props: DefaultLinkProps +): React.ReactElement +export default function IdentifierLink( + props: CustomLinkProps +): React.ReactElement +export default function IdentifierLink({ className, ...passThroughProps }: DefaultLinkProps | CustomLinkProps): React.ReactElement { diff --git a/src/components/Identifier/IdentifierLinkItem/IdentifierLinkItem.test.tsx b/src/components/Identifier/IdentifierLinkItem/IdentifierLinkItem.test.tsx index 42c1ea89b9..82dae9c310 100644 --- a/src/components/Identifier/IdentifierLinkItem/IdentifierLinkItem.test.tsx +++ b/src/components/Identifier/IdentifierLinkItem/IdentifierLinkItem.test.tsx @@ -1,8 +1,8 @@ import React from 'react' import { render } from '@testing-library/react' -import { IdentifierLink } from '../IdentifierLink/IdentifierLink' -import { IdentifierLinkItem } from '../IdentifierLinkItem/IdentifierLinkItem' +import IdentifierLink from '../IdentifierLink/IdentifierLink' +import IdentifierLinkItem from '../IdentifierLinkItem/IdentifierLinkItem' describe('IdentifierLinkItem component', () => { it('renders without errors', () => { diff --git a/src/components/Identifier/IdentifierLinkItem/IdentifierLinkItem.tsx b/src/components/Identifier/IdentifierLinkItem/IdentifierLinkItem.tsx index c91e623f93..fdca1b8473 100644 --- a/src/components/Identifier/IdentifierLinkItem/IdentifierLinkItem.tsx +++ b/src/components/Identifier/IdentifierLinkItem/IdentifierLinkItem.tsx @@ -1,17 +1,16 @@ import React from 'react' import classnames from 'classnames' -export interface IdentifierLinkItemProps { +export type IdentifierLinkItemProps = { children: React.ReactNode className?: string -} +} & JSX.IntrinsicElements['li'] -export const IdentifierLinkItem = ({ +const IdentifierLinkItem = ({ children, className, ...listItemProps -}: IdentifierLinkItemProps & - JSX.IntrinsicElements['li']): React.ReactElement => { +}: IdentifierLinkItemProps): React.ReactElement => { const classes = classnames('usa-identifier__required-links-item', className) return (
  • @@ -19,3 +18,5 @@ export const IdentifierLinkItem = ({
  • ) } + +export default IdentifierLinkItem diff --git a/src/components/Identifier/IdentifierLinks/IdentifierLinks.test.tsx b/src/components/Identifier/IdentifierLinks/IdentifierLinks.test.tsx index 4b03c8c1dd..42db15b7ea 100644 --- a/src/components/Identifier/IdentifierLinks/IdentifierLinks.test.tsx +++ b/src/components/Identifier/IdentifierLinks/IdentifierLinks.test.tsx @@ -1,9 +1,9 @@ import React from 'react' import { render } from '@testing-library/react' -import { IdentifierLinks } from './IdentifierLinks' -import { IdentifierLinkItem } from '../IdentifierLinkItem/IdentifierLinkItem' -import { IdentifierLink } from '../IdentifierLink/IdentifierLink' +import IdentifierLinks from './IdentifierLinks' +import IdentifierLinkItem from '../IdentifierLinkItem/IdentifierLinkItem' +import IdentifierLink from '../IdentifierLink/IdentifierLink' const testPageName = 'Test Page' diff --git a/src/components/Identifier/IdentifierLinks/IdentifierLinks.tsx b/src/components/Identifier/IdentifierLinks/IdentifierLinks.tsx index 14d45f04f1..961315b9da 100644 --- a/src/components/Identifier/IdentifierLinks/IdentifierLinks.tsx +++ b/src/components/Identifier/IdentifierLinks/IdentifierLinks.tsx @@ -2,7 +2,7 @@ import React, { ReactElement } from 'react' import classnames from 'classnames' import { IdentifierLinkItemProps } from '../IdentifierLinkItem/IdentifierLinkItem' -interface IdentifierLinksProps { +export interface IdentifierLinksProps { children: | ReactElement | ReactElement[] @@ -11,7 +11,7 @@ interface IdentifierLinksProps { listProps?: JSX.IntrinsicElements['ul'] } -export const IdentifierLinks = ({ +const IdentifierLinks = ({ children, className, navProps, diff --git a/src/components/Identifier/IdentifierLogo/IdentifierLogo.test.tsx b/src/components/Identifier/IdentifierLogo/IdentifierLogo.test.tsx index 3afef59b36..c3b41d2ac6 100644 --- a/src/components/Identifier/IdentifierLogo/IdentifierLogo.test.tsx +++ b/src/components/Identifier/IdentifierLogo/IdentifierLogo.test.tsx @@ -3,7 +3,7 @@ import { render } from '@testing-library/react' import dotGovIcon from '@uswds/uswds/img/icon-dot-gov.svg' -import { IdentifierLogo } from './IdentifierLogo' +import IdentifierLogo from './IdentifierLogo' describe('IdentifierLogo component', () => { it('renders without errors', () => { diff --git a/src/components/Identifier/IdentifierLogo/IdentifierLogo.tsx b/src/components/Identifier/IdentifierLogo/IdentifierLogo.tsx index c687935579..05259c187e 100644 --- a/src/components/Identifier/IdentifierLogo/IdentifierLogo.tsx +++ b/src/components/Identifier/IdentifierLogo/IdentifierLogo.tsx @@ -1,16 +1,16 @@ import React from 'react' import classnames from 'classnames' -export interface IdentifierLogoProps { +export type IdentifierLogoProps = { children: React.ReactNode className?: string -} +} & JSX.IntrinsicElements['a'] -export const IdentifierLogo = ({ +const IdentifierLogo = ({ children, className, ...anchorProps -}: IdentifierLogoProps & JSX.IntrinsicElements['a']): React.ReactElement => { +}: IdentifierLogoProps): React.ReactElement => { const classes = classnames('usa-identifier__logo', className) return ( @@ -18,3 +18,5 @@ export const IdentifierLogo = ({ ) } + +export default IdentifierLogo diff --git a/src/components/Identifier/IdentifierLogos/IdentifierLogos.test.tsx b/src/components/Identifier/IdentifierLogos/IdentifierLogos.test.tsx index 29d4020268..4b09326e7d 100644 --- a/src/components/Identifier/IdentifierLogos/IdentifierLogos.test.tsx +++ b/src/components/Identifier/IdentifierLogos/IdentifierLogos.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { IdentifierLogos } from './IdentifierLogos' +import IdentifierLogos from './IdentifierLogos' import dotGovIcon from '@uswds/uswds/img/icon-dot-gov.svg' diff --git a/src/components/Identifier/IdentifierLogos/IdentifierLogos.tsx b/src/components/Identifier/IdentifierLogos/IdentifierLogos.tsx index e99e87bd45..9dbabea3a1 100644 --- a/src/components/Identifier/IdentifierLogos/IdentifierLogos.tsx +++ b/src/components/Identifier/IdentifierLogos/IdentifierLogos.tsx @@ -1,16 +1,16 @@ import React from 'react' import classnames from 'classnames' -interface IdentifierLogosProps { +export type IdentifierLogosProps = { children: React.ReactNode className?: string -} +} & JSX.IntrinsicElements['div'] -export const IdentifierLogos = ({ +const IdentifierLogos = ({ children, className, ...divProps -}: IdentifierLogosProps & JSX.IntrinsicElements['div']): React.ReactElement => { +}: IdentifierLogosProps): React.ReactElement => { const classes = classnames('usa-identifier__logos', className) return (
    diff --git a/src/components/Identifier/IdentifierMasthead/IdentifierMasthead.test.tsx b/src/components/Identifier/IdentifierMasthead/IdentifierMasthead.test.tsx index 54339112f3..aa72d10fe5 100644 --- a/src/components/Identifier/IdentifierMasthead/IdentifierMasthead.test.tsx +++ b/src/components/Identifier/IdentifierMasthead/IdentifierMasthead.test.tsx @@ -3,11 +3,11 @@ import { render } from '@testing-library/react' import dotGovIcon from '@uswds/uswds/img/icon-dot-gov.svg' -import { IdentifierMasthead } from './IdentifierMasthead' -import { IdentifierLogo } from '../IdentifierLogo/IdentifierLogo' -import { IdentifierLogos } from '../IdentifierLogos/IdentifierLogos' -import { IdentifierIdentity } from '../IdentifierIdentity/IdentifierIdentity' -import { Link } from '../../Link/Link' +import IdentifierMasthead from './IdentifierMasthead' +import IdentifierLogo from '../IdentifierLogo/IdentifierLogo' +import IdentifierLogos from '../IdentifierLogos/IdentifierLogos' +import IdentifierIdentity from '../IdentifierIdentity/IdentifierIdentity' +import Link from '../../Link/Link' const testIdentifierLogo = [ { +}: IdentifierMastheadProps): React.ReactElement => { const classes = classnames( 'usa-identifier__section usa-identifier__section--masthead', className diff --git a/src/components/InPageNavigation/InPageNavigation.stories.tsx b/src/components/InPageNavigation/InPageNavigation.stories.tsx index ac1a9fa9a6..db4c9afe11 100644 --- a/src/components/InPageNavigation/InPageNavigation.stories.tsx +++ b/src/components/InPageNavigation/InPageNavigation.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { InPageNavigation } from './InPageNavigation' +import InPageNavigation from './InPageNavigation' import { CONTENT } from './content' import { HeadingLevel } from '../../types/headingLevel' diff --git a/src/components/InPageNavigation/InPageNavigation.test.tsx b/src/components/InPageNavigation/InPageNavigation.test.tsx index 3741b7f63d..e4d26f015f 100644 --- a/src/components/InPageNavigation/InPageNavigation.test.tsx +++ b/src/components/InPageNavigation/InPageNavigation.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { screen, render, getByRole } from '@testing-library/react' import { userEvent } from '@testing-library/user-event' -import { InPageNavigation } from './InPageNavigation' +import InPageNavigation from './InPageNavigation' import { HeadingLevel } from '../../types/headingLevel' import { CONTENT } from './content' diff --git a/src/components/InPageNavigation/InPageNavigation.tsx b/src/components/InPageNavigation/InPageNavigation.tsx index 2309789865..5151c6c51a 100644 --- a/src/components/InPageNavigation/InPageNavigation.tsx +++ b/src/components/InPageNavigation/InPageNavigation.tsx @@ -1,10 +1,10 @@ import React, { useEffect, useState } from 'react' import classnames from 'classnames' import { HeadingLevel } from '../../types/headingLevel' -import { Link } from '../Link/Link' +import Link from '../Link/Link' import styles from './InPageNavigation.module.scss' -type InPageNavigationProps = { +export type InPageNavigationProps = { className?: string content: JSX.Element headingLevel?: HeadingLevel @@ -16,7 +16,7 @@ type InPageNavigationProps = { title?: string } -export const InPageNavigation = ({ +const InPageNavigation = ({ className, content, headingLevel = 'h4', diff --git a/src/components/LanguageSelector/LanguageSelector.stories.tsx b/src/components/LanguageSelector/LanguageSelector.stories.tsx index 27ed73a48e..fffa032d2e 100644 --- a/src/components/LanguageSelector/LanguageSelector.stories.tsx +++ b/src/components/LanguageSelector/LanguageSelector.stories.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react' -import { LanguageSelector, LanguageDefinition } from './LanguageSelector' +import LanguageSelector, { LanguageDefinition } from './LanguageSelector' import { StoryFn } from '@storybook/react' export default { diff --git a/src/components/LanguageSelector/LanguageSelector.test.tsx b/src/components/LanguageSelector/LanguageSelector.test.tsx index e5ac0221f4..b0c7598055 100644 --- a/src/components/LanguageSelector/LanguageSelector.test.tsx +++ b/src/components/LanguageSelector/LanguageSelector.test.tsx @@ -1,7 +1,6 @@ import React from 'react' import { fireEvent, render, waitFor } from '@testing-library/react' -import { - LanguageSelector, +import LanguageSelector, { LanguageDefinition, } from '../LanguageSelector/LanguageSelector' diff --git a/src/components/LanguageSelector/LanguageSelector.tsx b/src/components/LanguageSelector/LanguageSelector.tsx index f8a01e6349..cf270a8404 100644 --- a/src/components/LanguageSelector/LanguageSelector.tsx +++ b/src/components/LanguageSelector/LanguageSelector.tsx @@ -1,6 +1,6 @@ import React, { useState } from 'react' import classnames from 'classnames' -import { LanguageSelectorButton } from './LanguageSelectorButton' +import LanguageSelectorButton from './LanguageSelectorButton' import LanguageSelectorDropdown from './LanguageSelectorDropdown' export type LanguageDefinition = { @@ -16,17 +16,16 @@ export type LanguageSelectorProps = { small?: boolean className?: string displayLang?: string -} +} & JSX.IntrinsicElements['div'] -export const LanguageSelector = ({ +const LanguageSelector = ({ label, langs, small, className, displayLang, ...divProps -}: LanguageSelectorProps & - JSX.IntrinsicElements['div']): React.ReactElement => { +}: LanguageSelectorProps): React.ReactElement => { const classes = classnames( 'usa-language-container', { diff --git a/src/components/LanguageSelector/LanguageSelectorButton.tsx b/src/components/LanguageSelector/LanguageSelectorButton.tsx index 23bda36374..ab8063ec87 100644 --- a/src/components/LanguageSelector/LanguageSelectorButton.tsx +++ b/src/components/LanguageSelector/LanguageSelectorButton.tsx @@ -1,22 +1,21 @@ import React from 'react' import classnames from 'classnames' -type LanguageSelectorButtonProps = { +export type LanguageSelectorButtonProps = { label: string labelAttr?: string isOpen?: boolean onToggle: () => void -} +} & JSX.IntrinsicElements['button'] -export const LanguageSelectorButton = ({ +const LanguageSelectorButton = ({ label, labelAttr, isOpen, onToggle, className, ...buttonProps -}: LanguageSelectorButtonProps & - JSX.IntrinsicElements['button']): React.ReactElement => { +}: LanguageSelectorButtonProps): React.ReactElement => { const classes = classnames('usa-button', 'usa-language__link', className) const buttonContents = labelAttr ? ( {label} diff --git a/src/components/LanguageSelector/LanguageSelectorDropdown.tsx b/src/components/LanguageSelector/LanguageSelectorDropdown.tsx index 7b22236ca7..90222dad25 100644 --- a/src/components/LanguageSelector/LanguageSelectorDropdown.tsx +++ b/src/components/LanguageSelector/LanguageSelectorDropdown.tsx @@ -1,40 +1,9 @@ import React, { useState } from 'react' -import { Menu } from '../header/Menu/Menu' -import { LanguageSelectorButton } from './LanguageSelectorButton' +import Menu from '../header/Menu/Menu' +import LanguageSelectorButton from './LanguageSelectorButton' import classnames from 'classnames' -import { LanguageDefinition, LanguageSelectorProps } from './LanguageSelector' -import { Button } from '../Button/Button' - -const generateMenuItems = (langs: LanguageDefinition[]) => { - return langs.map((lang, index) => { - const label = ( - <> - - {lang.label} - - {lang.label_local && ` (${lang.label_local})`} - - ) - if (typeof lang.on_click === 'string') { - return ( - - {label} - - ) - } else { - return ( - - ) - } - }) -} +import { LanguageSelectorProps } from './LanguageSelector' +import { generateMenuItems } from './utils' const LanguageSelectorDropdown: React.FC = ({ label, diff --git a/src/components/LanguageSelector/utils.tsx b/src/components/LanguageSelector/utils.tsx new file mode 100644 index 0000000000..748292e4b0 --- /dev/null +++ b/src/components/LanguageSelector/utils.tsx @@ -0,0 +1,34 @@ +import React from 'react' +import { Button } from '../..' +import { LanguageDefinition } from './LanguageSelector' + +export const generateMenuItems = (langs: LanguageDefinition[]) => { + return langs.map((lang, index) => { + const label = ( + <> + + {lang.label} + + {lang.label_local && ` (${lang.label_local})`} + + ) + if (typeof lang.on_click === 'string') { + return ( + + {label} + + ) + } else { + return ( + + ) + } + }) +} diff --git a/src/components/Link/Link.stories.tsx b/src/components/Link/Link.stories.tsx index 0158e5780f..cf0dc558bd 100644 --- a/src/components/Link/Link.stories.tsx +++ b/src/components/Link/Link.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Link } from './Link' +import Link from './Link' export default { title: 'Components/Link', diff --git a/src/components/Link/Link.test.tsx b/src/components/Link/Link.test.tsx index 1c4fe34313..60f0dc6a98 100644 --- a/src/components/Link/Link.test.tsx +++ b/src/components/Link/Link.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { Link } from './Link' +import Link from './Link' describe('Link component', () => { beforeEach(() => { diff --git a/src/components/Link/Link.tsx b/src/components/Link/Link.tsx index c555eecc0e..23105cf35b 100644 --- a/src/components/Link/Link.tsx +++ b/src/components/Link/Link.tsx @@ -1,8 +1,8 @@ import React from 'react' -import classnames from 'classnames' +import { handleKeyDown, isCustomProps, linkClasses } from './utils' // These props we want to require always, even on custom components -type StyledLinkProps = { +export type StyledLinkProps = { variant?: 'external' | 'unstyled' | 'nav' className?: string children: React.ReactNode @@ -10,12 +10,12 @@ type StyledLinkProps = { } & T // These props are only required on the default Link -interface WithDefaultLinkProps { +export interface WithDefaultLinkProps { href: string } // Add `asCustom` to the provided custom props -interface WithCustomLinkProps { +export interface WithCustomLinkProps { asCustom: React.FunctionComponent } @@ -29,39 +29,9 @@ export type DefaultLinkProps = StyledLinkProps & // props, plus the required props on WithCustomLinkProps export type CustomLinkProps = StyledLinkProps & WithCustomLinkProps -export function isCustomProps( - props: DefaultLinkProps | CustomLinkProps -): props is CustomLinkProps { - return 'asCustom' in props -} -// keyboard handler for 'link as a button' -const handleKeyDown = (e: React.KeyboardEvent) => { - if (e.key === ' ' && e.target) { - e.preventDefault() - ;(e.target as HTMLElement).click() - } -} - -function linkClasses( - variant: StyledLinkProps['variant'], - className: StyledLinkProps['className'] -): string | undefined { - const unstyled = variant === 'unstyled' - const isExternalLink = variant === 'external' - const isNavLink = variant === 'nav' - - return unstyled - ? className - : classnames( - 'usa-link', - { 'usa-link--external': isExternalLink, 'usa-nav__link': isNavLink }, - className - ) -} - -export function Link(props: DefaultLinkProps): React.ReactElement -export function Link(props: CustomLinkProps): React.ReactElement -export function Link< +export default function Link(props: DefaultLinkProps): React.ReactElement +export default function Link(props: CustomLinkProps): React.ReactElement +export default function Link< FCProps extends React.PropsWithChildren = DefaultLinkProps, >(props: DefaultLinkProps | CustomLinkProps): React.ReactElement { if (isCustomProps(props)) { diff --git a/src/components/Link/utils.ts b/src/components/Link/utils.ts new file mode 100644 index 0000000000..7eb28c63f4 --- /dev/null +++ b/src/components/Link/utils.ts @@ -0,0 +1,32 @@ +import classnames from 'classnames' +import { DefaultLinkProps, CustomLinkProps, StyledLinkProps } from './Link' + +export function isCustomProps( + props: DefaultLinkProps | CustomLinkProps +): props is CustomLinkProps { + return 'asCustom' in props +} +// keyboard handler for 'link as a button' +export const handleKeyDown = (e: React.KeyboardEvent) => { + if (e.key === ' ' && e.target) { + e.preventDefault() + ;(e.target as HTMLElement).click() + } +} + +export function linkClasses( + variant: StyledLinkProps['variant'], + className: StyledLinkProps['className'] +): string | undefined { + const unstyled = variant === 'unstyled' + const isExternalLink = variant === 'external' + const isNavLink = variant === 'nav' + + return unstyled + ? className + : classnames( + 'usa-link', + { 'usa-link--external': isExternalLink, 'usa-nav__link': isNavLink }, + className + ) +} diff --git a/src/components/Modal/Modal.stories.tsx b/src/components/Modal/Modal.stories.tsx index 07ac0bb3b5..be809c8415 100644 --- a/src/components/Modal/Modal.stories.tsx +++ b/src/components/Modal/Modal.stories.tsx @@ -1,11 +1,11 @@ import React, { useRef } from 'react' -import { Modal, ModalRef } from './Modal' -import { ModalHeading } from './ModalHeading/ModalHeading' -import { ModalFooter } from './ModalFooter/ModalFooter' -import { ModalToggleButton } from './ModalToggleButton' +import Modal, { ModalRef } from './Modal' +import ModalHeading from './ModalHeading/ModalHeading' +import ModalFooter from './ModalFooter/ModalFooter' +import ModalToggleButton from './ModalToggleButton' -import { ButtonGroup } from '../ButtonGroup/ButtonGroup' +import ButtonGroup from '../ButtonGroup/ButtonGroup' export default { title: 'Components/Modal', diff --git a/src/components/Modal/Modal.test.tsx b/src/components/Modal/Modal.test.tsx index e1c4c8253a..3bd83fd02a 100644 --- a/src/components/Modal/Modal.test.tsx +++ b/src/components/Modal/Modal.test.tsx @@ -9,12 +9,12 @@ import { } from '@testing-library/react' import { userEvent } from '@testing-library/user-event' -import { Modal, ModalRef } from './Modal' -import { ModalHeading } from './ModalHeading/ModalHeading' -import { ModalFooter } from './ModalFooter/ModalFooter' -import { ModalToggleButton } from './ModalToggleButton' -import { Button } from '../Button/Button' -import { ButtonGroup } from '../ButtonGroup/ButtonGroup' +import Modal, { ModalRef } from './Modal' +import ModalHeading from './ModalHeading/ModalHeading' +import ModalFooter from './ModalFooter/ModalFooter' +import ModalToggleButton from './ModalToggleButton' +import Button from '../Button/Button' +import ButtonGroup from '../ButtonGroup/ButtonGroup' vi.mock('./utils', async (importOriginal) => { const utils = await importOriginal() diff --git a/src/components/Modal/Modal.tsx b/src/components/Modal/Modal.tsx index 9aa354f6d2..b2ad86d325 100644 --- a/src/components/Modal/Modal.tsx +++ b/src/components/Modal/Modal.tsx @@ -8,11 +8,11 @@ import React, { import FocusTrap from 'focus-trap-react' import { useModal, getScrollbarWidth } from './utils' -import { ModalWindow } from './ModalWindow/ModalWindow' -import { ModalWrapper } from './ModalWrapper/ModalWrapper' +import ModalWindow from './ModalWindow/ModalWindow' +import ModalWrapper from './ModalWrapper/ModalWrapper' import ReactDOM from 'react-dom' -interface ModalComponentProps { +export interface ModalComponentProps { id: string children: React.ReactNode className?: string @@ -203,6 +203,6 @@ export const ModalForwardRef: React.ForwardRefRenderFunction< } } -export const Modal = forwardRef(ModalForwardRef) +const Modal = forwardRef(ModalForwardRef) export default Modal diff --git a/src/components/Modal/ModalCloseButton/ModalCloseButton.test.tsx b/src/components/Modal/ModalCloseButton/ModalCloseButton.test.tsx index b56d1bcc41..f616d32a6b 100644 --- a/src/components/Modal/ModalCloseButton/ModalCloseButton.test.tsx +++ b/src/components/Modal/ModalCloseButton/ModalCloseButton.test.tsx @@ -2,7 +2,7 @@ import React from 'react' import { render, screen } from '@testing-library/react' import { userEvent } from '@testing-library/user-event' -import { ModalCloseButton } from './ModalCloseButton' +import ModalCloseButton from './ModalCloseButton' describe('ModalCloseButton component', () => { it('renders without errors', () => { diff --git a/src/components/Modal/ModalCloseButton/ModalCloseButton.tsx b/src/components/Modal/ModalCloseButton/ModalCloseButton.tsx index e922073f38..9bbba7280b 100644 --- a/src/components/Modal/ModalCloseButton/ModalCloseButton.tsx +++ b/src/components/Modal/ModalCloseButton/ModalCloseButton.tsx @@ -1,16 +1,15 @@ import React from 'react' -import { Icon } from '../../Icon/Icons' -import { Button } from '../../Button/Button' +import Icon from '../../Icon/Icons' +import Button from '../../Button/Button' -interface ModalCloseButtonProps { +export type ModalCloseButtonProps = { handleClose: () => void -} +} & JSX.IntrinsicElements['button'] -export const ModalCloseButton = ({ +const ModalCloseButton = ({ handleClose, ...buttonProps -}: ModalCloseButtonProps & - JSX.IntrinsicElements['button']): React.ReactElement => { +}: ModalCloseButtonProps): React.ReactElement => { return ( ) } + +export default ModalToggleButton diff --git a/src/components/Modal/ModalWindow/ModalWindow.test.tsx b/src/components/Modal/ModalWindow/ModalWindow.test.tsx index 9afd66781c..da530d12ec 100644 --- a/src/components/Modal/ModalWindow/ModalWindow.test.tsx +++ b/src/components/Modal/ModalWindow/ModalWindow.test.tsx @@ -1,6 +1,6 @@ import React from 'react' -import { ModalWindow } from './ModalWindow' +import ModalWindow from './ModalWindow' import { render, screen } from '@testing-library/react' diff --git a/src/components/Modal/ModalWindow/ModalWindow.tsx b/src/components/Modal/ModalWindow/ModalWindow.tsx index 4dd41b993d..03878056aa 100644 --- a/src/components/Modal/ModalWindow/ModalWindow.tsx +++ b/src/components/Modal/ModalWindow/ModalWindow.tsx @@ -1,20 +1,20 @@ import React, { forwardRef } from 'react' import classnames from 'classnames' -import { ModalCloseButton } from '../ModalCloseButton/ModalCloseButton' +import ModalCloseButton from '../ModalCloseButton/ModalCloseButton' -interface ModalWindowProps { +export type ModalWindowProps = { modalId: string children: React.ReactNode handleClose: () => void className?: string isLarge?: boolean forceAction?: boolean -} +} & JSX.IntrinsicElements['div'] export const ModalWindowForwardRef: React.ForwardRefRenderFunction< HTMLDivElement, - ModalWindowProps & JSX.IntrinsicElements['div'] + ModalWindowProps > = ( { modalId, @@ -52,4 +52,6 @@ export const ModalWindowForwardRef: React.ForwardRefRenderFunction< ) } -export const ModalWindow = forwardRef(ModalWindowForwardRef) +const ModalWindow = forwardRef(ModalWindowForwardRef) + +export default ModalWindow diff --git a/src/components/Modal/ModalWrapper/ModalWrapper.test.tsx b/src/components/Modal/ModalWrapper/ModalWrapper.test.tsx index 3252b586a2..c1c9f762e9 100644 --- a/src/components/Modal/ModalWrapper/ModalWrapper.test.tsx +++ b/src/components/Modal/ModalWrapper/ModalWrapper.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render, screen } from '@testing-library/react' -import { ModalWrapper } from './ModalWrapper' +import ModalWrapper from './ModalWrapper' describe('ModalWrapper component', () => { it('renders without errors', () => { diff --git a/src/components/Modal/ModalWrapper/ModalWrapper.tsx b/src/components/Modal/ModalWrapper/ModalWrapper.tsx index 52ac34b5b8..0b1d0f8d1e 100644 --- a/src/components/Modal/ModalWrapper/ModalWrapper.tsx +++ b/src/components/Modal/ModalWrapper/ModalWrapper.tsx @@ -1,18 +1,18 @@ import React, { forwardRef } from 'react' import classnames from 'classnames' -interface ModalWrapperProps { +export type ModalWrapperProps = { id: string children: React.ReactNode isVisible: boolean forceAction: boolean handleClose: () => void className?: string -} +} & JSX.IntrinsicElements['div'] export const ModalWrapperForwardRef: React.ForwardRefRenderFunction< HTMLDivElement, - ModalWrapperProps & JSX.IntrinsicElements['div'] + ModalWrapperProps > = ( { id, children, isVisible, forceAction, className, handleClose, ...divProps }, ref @@ -41,6 +41,6 @@ export const ModalWrapperForwardRef: React.ForwardRefRenderFunction< ) } -export const ModalWrapper = forwardRef(ModalWrapperForwardRef) +const ModalWrapper = forwardRef(ModalWrapperForwardRef) export default ModalWrapper diff --git a/src/components/Modal/OpenModal.stories.tsx b/src/components/Modal/OpenModal.stories.tsx index 1247ccc90c..8a224dd12b 100644 --- a/src/components/Modal/OpenModal.stories.tsx +++ b/src/components/Modal/OpenModal.stories.tsx @@ -1,11 +1,11 @@ import React from 'react' -import { ModalWindow } from './ModalWindow/ModalWindow' -import { ModalHeading } from './ModalHeading/ModalHeading' -import { ModalFooter } from './ModalFooter/ModalFooter' -import { ButtonGroup } from '../ButtonGroup/ButtonGroup' -import { Button } from '../Button/Button' -import { ModalWrapper } from './ModalWrapper/ModalWrapper' +import ModalWindow from './ModalWindow/ModalWindow' +import ModalHeading from './ModalHeading/ModalHeading' +import ModalFooter from './ModalFooter/ModalFooter' +import ButtonGroup from '../ButtonGroup/ButtonGroup' +import Button from '../Button/Button' +import ModalWrapper from './ModalWrapper/ModalWrapper' type StorybookArguments = { handleClose: () => void diff --git a/src/components/Pagination/Pagination.stories.tsx b/src/components/Pagination/Pagination.stories.tsx index 2c314eb56b..acd2cef406 100644 --- a/src/components/Pagination/Pagination.stories.tsx +++ b/src/components/Pagination/Pagination.stories.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react' -import { Pagination } from './Pagination' +import Pagination from './Pagination' import type { Meta, StoryFn } from '@storybook/react' export default { diff --git a/src/components/Pagination/Pagination.test.tsx b/src/components/Pagination/Pagination.test.tsx index eaee7ddfb8..23365a5266 100644 --- a/src/components/Pagination/Pagination.test.tsx +++ b/src/components/Pagination/Pagination.test.tsx @@ -1,7 +1,7 @@ import { render, screen, fireEvent } from '@testing-library/react' import React from 'react' -import { Pagination } from './Pagination' +import Pagination from './Pagination' describe('Pagination component', () => { const testPages = 24 diff --git a/src/components/Pagination/Pagination.tsx b/src/components/Pagination/Pagination.tsx index 342b9fd28d..d0068e0d45 100644 --- a/src/components/Pagination/Pagination.tsx +++ b/src/components/Pagination/Pagination.tsx @@ -1,10 +1,12 @@ import React from 'react' import classnames from 'classnames' -import { Icon } from '../Icon/Icons' -import { Link } from '../Link/Link' -import { Button } from '../Button/Button' +import Icon from '../Icon/Icons' +import Link from '../Link/Link' +import Button from '../Button/Button' +import PaginationOverflow from './PaginationOverflow' +import PaginationPage from './PaginationPage' -type PaginationProps = { +export type PaginationProps = { pathname: string // pathname of results page totalPages?: number // total items divided by items per page currentPage: number // current page number (starting at 1) @@ -15,65 +17,9 @@ type PaginationProps = { event: React.MouseEvent, page: number ) => void -} - -const PaginationPage = ({ - page, - isCurrent, - pathname, - onClickPageNumber, -}: { - pathname: string - page: number - isCurrent?: boolean - onClickPageNumber?: ( - event: React.MouseEvent, - page: number - ) => void -}) => { - const linkClasses = classnames('usa-pagination__button', { - 'usa-current': isCurrent, - }) +} & JSX.IntrinsicElements['nav'] - return ( -
  • - {onClickPageNumber ? ( - - ) : ( - - {page} - - )} -
  • - ) -} - -const PaginationOverflow = () => ( -
  • - -
  • -) - -export const Pagination = ({ +const Pagination = ({ pathname, totalPages, currentPage, @@ -83,7 +29,7 @@ export const Pagination = ({ onClickNext, onClickPageNumber, ...props -}: PaginationProps & JSX.IntrinsicElements['nav']): React.ReactElement => { +}: PaginationProps): React.ReactElement => { const navClasses = classnames('usa-pagination', className) const isOnFirstPage = currentPage === 1 @@ -231,3 +177,5 @@ export const Pagination = ({ ) } + +export default Pagination diff --git a/src/components/Pagination/PaginationOverflow.tsx b/src/components/Pagination/PaginationOverflow.tsx new file mode 100644 index 0000000000..a652a9f141 --- /dev/null +++ b/src/components/Pagination/PaginationOverflow.tsx @@ -0,0 +1,11 @@ +import React from 'react' + +const PaginationOverflow = () => ( +
  • + +
  • +) + +export default PaginationOverflow diff --git a/src/components/Pagination/PaginationPage.tsx b/src/components/Pagination/PaginationPage.tsx new file mode 100644 index 0000000000..0243bb1286 --- /dev/null +++ b/src/components/Pagination/PaginationPage.tsx @@ -0,0 +1,56 @@ +import React from 'react' +import classnames from 'classnames' +import Link from '../Link/Link' +import Button from '../Button/Button' + +export type PaginationPageProps = { + pathname: string + page: number + isCurrent?: boolean + onClickPageNumber?: ( + event: React.MouseEvent, + page: number + ) => void +} + +const PaginationPage = ({ + page, + isCurrent, + pathname, + onClickPageNumber, +}: PaginationPageProps) => { + const linkClasses = classnames('usa-pagination__button', { + 'usa-current': isCurrent, + }) + + return ( +
  • + {onClickPageNumber ? ( + + ) : ( + + {page} + + )} +
  • + ) +} + +export default PaginationPage diff --git a/src/components/ProcessList/ProcessList/ProcessList.stories.tsx b/src/components/ProcessList/ProcessList/ProcessList.stories.tsx index d5b778b356..9298251e1d 100644 --- a/src/components/ProcessList/ProcessList/ProcessList.stories.tsx +++ b/src/components/ProcessList/ProcessList/ProcessList.stories.tsx @@ -1,8 +1,8 @@ import React from 'react' -import { ProcessList } from './ProcessList' -import { ProcessListItem } from '../ProcessListItem/ProcessListItem' -import { ProcessListHeading } from '../ProcessListHeading/ProcessListHeading' +import ProcessList from './ProcessList' +import ProcessListItem from '../ProcessListItem/ProcessListItem' +import ProcessListHeading from '../ProcessListHeading/ProcessListHeading' export default { title: 'Components/ProcessList', diff --git a/src/components/ProcessList/ProcessList/ProcessList.test.tsx b/src/components/ProcessList/ProcessList/ProcessList.test.tsx index 5f39251f9a..4de96dcef8 100644 --- a/src/components/ProcessList/ProcessList/ProcessList.test.tsx +++ b/src/components/ProcessList/ProcessList/ProcessList.test.tsx @@ -2,9 +2,9 @@ import React from 'react' import { render } from '@testing-library/react' -import { ProcessList } from '../ProcessList/ProcessList' -import { ProcessListItem } from '../ProcessListItem/ProcessListItem' -import { ProcessListHeading } from '../ProcessListHeading/ProcessListHeading' +import ProcessList from '../ProcessList/ProcessList' +import ProcessListItem from '../ProcessListItem/ProcessListItem' +import ProcessListHeading from '../ProcessListHeading/ProcessListHeading' const testListItems = [
  • some text
  • , diff --git a/src/components/ProcessList/ProcessList/ProcessList.tsx b/src/components/ProcessList/ProcessList/ProcessList.tsx index 6ff8d3f82d..cb34fd2b17 100644 --- a/src/components/ProcessList/ProcessList/ProcessList.tsx +++ b/src/components/ProcessList/ProcessList/ProcessList.tsx @@ -2,16 +2,16 @@ import React from 'react' import classnames from 'classnames' import { ProcessListItemProps } from '../ProcessListItem/ProcessListItem' -type ProcessListProps = { +export type ProcessListProps = { className?: string children: React.ReactElement[] -} +} & JSX.IntrinsicElements['ol'] -export const ProcessList = ({ +const ProcessList = ({ className, children, ...listProps -}: ProcessListProps & JSX.IntrinsicElements['ol']): React.ReactElement => { +}: ProcessListProps): React.ReactElement => { const classes = classnames('usa-process-list', className) return (
      diff --git a/src/components/ProcessList/ProcessListHeading/ProcessListHeading.test.tsx b/src/components/ProcessList/ProcessListHeading/ProcessListHeading.test.tsx index d852b0b373..e356f8687d 100644 --- a/src/components/ProcessList/ProcessListHeading/ProcessListHeading.test.tsx +++ b/src/components/ProcessList/ProcessListHeading/ProcessListHeading.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { ProcessListHeading } from './ProcessListHeading' +import ProcessListHeading from './ProcessListHeading' describe('ProcessListHeading component', () => { it('renders without errors', () => { diff --git a/src/components/ProcessList/ProcessListHeading/ProcessListHeading.tsx b/src/components/ProcessList/ProcessListHeading/ProcessListHeading.tsx index e6f9c89fb5..fc0646f27e 100644 --- a/src/components/ProcessList/ProcessListHeading/ProcessListHeading.tsx +++ b/src/components/ProcessList/ProcessListHeading/ProcessListHeading.tsx @@ -2,30 +2,32 @@ import React from 'react' import classnames from 'classnames' import { HeadingLevel } from '../../../types/headingLevel' -interface BaseProcessListHeadingProps { +export interface BaseProcessListHeadingProps { type: string className?: string children?: React.ReactNode } -interface HeadingProcessListHeadingProps extends BaseProcessListHeadingProps { +export interface HeadingProcessListHeadingProps + extends BaseProcessListHeadingProps { type: HeadingLevel } -interface ParagraphProcessListHeadingProps extends BaseProcessListHeadingProps { +export interface ParagraphProcessListHeadingProps + extends BaseProcessListHeadingProps { type: 'p' } -type ProcessListHeadingProps = HeadingProcessListHeadingProps & +export type ProcessListHeadingProps = HeadingProcessListHeadingProps & React.DetailedHTMLProps< React.HTMLAttributes, HTMLHeadingElement > -type ProcessListParagraphHeadingProps = ParagraphProcessListHeadingProps & - JSX.IntrinsicElements['p'] +export type ProcessListParagraphHeadingProps = + ParagraphProcessListHeadingProps & JSX.IntrinsicElements['p'] -export const ProcessListHeading = ({ +const ProcessListHeading = ({ type, className, children, @@ -41,3 +43,5 @@ export const ProcessListHeading = ({ ) } + +export default ProcessListHeading diff --git a/src/components/ProcessList/ProcessListItem/ProcessListItem.test.tsx b/src/components/ProcessList/ProcessListItem/ProcessListItem.test.tsx index 17627332c6..731fdfadea 100644 --- a/src/components/ProcessList/ProcessListItem/ProcessListItem.test.tsx +++ b/src/components/ProcessList/ProcessListItem/ProcessListItem.test.tsx @@ -2,8 +2,8 @@ import React from 'react' import { render } from '@testing-library/react' -import { ProcessListItem } from './ProcessListItem' -import { ProcessListHeading } from '../ProcessListHeading/ProcessListHeading' +import ProcessListItem from './ProcessListItem' +import ProcessListHeading from '../ProcessListHeading/ProcessListHeading' const testData = ( <> diff --git a/src/components/ProcessList/ProcessListItem/ProcessListItem.tsx b/src/components/ProcessList/ProcessListItem/ProcessListItem.tsx index da49e3c6d9..22026c1985 100644 --- a/src/components/ProcessList/ProcessListItem/ProcessListItem.tsx +++ b/src/components/ProcessList/ProcessListItem/ProcessListItem.tsx @@ -1,16 +1,16 @@ import React from 'react' import classnames from 'classnames' -export interface ProcessListItemProps { +export type ProcessListItemProps = { className?: string children?: React.ReactNode -} +} & JSX.IntrinsicElements['li'] -export const ProcessListItem = ({ +const ProcessListItem = ({ className, children, ...liProps -}: ProcessListItemProps & JSX.IntrinsicElements['li']): React.ReactElement => { +}: ProcessListItemProps): React.ReactElement => { const liClasses = classnames('usa-process-list__item', className) return (
    1. diff --git a/src/components/Search/Search/Search.stories.tsx b/src/components/Search/Search/Search.stories.tsx index 9f2d1337d5..c69210d295 100644 --- a/src/components/Search/Search/Search.stories.tsx +++ b/src/components/Search/Search/Search.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Search } from './Search' +import Search from './Search' export default { title: 'Components/Search/Search', diff --git a/src/components/Search/Search/Search.test.tsx b/src/components/Search/Search/Search.test.tsx index 9d057890f3..d108d58de8 100644 --- a/src/components/Search/Search/Search.test.tsx +++ b/src/components/Search/Search/Search.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render, fireEvent } from '@testing-library/react' -import { Search } from './Search' +import Search from './Search' const sampleLocalization = { buttonText: 'Buscar', diff --git a/src/components/Search/Search/Search.tsx b/src/components/Search/Search/Search.tsx index 9000ca07e2..28699ad753 100644 --- a/src/components/Search/Search/Search.tsx +++ b/src/components/Search/Search/Search.tsx @@ -1,16 +1,16 @@ import React from 'react' import classnames from 'classnames' -import { Form, OptionalFormProps } from '../../forms/Form/Form' -import { SearchField } from '../SearchField/SearchField' -import { SearchButton } from '../SearchButton/SearchButton' +import Form, { OptionalFormProps } from '../../forms/Form/Form' +import SearchField from '../SearchField/SearchField' +import SearchButton from '../SearchButton/SearchButton' import { OptionalTextInputProps } from '../../forms/TextInput/TextInput' -type SearchLocalization = { +export type SearchLocalization = { buttonText: string } -type SearchInputProps = { +export type SearchInputProps = { onSubmit: (event: React.FormEvent) => void size?: 'big' | 'small' className?: string @@ -23,7 +23,7 @@ type SearchInputProps = { inputProps?: OptionalTextInputProps } -export const Search = ({ +const Search = ({ onSubmit, size, className, diff --git a/src/components/Search/SearchButton/SearchButton.stories.tsx b/src/components/Search/SearchButton/SearchButton.stories.tsx index 6df5fb5683..cf69446f6d 100644 --- a/src/components/Search/SearchButton/SearchButton.stories.tsx +++ b/src/components/Search/SearchButton/SearchButton.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { SearchButton } from './SearchButton' +import SearchButton from './SearchButton' export default { title: 'Components/Search/SearchButton', diff --git a/src/components/Search/SearchButton/SearchButton.test.tsx b/src/components/Search/SearchButton/SearchButton.test.tsx index a6b0a93b59..006528ab57 100644 --- a/src/components/Search/SearchButton/SearchButton.test.tsx +++ b/src/components/Search/SearchButton/SearchButton.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { SearchButton } from './SearchButton' +import SearchButton from './SearchButton' const sampleLocalization = { buttonText: 'Buscar', diff --git a/src/components/Search/SearchButton/SearchButton.tsx b/src/components/Search/SearchButton/SearchButton.tsx index aae112b1e2..2296ca96c4 100644 --- a/src/components/Search/SearchButton/SearchButton.tsx +++ b/src/components/Search/SearchButton/SearchButton.tsx @@ -1,22 +1,22 @@ import React from 'react' import classnames from 'classnames' -import { Icon } from '../../Icon/Icons' +import Icon from '../../Icon/Icons' -import { Button } from '../../Button/Button' +import Button from '../../Button/Button' -type SearchLocalization = { +export type SearchLocalization = { buttonText: string } -type SearchButtonProps = { +export type SearchButtonProps = { size?: 'big' | 'small' className?: string i18n?: SearchLocalization buttonAriaLabel?: string } -export const SearchButton = ({ +const SearchButton = ({ size, className, i18n, diff --git a/src/components/Search/SearchField/SearchField.stories.tsx b/src/components/Search/SearchField/SearchField.stories.tsx index 0dfb9f3d07..c34072077c 100644 --- a/src/components/Search/SearchField/SearchField.stories.tsx +++ b/src/components/Search/SearchField/SearchField.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { SearchField } from './SearchField' +import SearchField from './SearchField' export default { title: 'Components/Search/SearchField', diff --git a/src/components/Search/SearchField/SearchField.test.tsx b/src/components/Search/SearchField/SearchField.test.tsx index b48df01a69..ea7115fc9b 100644 --- a/src/components/Search/SearchField/SearchField.test.tsx +++ b/src/components/Search/SearchField/SearchField.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { SearchField } from './SearchField' +import SearchField from './SearchField' describe('SearchField component', () => { it('renders without errors', () => { diff --git a/src/components/Search/SearchField/SearchField.tsx b/src/components/Search/SearchField/SearchField.tsx index 70f77f9f27..cc3b76f22b 100644 --- a/src/components/Search/SearchField/SearchField.tsx +++ b/src/components/Search/SearchField/SearchField.tsx @@ -1,13 +1,12 @@ import React from 'react' import classnames from 'classnames' -import { Label } from '../../forms/Label/Label' -import { - TextInput, +import Label from '../../forms/Label/Label' +import TextInput, { OptionalTextInputProps, } from '../../forms/TextInput/TextInput' -type SearchFieldProps = { +export type SearchFieldProps = { isBig?: boolean className?: string inputName?: string @@ -16,9 +15,9 @@ type SearchFieldProps = { defaultValue?: React.ReactNode label?: React.ReactNode inputProps?: JSX.IntrinsicElements['input'] -} +} & OptionalTextInputProps -export const SearchField = ({ +const SearchField = ({ isBig, className, placeholder, @@ -27,7 +26,7 @@ export const SearchField = ({ label = 'Search', inputId = 'search-field', inputProps, -}: SearchFieldProps & OptionalTextInputProps): React.ReactElement => { +}: SearchFieldProps): React.ReactElement => { const classes = classnames( { 'usa-search--big': isBig, diff --git a/src/components/SideNav/SideNav.stories.tsx b/src/components/SideNav/SideNav.stories.tsx index fca0eb59c5..9ea8f743e2 100644 --- a/src/components/SideNav/SideNav.stories.tsx +++ b/src/components/SideNav/SideNav.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { SideNav } from './SideNav' +import SideNav from './SideNav' export default { title: 'Components/Side navigation', diff --git a/src/components/SideNav/SideNav.test.tsx b/src/components/SideNav/SideNav.test.tsx index f2dcad50ab..90e1ec4d1b 100644 --- a/src/components/SideNav/SideNav.test.tsx +++ b/src/components/SideNav/SideNav.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { SideNav } from './SideNav' +import SideNav from './SideNav' const testItems = [ diff --git a/src/components/SideNav/SideNav.tsx b/src/components/SideNav/SideNav.tsx index 705fbbf71d..675959a293 100644 --- a/src/components/SideNav/SideNav.tsx +++ b/src/components/SideNav/SideNav.tsx @@ -1,12 +1,12 @@ import React from 'react' import classnames from 'classnames' -type SideNavProps = { +export type SideNavProps = { items: React.ReactNode[] isSubnav?: boolean } -export const SideNav = ({ +const SideNav = ({ items, isSubnav = false, }: SideNavProps): React.ReactElement => { @@ -25,3 +25,5 @@ export const SideNav = ({ ) } + +export default SideNav diff --git a/src/components/SiteAlert/SiteAlert.stories.tsx b/src/components/SiteAlert/SiteAlert.stories.tsx index aaf8ba84fb..cc639a78e9 100644 --- a/src/components/SiteAlert/SiteAlert.stories.tsx +++ b/src/components/SiteAlert/SiteAlert.stories.tsx @@ -2,8 +2,8 @@ import React from 'react' -import { SiteAlert } from './SiteAlert' -import { Link } from '../Link/Link' +import SiteAlert from './SiteAlert' +import Link from '../Link/Link' export default { title: 'Components/SiteAlert', diff --git a/src/components/SiteAlert/SiteAlert.test.tsx b/src/components/SiteAlert/SiteAlert.test.tsx index 37e7e36d41..3b4c19e7ba 100644 --- a/src/components/SiteAlert/SiteAlert.test.tsx +++ b/src/components/SiteAlert/SiteAlert.test.tsx @@ -2,9 +2,9 @@ import React from 'react' import { render } from '@testing-library/react' -import { Link } from '../Link/Link' +import Link from '../Link/Link' -import { SiteAlert } from './SiteAlert' +import SiteAlert from './SiteAlert' const testChildren = (

      diff --git a/src/components/SiteAlert/SiteAlert.tsx b/src/components/SiteAlert/SiteAlert.tsx index dc2b5a02a4..1cf8ee5f40 100644 --- a/src/components/SiteAlert/SiteAlert.tsx +++ b/src/components/SiteAlert/SiteAlert.tsx @@ -1,16 +1,16 @@ import React from 'react' import classnames from 'classnames' -type SiteAlertProps = { +export type SiteAlertProps = { variant: 'info' | 'emergency' children: string | React.ReactNode | React.ReactNode[] heading?: string showIcon?: boolean slim?: boolean className?: string -} +} & JSX.IntrinsicElements['section'] -export const SiteAlert = ({ +const SiteAlert = ({ variant, children, heading, @@ -18,7 +18,7 @@ export const SiteAlert = ({ slim = false, className, ...sectionProps -}: SiteAlertProps & JSX.IntrinsicElements['section']): React.ReactElement => { +}: SiteAlertProps): React.ReactElement => { const classes = classnames( 'usa-site-alert', { diff --git a/src/components/SummaryBox/SummaryBox/SummaryBox.stories.tsx b/src/components/SummaryBox/SummaryBox/SummaryBox.stories.tsx index f5cf2d6f3d..e26ef9a0cd 100644 --- a/src/components/SummaryBox/SummaryBox/SummaryBox.stories.tsx +++ b/src/components/SummaryBox/SummaryBox/SummaryBox.stories.tsx @@ -1,8 +1,8 @@ /* eslint-disable jsx-a11y/anchor-is-valid */ import React from 'react' -import { SummaryBox } from './SummaryBox' -import { SummaryBoxHeading } from '../SummaryBoxHeading/SummaryBoxHeading' -import { SummaryBoxContent } from '../SummaryBoxContent/SummaryBoxContent' +import SummaryBox from './SummaryBox' +import SummaryBoxHeading from '../SummaryBoxHeading/SummaryBoxHeading' +import SummaryBoxContent from '../SummaryBoxContent/SummaryBoxContent' export default { title: 'Components/Summary box', diff --git a/src/components/SummaryBox/SummaryBox/SummaryBox.test.tsx b/src/components/SummaryBox/SummaryBox/SummaryBox.test.tsx index 15ecbbdbd2..f3fb579bac 100644 --- a/src/components/SummaryBox/SummaryBox/SummaryBox.test.tsx +++ b/src/components/SummaryBox/SummaryBox/SummaryBox.test.tsx @@ -1,9 +1,9 @@ /* eslint-disable jsx-a11y/anchor-is-valid */ import React from 'react' import { render } from '@testing-library/react' -import { SummaryBox } from './SummaryBox' -import { SummaryBoxHeading } from '../SummaryBoxHeading/SummaryBoxHeading' -import { SummaryBoxContent } from '../SummaryBoxContent/SummaryBoxContent' +import SummaryBox from './SummaryBox' +import SummaryBoxHeading from '../SummaryBoxHeading/SummaryBoxHeading' +import SummaryBoxContent from '../SummaryBoxContent/SummaryBoxContent' const testSummaryBoxContent = ( <> diff --git a/src/components/SummaryBox/SummaryBox/SummaryBox.tsx b/src/components/SummaryBox/SummaryBox/SummaryBox.tsx index 48a4b6df9d..3d376fd534 100644 --- a/src/components/SummaryBox/SummaryBox/SummaryBox.tsx +++ b/src/components/SummaryBox/SummaryBox/SummaryBox.tsx @@ -2,16 +2,16 @@ import React from 'react' import classnames from 'classnames' -type SummaryBoxProps = { +export type SummaryBoxProps = { children?: React.ReactNode className?: string -} +} & JSX.IntrinsicElements['div'] -export const SummaryBox = ({ +const SummaryBox = ({ children, className, ...divProps -}: SummaryBoxProps & JSX.IntrinsicElements['div']): React.ReactElement => { +}: SummaryBoxProps): React.ReactElement => { const classes = classnames('usa-summary-box', className) return (

      diff --git a/src/components/SummaryBox/SummaryBoxContent/SummaryBoxContent.test.tsx b/src/components/SummaryBox/SummaryBoxContent/SummaryBoxContent.test.tsx index ccc0e79a5d..dd8f07c41d 100644 --- a/src/components/SummaryBox/SummaryBoxContent/SummaryBoxContent.test.tsx +++ b/src/components/SummaryBox/SummaryBoxContent/SummaryBoxContent.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { SummaryBoxContent } from './SummaryBoxContent' +import SummaryBoxContent from './SummaryBoxContent' describe('SummaryBoxContent component', () => { it('renders without errors', () => { diff --git a/src/components/SummaryBox/SummaryBoxContent/SummaryBoxContent.tsx b/src/components/SummaryBox/SummaryBoxContent/SummaryBoxContent.tsx index 4bd351bcb2..05e320ef56 100644 --- a/src/components/SummaryBox/SummaryBoxContent/SummaryBoxContent.tsx +++ b/src/components/SummaryBox/SummaryBoxContent/SummaryBoxContent.tsx @@ -1,12 +1,12 @@ import React from 'react' import classnames from 'classnames' -interface SummaryBoxTextProps { +export interface SummaryBoxTextProps { children?: React.ReactNode className?: string } -export const SummaryBoxContent = ({ +const SummaryBoxContent = ({ children, className, ...divProps diff --git a/src/components/SummaryBox/SummaryBoxHeading/SummaryBoxHeading.test.tsx b/src/components/SummaryBox/SummaryBoxHeading/SummaryBoxHeading.test.tsx index 43e3a4a525..360cf8ab17 100644 --- a/src/components/SummaryBox/SummaryBoxHeading/SummaryBoxHeading.test.tsx +++ b/src/components/SummaryBox/SummaryBoxHeading/SummaryBoxHeading.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { SummaryBoxHeading } from './SummaryBoxHeading' +import SummaryBoxHeading from './SummaryBoxHeading' describe('SummaryBoxHeading component', () => { it('renders without errors', () => { diff --git a/src/components/SummaryBox/SummaryBoxHeading/SummaryBoxHeading.tsx b/src/components/SummaryBox/SummaryBoxHeading/SummaryBoxHeading.tsx index 270ed67bb0..af2b03e121 100644 --- a/src/components/SummaryBox/SummaryBoxHeading/SummaryBoxHeading.tsx +++ b/src/components/SummaryBox/SummaryBoxHeading/SummaryBoxHeading.tsx @@ -2,22 +2,21 @@ import React, { ReactNode } from 'react' import classnames from 'classnames' import { HeadingLevel } from '../../../types/headingLevel' -interface SummaryBoxHeadingProps { +export type SummaryBoxHeadingProps = { children: ReactNode className?: string headingLevel: HeadingLevel -} +} & React.DetailedHTMLProps< + React.HTMLAttributes, + HTMLHeadingElement +> -export const SummaryBoxHeading = ({ +const SummaryBoxHeading = ({ children, className, headingLevel, ...h3Props -}: SummaryBoxHeadingProps & - React.DetailedHTMLProps< - React.HTMLAttributes, - HTMLHeadingElement - >): React.ReactElement => { +}: SummaryBoxHeadingProps): React.ReactElement => { const classes = classnames('usa-summary-box__heading', className) const Heading = headingLevel return ( diff --git a/src/components/Table/Table.stories.tsx b/src/components/Table/Table.stories.tsx index 68b8e90f36..a8006da800 100644 --- a/src/components/Table/Table.stories.tsx +++ b/src/components/Table/Table.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Table } from './Table' +import Table from './Table' export default { title: 'Components/Table', diff --git a/src/components/Table/Table.test.tsx b/src/components/Table/Table.test.tsx index 5a7a3330cc..f5968e98c2 100644 --- a/src/components/Table/Table.test.tsx +++ b/src/components/Table/Table.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { Table } from './Table' +import Table from './Table' const testContent = ( <> diff --git a/src/components/Table/Table.tsx b/src/components/Table/Table.tsx index bc1d8a1e71..ae717ec809 100644 --- a/src/components/Table/Table.tsx +++ b/src/components/Table/Table.tsx @@ -3,7 +3,7 @@ import classnames from 'classnames' import styles from './Table.module.scss' -type TableProps = { +export type TableProps = { bordered?: boolean caption?: React.ReactNode children: React.ReactNode @@ -16,7 +16,7 @@ type TableProps = { stackedStyle?: 'none' | 'default' | 'headers' } -export const Table = ({ +const Table = ({ bordered, caption, children, diff --git a/src/components/Tag/Tag.stories.tsx b/src/components/Tag/Tag.stories.tsx index d886a0a7dd..4413bf5071 100644 --- a/src/components/Tag/Tag.stories.tsx +++ b/src/components/Tag/Tag.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Tag } from './Tag' +import Tag from './Tag' export default { title: 'Components/Tag', diff --git a/src/components/Tag/Tag.test.tsx b/src/components/Tag/Tag.test.tsx index ddef5de872..defbd11e08 100644 --- a/src/components/Tag/Tag.test.tsx +++ b/src/components/Tag/Tag.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { Tag } from './Tag' +import Tag from './Tag' describe('Tag component', () => { it('renders without errors', () => { diff --git a/src/components/Tag/Tag.tsx b/src/components/Tag/Tag.tsx index 344e244a90..d970f00e63 100644 --- a/src/components/Tag/Tag.tsx +++ b/src/components/Tag/Tag.tsx @@ -1,17 +1,17 @@ import React from 'react' import classnames from 'classnames' -type TagProps = { +export type TagProps = { children: React.ReactNode background?: string -} +} & JSX.IntrinsicElements['span'] -export const Tag = ({ +const Tag = ({ children, background, className, ...spanProps -}: TagProps & JSX.IntrinsicElements['span']): React.ReactElement => { +}: TagProps): React.ReactElement => { const style: React.CSSProperties = {} if (background) { style.background = background diff --git a/src/components/Tooltip/Tooltip.stories.tsx b/src/components/Tooltip/Tooltip.stories.tsx index 1726afa49c..19b2827947 100644 --- a/src/components/Tooltip/Tooltip.stories.tsx +++ b/src/components/Tooltip/Tooltip.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Tooltip } from './Tooltip' +import Tooltip from './Tooltip' export default { title: 'Components/Tooltip', diff --git a/src/components/Tooltip/Tooltip.test.tsx b/src/components/Tooltip/Tooltip.test.tsx index 5c56d5c99c..f378a9eb0d 100644 --- a/src/components/Tooltip/Tooltip.test.tsx +++ b/src/components/Tooltip/Tooltip.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { fireEvent, render, screen } from '@testing-library/react' -import { Tooltip } from './Tooltip' +import Tooltip from './Tooltip' import { isElementInViewport, calculateMarginOffset } from './utils' vi.mock('./utils') diff --git a/src/components/Tooltip/Tooltip.tsx b/src/components/Tooltip/Tooltip.tsx index 4403ff2424..3bf34f016e 100644 --- a/src/components/Tooltip/Tooltip.tsx +++ b/src/components/Tooltip/Tooltip.tsx @@ -9,9 +9,13 @@ import React, { } from 'react' import classnames from 'classnames' -import { isElementInViewport, calculateMarginOffset } from './utils' +import { + isElementInViewport, + calculateMarginOffset, + isCustomProps, +} from './utils' -type TooltipProps = { +export type TooltipProps = { label: ReactNode title?: string position?: 'top' | 'bottom' | 'left' | 'right' | undefined @@ -20,7 +24,7 @@ type TooltipProps = { children: ReactNode } & T -interface WithCustomTooltipProps { +export interface WithCustomTooltipProps { asCustom: ForwardRefExoticComponent } @@ -28,17 +32,11 @@ export type DefaultTooltipProps = TooltipProps export type CustomTooltipProps = TooltipProps & WithCustomTooltipProps -export function isCustomProps( - props: DefaultTooltipProps | CustomTooltipProps -): props is CustomTooltipProps { - return 'asCustom' in props -} - -const TRIANGLE_SIZE = 5 +export const TRIANGLE_SIZE = 5 -export function Tooltip(props: DefaultTooltipProps): ReactElement -export function Tooltip(props: CustomTooltipProps): ReactElement -export function Tooltip< +export default function Tooltip(props: DefaultTooltipProps): ReactElement +export default function Tooltip(props: CustomTooltipProps): ReactElement +export default function Tooltip< FCProps extends React.PropsWithChildren = DefaultTooltipProps, >(props: DefaultTooltipProps | CustomTooltipProps): ReactElement { const triggerElementRef = useRef(null) diff --git a/src/components/Tooltip/utils.ts b/src/components/Tooltip/utils.ts index c5f3a22f1b..f274fe26e8 100644 --- a/src/components/Tooltip/utils.ts +++ b/src/components/Tooltip/utils.ts @@ -1,3 +1,5 @@ +import { DefaultTooltipProps, CustomTooltipProps } from './Tooltip' + export const isElementInViewport = ( el: HTMLElement, win = window, @@ -50,3 +52,9 @@ export const calculateMarginOffset = ( return offset } + +export function isCustomProps( + props: DefaultTooltipProps | CustomTooltipProps +): props is CustomTooltipProps { + return 'asCustom' in props +} diff --git a/src/components/banner/Banner/Banner.test.tsx b/src/components/banner/Banner/Banner.test.tsx index d76743d471..76245404f1 100644 --- a/src/components/banner/Banner/Banner.test.tsx +++ b/src/components/banner/Banner/Banner.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { Banner } from './Banner' +import Banner from './Banner' describe('Banner component', () => { it('renders properly', () => { diff --git a/src/components/banner/Banner/Banner.tsx b/src/components/banner/Banner/Banner.tsx index 1a31917aaf..3333a6d3a7 100644 --- a/src/components/banner/Banner/Banner.tsx +++ b/src/components/banner/Banner/Banner.tsx @@ -1,11 +1,11 @@ import React, { ReactElement } from 'react' import classNames from 'classnames' -type BannerProps = { +export type BannerProps = { divProps?: JSX.IntrinsicElements['div'] } -export const Banner = ({ +const Banner = ({ children, divProps, className, @@ -24,3 +24,5 @@ export const Banner = ({ ) } + +export default Banner diff --git a/src/components/banner/BannerButton/BannerButton.test.tsx b/src/components/banner/BannerButton/BannerButton.test.tsx index 781614211f..c354a2cffd 100644 --- a/src/components/banner/BannerButton/BannerButton.test.tsx +++ b/src/components/banner/BannerButton/BannerButton.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render, screen } from '@testing-library/react' -import { BannerButton } from './BannerButton' +import BannerButton from './BannerButton' describe('BannerButton component', () => { it('renders properly', () => { diff --git a/src/components/banner/BannerButton/BannerButton.tsx b/src/components/banner/BannerButton/BannerButton.tsx index 605f5b2893..f7b11e28c1 100644 --- a/src/components/banner/BannerButton/BannerButton.tsx +++ b/src/components/banner/BannerButton/BannerButton.tsx @@ -1,12 +1,12 @@ import React, { ReactElement } from 'react' import classNames from 'classnames' -type BannerButtonProps = { +export type BannerButtonProps = { isOpen: boolean spanProps?: JSX.IntrinsicElements['span'] } -export const BannerButton = ({ +const BannerButton = ({ isOpen, children, className, @@ -33,3 +33,5 @@ export const BannerButton = ({ ) } + +export default BannerButton diff --git a/src/components/banner/BannerContent/BannerContent.test.tsx b/src/components/banner/BannerContent/BannerContent.test.tsx index 63eec6fb70..c4f52501d0 100644 --- a/src/components/banner/BannerContent/BannerContent.test.tsx +++ b/src/components/banner/BannerContent/BannerContent.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { BannerContent } from './BannerContent' +import BannerContent from './BannerContent' describe('BannerContent Component', () => { it('renders properly', () => { diff --git a/src/components/banner/BannerContent/BannerContent.tsx b/src/components/banner/BannerContent/BannerContent.tsx index 7722216463..b949cbca06 100644 --- a/src/components/banner/BannerContent/BannerContent.tsx +++ b/src/components/banner/BannerContent/BannerContent.tsx @@ -1,11 +1,11 @@ import React, { ReactElement } from 'react' import classNames from 'classnames' -type BannerContentProps = { +export type BannerContentProps = { isOpen: boolean } -export const BannerContent = ({ +const BannerContent = ({ children, isOpen, className, @@ -22,3 +22,5 @@ export const BannerContent = ({ ) } + +export default BannerContent diff --git a/src/components/banner/BannerFlag/BannerFlag.test.tsx b/src/components/banner/BannerFlag/BannerFlag.test.tsx index 3179cb18ef..ecb25c798a 100644 --- a/src/components/banner/BannerFlag/BannerFlag.test.tsx +++ b/src/components/banner/BannerFlag/BannerFlag.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render, screen } from '@testing-library/react' -import { BannerFlag } from './BannerFlag' +import BannerFlag from './BannerFlag' describe('BannerFlag Component', () => { it('renders properly', () => { diff --git a/src/components/banner/BannerFlag/BannerFlag.tsx b/src/components/banner/BannerFlag/BannerFlag.tsx index 0111972e02..3e62e3040d 100644 --- a/src/components/banner/BannerFlag/BannerFlag.tsx +++ b/src/components/banner/BannerFlag/BannerFlag.tsx @@ -1,12 +1,16 @@ import React, { ReactElement } from 'react' import classNames from 'classnames' -export const BannerFlag = ({ +export type BannerFlagProps = JSX.IntrinsicElements['img'] + +const BannerFlag = ({ alt, className, ...imgProps -}: JSX.IntrinsicElements['img']): ReactElement => { +}: BannerFlagProps): ReactElement => { const classes = classNames('usa-banner__header-flag', className) return {alt} } + +export default BannerFlag diff --git a/src/components/banner/BannerGuidance/BannerGuidance.test.tsx b/src/components/banner/BannerGuidance/BannerGuidance.test.tsx index 6ce3a95225..f34b13eb43 100644 --- a/src/components/banner/BannerGuidance/BannerGuidance.test.tsx +++ b/src/components/banner/BannerGuidance/BannerGuidance.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { BannerGuidance } from './BannerGuidance' +import BannerGuidance from './BannerGuidance' describe('BannerGuidance Component', () => { it('renders properly', () => { diff --git a/src/components/banner/BannerGuidance/BannerGuidance.tsx b/src/components/banner/BannerGuidance/BannerGuidance.tsx index 8bcf41cfb2..c12b1f3ed3 100644 --- a/src/components/banner/BannerGuidance/BannerGuidance.tsx +++ b/src/components/banner/BannerGuidance/BannerGuidance.tsx @@ -1,11 +1,13 @@ import React, { ReactElement } from 'react' import classNames from 'classnames' -export const BannerGuidance = ({ +export type BannerGuidanceProps = JSX.IntrinsicElements['div'] + +const BannerGuidance = ({ children, className, ...divProps -}: JSX.IntrinsicElements['div']): ReactElement => { +}: BannerGuidanceProps): ReactElement => { const divClasses = classNames('usa-banner__guidance', className) return ( @@ -14,3 +16,5 @@ export const BannerGuidance = ({ ) } + +export default BannerGuidance diff --git a/src/components/banner/BannerHeader/BannerHeader.test.tsx b/src/components/banner/BannerHeader/BannerHeader.test.tsx index 5b61389e47..86ed9894c8 100644 --- a/src/components/banner/BannerHeader/BannerHeader.test.tsx +++ b/src/components/banner/BannerHeader/BannerHeader.test.tsx @@ -1,7 +1,7 @@ import React, { ComponentProps } from 'react' import { render, screen, within } from '@testing-library/react' -import { BannerHeader } from './BannerHeader' -import { BannerFlag } from '../BannerFlag/BannerFlag' +import BannerHeader from './BannerHeader' +import BannerFlag from '../BannerFlag/BannerFlag' describe('BannerHeader Component', () => { const renderBannerHeader = ({ diff --git a/src/components/banner/BannerHeader/BannerHeader.tsx b/src/components/banner/BannerHeader/BannerHeader.tsx index db25363117..6c45552d8e 100644 --- a/src/components/banner/BannerHeader/BannerHeader.tsx +++ b/src/components/banner/BannerHeader/BannerHeader.tsx @@ -1,7 +1,7 @@ import React, { ReactElement, ReactNode } from 'react' import classNames from 'classnames' -type BannerHeaderProps = { +export type BannerHeaderProps = { isOpen: boolean flagImg: ReactNode innerDivProps?: JSX.IntrinsicElements['div'] @@ -11,7 +11,7 @@ type BannerHeaderProps = { headerActionProps?: JSX.IntrinsicElements['p'] } -export const BannerHeader = ({ +const BannerHeader = ({ children, isOpen, flagImg, @@ -79,3 +79,5 @@ export const BannerHeader = ({ ) } + +export default BannerHeader diff --git a/src/components/banner/BannerIcon/BannerIcon.test.tsx b/src/components/banner/BannerIcon/BannerIcon.test.tsx index c187447bbf..89b0277c2a 100644 --- a/src/components/banner/BannerIcon/BannerIcon.test.tsx +++ b/src/components/banner/BannerIcon/BannerIcon.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render, screen } from '@testing-library/react' -import { BannerIcon } from './BannerIcon' +import BannerIcon from './BannerIcon' describe('BannerIcon Component', () => { it('renders properly', () => { diff --git a/src/components/banner/BannerIcon/BannerIcon.tsx b/src/components/banner/BannerIcon/BannerIcon.tsx index 20c50f6f0c..5dfc3c5d6f 100644 --- a/src/components/banner/BannerIcon/BannerIcon.tsx +++ b/src/components/banner/BannerIcon/BannerIcon.tsx @@ -1,12 +1,14 @@ import React, { ReactElement } from 'react' import classNames from 'classnames' -export const BannerIcon = ({ +export type BannerIconProps = JSX.IntrinsicElements['img'] + +const BannerIcon = ({ src, alt, className, ...imgProps -}: JSX.IntrinsicElements['img']): ReactElement => { +}: BannerIconProps): ReactElement => { const classes = classNames('usa-banner__icon usa-media-block__img', className) return ( @@ -19,3 +21,5 @@ export const BannerIcon = ({ /> ) } + +export default BannerIcon diff --git a/src/components/banner/CustomBanner.stories.tsx b/src/components/banner/CustomBanner.stories.tsx index bcd32b2c2c..fc828e0630 100644 --- a/src/components/banner/CustomBanner.stories.tsx +++ b/src/components/banner/CustomBanner.stories.tsx @@ -1,5 +1,5 @@ import React, { ReactElement, useState } from 'react' -import { Icon } from '../Icon/Icons' +import Icon from '../Icon/Icons' import { Banner, BannerButton, diff --git a/src/components/banner/GovBanner/GovBanner.stories.tsx b/src/components/banner/GovBanner/GovBanner.stories.tsx index fef4f85d6b..5aebf1148a 100644 --- a/src/components/banner/GovBanner/GovBanner.stories.tsx +++ b/src/components/banner/GovBanner/GovBanner.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { GovBanner } from './GovBanner' +import GovBanner from './GovBanner' export default { title: 'Components/Banner', diff --git a/src/components/banner/GovBanner/GovBanner.test.tsx b/src/components/banner/GovBanner/GovBanner.test.tsx index 67f5c0967d..d9f1a98c65 100644 --- a/src/components/banner/GovBanner/GovBanner.test.tsx +++ b/src/components/banner/GovBanner/GovBanner.test.tsx @@ -2,7 +2,7 @@ import React from 'react' import { render } from '@testing-library/react' import renderer from 'react-test-renderer' -import { GovBanner } from './GovBanner' +import GovBanner from './GovBanner' describe('GovBanner component', () => { it('renders without errors', () => { diff --git a/src/components/banner/GovBanner/GovBanner.tsx b/src/components/banner/GovBanner/GovBanner.tsx index 4059c1a801..e29907aef6 100644 --- a/src/components/banner/GovBanner/GovBanner.tsx +++ b/src/components/banner/GovBanner/GovBanner.tsx @@ -1,119 +1,26 @@ import React, { ReactElement, useState } from 'react' -import { Banner } from '../Banner/Banner' -import { BannerHeader } from '../BannerHeader/BannerHeader' -import { BannerFlag } from '../BannerFlag/BannerFlag' -import { BannerButton } from '../BannerButton/BannerButton' -import { BannerContent } from '../BannerContent/BannerContent' -import { BannerGuidance } from '../BannerGuidance/BannerGuidance' -import { BannerIcon } from '../BannerIcon/BannerIcon' -import { MediaBlockBody } from '../../mediablock/MediaBlockBody/MediaBlockBody' -import { Icon } from '../../Icon/Icons' +import Banner from '../Banner/Banner' +import BannerHeader from '../BannerHeader/BannerHeader' +import BannerFlag from '../BannerFlag/BannerFlag' +import BannerButton from '../BannerButton/BannerButton' +import BannerContent from '../BannerContent/BannerContent' +import BannerGuidance from '../BannerGuidance/BannerGuidance' +import BannerIcon from '../BannerIcon/BannerIcon' +import MediaBlockBody from '../../mediablock/MediaBlockBody/MediaBlockBody' import { USWDS_IMAGES } from '../../../utils/uswdsImages' +import { Language, TLD, getCopy } from './utils' -type Language = 'english' | 'spanish' - -type TLD = '.gov' | '.mil' - -interface GovBannerCopy { - header: string - ariaLabel: string - headerAction: string - tldSectionHeader: string - tldSectionContent: JSX.Element - httpsSectionHeader: string - httpsSectionContent: JSX.Element -} - -const getCopy = (language: Language, tld: TLD): GovBannerCopy => { - switch (language) { - case 'english': - return { - header: 'An official website of the United States government', - ariaLabel: 'Official website of the United States government', - headerAction: 'Here’s how you know', - tldSectionHeader: `Official websites use ${tld}`, - tldSectionContent: ((): JSX.Element => { - switch (tld) { - case '.gov': - return ( - <> - A .gov website belongs to an official - government organization in the United States. - - ) - case '.mil': - return ( - <> - A .mil website belongs to an official U.S. - Department of Defense organization. - - ) - } - })(), - httpsSectionHeader: `Secure ${tld} websites use HTTPS`, - httpsSectionContent: ( - <> - A{' '} - - lock () - {' '} - or https:// means you’ve safely connected to the{' '} - {tld} website. Share sensitive information only on official, secure - websites. - - ), - } - case 'spanish': - return { - header: 'Un sitio oficial del Gobierno de Estados Unidos', - ariaLabel: 'Un sitio oficial del Gobierno de Estados Unidos', - headerAction: 'Así es como usted puede verificarlo', - tldSectionHeader: `Los sitios web oficiales usan ${tld}`, - tldSectionContent: ((): JSX.Element => { - switch (tld) { - case '.gov': - return ( - <> - Un sitio web .gov pertenece a una - organización oficial del Gobierno de Estados Unidos. - - ) - case '.mil': - return ( - <> - Un sitio web .mil pertenece a una - organización oficial del Departamento de Defensa de EE. UU. - - ) - } - })(), - httpsSectionHeader: `Los sitios web seguros ${tld} usan HTTPS`, - httpsSectionContent: ( - <> - Un{' '} - - candado () - {' '} - o https:// significa que usted se conectó de forma - segura a un sitio web {tld}. Comparta información sensible sólo en - sitios web oficiales y seguros. - - ), - } - } -} - -type GovBannerProps = { +export type GovBannerProps = { tld?: TLD language?: Language -} +} & JSX.IntrinsicElements['section'] -export const GovBanner = ({ +const GovBanner = ({ tld = '.gov', language = 'english', className, ...sectionProps -}: GovBannerProps & JSX.IntrinsicElements['section']): ReactElement => { +}: GovBannerProps): ReactElement => { const [isOpen, setIsOpen] = useState(false) const { diff --git a/src/components/banner/GovBanner/utils.tsx b/src/components/banner/GovBanner/utils.tsx new file mode 100644 index 0000000000..8db11ccad5 --- /dev/null +++ b/src/components/banner/GovBanner/utils.tsx @@ -0,0 +1,95 @@ +import React from 'react' +import Icon from '../../Icon/Icons' + +export type Language = 'english' | 'spanish' + +export type TLD = '.gov' | '.mil' + +export interface GovBannerCopy { + header: string + ariaLabel: string + headerAction: string + tldSectionHeader: string + tldSectionContent: JSX.Element + httpsSectionHeader: string + httpsSectionContent: JSX.Element +} + +export const getCopy = (language: Language, tld: TLD): GovBannerCopy => { + switch (language) { + case 'english': + return { + header: 'An official website of the United States government', + ariaLabel: 'Official website of the United States government', + headerAction: 'Here’s how you know', + tldSectionHeader: `Official websites use ${tld}`, + tldSectionContent: ((): JSX.Element => { + switch (tld) { + case '.gov': + return ( + <> + A .gov website belongs to an official + government organization in the United States. + + ) + case '.mil': + return ( + <> + A .mil website belongs to an official U.S. + Department of Defense organization. + + ) + } + })(), + httpsSectionHeader: `Secure ${tld} websites use HTTPS`, + httpsSectionContent: ( + <> + A{' '} + + lock () + {' '} + or https:// means you’ve safely connected to the{' '} + {tld} website. Share sensitive information only on official, secure + websites. + + ), + } + case 'spanish': + return { + header: 'Un sitio oficial del Gobierno de Estados Unidos', + ariaLabel: 'Un sitio oficial del Gobierno de Estados Unidos', + headerAction: 'Así es como usted puede verificarlo', + tldSectionHeader: `Los sitios web oficiales usan ${tld}`, + tldSectionContent: ((): JSX.Element => { + switch (tld) { + case '.gov': + return ( + <> + Un sitio web .gov pertenece a una + organización oficial del Gobierno de Estados Unidos. + + ) + case '.mil': + return ( + <> + Un sitio web .mil pertenece a una + organización oficial del Departamento de Defensa de EE. UU. + + ) + } + })(), + httpsSectionHeader: `Los sitios web seguros ${tld} usan HTTPS`, + httpsSectionContent: ( + <> + Un{' '} + + candado () + {' '} + o https:// significa que usted se conectó de forma + segura a un sitio web {tld}. Comparta información sensible sólo en + sitios web oficiales y seguros. + + ), + } + } +} diff --git a/src/components/breadcrumb/Breadcrumb/Breadcrumb.test.tsx b/src/components/breadcrumb/Breadcrumb/Breadcrumb.test.tsx index 129bfe7f5f..beea9c1242 100644 --- a/src/components/breadcrumb/Breadcrumb/Breadcrumb.test.tsx +++ b/src/components/breadcrumb/Breadcrumb/Breadcrumb.test.tsx @@ -1,8 +1,8 @@ import React from 'react' import { render } from '@testing-library/react' -import { Breadcrumb } from './Breadcrumb' -import { Link } from '../../Link/Link' -import { BreadcrumbLink } from '../BreadcrumbLink/BreadcrumbLink' +import Breadcrumb from './Breadcrumb' +import Link from '../../Link/Link' +import BreadcrumbLink from '../BreadcrumbLink/BreadcrumbLink' const testPageName = 'Test Page' diff --git a/src/components/breadcrumb/Breadcrumb/Breadcrumb.tsx b/src/components/breadcrumb/Breadcrumb/Breadcrumb.tsx index 09aa938a99..d98e6774ce 100644 --- a/src/components/breadcrumb/Breadcrumb/Breadcrumb.tsx +++ b/src/components/breadcrumb/Breadcrumb/Breadcrumb.tsx @@ -1,12 +1,13 @@ import React from 'react' import classnames from 'classnames' + export interface BreadcrumbProps { children: React.ReactNode className?: string current?: boolean } -export const Breadcrumb = ({ +const Breadcrumb = ({ children, current = false, className, @@ -29,3 +30,5 @@ export const Breadcrumb = ({ ) } + +export default Breadcrumb diff --git a/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.stories.tsx b/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.stories.tsx index e87e8f504c..adcb282e40 100644 --- a/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.stories.tsx +++ b/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.stories.tsx @@ -1,7 +1,7 @@ import React from 'react' -import { Breadcrumb } from '../Breadcrumb/Breadcrumb' -import { BreadcrumbBar } from './BreadcrumbBar' -import { BreadcrumbLink } from '../BreadcrumbLink/BreadcrumbLink' +import Breadcrumb from '../Breadcrumb/Breadcrumb' +import BreadcrumbBar from './BreadcrumbBar' +import BreadcrumbLink from '../BreadcrumbLink/BreadcrumbLink' export default { title: 'Components/Breadcrumb', diff --git a/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.test.tsx b/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.test.tsx index 040da962a6..b5c37a1cac 100644 --- a/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.test.tsx +++ b/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.test.tsx @@ -1,8 +1,8 @@ import React from 'react' import { render } from '@testing-library/react' -import { Breadcrumb } from '../Breadcrumb/Breadcrumb' -import { BreadcrumbBar } from './BreadcrumbBar' -import { BreadcrumbLink } from '../BreadcrumbLink/BreadcrumbLink' +import Breadcrumb from '../Breadcrumb/Breadcrumb' +import BreadcrumbBar from './BreadcrumbBar' +import BreadcrumbLink from '../BreadcrumbLink/BreadcrumbLink' const testPageName = 'Test Page' const testParentPageName = 'Test Parent Page' diff --git a/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.tsx b/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.tsx index 417ca30540..9d7df7150f 100644 --- a/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.tsx +++ b/src/components/breadcrumb/BreadcrumbBar/BreadcrumbBar.tsx @@ -2,7 +2,7 @@ import React, { ReactElement } from 'react' import classnames from 'classnames' import { BreadcrumbProps } from '../Breadcrumb/Breadcrumb' -type BreadcrumbBarProps = { +export type BreadcrumbBarProps = { children: ReactElement | ReactElement[] variant?: 'default' | 'wrap' className?: string @@ -10,7 +10,7 @@ type BreadcrumbBarProps = { listProps?: JSX.IntrinsicElements['ol'] } -export const BreadcrumbBar = ({ +const BreadcrumbBar = ({ variant = 'default', children, className, @@ -33,3 +33,5 @@ export const BreadcrumbBar = ({ ) } + +export default BreadcrumbBar diff --git a/src/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.test.tsx b/src/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.test.tsx index 25f45ef1f0..cc41ccd336 100644 --- a/src/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.test.tsx +++ b/src/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.test.tsx @@ -1,6 +1,6 @@ import React from 'react' import { render } from '@testing-library/react' -import { BreadcrumbLink } from './BreadcrumbLink' +import BreadcrumbLink from './BreadcrumbLink' const testPageName = 'Test Page' diff --git a/src/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.tsx b/src/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.tsx index 346479d3e1..2af80c491f 100644 --- a/src/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.tsx +++ b/src/components/breadcrumb/BreadcrumbLink/BreadcrumbLink.tsx @@ -1,15 +1,15 @@ import classnames from 'classnames' import React from 'react' -import { - CustomLinkProps, - DefaultLinkProps, - isCustomProps, - Link, -} from '../../Link/Link' +import Link, { CustomLinkProps, DefaultLinkProps } from '../../Link/Link' +import { isCustomProps } from '../../Link/utils' -export function BreadcrumbLink(props: DefaultLinkProps): React.ReactElement -export function BreadcrumbLink(props: CustomLinkProps): React.ReactElement -export function BreadcrumbLink({ +export default function BreadcrumbLink( + props: DefaultLinkProps +): React.ReactElement +export default function BreadcrumbLink( + props: CustomLinkProps +): React.ReactElement +export default function BreadcrumbLink({ className, ...passThroughProps }: DefaultLinkProps | CustomLinkProps): React.ReactElement { diff --git a/src/components/card/Card.stories.tsx b/src/components/card/Card.stories.tsx index d5de9b7b59..e205382af2 100644 --- a/src/components/card/Card.stories.tsx +++ b/src/components/card/Card.stories.tsx @@ -1,12 +1,12 @@ import React from 'react' -import { CardGroup } from './CardGroup/CardGroup' -import { Card } from './Card/Card' -import { CardHeader } from './CardHeader/CardHeader' -import { CardFooter } from './CardFooter/CardFooter' -import { CardBody } from './CardBody/CardBody' -import { CardMedia } from './CardMedia/CardMedia' -import { Link } from '../Link/Link' +import CardGroup from './CardGroup/CardGroup' +import Card from './Card/Card' +import CardHeader from './CardHeader/CardHeader' +import CardFooter from './CardFooter/CardFooter' +import CardBody from './CardBody/CardBody' +import CardMedia from './CardMedia/CardMedia' +import Link from '../Link/Link' const sparklerImage = 'data:image/jpeg;base64,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' diff --git a/src/components/card/Card/Card.test.tsx b/src/components/card/Card/Card.test.tsx index 11bd420061..eefc327ec5 100644 --- a/src/components/card/Card/Card.test.tsx +++ b/src/components/card/Card/Card.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { Card } from './Card' +import Card from './Card' describe('Card component', () => { it('renders without errors', () => { diff --git a/src/components/card/Card/Card.tsx b/src/components/card/Card/Card.tsx index 7ef39d359b..a9e9539123 100644 --- a/src/components/card/Card/Card.tsx +++ b/src/components/card/Card/Card.tsx @@ -1,15 +1,16 @@ import React from 'react' import classnames from 'classnames' -import { GridLayoutProp, applyGridClasses } from '../../grid/Grid/Grid' +import { GridLayoutProp } from '../../grid/Grid/Grid' +import { applyGridClasses } from '../../grid/Grid/utils' -type CardProps = { +export type CardProps = { layout?: 'standardDefault' | 'flagDefault' | 'flagMediaRight' headerFirst?: boolean containerProps?: React.HTMLAttributes } -export const Card = ({ +const Card = ({ layout = 'standardDefault', headerFirst, children, diff --git a/src/components/card/CardBody/CardBody.test.tsx b/src/components/card/CardBody/CardBody.test.tsx index 3c2ecb4ba4..c3cb14d91f 100644 --- a/src/components/card/CardBody/CardBody.test.tsx +++ b/src/components/card/CardBody/CardBody.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { CardBody } from './CardBody' +import CardBody from './CardBody' describe('CardBody component', () => { it('renders without errors', () => { diff --git a/src/components/card/CardBody/CardBody.tsx b/src/components/card/CardBody/CardBody.tsx index ac9b2751d6..b4adf9f49d 100644 --- a/src/components/card/CardBody/CardBody.tsx +++ b/src/components/card/CardBody/CardBody.tsx @@ -1,12 +1,14 @@ import React from 'react' import classnames from 'classnames' -export const CardBody = ({ +export type CardBodyProps = { exdent?: boolean } & JSX.IntrinsicElements['div'] + +const CardBody = ({ exdent, children, className, ...bodyProps -}: { exdent?: boolean } & JSX.IntrinsicElements['div']): React.ReactElement => { +}: CardBodyProps): React.ReactElement => { const classes = classnames( 'usa-card__body', { diff --git a/src/components/card/CardFooter/CardFooter.test.tsx b/src/components/card/CardFooter/CardFooter.test.tsx index c1dab2a772..a159b5f241 100644 --- a/src/components/card/CardFooter/CardFooter.test.tsx +++ b/src/components/card/CardFooter/CardFooter.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { CardFooter } from './CardFooter' +import CardFooter from './CardFooter' describe('CardFooter component', () => { it('renders without errors', () => { diff --git a/src/components/card/CardFooter/CardFooter.tsx b/src/components/card/CardFooter/CardFooter.tsx index 1ca054fda6..eb1018e69a 100644 --- a/src/components/card/CardFooter/CardFooter.tsx +++ b/src/components/card/CardFooter/CardFooter.tsx @@ -1,12 +1,16 @@ import React from 'react' import classnames from 'classnames' -export const CardFooter = ({ +export type CardFooterProps = { + exdent?: boolean +} & JSX.IntrinsicElements['div'] + +const CardFooter = ({ exdent, children, className, ...footerProps -}: { exdent?: boolean } & JSX.IntrinsicElements['div']): React.ReactElement => { +}: CardFooterProps): React.ReactElement => { const classes = classnames( 'usa-card__footer', { diff --git a/src/components/card/CardGroup/CardGroup.test.tsx b/src/components/card/CardGroup/CardGroup.test.tsx index a37ce25ccb..b5b3b0870a 100644 --- a/src/components/card/CardGroup/CardGroup.test.tsx +++ b/src/components/card/CardGroup/CardGroup.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { CardGroup } from './CardGroup' +import CardGroup from './CardGroup' describe('CardGroup component', () => { it('renders without errors', () => { diff --git a/src/components/card/CardGroup/CardGroup.tsx b/src/components/card/CardGroup/CardGroup.tsx index a68b2bd735..a7db2950a7 100644 --- a/src/components/card/CardGroup/CardGroup.tsx +++ b/src/components/card/CardGroup/CardGroup.tsx @@ -1,11 +1,13 @@ import React from 'react' import classnames from 'classnames' -export const CardGroup = ({ +export type CardGroupProps = JSX.IntrinsicElements['ul'] + +const CardGroup = ({ children, className, ...ulProps -}: JSX.IntrinsicElements['ul']): React.ReactElement => { +}: CardGroupProps): React.ReactElement => { const classes = classnames('usa-card-group', className) return ( diff --git a/src/components/card/CardHeader/CardHeader.test.tsx b/src/components/card/CardHeader/CardHeader.test.tsx index 3f0b167a78..ec15d63eab 100644 --- a/src/components/card/CardHeader/CardHeader.test.tsx +++ b/src/components/card/CardHeader/CardHeader.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { CardHeader } from './CardHeader' +import CardHeader from './CardHeader' describe('CardHeader component', () => { it('renders without errors', () => { diff --git a/src/components/card/CardHeader/CardHeader.tsx b/src/components/card/CardHeader/CardHeader.tsx index 61268ba0c0..cf330da0d2 100644 --- a/src/components/card/CardHeader/CardHeader.tsx +++ b/src/components/card/CardHeader/CardHeader.tsx @@ -1,14 +1,16 @@ import React from 'react' import classnames from 'classnames' -export const CardHeader = ({ +export type CardHeaderProps = { + exdent?: boolean +} & JSX.IntrinsicElements['header'] + +const CardHeader = ({ exdent, children, className, ...headerProps -}: { - exdent?: boolean -} & JSX.IntrinsicElements['header']): React.ReactElement => { +}: CardHeaderProps): React.ReactElement => { const classes = classnames( 'usa-card__header', { diff --git a/src/components/card/CardMedia/CardMedia.test.tsx b/src/components/card/CardMedia/CardMedia.test.tsx index e8fc902cb5..b78f78f41a 100644 --- a/src/components/card/CardMedia/CardMedia.test.tsx +++ b/src/components/card/CardMedia/CardMedia.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { CardMedia } from './CardMedia' +import CardMedia from './CardMedia' describe('CardMedia component', () => { it('renders without errors', () => { diff --git a/src/components/card/CardMedia/CardMedia.tsx b/src/components/card/CardMedia/CardMedia.tsx index 576393446b..80cae90bc4 100644 --- a/src/components/card/CardMedia/CardMedia.tsx +++ b/src/components/card/CardMedia/CardMedia.tsx @@ -1,14 +1,14 @@ import React from 'react' import classnames from 'classnames' -interface CardMediaProps { +export interface CardMediaProps { exdent?: boolean inset?: boolean imageClass?: string children: React.ReactNode } -export const CardMedia = ({ +const CardMedia = ({ exdent, inset, imageClass, diff --git a/src/components/forms/CharacterCount/CharacterCount.stories.tsx b/src/components/forms/CharacterCount/CharacterCount.stories.tsx index d37a1e72f3..d155da669e 100644 --- a/src/components/forms/CharacterCount/CharacterCount.stories.tsx +++ b/src/components/forms/CharacterCount/CharacterCount.stories.tsx @@ -1,8 +1,8 @@ import React from 'react' -import { CharacterCount } from './CharacterCount' -import { Form } from '../Form/Form' -import { FormGroup } from '../FormGroup/FormGroup' -import { Label } from '../Label/Label' +import CharacterCount from './CharacterCount' +import Form from '../Form/Form' +import FormGroup from '../FormGroup/FormGroup' +import Label from '../Label/Label' export default { title: 'Components/CharacterCount', diff --git a/src/components/forms/CharacterCount/CharacterCount.test.tsx b/src/components/forms/CharacterCount/CharacterCount.test.tsx index ff1bd8834e..1098da146e 100644 --- a/src/components/forms/CharacterCount/CharacterCount.test.tsx +++ b/src/components/forms/CharacterCount/CharacterCount.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render, fireEvent } from '@testing-library/react' -import { CharacterCount } from './CharacterCount' +import CharacterCount from './CharacterCount' describe('CharacterCount component', () => { afterEach(() => { diff --git a/src/components/forms/CharacterCount/CharacterCount.tsx b/src/components/forms/CharacterCount/CharacterCount.tsx index 276ef1f69e..519e1d2b98 100644 --- a/src/components/forms/CharacterCount/CharacterCount.tsx +++ b/src/components/forms/CharacterCount/CharacterCount.tsx @@ -1,39 +1,12 @@ import React, { useState, useEffect, useRef } from 'react' import classnames from 'classnames' -import { TextInput, TextInputProps } from '../TextInput/TextInput' -import { Textarea, TextareaProps } from '../Textarea/Textarea' - -/* Defaults - This is a fallback for character count and validation message. - In many cases, though, props will be passed in by consumer - for example, to account for i18n-aware strings -*/ -const defaultCharacterCount = (text: string): number => Array.from(text).length -const defaultMessage = (count: number, max: number): string => { - const emptyMessageFormat = `${max} characters allowed` - const remainingPluralFormat = '$0 characters left' - const remainingSingularFormat = '$0 character left' - const overSingularFormat = '$0 character over limit' - const overPluralFormat = '$0 characters over limit' - const remainingCount = max - count - - switch (remainingCount) { - case max: - return emptyMessageFormat - case 1: - return remainingSingularFormat.replace('$0', '1') - case -1: - return overSingularFormat.replace('$0', '1') - default: - return remainingCount >= 0 - ? remainingPluralFormat.replace('$0', remainingCount.toString()) - : overPluralFormat.replace('$0', Math.abs(remainingCount).toString()) - } -} +import TextInput, { TextInputProps } from '../TextInput/TextInput' +import Textarea, { TextareaProps } from '../Textarea/Textarea' +import { defaultCharacterCount, defaultMessage } from './utils' /* Types */ -type BaseCharacterCountProps = { +export type BaseCharacterCountProps = { id: string name: string maxLength: number @@ -53,7 +26,7 @@ export type TextareaCharacterCountProps = BaseCharacterCountProps & JSX.IntrinsicElements['textarea'] /* Main */ -export const CharacterCount = ({ +const CharacterCount = ({ id, name, className, diff --git a/src/components/forms/CharacterCount/utils.ts b/src/components/forms/CharacterCount/utils.ts new file mode 100644 index 0000000000..09e855d2c0 --- /dev/null +++ b/src/components/forms/CharacterCount/utils.ts @@ -0,0 +1,28 @@ +/* Defaults + This is a fallback for character count and validation message. + In many cases, though, props will be passed in by consumer + for example, to account for i18n-aware strings +*/ +export const defaultCharacterCount = (text: string): number => + Array.from(text).length +export const defaultMessage = (count: number, max: number): string => { + const emptyMessageFormat = `${max} characters allowed` + const remainingPluralFormat = '$0 characters left' + const remainingSingularFormat = '$0 character left' + const overSingularFormat = '$0 character over limit' + const overPluralFormat = '$0 characters over limit' + const remainingCount = max - count + + switch (remainingCount) { + case max: + return emptyMessageFormat + case 1: + return remainingSingularFormat.replace('$0', '1') + case -1: + return overSingularFormat.replace('$0', '1') + default: + return remainingCount >= 0 + ? remainingPluralFormat.replace('$0', remainingCount.toString()) + : overPluralFormat.replace('$0', Math.abs(remainingCount).toString()) + } +} diff --git a/src/components/forms/Checkbox/Checkbox.stories.tsx b/src/components/forms/Checkbox/Checkbox.stories.tsx index c42040eb25..9766f90161 100644 --- a/src/components/forms/Checkbox/Checkbox.stories.tsx +++ b/src/components/forms/Checkbox/Checkbox.stories.tsx @@ -1,5 +1,5 @@ import React from 'react' -import { Checkbox } from './Checkbox' +import Checkbox from './Checkbox' export default { title: 'Components/Checkbox', diff --git a/src/components/forms/Checkbox/Checkbox.test.tsx b/src/components/forms/Checkbox/Checkbox.test.tsx index 27969bd1bb..5be3faa8e5 100644 --- a/src/components/forms/Checkbox/Checkbox.test.tsx +++ b/src/components/forms/Checkbox/Checkbox.test.tsx @@ -1,7 +1,7 @@ import React from 'react' import { render } from '@testing-library/react' -import { Checkbox } from './Checkbox' +import Checkbox from './Checkbox' describe('Checkbox component', () => { it('renders without errors', () => { diff --git a/src/components/forms/Checkbox/Checkbox.tsx b/src/components/forms/Checkbox/Checkbox.tsx index 5a0efb7fd0..cf08d76441 100644 --- a/src/components/forms/Checkbox/Checkbox.tsx +++ b/src/components/forms/Checkbox/Checkbox.tsx @@ -1,7 +1,7 @@ import React from 'react' import classnames from 'classnames' -type CheckboxProps = { +export type CheckboxProps = { id: string name: string className?: string @@ -14,9 +14,9 @@ type CheckboxProps = { | undefined tile?: boolean labelDescription?: React.ReactNode -} +} & JSX.IntrinsicElements['input'] -export const Checkbox = ({ +const Checkbox = ({ id, name, className, @@ -25,7 +25,7 @@ export const Checkbox = ({ tile, labelDescription, ...inputProps -}: CheckboxProps & JSX.IntrinsicElements['input']): React.ReactElement => { +}: CheckboxProps): React.ReactElement => { const classes = classnames('usa-checkbox', className) const checkboxClasses = classnames('usa-checkbox__input', { 'usa-checkbox__input--tile': tile, diff --git a/src/components/forms/ComboBox/ComboBox.stories.tsx b/src/components/forms/ComboBox/ComboBox.stories.tsx index 57faae5e91..205d48da69 100644 --- a/src/components/forms/ComboBox/ComboBox.stories.tsx +++ b/src/components/forms/ComboBox/ComboBox.stories.tsx @@ -1,11 +1,11 @@ import React, { useRef, useState } from 'react' -import { ComboBox, ComboBoxRef } from './ComboBox' -import { Form } from '../Form/Form' -import { Label } from '../Label/Label' -import { Button } from '../../Button/Button' +import ComboBox, { ComboBoxRef } from './ComboBox' +import Form from '../Form/Form' +import Label from '../Label/Label' +import Button from '../../Button/Button' import { fruits, veggies } from './foods' -import { Radio } from '../Radio/Radio' +import Radio from '../Radio/Radio' export default { title: 'Components/Combo box', diff --git a/src/components/forms/ComboBox/ComboBox.test.tsx b/src/components/forms/ComboBox/ComboBox.test.tsx index 09d537f63b..0636a765f7 100644 --- a/src/components/forms/ComboBox/ComboBox.test.tsx +++ b/src/components/forms/ComboBox/ComboBox.test.tsx @@ -2,8 +2,8 @@ import React from 'react' import { screen, render, waitFor } from '@testing-library/react' import { userEvent } from '@testing-library/user-event' -import { ComboBox, ComboBoxOption, ComboBoxRef } from './ComboBox' -import { TextInput } from '../TextInput/TextInput' +import ComboBox, { ComboBoxOption, ComboBoxRef } from './ComboBox' +import TextInput from '../TextInput/TextInput' import { fruits, veggies } from './foods' /* diff --git a/src/components/forms/ComboBox/ComboBox.tsx b/src/components/forms/ComboBox/ComboBox.tsx index b8463c80ab..b7fbb8beb4 100644 --- a/src/components/forms/ComboBox/ComboBox.tsx +++ b/src/components/forms/ComboBox/ComboBox.tsx @@ -8,7 +8,8 @@ import React, { } from 'react' import classnames from 'classnames' -import { ActionTypes, Action, State, useComboBox } from './useComboBox' +import useComboBox, { ActionTypes, Action, State } from './useComboBox' +import ComboBoxInput from './ComboBoxInput' /* As per USWDS spec, ComboBox includes a HTML and dropdown