From d11b3103fe4dd20facda3d8337cb80ffa574ce57 Mon Sep 17 00:00:00 2001 From: tuannguyenitpy Date: Thu, 2 Nov 2023 08:40:54 +0000 Subject: [PATCH 1/3] Update: Select component --- .eslintrc.cjs | 1 + .storybook/main.ts | 4 +-- .../number-input/number-input.stories.tsx | 2 +- lib/components/select/select.stories.tsx | 28 +++++++++++++++++++ lib/components/select/select.tsx | 14 +++++++--- package.json | 21 +++++++------- 6 files changed, 52 insertions(+), 18 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 514cc39..bd8290c 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -8,6 +8,7 @@ module.exports = { "plugin:react/recommended", "plugin:react/jsx-runtime", "plugin:react-hooks/recommended", + "plugin:storybook/recommended" ], ignorePatterns: ["dist", ".eslintrc.cjs"], parser: "@typescript-eslint/parser", diff --git a/.storybook/main.ts b/.storybook/main.ts index eb3559f..ce30c27 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -16,9 +16,7 @@ const config: StorybookConfig = { docs: { autodocs: "tag", }, - core: { - builder: "@storybook/builder-vite", // 👈 The builder enabled here. - }, + core: {}, async viteFinal(config, { configType }) { // if (configType === 'DEVELOPMENT') { // // Your development configuration goes here diff --git a/lib/components/number-input/number-input.stories.tsx b/lib/components/number-input/number-input.stories.tsx index bc5c1d9..3c024f9 100644 --- a/lib/components/number-input/number-input.stories.tsx +++ b/lib/components/number-input/number-input.stories.tsx @@ -3,7 +3,7 @@ import type { Meta, StoryObj } from "@storybook/react"; import { NumberInput } from "./number-input"; const meta = { - title: "INPUTS/NumberInput", + title: "FORMS/NumberInput", component: NumberInput, tags: ["autodocs"], argTypes: { diff --git a/lib/components/select/select.stories.tsx b/lib/components/select/select.stories.tsx index 3619813..f70f251 100644 --- a/lib/components/select/select.stories.tsx +++ b/lib/components/select/select.stories.tsx @@ -36,6 +36,34 @@ export const Primary: Story = { label: "Option 4", value: 4, }, + { + label: "Option 5", + value: 5, + }, + { + label: "Option 6", + value: 6, + }, + { + label: "Option 7", + value: 7, + }, + { + label: "Option 8", + value: 8, + }, + { + label: "Option 9", + value: 9, + }, + { + label: "Option 10", + value: 10, + }, + { + label: "Option 11", + value: 11, + }, ], }, }; diff --git a/lib/components/select/select.tsx b/lib/components/select/select.tsx index ebd0cc2..075c040 100644 --- a/lib/components/select/select.tsx +++ b/lib/components/select/select.tsx @@ -155,8 +155,8 @@ export const Select = ({ }) )} onClick={() => { - const newValue = isSelected ? undefined : x - onChange?.(newValue) + const newValue = isSelected ? undefined : x; + onChange?.(newValue); setValueState(newValue); setSearchValue(""); setOpen(false); @@ -174,8 +174,14 @@ export const Select = ({
{ - const _isOpen = !isOpen; - setOpen(_isOpen); + // when searching, disable closing dropdown when clicking on the input + setOpen((prev) => { + if (isSearchable && !!prev) { + return true; + } + return !prev; + }); + inputRef.current?.focus(); }} className={containerClasses} diff --git a/package.json b/package.json index 50b236f..35250a2 100644 --- a/package.json +++ b/package.json @@ -27,16 +27,16 @@ }, "devDependencies": { "@phosphor-icons/react": "^2.0.13", - "@storybook/addon-essentials": "^7.5.1", - "@storybook/addon-interactions": "^7.5.1", - "@storybook/addon-links": "^7.5.1", + "@storybook/addon-essentials": "^7.5.2", + "@storybook/addon-interactions": "^7.5.2", + "@storybook/addon-links": "^7.5.2", "@storybook/addon-onboarding": "^1.0.8", - "@storybook/blocks": "^7.5.1", - "@storybook/manager-api": "^7.5.1", - "@storybook/react": "^7.5.1", - "@storybook/react-vite": "^7.5.1", + "@storybook/blocks": "^7.5.2", + "@storybook/manager-api": "^7.5.2", + "@storybook/react": "^7.5.2", + "@storybook/react-vite": "^7.5.2", "@storybook/testing-library": "^0.2.2", - "@storybook/theming": "^7.5.1", + "@storybook/theming": "^7.5.2", "@types/node": "^20.8.8", "@types/react": "^18.2.31", "@types/react-dom": "^18.2.14", @@ -49,6 +49,7 @@ "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.3", + "eslint-plugin-storybook": "^0.6.15", "framer-motion": "^10.16.4", "glob": "^10.3.10", "postcss": "^8.4.31", @@ -56,7 +57,7 @@ "react-dom": "^18.2.0", "react-laag": "^2.0.5", "sass": "^1.69.4", - "storybook": "^7.5.1", + "storybook": "^7.5.2", "tailwind-merge": "^1.14.0", "tailwindcss": "^3.3.4", "typescript": "^5.2.2", @@ -67,4 +68,4 @@ "sideEffects": [ "**/*.css" ] -} \ No newline at end of file +} From 37ec69be29778141b14f1f192ba897ee3098e24a Mon Sep 17 00:00:00 2001 From: tuannguyenitpy Date: Fri, 3 Nov 2023 02:24:39 +0000 Subject: [PATCH 2/3] Update: Select component --- .storybook/YourTheme.ts | 2 +- lib/components/select/select.stories.tsx | 9 +- lib/components/select/select.tsx | 6 +- lib/components/select/select.types.ts | 6 +- .../styles/components/select.styles.ts | 4 +- package-lock.json | 937 +++++++++++------- 6 files changed, 603 insertions(+), 361 deletions(-) diff --git a/.storybook/YourTheme.ts b/.storybook/YourTheme.ts index 50bce40..ec0ff11 100644 --- a/.storybook/YourTheme.ts +++ b/.storybook/YourTheme.ts @@ -4,7 +4,7 @@ import { create } from "@storybook/theming/create"; export default create({ base: "light", - brandTitle: "ZENI-UI BY LEWIS", + brandTitle: "ZENI-UI", brandTarget: "_self", appBg: "#F6F4EB", appBorderRadius: 8, diff --git a/lib/components/select/select.stories.tsx b/lib/components/select/select.stories.tsx index f70f251..5ea0f3b 100644 --- a/lib/components/select/select.stories.tsx +++ b/lib/components/select/select.stories.tsx @@ -6,7 +6,12 @@ const meta = { title: "FORMS/Select", component: Select, tags: ["autodocs"], - argTypes: {}, + argTypes: { + placement: { + options: ["top", "bottom"], + control: "radio", + }, + }, } satisfies Meta; export default meta; @@ -19,6 +24,8 @@ export const Primary: Story = { isClearable: true, isSearchable: false, // leftElement: , + placeholder: "Please select", + placement: "top", options: [ { label: "This is a really long option label, you see?", diff --git a/lib/components/select/select.tsx b/lib/components/select/select.tsx index 075c040..bfe8d4d 100644 --- a/lib/components/select/select.tsx +++ b/lib/components/select/select.tsx @@ -20,6 +20,8 @@ export const Select = ({ isSearchable = true, className = "", dropdownClassName = "", + placeholder = "Placeholder", + placement = 'bottom' }: ISelect) => { const secContainerRef = useRef(null); const inputRef = useRef(null); @@ -46,7 +48,7 @@ export const Select = ({ isOpen: isOpen, auto: true, triggerOffset: 4, - placement: "bottom-start", + placement: placement === "top" ? "top-start" : "bottom-start", onOutsideClick: () => { setOpen(false); }, @@ -217,7 +219,7 @@ export const Select = ({ {valueState?.label} ) : ( - Placeholder + {placeholder} )} )} diff --git a/lib/components/select/select.types.ts b/lib/components/select/select.types.ts index 3af0550..117386a 100644 --- a/lib/components/select/select.types.ts +++ b/lib/components/select/select.types.ts @@ -15,8 +15,10 @@ export interface ISelect rightElement?: React.ReactNode; isClearable?: boolean; isSearchable?: boolean; - className?: string - dropdownClassName?: string + className?: string; + dropdownClassName?: string; + placeholder?: string; + placement?:"top" | "bottom" } export type ISelectValue = string | number; diff --git a/lib/customization/styles/components/select.styles.ts b/lib/customization/styles/components/select.styles.ts index 9d7ee77..58a5dcc 100644 --- a/lib/customization/styles/components/select.styles.ts +++ b/lib/customization/styles/components/select.styles.ts @@ -130,7 +130,7 @@ const input = cva([ "h-full", "w-full", "appearance-none", - "cursor-inherit" + "cursor-inherit", ]); const dropdown = cva([ @@ -175,7 +175,7 @@ const optionCheckIcon = cva(["text-primary", "text-[18px]"]); const group = cva(["flex", "items-center"]); const inputLabel = cva(["truncate", "inline-block", "w-full"]); const placeholder = cva([ - "text-opacity-40", + "text-opacity-50", "text-black", "inline-block", "w-full", diff --git a/package-lock.json b/package-lock.json index 001f5df..d628510 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,50 +1,51 @@ { "name": "zeni-ui", - "version": "1.1.5", + "version": "1.1.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "zeni-ui", - "version": "1.1.5", + "version": "1.1.8", "devDependencies": { "@phosphor-icons/react": "^2.0.13", - "@storybook/addon-essentials": "^7.5.0", - "@storybook/addon-interactions": "^7.5.0", - "@storybook/addon-links": "^7.5.0", + "@storybook/addon-essentials": "^7.5.2", + "@storybook/addon-interactions": "^7.5.2", + "@storybook/addon-links": "^7.5.2", "@storybook/addon-onboarding": "^1.0.8", - "@storybook/blocks": "^7.5.0", - "@storybook/manager-api": "^7.5.0", - "@storybook/react": "^7.5.0", - "@storybook/react-vite": "^7.5.0", + "@storybook/blocks": "^7.5.2", + "@storybook/manager-api": "^7.5.2", + "@storybook/react": "^7.5.2", + "@storybook/react-vite": "^7.5.2", "@storybook/testing-library": "^0.2.2", - "@storybook/theming": "^7.5.0", - "@types/node": "^20.8.6", - "@types/react": "^18.2.15", - "@types/react-dom": "^18.2.7", - "@typescript-eslint/eslint-plugin": "^6.0.0", - "@typescript-eslint/parser": "^6.0.0", - "@vitejs/plugin-react": "^4.0.3", + "@storybook/theming": "^7.5.2", + "@types/node": "^20.8.8", + "@types/react": "^18.2.31", + "@types/react-dom": "^18.2.14", + "@typescript-eslint/eslint-plugin": "^6.9.0", + "@typescript-eslint/parser": "^6.9.0", + "@vitejs/plugin-react": "^4.1.0", "autoprefixer": "^10.4.16", "class-variance-authority": "^0.7.0", - "eslint": "^8.51.0", + "eslint": "^8.52.0", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-refresh": "^0.4.3", + "eslint-plugin-storybook": "^0.6.15", "framer-motion": "^10.16.4", "glob": "^10.3.10", "postcss": "^8.4.31", "react": "^18.2.0", "react-dom": "^18.2.0", "react-laag": "^2.0.5", - "sass": "^1.69.3", - "storybook": "^7.5.0", + "sass": "^1.69.4", + "storybook": "^7.5.2", "tailwind-merge": "^1.14.0", - "tailwindcss": "^3.3.3", - "typescript": "^5.0.2", - "vite": "^4.4.5", + "tailwindcss": "^3.3.4", + "typescript": "^5.2.2", + "vite": "^4.5.0", "vite-plugin-css-injected-by-js": "^3.3.0", - "vite-plugin-dts": "^3.6.0" + "vite-plugin-dts": "^3.6.1" }, "peerDependencies": { "react": "^18.2.0", @@ -4167,19 +4168,19 @@ "dev": true }, "node_modules/@storybook/addon-actions": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.5.1.tgz", - "integrity": "sha512-GieD3ru6EslKvwol1cE4lvszQCLB/AkQdnLofnqy1nnYso+hRxmPAw9/O+pWfpUBFdjXsQ7GX09+wEUpOJzepw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.5.2.tgz", + "integrity": "sha512-jKF3rrMEu42TgZ5AEszADpVdASDu1S4Ozp1Ymf4akHLkaMOv+yzzD7LV6YGjJz8S2IryndZqE47e6stF0T99uA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/components": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/client-logger": "7.5.2", + "@storybook/components": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/theming": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/manager-api": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/theming": "7.5.2", + "@storybook/types": "7.5.2", "dequal": "^2.0.2", "lodash": "^4.17.21", "polished": "^4.2.2", @@ -4207,19 +4208,19 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.5.1.tgz", - "integrity": "sha512-XZoyJw/WoUlVvQHPTbSAZjKy2SEUjaSmAWgcRync25vp+q0obthjx6UnZHEUuH8Ud07HA3FYzlFtMicH5y/OIQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.5.2.tgz", + "integrity": "sha512-CII8c+db8sVciWjFY0ProZi5E2d+cOc+XlVHCAVaUYp2Bp/1MV7en8etfLK7DEoH6kBVz1+t3TaPU+xjUTR8Ig==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/components": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/client-logger": "7.5.2", + "@storybook/components": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/theming": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/manager-api": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/theming": "7.5.2", + "@storybook/types": "7.5.2", "memoizerific": "^1.11.3", "ts-dedent": "^2.0.0" }, @@ -4241,21 +4242,21 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.5.1.tgz", - "integrity": "sha512-Xag1e7TZo04LjUenfobkShpKMxTtwa4xM4bXQA8LjaAGZQ7jipbQ4PE73a17K59S2vqq89VAhkuMJWiyaOFqpw==", - "dev": true, - "dependencies": { - "@storybook/blocks": "7.5.1", - "@storybook/client-logger": "7.5.1", - "@storybook/components": "7.5.1", - "@storybook/core-common": "7.5.1", - "@storybook/core-events": "7.5.1", - "@storybook/manager-api": "7.5.1", - "@storybook/node-logger": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/theming": "7.5.1", - "@storybook/types": "7.5.1", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.5.2.tgz", + "integrity": "sha512-f04VcBSfm3yMT1hvaFEwCRbdwiXQbddfEwhwjEVsqd+CA0s600W4L7B8tT4daXMsU6NsZyibev910IKTnDw6xQ==", + "dev": true, + "dependencies": { + "@storybook/blocks": "7.5.2", + "@storybook/client-logger": "7.5.2", + "@storybook/components": "7.5.2", + "@storybook/core-common": "7.5.2", + "@storybook/core-events": "7.5.2", + "@storybook/manager-api": "7.5.2", + "@storybook/node-logger": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/theming": "7.5.2", + "@storybook/types": "7.5.2", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -4277,26 +4278,26 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.5.1.tgz", - "integrity": "sha512-+wE67oWIhGK9+kv2sxoY2KDXm3v62RfEgxiksdhtffTP/joOK3p88S0lO+8g0G4xfNGUnBhPtzGMuUxWwaH2Pw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.5.2.tgz", + "integrity": "sha512-KxX4XuxK6YcI2mUosFkAlueMon/nby6mp3GRHenuK+nobY0ecfILqSTbsOeO1wqPxALBoq7fLnrgYhdDlandgQ==", "dev": true, "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.5.1", - "@storybook/client-logger": "7.5.1", - "@storybook/components": "7.5.1", - "@storybook/csf-plugin": "7.5.1", - "@storybook/csf-tools": "7.5.1", + "@storybook/blocks": "7.5.2", + "@storybook/client-logger": "7.5.2", + "@storybook/components": "7.5.2", + "@storybook/csf-plugin": "7.5.2", + "@storybook/csf-tools": "7.5.2", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.5.1", - "@storybook/postinstall": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/react-dom-shim": "7.5.1", - "@storybook/theming": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/node-logger": "7.5.2", + "@storybook/postinstall": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/react-dom-shim": "7.5.2", + "@storybook/theming": "7.5.2", + "@storybook/types": "7.5.2", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -4312,24 +4313,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.5.1.tgz", - "integrity": "sha512-/jaUZXV+mE/2G5PgEpFKm4lFEHluWn6GFR/pg+hphvHOzBGA3Y75JMgUfJ5CDYHB1dAVSf9JrPOd8Eb1tpESfA==", - "dev": true, - "dependencies": { - "@storybook/addon-actions": "7.5.1", - "@storybook/addon-backgrounds": "7.5.1", - "@storybook/addon-controls": "7.5.1", - "@storybook/addon-docs": "7.5.1", - "@storybook/addon-highlight": "7.5.1", - "@storybook/addon-measure": "7.5.1", - "@storybook/addon-outline": "7.5.1", - "@storybook/addon-toolbars": "7.5.1", - "@storybook/addon-viewport": "7.5.1", - "@storybook/core-common": "7.5.1", - "@storybook/manager-api": "7.5.1", - "@storybook/node-logger": "7.5.1", - "@storybook/preview-api": "7.5.1", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.5.2.tgz", + "integrity": "sha512-bN7Q+8J3xVgNoBKCwtyX1O5jXuuJavYdAPiPQGrt6YegUi3gVfr5n/+/mNlu6Fd5AThFcVFei6gS9aiYmU/h8g==", + "dev": true, + "dependencies": { + "@storybook/addon-actions": "7.5.2", + "@storybook/addon-backgrounds": "7.5.2", + "@storybook/addon-controls": "7.5.2", + "@storybook/addon-docs": "7.5.2", + "@storybook/addon-highlight": "7.5.2", + "@storybook/addon-measure": "7.5.2", + "@storybook/addon-outline": "7.5.2", + "@storybook/addon-toolbars": "7.5.2", + "@storybook/addon-viewport": "7.5.2", + "@storybook/core-common": "7.5.2", + "@storybook/manager-api": "7.5.2", + "@storybook/node-logger": "7.5.2", + "@storybook/preview-api": "7.5.2", "ts-dedent": "^2.0.0" }, "funding": { @@ -4342,14 +4343,14 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.5.1.tgz", - "integrity": "sha512-js9OV17kpjRowuaGAPfI9aOn/zzt8P589ACZE+/eYBO9jT65CADwAUxg//Uq0/he+Ac9495pcK3BcYyDeym7/g==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.5.2.tgz", + "integrity": "sha512-0vek42fHh7Aeinvkwge0ZTq5VfNsuMSejUv0wHa3zQWgUmlaRlGY8zDw7nG6LiIz6rnTBDTznsfyWenAySSHXg==", "dev": true, "dependencies": { - "@storybook/core-events": "7.5.1", + "@storybook/core-events": "7.5.2", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.5.1" + "@storybook/preview-api": "7.5.2" }, "funding": { "type": "opencollective", @@ -4357,21 +4358,21 @@ } }, "node_modules/@storybook/addon-interactions": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-7.5.1.tgz", - "integrity": "sha512-m9yohFYil+UBwYKFxHYdsAsn8PBCPl6HY/FSgfrDc5PiqT1Ya7paXopimyy9ok+VQt/RC8sEWIm809ONEoxosw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-7.5.2.tgz", + "integrity": "sha512-upddA+pvJtU3pRZqu3Chl5QbVfVv2eCIuUxaAG9rvasaqkLTTrNvna8rmnXwqL8sBKHL1XzSyO2sQF4vzQwymg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/components": "7.5.1", - "@storybook/core-common": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/client-logger": "7.5.2", + "@storybook/components": "7.5.2", + "@storybook/core-common": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "7.5.1", - "@storybook/manager-api": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/theming": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/instrumenter": "7.5.2", + "@storybook/manager-api": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/theming": "7.5.2", + "@storybook/types": "7.5.2", "jest-mock": "^27.0.6", "polished": "^4.2.2", "ts-dedent": "^2.2.0" @@ -4394,19 +4395,19 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.5.1.tgz", - "integrity": "sha512-KDiQYAVNXxuVTB3QLFZxHlfT8q4KnlNKY+0OODvgD5o1FqFpIyUiR5mIBL4SZMRj2EtwrR3KmZ2UPccFZdu9vw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.5.2.tgz", + "integrity": "sha512-IhUYNOJQYJd8Cnb93l8egnGCGhHV0VHo6HmZT9YjBVuUtetGQbW8Eoh0pQwuklUrJ3jLPwMoKFhN1irQXJjZwQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/client-logger": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/router": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/manager-api": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/router": "7.5.2", + "@storybook/types": "7.5.2", "prop-types": "^15.7.2", "ts-dedent": "^2.0.0" }, @@ -4428,18 +4429,18 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.5.1.tgz", - "integrity": "sha512-yR6oELJe0UHYxRijd1YMuGaQRlZ3uABjmrXaFCPnd6agahgTwIJLiK4XamtkVur//LaiJMvtmM2XXrkJ1BvNJw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.5.2.tgz", + "integrity": "sha512-fkvORLaYVC/yNMFzHRHmzlvniY7sWtpFxaRW+e4++hGXYV4VQjOBlXzdMxQhAg1DCVWD6QV8xnUQPBGrsEklog==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/components": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/client-logger": "7.5.2", + "@storybook/components": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/manager-api": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/types": "7.5.2", "tiny-invariant": "^1.3.1" }, "funding": { @@ -4474,18 +4475,18 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.5.1.tgz", - "integrity": "sha512-IMi5Bo34/Q5YUG5uD8ZUTBwlpGrkDIV+PUgkyNIbmn9OgozoCH80Fs7YlGluRFODQISpHwio9qvSFRGdSNT56A==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.5.2.tgz", + "integrity": "sha512-BgDnVzE9xCN1xwuCebK6+apNCtVcw1ToW8N6R3vNgXgNPE1euT3jxkDH7K4RJR24Flu6BotWjX3dqv8k+8xGKw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/components": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/client-logger": "7.5.2", + "@storybook/components": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/manager-api": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/types": "7.5.2", "ts-dedent": "^2.0.0" }, "funding": { @@ -4506,16 +4507,16 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.5.1.tgz", - "integrity": "sha512-T88hEEQicV6eCovr5TN2nFgKt7wU0o7pAunP5cU01iiVRj63+oQiVIBB8Xtm4tN+/DsqtyP0BTa6rFwt2ULy8A==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.5.2.tgz", + "integrity": "sha512-BXzb5NOpILFOM7EOBxcF2Qj/q6BicWZ1AvAddORWGmqSa/MxMIa4X52oKXFUTHKBkrTO1X0XqHmoF88qm3TUFg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/components": "7.5.1", - "@storybook/manager-api": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/theming": "7.5.1" + "@storybook/client-logger": "7.5.2", + "@storybook/components": "7.5.2", + "@storybook/manager-api": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/theming": "7.5.2" }, "funding": { "type": "opencollective", @@ -4535,18 +4536,18 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.5.1.tgz", - "integrity": "sha512-L57lOGB3LfKgAdLinaZojRQ9W9w2RC0iP9bVaXwrRVeJdpNayfuW4Kh1C8dmacZroB4Zp2U/nEjkSmdcp6uUWg==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.5.2.tgz", + "integrity": "sha512-qN5X9vgp0v+WGXyFBHQ/CqjdtmnCoHhUjqXmBxEGBziJz/tZwWwtTGWeUUZpuTjCGiZutLrizOFl5MqQAI+ipg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/components": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/client-logger": "7.5.2", + "@storybook/components": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/theming": "7.5.1", + "@storybook/manager-api": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/theming": "7.5.2", "memoizerific": "^1.11.3", "prop-types": "^15.7.2" }, @@ -4568,22 +4569,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.5.1.tgz", - "integrity": "sha512-7b69p6kDdgmlejEMM2mW6/Lz4OmU/R3Qr+TpKnPcV5iS7ADxRQEQCTEMoQ5RyLJf0vDRh/7Ljn/RMo8Ux3X7JA==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.5.2.tgz", + "integrity": "sha512-Tf6XE/YcnWQVBJRcJWJzhkahjSymv6QZuxMAiKFD8v48QRJ8kTxz1tBN9676Ux+l1WwtVWxwvd/0kRKKxE70wQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.5.1", - "@storybook/client-logger": "7.5.1", - "@storybook/components": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/channels": "7.5.2", + "@storybook/client-logger": "7.5.2", + "@storybook/components": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/csf": "^0.1.0", - "@storybook/docs-tools": "7.5.1", + "@storybook/docs-tools": "7.5.2", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/theming": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/manager-api": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/theming": "7.5.2", + "@storybook/types": "7.5.2", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -4607,15 +4608,15 @@ } }, "node_modules/@storybook/builder-manager": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.5.1.tgz", - "integrity": "sha512-a02kg/DCcYgiTz+7rw4KdvQzif+2lZ+NIFF5U5u8SDoCQuoe3wRT6QBrFYQTxJexA4WfO6cpyRLDJ1rx6NLo8A==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.5.2.tgz", + "integrity": "sha512-s4gOudrft/E4lQ19YNrzL2VJwMEpdY6z319fTlc16J1F6XZSytw6CIZPs3x9yX5CKf4/leWnN5etODaOx7NajQ==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.5.1", - "@storybook/manager": "7.5.1", - "@storybook/node-logger": "7.5.1", + "@storybook/core-common": "7.5.2", + "@storybook/manager": "7.5.2", + "@storybook/node-logger": "7.5.2", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -4635,19 +4636,19 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.5.1.tgz", - "integrity": "sha512-fsF4LsxroVvjBJoI5AvRA6euhpYrb5euii5kPzrsWXLOn6gDBK0jQ0looep/io7J45MisDjRTPp14A02pi1bkw==", - "dev": true, - "dependencies": { - "@storybook/channels": "7.5.1", - "@storybook/client-logger": "7.5.1", - "@storybook/core-common": "7.5.1", - "@storybook/csf-plugin": "7.5.1", - "@storybook/node-logger": "7.5.1", - "@storybook/preview": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/types": "7.5.1", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.5.2.tgz", + "integrity": "sha512-j96m5K0ahlAjQY6uUxEbybvmRFc3eMpQ3wiosuunc8NkXtfohXZeRVQowAcVrfPktKMufRNGY86RTYxe7sMABw==", + "dev": true, + "dependencies": { + "@storybook/channels": "7.5.2", + "@storybook/client-logger": "7.5.2", + "@storybook/core-common": "7.5.2", + "@storybook/csf-plugin": "7.5.2", + "@storybook/node-logger": "7.5.2", + "@storybook/preview": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/types": "7.5.2", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", @@ -4680,13 +4681,13 @@ } }, "node_modules/@storybook/channels": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.1.tgz", - "integrity": "sha512-7hTGHqvtdFTqRx8LuCznOpqPBYfUeMUt/0IIp7SFuZT585yMPxrYoaK//QmLEWnPb80B8HVTSQi7caUkJb32LA==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.2.tgz", + "integrity": "sha512-3SgqWq9NS0XX1QxK3riuaOLrReHWwVhI63u6q1ryDD3SttpmAezZETibOAtzDuk2FKgsyHTmAlmcGQf4ZxhOJA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/client-logger": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -4698,23 +4699,23 @@ } }, "node_modules/@storybook/cli": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.5.1.tgz", - "integrity": "sha512-qKIJs8gqXTy0eSEbt0OW5nsJqiV/2+N1eWoiBiIxoZ+8b0ACXIAUcE/N6AsEDUqIq8AMK7lebqjEfIAt2Sp7Mg==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.5.2.tgz", + "integrity": "sha512-8JPvA/K66zBmRFpRRwsD0JLqZUODRrGmNuAWx+Bj1K8wqbg68MYnOflbkSIxIVxrfhd39OrffV0h8CwKNL9gAg==", "dev": true, "dependencies": { "@babel/core": "^7.22.9", "@babel/preset-env": "^7.22.9", "@babel/types": "^7.22.5", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.5.1", - "@storybook/core-common": "7.5.1", - "@storybook/core-events": "7.5.1", - "@storybook/core-server": "7.5.1", - "@storybook/csf-tools": "7.5.1", - "@storybook/node-logger": "7.5.1", - "@storybook/telemetry": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/codemod": "7.5.2", + "@storybook/core-common": "7.5.2", + "@storybook/core-events": "7.5.2", + "@storybook/core-server": "7.5.2", + "@storybook/csf-tools": "7.5.2", + "@storybook/node-logger": "7.5.2", + "@storybook/telemetry": "7.5.2", + "@storybook/types": "7.5.2", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -4788,9 +4789,9 @@ "dev": true }, "node_modules/@storybook/client-logger": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.1.tgz", - "integrity": "sha512-XxbLvg0aQRoBrzxYLcVYCbjDkGbkU8Rfb74XbV2CLiO2bIbFPmA1l1Nwbp+wkCGA+O6Z1zwzSl6wcKKqZ6XZCg==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.2.tgz", + "integrity": "sha512-7YgLItlmiYDzWYexTaRNuHhtFarh9krsI+8l7Yjn9ryoHSTJUcTWx+yPJm1II+PQR8v/x5UgsxzultjgEurfRQ==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -4801,18 +4802,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.5.1.tgz", - "integrity": "sha512-PqHGOz/CZnRG9pWgshezCacu524CrXOJrCOwMUP9OMpH0Jk/NhBkHaBZrB8wMjn5hekTj0UmRa/EN8wJm9CCUQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.5.2.tgz", + "integrity": "sha512-PxZg0w4OlmFB4dBzB+sCgwmHNke0n1N8vNooxtcuusrLKlbUfmssYRnQn6yRSJw0WfkUYgI10CWxGaamaOFekA==", "dev": true, "dependencies": { "@babel/core": "^7.22.9", "@babel/preset-env": "^7.22.9", "@babel/types": "^7.22.5", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.5.1", - "@storybook/node-logger": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/csf-tools": "7.5.2", + "@storybook/node-logger": "7.5.2", + "@storybook/types": "7.5.2", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "globby": "^11.0.2", @@ -4827,18 +4828,18 @@ } }, "node_modules/@storybook/components": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.5.1.tgz", - "integrity": "sha512-fdzzxGBV/Fj9pYwfYL3RZsVUHeBqlfLMBP/L6mPmjaZSwHFqkaRZZUajZc57lCtI+TOy2gY6WH3cPavEtqtgLw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.5.2.tgz", + "integrity": "sha512-OP+o6AoxoQDbqjk/jdQ1arlc1T8601eCL+rS1dJY9EtAFq7Z0LEFtafhEW/Lx8FotfVGjfCNptH9ODhHU6e5Jw==", "dev": true, "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", - "@storybook/client-logger": "7.5.1", + "@storybook/client-logger": "7.5.2", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/theming": "7.5.2", + "@storybook/types": "7.5.2", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -4853,13 +4854,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.5.1.tgz", - "integrity": "sha512-K651UnNKkW8U078CH5rcUqf0siGcfEhwya2yQN5RBb/H78HSLBLdYgzKqxaKtmz+S8DFyWhrgbXZLdBjavozJg==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.5.2.tgz", + "integrity": "sha512-mMDSBxc7esMCu0FOkama9XYHzIHYGhBj8roX+XaTaLDYXaw/UajcCuzcO7fFBHNn3Vdqh2ufIxlI7359v3IqPw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/preview-api": "7.5.1" + "@storybook/client-logger": "7.5.2", + "@storybook/preview-api": "7.5.2" }, "funding": { "type": "opencollective", @@ -4867,14 +4868,14 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.5.1.tgz", - "integrity": "sha512-/rQ0/xvxFHSGCgIkK74HrgDMnzfYtDYTCoSod/qCTojfs9aciX+JYgvo5ChPnI/LEKWwxRTkrE7pl2u5+C4XGA==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.5.2.tgz", + "integrity": "sha512-js7fIH4wHS08dBuIVsr3JnwMtKn5O1Izc/Zor4t6PntLWkGGX4X/GxbOkasGX5SkCT1qUtB9RpdPd1sUkLhIgw==", "dev": true, "dependencies": { - "@storybook/core-events": "7.5.1", - "@storybook/node-logger": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/core-events": "7.5.2", + "@storybook/node-logger": "7.5.2", + "@storybook/types": "7.5.2", "@types/find-cache-dir": "^3.2.1", "@types/node": "^18.0.0", "@types/node-fetch": "^2.6.4", @@ -4902,15 +4903,24 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "18.18.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.6.tgz", - "integrity": "sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==", + "version": "18.18.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz", + "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@storybook/core-common/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, "node_modules/@storybook/core-events": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.1.tgz", - "integrity": "sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.2.tgz", + "integrity": "sha512-DV8bFEFVKDEvaH87KYPXDE0YEV+Y9yjFv2xxmC9pF8l+MWCtVW72RBLhB+gU5NM1bkHrRDNb0lOJfVGKlhxOog==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -4921,26 +4931,26 @@ } }, "node_modules/@storybook/core-server": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.5.1.tgz", - "integrity": "sha512-DD4BXCH91aZJoFuu0cQwG1ZUmE59kG5pazuE3S89zH1GwKS1jWyeAv4EwEfvynT5Ah1ctd8QdCZCSXVzjq0qcw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.5.2.tgz", + "integrity": "sha512-4oXpy1L/NyHiz/OXNUFnSeMLA/+lTgQAlVx86pRbEBDj6snt1/NSx2+yZyFtZ/XTnJ22BPpM8IIrgm95ZlQKmA==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.5.1", - "@storybook/channels": "7.5.1", - "@storybook/core-common": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/builder-manager": "7.5.2", + "@storybook/channels": "7.5.2", + "@storybook/core-common": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.5.1", + "@storybook/csf-tools": "7.5.2", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.5.1", - "@storybook/node-logger": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/telemetry": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/manager": "7.5.2", + "@storybook/node-logger": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/telemetry": "7.5.2", + "@storybook/types": "7.5.2", "@types/detect-port": "^1.3.0", "@types/node": "^18.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -4974,10 +4984,13 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.18.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.6.tgz", - "integrity": "sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==", - "dev": true + "version": "18.18.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz", + "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@storybook/core-server/node_modules/lru-cache": { "version": "6.0.0", @@ -5006,6 +5019,12 @@ "node": ">=10" } }, + "node_modules/@storybook/core-server/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/@storybook/core-server/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -5022,12 +5041,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.5.1.tgz", - "integrity": "sha512-jhV2aCZhSIXUiQDcHtuCg3dyYMzjYHTwLb4cJtkNw4sXqQoTGydTSWYwWigcHFfKGoyQp82rSgE1hE4YYx6iew==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.5.2.tgz", + "integrity": "sha512-ndjn1ia2rQLO1r1z6mXv6nipLzJMwWJp31h16lQUXIBQEOiGKjGGvObiuKaad3nNHxWHpGra4zUg7R+54Yw0Hw==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.5.1", + "@storybook/csf-tools": "7.5.2", "unplugin": "^1.3.1" }, "funding": { @@ -5036,9 +5055,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.5.1.tgz", - "integrity": "sha512-YChGbT1/odLS4RLb2HtK7ixM7mH5s7G5nOsWGKXalbza4SFKZIU2UzllEUsA+X8YfxMHnCD5TC3xLfK0ByxmzQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.5.2.tgz", + "integrity": "sha512-yXaEDREc2wvkjYkQqDMatJw23f0fEFhMIf/zBNF7YljeYw0j8jAg/7XI5WJJSN2KTxD/feD/yD+6eaLUXvrneQ==", "dev": true, "dependencies": { "@babel/generator": "^7.22.9", @@ -5046,7 +5065,7 @@ "@babel/traverse": "^7.22.8", "@babel/types": "^7.22.5", "@storybook/csf": "^0.1.0", - "@storybook/types": "7.5.1", + "@storybook/types": "7.5.2", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -5063,14 +5082,14 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.5.1.tgz", - "integrity": "sha512-tDtQGeKU5Kc2XoqZ5vpeGQrOkRg2UoDiSRS6cLy+M/sMB03Annq0ZngnJXaMiv0DLi2zpWSgWqPgYA3TJTZHBw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.5.2.tgz", + "integrity": "sha512-mBiZFhzMA2ub7wX0ho3UqKqKXO+xUi/rqb4KV4PihLKlhThEdzKyYrIZO4W90NOmlp1yUJJcjG8D8SUPuHQoTw==", "dev": true, "dependencies": { - "@storybook/core-common": "7.5.1", - "@storybook/preview-api": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/core-common": "7.5.2", + "@storybook/preview-api": "7.5.2", + "@storybook/types": "7.5.2", "@types/doctrine": "^0.0.3", "doctrine": "^3.0.0", "lodash": "^4.17.21" @@ -5087,16 +5106,16 @@ "dev": true }, "node_modules/@storybook/instrumenter": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-7.5.1.tgz", - "integrity": "sha512-bxRoWVVLlevqTFappXj1JfZlvEceBiBPdQQqTTeeA09VL3UyFWDpPFRn8Wf2C43Vt4V18w+krMyb1KfTk37ROQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-7.5.2.tgz", + "integrity": "sha512-1l36cc7GaVeTiknhToZcaqI6RsIOfcBgdnvgJ0tiL1naN1GkneCMr+1oLWnlHVrWIOXgh6vNyD792kE3uTLkFg==", "dev": true, "dependencies": { - "@storybook/channels": "7.5.1", - "@storybook/client-logger": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/channels": "7.5.2", + "@storybook/client-logger": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.5.1" + "@storybook/preview-api": "7.5.2" }, "funding": { "type": "opencollective", @@ -5104,9 +5123,9 @@ } }, "node_modules/@storybook/manager": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.5.1.tgz", - "integrity": "sha512-Jo83sj7KvsZ78vvqjH72ErmQ31Frx6GBLbpeYXZtbAXWl0/LHsxAEVz0Mke+DixzWDyP0/cn+Nw8QUfA+Oz1fg==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.5.2.tgz", + "integrity": "sha512-5l1z9SpCFQBcHjC5mbfWQ8mPTYFxD8GQ9mNZ6PPrj47yu9TyCRYSQj7A8ZXJiIY1ZEg4a2BCW7fPUYG+lX6Drw==", "dev": true, "funding": { "type": "opencollective", @@ -5114,19 +5133,19 @@ } }, "node_modules/@storybook/manager-api": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.1.tgz", - "integrity": "sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.2.tgz", + "integrity": "sha512-WX8GjBkITRQzhQ08WEAVjdDW8QqqIQhWOpFzXUYCxCNzt1eSALI31QQ+M1/MYymw+TOkotC/SMcn/puIAm4rdA==", "dev": true, "dependencies": { - "@storybook/channels": "7.5.1", - "@storybook/client-logger": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/channels": "7.5.2", + "@storybook/client-logger": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.5.1", - "@storybook/theming": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/router": "7.5.2", + "@storybook/theming": "7.5.2", + "@storybook/types": "7.5.2", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -5184,9 +5203,9 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.5.1.tgz", - "integrity": "sha512-xRMdL5YPe8C9sgJ1R0QD3YbiLjDGrfQk91+GplRD8N9FVCT5dki55Bv5Kp0FpemLYYg6uxAZL5nHmsZHKDKQoA==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.5.2.tgz", + "integrity": "sha512-VIBuwPJOylu8vJofk1VfmqxlhXgbBgV0pCTo/UzdQAbc3w5y+qNRemf8goWxYEY+L9p6oUXqm/i9+bNGyX7/Mw==", "dev": true, "funding": { "type": "opencollective", @@ -5194,9 +5213,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.5.1.tgz", - "integrity": "sha512-+LFUe2nNbmmLPKNt34RXSSC1r40yGGOoP/qlaPFwNOgQN2AZUrfqk6ZYnw6LjmcuHpQInZ4y4WDgbzg6QQL3+w==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.5.2.tgz", + "integrity": "sha512-fKgyV1fAgckDoxQkUGJl5uzjzGC5esC/nITiCjccZFrqxt9mgmz4VAUkMeseD5tfWQ5oFA0Xdgtrrcl39+chnw==", "dev": true, "funding": { "type": "opencollective", @@ -5204,9 +5223,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.5.1.tgz", - "integrity": "sha512-nfZC103z9Cy27FrJKUr2IjDuVt8Mvn1Z5gZ0TtJihoK7sfLTv29nd/XU9zzrb/epM3o8UEzc63xZZsMaToDbAw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.5.2.tgz", + "integrity": "sha512-dA5VpHp0D9nh9/wOzWP8At1wtz/SiaMBbwaiEOFTFUGcPerrkroEWadIlSSB7vgQJ9yWiD4l3KDaS8ANzHWtPQ==", "dev": true, "funding": { "type": "opencollective", @@ -5214,17 +5233,17 @@ } }, "node_modules/@storybook/preview-api": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.1.tgz", - "integrity": "sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.2.tgz", + "integrity": "sha512-rpmHR/09UBSnorDBTcE7JgHUQjZLO146NCI+vbI7Pqfb4QX/8lhwkFr4cuHRAR16mv6DAJbDVoPETO0Z/CH9aw==", "dev": true, "dependencies": { - "@storybook/channels": "7.5.1", - "@storybook/client-logger": "7.5.1", - "@storybook/core-events": "7.5.1", + "@storybook/channels": "7.5.2", + "@storybook/client-logger": "7.5.2", + "@storybook/core-events": "7.5.2", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.5.1", + "@storybook/types": "7.5.2", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5240,18 +5259,18 @@ } }, "node_modules/@storybook/react": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-7.5.1.tgz", - "integrity": "sha512-IG97c30fFSmPyGpJ1awHC/+9XnCTqleeOQwROXjroMHSm8m/JTWpHMVLyM1x7b6VAnBhNHWJ+oXLZe/hXkXfpA==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-7.5.2.tgz", + "integrity": "sha512-7X8GtqvRjWmVS112ifChJMxfD15rMVg5m3t6apZqi0uui1S/DImAveHwz8M4FhsElW6MIHs5xK0uJhR9rVQgTA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/core-client": "7.5.1", - "@storybook/docs-tools": "7.5.1", + "@storybook/client-logger": "7.5.2", + "@storybook/core-client": "7.5.2", + "@storybook/docs-tools": "7.5.2", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.5.1", - "@storybook/react-dom-shim": "7.5.1", - "@storybook/types": "7.5.1", + "@storybook/preview-api": "7.5.2", + "@storybook/react-dom-shim": "7.5.2", + "@storybook/types": "7.5.2", "@types/escodegen": "^0.0.6", "@types/estree": "^0.0.51", "@types/node": "^18.0.0", @@ -5286,9 +5305,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.5.1.tgz", - "integrity": "sha512-bzTIfLm91O9h3rPYJLtRbmsPARerY3z7MoyvadGp8TikvIvf+WyT/vHujw+20SxnqiZVq5Jv65FFlxc46GGB1Q==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.5.2.tgz", + "integrity": "sha512-x7h3TTLRLs8mrsCBKXbvjBRFms73XrNlm0Lo5Tu/Tf//+pwOFq+2sGBkqbRkYd54jNHhpqNF7+UUdzA93ESnbQ==", "dev": true, "funding": { "type": "opencollective", @@ -5300,15 +5319,15 @@ } }, "node_modules/@storybook/react-vite": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-7.5.1.tgz", - "integrity": "sha512-996/CtOqTjDWMKBGcHG8pwIVlORnoknLD+OTkPXl+aAl9oM9jUtc7psVKLJKGHSHTlVElM2wMTwIHnJ4yeP7bw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-7.5.2.tgz", + "integrity": "sha512-faYGER/qU/jeaMEf5kgx4dNeKno+HkCEviXo/bgRswRg7odW5XydlGGSATOYLYxLhWG6jztaYHYIaDk21KoOVA==", "dev": true, "dependencies": { "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.0", "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "7.5.1", - "@storybook/react": "7.5.1", + "@storybook/builder-vite": "7.5.2", + "@storybook/react": "7.5.2", "@vitejs/plugin-react": "^3.0.1", "magic-string": "^0.30.0", "react-docgen": "^6.0.2" @@ -5364,12 +5383,12 @@ "dev": true }, "node_modules/@storybook/router": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.1.tgz", - "integrity": "sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.2.tgz", + "integrity": "sha512-jlh48TVUlqvGkU8MnkVp9SrCHomWGtQGx1WMK94NMyOPVPTLWzM6LjIybgmHz0MTe4lpzmbiIOfSlU3pPX054w==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", + "@storybook/client-logger": "7.5.2", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -5383,14 +5402,14 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.5.1.tgz", - "integrity": "sha512-z9PGouNqvZ2F7vD79qDF4PN7iW3kE3MO7YX0iKTmzgLi4ImKuXIJRF04GRH8r+WYghnbomAyA4o6z9YJMdNuVw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.5.2.tgz", + "integrity": "sha512-tUgrcIx1vTMhTySp11JbBnWLsaMUNlil5yuOWEJy5i71E4Xy/2hYUtLfxzgXWd/0W7eTl4p2tjUk9uS8AP+S0Q==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.5.1", - "@storybook/core-common": "7.5.1", - "@storybook/csf-tools": "7.5.1", + "@storybook/client-logger": "7.5.2", + "@storybook/core-common": "7.5.2", + "@storybook/csf-tools": "7.5.2", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -5414,13 +5433,13 @@ } }, "node_modules/@storybook/theming": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.1.tgz", - "integrity": "sha512-ETLAOn10hI4Mkmjsr0HGcM6HbzaURrrPBYmfXOrdbrzEVN+AHW4FlvP9d8fYyP1gdjPE1F39XvF0jYgt1zXiHQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.2.tgz", + "integrity": "sha512-DZBTcYErSYvmTYsGz7lKtiIcBe8flBw5Ojp52r3O4GcRYG4AbuUwwVvehz+O1cWaS+UW3HavrcgapERH7ZHd1A==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.5.1", + "@storybook/client-logger": "7.5.2", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5434,12 +5453,12 @@ } }, "node_modules/@storybook/types": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.1.tgz", - "integrity": "sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.2.tgz", + "integrity": "sha512-RDKHo6WUES+4nt7uZMfankjxdpYX2EI2GpJ2n2RPcnhzmb/ub1huNTjbzDEYMqY24SppljZeIN57m3Ar6L6f9A==", "dev": true, "dependencies": { - "@storybook/channels": "7.5.1", + "@storybook/channels": "7.5.2", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7530,9 +7549,9 @@ "dev": true }, "node_modules/core-js-compat": { - "version": "3.33.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.1.tgz", - "integrity": "sha512-6pYKNOgD/j/bkC5xS5IIg6bncid3rfrI42oBH1SQJbsmYPKF7rhzcFzYCcxYMmNQQ0rCEB8WqpW7QHndOggaeQ==", + "version": "3.33.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", + "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", "dev": true, "dependencies": { "browserslist": "^4.22.1" @@ -7990,9 +8009,9 @@ } }, "node_modules/envinfo": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.10.0.tgz", - "integrity": "sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", + "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -8372,6 +8391,188 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-storybook": { + "version": "0.6.15", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.15.tgz", + "integrity": "sha512-lAGqVAJGob47Griu29KXYowI4G7KwMoJDOkEip8ujikuDLxU+oWJ1l0WL6F2oDO4QiyUFXvtDkEkISMOPzo+7w==", + "dev": true, + "dependencies": { + "@storybook/csf": "^0.0.1", + "@typescript-eslint/utils": "^5.45.0", + "requireindex": "^1.1.0", + "ts-dedent": "^2.2.0" + }, + "engines": { + "node": "12.x || 14.x || >= 16" + }, + "peerDependencies": { + "eslint": ">=6" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", + "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", @@ -8969,9 +9170,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.219.4", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.219.4.tgz", - "integrity": "sha512-HNskU8X5MRRfhgX1Y/kMYRUM9pIh0vbosYP2Gt5N6A9+ShsgxPWLh62SgfuGk+Qz+eboqCYBff4CEN1vATJ7AQ==", + "version": "0.220.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.220.0.tgz", + "integrity": "sha512-Fks+nOCqhorp4NpAtAxf09UaR/9xDf3AnU1UkWczmpneoHh06Y3AoEA4tIe2HbYrOHT9JArUgDZpCFhP4clo1A==", "dev": true, "engines": { "node": ">=0.4.0" @@ -11189,9 +11390,9 @@ } }, "node_modules/node-fetch-native": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.4.0.tgz", - "integrity": "sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.4.1.tgz", + "integrity": "sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==", "dev": true }, "node_modules/node-int64": { @@ -12771,6 +12972,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true, + "engines": { + "node": ">=0.10.5" + } + }, "node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", @@ -13299,12 +13509,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.5.1.tgz", - "integrity": "sha512-Wg3j3z5H03PYnEcmlnhf6bls0OtjmsNPsQ93dTV8F4AweqBECwzjf94Wj++NrP3X+WbfMoCbBU6LRFuEyzCCxw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.5.2.tgz", + "integrity": "sha512-wuB5VdmI6teU2z5iiBEZ2ziNeP6g6Da/dGM7+tWQVUl8bmfOmpEgzgEyS1/XqdOfm+HoZplspwM0XMHOLo/Now==", "dev": true, "dependencies": { - "@storybook/cli": "7.5.1" + "@storybook/cli": "7.5.2" }, "bin": { "sb": "index.js", @@ -13993,9 +14203,9 @@ } }, "node_modules/tocbot": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.21.2.tgz", - "integrity": "sha512-R5Muhi/TUu4i4snWVrMgNoXyJm2f8sJfdgIkQvqb+cuIXQEIMAiWGWgCgYXHqX4+XiS/Bnm7IYZ9Zy6NVe6lhw==", + "version": "4.21.6", + "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.21.6.tgz", + "integrity": "sha512-bAnyV6SU2n1AvuBvEgi8t7KiIn5rRiEmwFp4+elx/1ueuncAUyubITfXDMwOqStgUwh8pDzLdWgDKLicsJPikw==", "dev": true }, "node_modules/toidentifier": { @@ -14046,6 +14256,27 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/tween-functions": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz", @@ -14329,9 +14560,9 @@ } }, "node_modules/unplugin/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", "dev": true, "bin": { "acorn": "bin/acorn" From 292a4f27418a5d30daa85563c025abcdf0030e5f Mon Sep 17 00:00:00 2001 From: tuannguyenitpy Date: Fri, 3 Nov 2023 07:31:30 +0000 Subject: [PATCH 3/3] Update: Storybook theme & Select component --- .storybook/YourTheme.ts | 6 +- .storybook/main.ts | 1 + .storybook/preview.tsx | 8 + lib/components/select/select.stories.tsx | 6 +- lib/components/select/select.tsx | 224 +++-- lib/components/select/select.types.ts | 21 +- lib/customization/global.css | 3 + .../styles/components/select.styles.ts | 125 ++- lib/functions/index.ts | 10 + package.json | 1 + pnpm-lock.yaml | 792 ++++++++++++------ 11 files changed, 847 insertions(+), 350 deletions(-) diff --git a/.storybook/YourTheme.ts b/.storybook/YourTheme.ts index ec0ff11..f3017e9 100644 --- a/.storybook/YourTheme.ts +++ b/.storybook/YourTheme.ts @@ -1,11 +1,9 @@ -// .storybook/YourTheme.js - import { create } from "@storybook/theming/create"; export default create({ - base: "light", + base: "dark", brandTitle: "ZENI-UI", brandTarget: "_self", - appBg: "#F6F4EB", + // appBg: "#F6F4EB", appBorderRadius: 8, }); diff --git a/.storybook/main.ts b/.storybook/main.ts index ce30c27..31ae801 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -8,6 +8,7 @@ const config: StorybookConfig = { "@storybook/addon-essentials", "@storybook/addon-onboarding", "@storybook/addon-interactions", + "storybook-dark-mode", ], framework: { name: "@storybook/react-vite", diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx index 72d16de..5d5fd74 100644 --- a/.storybook/preview.tsx +++ b/.storybook/preview.tsx @@ -2,6 +2,7 @@ import type { Preview } from "@storybook/react"; import "../lib/customization/global.css"; import { ZeniProvider } from "../lib/main"; import React from "react"; +import { themes } from "@storybook/theming"; const preview: Preview = { decorators: [ @@ -19,6 +20,13 @@ const preview: Preview = { date: /Date$/, }, }, + darkMode: { + current: "dark", + dark: themes.dark, + light: themes.light, + stylePreview: true, + + }, }, }; diff --git a/lib/components/select/select.stories.tsx b/lib/components/select/select.stories.tsx index 5ea0f3b..2eca764 100644 --- a/lib/components/select/select.stories.tsx +++ b/lib/components/select/select.stories.tsx @@ -24,8 +24,9 @@ export const Primary: Story = { isClearable: true, isSearchable: false, // leftElement: , - placeholder: "Please select", - placement: "top", + placeholder: "This is the placeholder", + placement: "bottom", + isMultiple: false, options: [ { label: "This is a really long option label, you see?", @@ -38,6 +39,7 @@ export const Primary: Story = { { label: "Option 3", value: 3, + isDisabled: true, }, { label: "Option 4", diff --git a/lib/components/select/select.tsx b/lib/components/select/select.tsx index bfe8d4d..8051c43 100644 --- a/lib/components/select/select.tsx +++ b/lib/components/select/select.tsx @@ -1,11 +1,12 @@ +import { CaretDown, CaretUp, Check, Tray, X } from "@phosphor-icons/react"; import { AnimatePresence, motion } from "framer-motion"; import React, { useEffect, useMemo, useRef, useState } from "react"; import { useLayer } from "react-laag"; import { twMerge } from "tailwind-merge"; import { useComponentStyle } from "../../customization/styles/theme.context"; -import { ISelect, ISelectOption } from "./select.types"; import { Box } from "../box/box"; -import { CaretDown, CaretUp, Check, Tray, X } from "@phosphor-icons/react"; +import { ISelect, ISelectOption } from "./select.types"; +import { isEmpty } from "../../functions"; export const Select = ({ options = [], @@ -17,11 +18,13 @@ export const Select = ({ leftElement, rightElement: rightElementProp, isClearable = false, - isSearchable = true, + isSearchable: isSearchableProp = true, className = "", dropdownClassName = "", placeholder = "Placeholder", - placement = 'bottom' + placement = "bottom", + isMultiple = false, + tagRender, }: ISelect) => { const secContainerRef = useRef(null); const inputRef = useRef(null); @@ -30,19 +33,23 @@ export const Select = ({ // STATE const [isOpen, setOpen] = useState(false); const [searchValue, setSearchValue] = useState(""); - const [valueState, setValueState] = useState( - value || defaultValue - ); + const [valueState, setValueState] = useState< + ISelectOption | ISelectOption[] | undefined | [] + >(value || defaultValue); // VARS const theme = useComponentStyle("Select"); + + const isValueStateArray = Array.isArray(valueState); + const isSearchable = isSearchableProp || isMultiple; + const rightElement = useMemo(() => { return rightElementProp || isOpen ? ( - + ) : ( - + ); - }, [isOpen, rightElementProp]); + }, [isOpen, rightElementProp, theme]); const { triggerProps, layerProps, renderLayer } = useLayer({ isOpen: isOpen, @@ -72,9 +79,11 @@ export const Select = ({ addonLeft: !!leftElement, addonRight: !!rightElement, isSearchable, + isMultiple: + isMultiple && Array.isArray(valueState) && valueState.length > 0, }) ); - }, [isSearchable, leftElement, rightElement, theme]); + }, [theme, leftElement, rightElement, isSearchable, isMultiple, valueState]); const inputGroupClasses = useMemo(() => { return twMerge( @@ -87,8 +96,13 @@ export const Select = ({ }, [leftElement, rightElement, size, theme, variant]); const inputClasses = useMemo(() => { - return twMerge(theme.input()); - }, [theme]); + return twMerge( + theme.input({ + isMultiple: + isMultiple && Array.isArray(valueState) && valueState.length > 0, + }) + ); + }, [theme, isMultiple, valueState]); const dropdownClasses = useMemo(() => { return twMerge(theme.dropdown(), dropdownClassName); @@ -110,6 +124,14 @@ export const Select = ({ return twMerge(theme.empty()); }, [theme]); + const tagContainerClasses = useMemo(() => { + return twMerge(theme.tagContainer()); + }, [theme]); + + const tagClasses = useMemo(() => { + return twMerge(theme.tag()); + }, [theme]); + // FUNCTIONS const onClear = (e: React.MouseEvent) => { e.stopPropagation(); @@ -117,6 +139,7 @@ export const Select = ({ setSearchValue(""); setValueState(undefined); }; + useEffect(() => { if (secContainerRef.current && dropdownRef.current) { const inputWidth = secContainerRef.current.offsetWidth; @@ -146,7 +169,9 @@ export const Select = ({ ); return _options.map((x: ISelectOption) => { - const isSelected = x.value === valueState?.value; + const isSelected = isValueStateArray + ? valueState?.some((f) => f.value === x.value) + : x.value === valueState?.value; return (
  • { - const newValue = isSelected ? undefined : x; - onChange?.(newValue); - setValueState(newValue); - setSearchValue(""); - setOpen(false); + if (!x.isDisabled) { + let newValue; + if (!isMultiple) { + newValue = isSelected ? undefined : x; + onChange?.(newValue); + setValueState(newValue); + setSearchValue(""); + setOpen(false); + } else { + newValue = Array.isArray(valueState) ? [...valueState] : []; + if (isSelected) + newValue = newValue.filter((y) => x.value !== y.value); + else newValue = [...newValue, x]; + onChange?.(newValue); + setValueState(newValue); + setSearchValue(""); + // inputRef.current?.focus(); + } + } }} > {x.label} @@ -171,19 +211,122 @@ export const Select = ({ }); }; + const renderTags = (tags?: ISelectOption[]) => { + const onRemoveTag = (tag: ISelectOption) => { + setValueState((prev) => { + const newValue = Array.isArray(prev) ? [...prev] : []; + return newValue.filter((t) => t.value !== tag.value); + }); + }; + if (tagRender) { + return (tags || []).map((x) => + tagRender({ + item: x, + onClose: () => onRemoveTag(x), + }) + ); + } + return (tags || []).map((x) => ( +
    + {x.label} + {!x.isDisabled && ( + onRemoveTag(x)} + /> + )} +
    + )); + }; + + const renderInput = () => { + return ( + setSearchValue(e.target.value)} + onKeyDown={(event) => { + if (isMultiple && !searchValue) { + if (event.key === "Backspace") { + const newValue = Array.isArray(valueState) ? [...valueState] : []; + newValue.splice(newValue.length - 1, 1); + setValueState(newValue); + } + } + }} + /> + ); + }; + + const renderPlaceholder = () => { + return {placeholder}; + }; + + const renderInputLabel = () => { + if (!isMultiple) { + if (!searchValue) { + return ( + <> + {renderInput()} + {!isValueStateArray && valueState?.label ? ( + {valueState?.label} + ) : ( + renderPlaceholder() + )} + + ); + } + return renderInput(); + } else { + return ( +
    + {isValueStateArray && renderTags(valueState)} + {renderInput()} + {isEmpty(valueState) && renderPlaceholder()} +
    + ); + } + }; + + const renderClear = () => { + if ((isClearable && !isEmpty(valueState)) || !!searchValue) { + return ( + + + + ); + } + + return null; + }; + return ( <>
    { - // when searching, disable closing dropdown when clicking on the input + // when searching, disable closing dropdown when clicking on the input setOpen((prev) => { if (isSearchable && !!prev) { return true; } return !prev; }); - inputRef.current?.focus(); }} className={containerClasses} @@ -192,43 +335,8 @@ export const Select = ({ {!!leftElement && ( {leftElement} )} -
    - setSearchValue(e.target.value)} - /> - - {!searchValue && ( - <> - {valueState?.label ? ( - - {valueState?.label} - - ) : ( - {placeholder} - )} - - )} -
    - {((isClearable && !!valueState?.value) || !!searchValue) && ( - - - - )} +
    {renderInputLabel()}
    + {renderClear()} {!!rightElement && ( {rightElement} )} diff --git a/lib/components/select/select.types.ts b/lib/components/select/select.types.ts index 117386a..70efc7a 100644 --- a/lib/components/select/select.types.ts +++ b/lib/components/select/select.types.ts @@ -1,4 +1,4 @@ -import { ReactNode, SelectHTMLAttributes } from "react"; +import { SelectHTMLAttributes } from "react"; export interface ISelect extends Omit< @@ -8,9 +8,9 @@ export interface ISelect options?: ISelectOption[]; size?: "xs" | "sm" | "md" | "lg"; variant?: "outline" | "filled" | "flushed" | "unstyled"; - value?: ISelectOption; - defaultValue?: ISelectOption; - onChange?: (value?: ISelectOption) => void; + value?: ISelectOption | ISelectOption[]; + defaultValue?: ISelectOption | ISelectOption[]; + onChange?: (value?: ISelectOption | ISelectOption[]) => void; leftElement?: React.ReactNode; rightElement?: React.ReactNode; isClearable?: boolean; @@ -18,12 +18,21 @@ export interface ISelect className?: string; dropdownClassName?: string; placeholder?: string; - placement?:"top" | "bottom" + placement?: "top" | "bottom"; + isMultiple?: boolean; + tagRender?: ({ + item, + onClose, + }: { + item: ISelectOption; + onClose?: () => void; + }) => React.ReactNode; } export type ISelectValue = string | number; export interface ISelectOption { - label?: ReactNode; + label?: React.ReactNode; value?: ISelectValue; + isDisabled?: boolean; } diff --git a/lib/customization/global.css b/lib/customization/global.css index 1f4c84a..0a738fc 100644 --- a/lib/customization/global.css +++ b/lib/customization/global.css @@ -29,4 +29,7 @@ .cursor-inherit { cursor: inherit; } + .min-h-inherit { + min-height: inherit; + } } diff --git a/lib/customization/styles/components/select.styles.ts b/lib/customization/styles/components/select.styles.ts index 58a5dcc..83bff95 100644 --- a/lib/customization/styles/components/select.styles.ts +++ b/lib/customization/styles/components/select.styles.ts @@ -13,10 +13,10 @@ const container = cva( { variants: { size: { - xs: ["h-6"], - sm: ["h-8"], - md: ["h-10"], - lg: ["h-12"], + xs: ["min-h-[24px]"], + sm: ["min-h-[32px]"], + md: ["min-h-[40px]"], + lg: ["min-h-[48px]"], }, variant: { outline: [ @@ -57,32 +57,40 @@ const container = cva( }, } ); -const secContainer = cva(["w-full", "h-full", "flex", "items-center"], { - variants: { - addonRight: { - true: ["!pl-3", "!pr-1"], - false: [], - }, - addonLeft: { - true: ["!pr-3"], - false: [], - }, - isSearchable: { - true: ["cursor-text"], - false: ["cursor-pointer"], - }, - }, - compoundVariants: [ - { - addonLeft: true, - addonRight: true, - class: "!px-0", +const secContainer = cva( + ["w-full", "min-h-inherit", "h-full", "flex", "items-center"], + { + variants: { + addonRight: { + true: ["pl-3", "pr-1"], + false: [], + }, + addonLeft: { + true: ["pr-3"], + false: [], + }, + isSearchable: { + true: ["cursor-text"], + false: ["cursor-pointer"], + }, + isMultiple: { + true: ["!pl-2"], + false: [], + }, }, - ], -}); + compoundVariants: [ + { + addonLeft: true, + addonRight: true, + class: "!px-0", + }, + ], + } +); const inputGroup = cva( [ "w-full", + "min-h-inherit", "h-full", "!bg-transparent", "outline-none", @@ -119,19 +127,27 @@ const inputGroup = cva( } ); -const input = cva([ - "outline-none", - "border-none", - "p-0", - "m-0", - "min-w-[2px]", - "absolute", - "top-0", - "h-full", - "w-full", - "appearance-none", - "cursor-inherit", -]); +const input = cva( + [ + "outline-none", + "border-none", + "p-0", + "m-0", + "min-w-[2px]", + "min-h-inherit", + "h-full", + "appearance-none", + "cursor-inherit", + ], + { + variants: { + isMultiple: { + true: ["ml-0.5"], + false: ["absolute", "top-0", "bottom-0"], + }, + }, + } +); const dropdown = cva([ "max-h-[300px]", @@ -167,6 +183,10 @@ const option = cva( true: ["font-medium", "bg-line-primary"], false: [], }, + isDisabled: { + true: ["cursor-not-allowed", "text-gray-400"], + false: [], + }, }, } ); @@ -204,6 +224,29 @@ const clearElement = cva([ "hover:rounded-lg", ]); const empty = cva(["p-6", "flex", "justify-center", "items-center"]); +const tagContainer = cva([ + "flex", + "items-center", + "gap-x-1", + "gap-y-1", + "flex-wrap", + "py-1", +]); +const tag = cva([ + "border", + "rounded-md", + "border-line-primary", + "px-2", + "py-1.5", + "font-medium", + "flex", + "items-center", + "gap-2", + "leading-none", + "bg-sec-background", +]); +const tagX = cva(["cursor-pointer"]); +const iconColor = cva(["text-gray-500"]); const selectStyles = { container, secContainer, @@ -220,6 +263,10 @@ const selectStyles = { rightElement, clearElement, empty, + tagContainer, + tag, + tagX, + iconColor, }; export { selectStyles }; diff --git a/lib/functions/index.ts b/lib/functions/index.ts index 3a81a17..f2b8e28 100644 --- a/lib/functions/index.ts +++ b/lib/functions/index.ts @@ -12,3 +12,13 @@ export const getChildrenProps = ( return props; }; + +export const isEmpty = (variable: any) => { + if (!variable) return true; + const isArray = Array.isArray(variable); + if (isArray) return variable.length === 0; + if (typeof variable === "object") { + return Object.keys(variable || {}).length === 0; + } + return false; +}; diff --git a/package.json b/package.json index 35250a2..9a3b7f9 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "react-laag": "^2.0.5", "sass": "^1.69.4", "storybook": "^7.5.2", + "storybook-dark-mode": "^3.0.1", "tailwind-merge": "^1.14.0", "tailwindcss": "^3.3.4", "typescript": "^5.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d38a425..b894c78 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,35 +9,35 @@ devDependencies: specifier: ^2.0.13 version: 2.0.13(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-essentials': - specifier: ^7.5.1 - version: 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.5.2 + version: 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-interactions': - specifier: ^7.5.1 - version: 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.5.2 + version: 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-links': - specifier: ^7.5.1 - version: 7.5.1(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.5.2 + version: 7.5.2(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-onboarding': specifier: ^1.0.8 version: 1.0.8(react-dom@18.2.0)(react@18.2.0) '@storybook/blocks': - specifier: ^7.5.1 - version: 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.5.2 + version: 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) '@storybook/manager-api': - specifier: ^7.5.1 - version: 7.5.1(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.5.2 + version: 7.5.2(react-dom@18.2.0)(react@18.2.0) '@storybook/react': - specifier: ^7.5.1 - version: 7.5.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) + specifier: ^7.5.2 + version: 7.5.2(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) '@storybook/react-vite': - specifier: ^7.5.1 - version: 7.5.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(vite@4.5.0) + specifier: ^7.5.2 + version: 7.5.2(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(vite@4.5.0) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 '@storybook/theming': - specifier: ^7.5.1 - version: 7.5.1(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.5.2 + version: 7.5.2(react-dom@18.2.0)(react@18.2.0) '@types/node': specifier: ^20.8.8 version: 20.8.8 @@ -74,6 +74,9 @@ devDependencies: eslint-plugin-react-refresh: specifier: ^0.4.3 version: 0.4.3(eslint@8.52.0) + eslint-plugin-storybook: + specifier: ^0.6.15 + version: 0.6.15(eslint@8.52.0)(typescript@5.2.2) framer-motion: specifier: ^10.16.4 version: 10.16.4(react-dom@18.2.0)(react@18.2.0) @@ -96,8 +99,11 @@ devDependencies: specifier: ^1.69.4 version: 1.69.4 storybook: - specifier: ^7.5.1 - version: 7.5.1 + specifier: ^7.5.2 + version: 7.5.2 + storybook-dark-mode: + specifier: ^3.0.1 + version: 3.0.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) tailwind-merge: specifier: ^1.14.0 version: 1.14.0 @@ -2618,8 +2624,8 @@ packages: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true - /@storybook/addon-actions@7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-GieD3ru6EslKvwol1cE4lvszQCLB/AkQdnLofnqy1nnYso+hRxmPAw9/O+pWfpUBFdjXsQ7GX09+wEUpOJzepw==} + /@storybook/addon-actions@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-jKF3rrMEu42TgZ5AEszADpVdASDu1S4Ozp1Ymf4akHLkaMOv+yzzD7LV6YGjJz8S2IryndZqE47e6stF0T99uA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2629,14 +2635,14 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.5.1 - '@storybook/components': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.5.1 + '@storybook/client-logger': 7.5.2 + '@storybook/components': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.5.2 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.5.1 - '@storybook/theming': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.5.1 + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.5.2 + '@storybook/theming': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.5.2 dequal: 2.0.3 lodash: 4.17.21 polished: 4.2.2 @@ -2652,8 +2658,8 @@ packages: - '@types/react-dom' dev: true - /@storybook/addon-backgrounds@7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-XZoyJw/WoUlVvQHPTbSAZjKy2SEUjaSmAWgcRync25vp+q0obthjx6UnZHEUuH8Ud07HA3FYzlFtMicH5y/OIQ==} + /@storybook/addon-backgrounds@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CII8c+db8sVciWjFY0ProZi5E2d+cOc+XlVHCAVaUYp2Bp/1MV7en8etfLK7DEoH6kBVz1+t3TaPU+xjUTR8Ig==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2663,14 +2669,14 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.5.1 - '@storybook/components': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.5.1 + '@storybook/client-logger': 7.5.2 + '@storybook/components': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.5.2 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.5.1 - '@storybook/theming': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.5.1 + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.5.2 + '@storybook/theming': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.5.2 memoizerific: 1.11.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -2680,8 +2686,8 @@ packages: - '@types/react-dom' dev: true - /@storybook/addon-controls@7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Xag1e7TZo04LjUenfobkShpKMxTtwa4xM4bXQA8LjaAGZQ7jipbQ4PE73a17K59S2vqq89VAhkuMJWiyaOFqpw==} + /@storybook/addon-controls@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-f04VcBSfm3yMT1hvaFEwCRbdwiXQbddfEwhwjEVsqd+CA0s600W4L7B8tT4daXMsU6NsZyibev910IKTnDw6xQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2691,16 +2697,16 @@ packages: react-dom: optional: true dependencies: - '@storybook/blocks': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.5.1 - '@storybook/components': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-common': 7.5.1 - '@storybook/core-events': 7.5.1 - '@storybook/manager-api': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/node-logger': 7.5.1 - '@storybook/preview-api': 7.5.1 - '@storybook/theming': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.5.1 + '@storybook/blocks': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.5.2 + '@storybook/components': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-common': 7.5.2 + '@storybook/core-events': 7.5.2 + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/node-logger': 7.5.2 + '@storybook/preview-api': 7.5.2 + '@storybook/theming': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.5.2 lodash: 4.17.21 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -2712,27 +2718,27 @@ packages: - supports-color dev: true - /@storybook/addon-docs@7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-+wE67oWIhGK9+kv2sxoY2KDXm3v62RfEgxiksdhtffTP/joOK3p88S0lO+8g0G4xfNGUnBhPtzGMuUxWwaH2Pw==} + /@storybook/addon-docs@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-KxX4XuxK6YcI2mUosFkAlueMon/nby6mp3GRHenuK+nobY0ecfILqSTbsOeO1wqPxALBoq7fLnrgYhdDlandgQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.2.0) - '@storybook/blocks': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.5.1 - '@storybook/components': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/csf-plugin': 7.5.1 - '@storybook/csf-tools': 7.5.1 + '@storybook/blocks': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.5.2 + '@storybook/components': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/csf-plugin': 7.5.2 + '@storybook/csf-tools': 7.5.2 '@storybook/global': 5.0.0 '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.5.1 - '@storybook/postinstall': 7.5.1 - '@storybook/preview-api': 7.5.1 - '@storybook/react-dom-shim': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/theming': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.5.1 + '@storybook/node-logger': 7.5.2 + '@storybook/postinstall': 7.5.2 + '@storybook/preview-api': 7.5.2 + '@storybook/react-dom-shim': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/theming': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.5.2 fs-extra: 11.1.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -2746,25 +2752,25 @@ packages: - supports-color dev: true - /@storybook/addon-essentials@7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-/jaUZXV+mE/2G5PgEpFKm4lFEHluWn6GFR/pg+hphvHOzBGA3Y75JMgUfJ5CDYHB1dAVSf9JrPOd8Eb1tpESfA==} + /@storybook/addon-essentials@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-bN7Q+8J3xVgNoBKCwtyX1O5jXuuJavYdAPiPQGrt6YegUi3gVfr5n/+/mNlu6Fd5AThFcVFei6gS9aiYmU/h8g==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/addon-actions': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-backgrounds': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-controls': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-docs': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-highlight': 7.5.1 - '@storybook/addon-measure': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-outline': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-toolbars': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-viewport': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-common': 7.5.1 - '@storybook/manager-api': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/node-logger': 7.5.1 - '@storybook/preview-api': 7.5.1 + '@storybook/addon-actions': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-backgrounds': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-controls': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-docs': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-highlight': 7.5.2 + '@storybook/addon-measure': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-outline': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-toolbars': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-viewport': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-common': 7.5.2 + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/node-logger': 7.5.2 + '@storybook/preview-api': 7.5.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 @@ -2775,16 +2781,16 @@ packages: - supports-color dev: true - /@storybook/addon-highlight@7.5.1: - resolution: {integrity: sha512-js9OV17kpjRowuaGAPfI9aOn/zzt8P589ACZE+/eYBO9jT65CADwAUxg//Uq0/he+Ac9495pcK3BcYyDeym7/g==} + /@storybook/addon-highlight@7.5.2: + resolution: {integrity: sha512-0vek42fHh7Aeinvkwge0ZTq5VfNsuMSejUv0wHa3zQWgUmlaRlGY8zDw7nG6LiIz6rnTBDTznsfyWenAySSHXg==} dependencies: - '@storybook/core-events': 7.5.1 + '@storybook/core-events': 7.5.2 '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.5.1 + '@storybook/preview-api': 7.5.2 dev: true - /@storybook/addon-interactions@7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-m9yohFYil+UBwYKFxHYdsAsn8PBCPl6HY/FSgfrDc5PiqT1Ya7paXopimyy9ok+VQt/RC8sEWIm809ONEoxosw==} + /@storybook/addon-interactions@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-upddA+pvJtU3pRZqu3Chl5QbVfVv2eCIuUxaAG9rvasaqkLTTrNvna8rmnXwqL8sBKHL1XzSyO2sQF4vzQwymg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2794,16 +2800,16 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.5.1 - '@storybook/components': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-common': 7.5.1 - '@storybook/core-events': 7.5.1 + '@storybook/client-logger': 7.5.2 + '@storybook/components': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-common': 7.5.2 + '@storybook/core-events': 7.5.2 '@storybook/global': 5.0.0 - '@storybook/instrumenter': 7.5.1 - '@storybook/manager-api': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.5.1 - '@storybook/theming': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.5.1 + '@storybook/instrumenter': 7.5.2 + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.5.2 + '@storybook/theming': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.5.2 jest-mock: 27.5.1 polished: 4.2.2 react: 18.2.0 @@ -2816,8 +2822,8 @@ packages: - supports-color dev: true - /@storybook/addon-links@7.5.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-KDiQYAVNXxuVTB3QLFZxHlfT8q4KnlNKY+0OODvgD5o1FqFpIyUiR5mIBL4SZMRj2EtwrR3KmZ2UPccFZdu9vw==} + /@storybook/addon-links@7.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-IhUYNOJQYJd8Cnb93l8egnGCGhHV0VHo6HmZT9YjBVuUtetGQbW8Eoh0pQwuklUrJ3jLPwMoKFhN1irQXJjZwQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2827,22 +2833,22 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.5.1 - '@storybook/core-events': 7.5.1 + '@storybook/client-logger': 7.5.2 + '@storybook/core-events': 7.5.2 '@storybook/csf': 0.1.1 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.5.1 - '@storybook/router': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.5.1 + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.5.2 + '@storybook/router': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.5.2 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 dev: true - /@storybook/addon-measure@7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-yR6oELJe0UHYxRijd1YMuGaQRlZ3uABjmrXaFCPnd6agahgTwIJLiK4XamtkVur//LaiJMvtmM2XXrkJ1BvNJw==} + /@storybook/addon-measure@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-fkvORLaYVC/yNMFzHRHmzlvniY7sWtpFxaRW+e4++hGXYV4VQjOBlXzdMxQhAg1DCVWD6QV8xnUQPBGrsEklog==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2852,13 +2858,13 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.5.1 - '@storybook/components': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.5.1 + '@storybook/client-logger': 7.5.2 + '@storybook/components': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.5.2 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.5.1 - '@storybook/types': 7.5.1 + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.5.2 + '@storybook/types': 7.5.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) tiny-invariant: 1.3.1 @@ -2882,8 +2888,8 @@ packages: - supports-color dev: true - /@storybook/addon-outline@7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-IMi5Bo34/Q5YUG5uD8ZUTBwlpGrkDIV+PUgkyNIbmn9OgozoCH80Fs7YlGluRFODQISpHwio9qvSFRGdSNT56A==} + /@storybook/addon-outline@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-BgDnVzE9xCN1xwuCebK6+apNCtVcw1ToW8N6R3vNgXgNPE1euT3jxkDH7K4RJR24Flu6BotWjX3dqv8k+8xGKw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2893,13 +2899,13 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.5.1 - '@storybook/components': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.5.1 + '@storybook/client-logger': 7.5.2 + '@storybook/components': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.5.2 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.5.1 - '@storybook/types': 7.5.1 + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.5.2 + '@storybook/types': 7.5.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 @@ -2908,8 +2914,8 @@ packages: - '@types/react-dom' dev: true - /@storybook/addon-toolbars@7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-T88hEEQicV6eCovr5TN2nFgKt7wU0o7pAunP5cU01iiVRj63+oQiVIBB8Xtm4tN+/DsqtyP0BTa6rFwt2ULy8A==} + /@storybook/addon-toolbars@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-BXzb5NOpILFOM7EOBxcF2Qj/q6BicWZ1AvAddORWGmqSa/MxMIa4X52oKXFUTHKBkrTO1X0XqHmoF88qm3TUFg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2919,11 +2925,11 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.5.1 - '@storybook/components': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/manager-api': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.5.1 - '@storybook/theming': 7.5.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.5.2 + '@storybook/components': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.5.2 + '@storybook/theming': 7.5.2(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -2931,8 +2937,8 @@ packages: - '@types/react-dom' dev: true - /@storybook/addon-viewport@7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-L57lOGB3LfKgAdLinaZojRQ9W9w2RC0iP9bVaXwrRVeJdpNayfuW4Kh1C8dmacZroB4Zp2U/nEjkSmdcp6uUWg==} + /@storybook/addon-viewport@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-qN5X9vgp0v+WGXyFBHQ/CqjdtmnCoHhUjqXmBxEGBziJz/tZwWwtTGWeUUZpuTjCGiZutLrizOFl5MqQAI+ipg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -2942,13 +2948,13 @@ packages: react-dom: optional: true dependencies: - '@storybook/client-logger': 7.5.1 - '@storybook/components': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.5.1 + '@storybook/client-logger': 7.5.2 + '@storybook/components': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.5.2 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.5.1 - '@storybook/theming': 7.5.1(react-dom@18.2.0)(react@18.2.0) + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.5.2 + '@storybook/theming': 7.5.2(react-dom@18.2.0)(react@18.2.0) memoizerific: 1.11.3 prop-types: 15.8.1 react: 18.2.0 @@ -2958,23 +2964,53 @@ packages: - '@types/react-dom' dev: true - /@storybook/blocks@7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-7b69p6kDdgmlejEMM2mW6/Lz4OmU/R3Qr+TpKnPcV5iS7ADxRQEQCTEMoQ5RyLJf0vDRh/7Ljn/RMo8Ux3X7JA==} + /@storybook/addons@7.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-hRiy56zQbz72Pwa4F40srUWXKGNIriNkZ1R0j5KPd8ZqoMk1hIeW0S8E7s1vuM/MplnUE/jFJZqu6HQCvbqmGg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/channels': 7.5.1 - '@storybook/client-logger': 7.5.1 - '@storybook/components': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.5.1 + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.5.2 + '@storybook/types': 7.5.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@storybook/api@7.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-IaA0HDColrLw5k+i1nE4eYHvGychpXW21HpIBvJWCIh2Rv+War+Pr5uMhGDeAj0/xX1SrRiFPVhhKjDZdzHaSQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@storybook/client-logger': 7.5.2 + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + + /@storybook/blocks@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Tf6XE/YcnWQVBJRcJWJzhkahjSymv6QZuxMAiKFD8v48QRJ8kTxz1tBN9676Ux+l1WwtVWxwvd/0kRKKxE70wQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@storybook/channels': 7.5.2 + '@storybook/client-logger': 7.5.2 + '@storybook/components': 7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.5.2 '@storybook/csf': 0.1.1 - '@storybook/docs-tools': 7.5.1 + '@storybook/docs-tools': 7.5.2 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.5.1 - '@storybook/theming': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.5.1 + '@storybook/manager-api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.5.2 + '@storybook/theming': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.5.2 '@types/lodash': 4.14.200 color-convert: 2.0.1 dequal: 2.0.3 @@ -2996,13 +3032,13 @@ packages: - supports-color dev: true - /@storybook/builder-manager@7.5.1: - resolution: {integrity: sha512-a02kg/DCcYgiTz+7rw4KdvQzif+2lZ+NIFF5U5u8SDoCQuoe3wRT6QBrFYQTxJexA4WfO6cpyRLDJ1rx6NLo8A==} + /@storybook/builder-manager@7.5.2: + resolution: {integrity: sha512-s4gOudrft/E4lQ19YNrzL2VJwMEpdY6z319fTlc16J1F6XZSytw6CIZPs3x9yX5CKf4/leWnN5etODaOx7NajQ==} dependencies: '@fal-works/esbuild-plugin-global-externals': 2.1.2 - '@storybook/core-common': 7.5.1 - '@storybook/manager': 7.5.1 - '@storybook/node-logger': 7.5.1 + '@storybook/core-common': 7.5.2 + '@storybook/manager': 7.5.2 + '@storybook/node-logger': 7.5.2 '@types/ejs': 3.1.4 '@types/find-cache-dir': 3.2.1 '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.18.20) @@ -3020,8 +3056,8 @@ packages: - supports-color dev: true - /@storybook/builder-vite@7.5.1(typescript@5.2.2)(vite@4.5.0): - resolution: {integrity: sha512-fsF4LsxroVvjBJoI5AvRA6euhpYrb5euii5kPzrsWXLOn6gDBK0jQ0looep/io7J45MisDjRTPp14A02pi1bkw==} + /@storybook/builder-vite@7.5.2(typescript@5.2.2)(vite@4.5.0): + resolution: {integrity: sha512-j96m5K0ahlAjQY6uUxEbybvmRFc3eMpQ3wiosuunc8NkXtfohXZeRVQowAcVrfPktKMufRNGY86RTYxe7sMABw==} peerDependencies: '@preact/preset-vite': '*' typescript: '>= 4.3.x' @@ -3035,14 +3071,14 @@ packages: vite-plugin-glimmerx: optional: true dependencies: - '@storybook/channels': 7.5.1 - '@storybook/client-logger': 7.5.1 - '@storybook/core-common': 7.5.1 - '@storybook/csf-plugin': 7.5.1 - '@storybook/node-logger': 7.5.1 - '@storybook/preview': 7.5.1 - '@storybook/preview-api': 7.5.1 - '@storybook/types': 7.5.1 + '@storybook/channels': 7.5.2 + '@storybook/client-logger': 7.5.2 + '@storybook/core-common': 7.5.2 + '@storybook/csf-plugin': 7.5.2 + '@storybook/node-logger': 7.5.2 + '@storybook/preview': 7.5.2 + '@storybook/preview-api': 7.5.2 + '@storybook/types': 7.5.2 '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 0.9.3 @@ -3069,22 +3105,33 @@ packages: tiny-invariant: 1.3.1 dev: true - /@storybook/cli@7.5.1: - resolution: {integrity: sha512-qKIJs8gqXTy0eSEbt0OW5nsJqiV/2+N1eWoiBiIxoZ+8b0ACXIAUcE/N6AsEDUqIq8AMK7lebqjEfIAt2Sp7Mg==} + /@storybook/channels@7.5.2: + resolution: {integrity: sha512-3SgqWq9NS0XX1QxK3riuaOLrReHWwVhI63u6q1ryDD3SttpmAezZETibOAtzDuk2FKgsyHTmAlmcGQf4ZxhOJA==} + dependencies: + '@storybook/client-logger': 7.5.2 + '@storybook/core-events': 7.5.2 + '@storybook/global': 5.0.0 + qs: 6.11.2 + telejson: 7.2.0 + tiny-invariant: 1.3.1 + dev: true + + /@storybook/cli@7.5.2: + resolution: {integrity: sha512-8JPvA/K66zBmRFpRRwsD0JLqZUODRrGmNuAWx+Bj1K8wqbg68MYnOflbkSIxIVxrfhd39OrffV0h8CwKNL9gAg==} hasBin: true dependencies: '@babel/core': 7.23.2 '@babel/preset-env': 7.23.2(@babel/core@7.23.2) '@babel/types': 7.23.0 '@ndelangen/get-tarball': 3.0.9 - '@storybook/codemod': 7.5.1 - '@storybook/core-common': 7.5.1 - '@storybook/core-events': 7.5.1 - '@storybook/core-server': 7.5.1 - '@storybook/csf-tools': 7.5.1 - '@storybook/node-logger': 7.5.1 - '@storybook/telemetry': 7.5.1 - '@storybook/types': 7.5.1 + '@storybook/codemod': 7.5.2 + '@storybook/core-common': 7.5.2 + '@storybook/core-events': 7.5.2 + '@storybook/core-server': 7.5.2 + '@storybook/csf-tools': 7.5.2 + '@storybook/node-logger': 7.5.2 + '@storybook/telemetry': 7.5.2 + '@storybook/types': 7.5.2 '@types/semver': 7.5.4 '@yarnpkg/fslib': 2.10.3 '@yarnpkg/libzip': 2.3.0 @@ -3127,16 +3174,22 @@ packages: '@storybook/global': 5.0.0 dev: true - /@storybook/codemod@7.5.1: - resolution: {integrity: sha512-PqHGOz/CZnRG9pWgshezCacu524CrXOJrCOwMUP9OMpH0Jk/NhBkHaBZrB8wMjn5hekTj0UmRa/EN8wJm9CCUQ==} + /@storybook/client-logger@7.5.2: + resolution: {integrity: sha512-7YgLItlmiYDzWYexTaRNuHhtFarh9krsI+8l7Yjn9ryoHSTJUcTWx+yPJm1II+PQR8v/x5UgsxzultjgEurfRQ==} + dependencies: + '@storybook/global': 5.0.0 + dev: true + + /@storybook/codemod@7.5.2: + resolution: {integrity: sha512-PxZg0w4OlmFB4dBzB+sCgwmHNke0n1N8vNooxtcuusrLKlbUfmssYRnQn6yRSJw0WfkUYgI10CWxGaamaOFekA==} dependencies: '@babel/core': 7.23.2 '@babel/preset-env': 7.23.2(@babel/core@7.23.2) '@babel/types': 7.23.0 '@storybook/csf': 0.1.1 - '@storybook/csf-tools': 7.5.1 - '@storybook/node-logger': 7.5.1 - '@storybook/types': 7.5.1 + '@storybook/csf-tools': 7.5.2 + '@storybook/node-logger': 7.5.2 + '@storybook/types': 7.5.2 '@types/cross-spawn': 6.0.4 cross-spawn: 7.0.3 globby: 11.1.0 @@ -3171,11 +3224,34 @@ packages: - '@types/react-dom' dev: true - /@storybook/core-client@7.5.1: - resolution: {integrity: sha512-K651UnNKkW8U078CH5rcUqf0siGcfEhwya2yQN5RBb/H78HSLBLdYgzKqxaKtmz+S8DFyWhrgbXZLdBjavozJg==} + /@storybook/components@7.5.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OP+o6AoxoQDbqjk/jdQ1arlc1T8601eCL+rS1dJY9EtAFq7Z0LEFtafhEW/Lx8FotfVGjfCNptH9ODhHU6e5Jw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/client-logger': 7.5.1 - '@storybook/preview-api': 7.5.1 + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.5.2 + '@storybook/csf': 0.1.1 + '@storybook/global': 5.0.0 + '@storybook/theming': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.5.2 + memoizerific: 1.11.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-resize-observer: 9.1.0(react-dom@18.2.0)(react@18.2.0) + util-deprecate: 1.0.2 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + dev: true + + /@storybook/core-client@7.5.2: + resolution: {integrity: sha512-mMDSBxc7esMCu0FOkama9XYHzIHYGhBj8roX+XaTaLDYXaw/UajcCuzcO7fFBHNn3Vdqh2ufIxlI7359v3IqPw==} + dependencies: + '@storybook/client-logger': 7.5.2 + '@storybook/preview-api': 7.5.2 dev: true /@storybook/core-common@7.5.1: @@ -3209,30 +3285,67 @@ packages: - supports-color dev: true + /@storybook/core-common@7.5.2: + resolution: {integrity: sha512-js7fIH4wHS08dBuIVsr3JnwMtKn5O1Izc/Zor4t6PntLWkGGX4X/GxbOkasGX5SkCT1qUtB9RpdPd1sUkLhIgw==} + dependencies: + '@storybook/core-events': 7.5.2 + '@storybook/node-logger': 7.5.2 + '@storybook/types': 7.5.2 + '@types/find-cache-dir': 3.2.1 + '@types/node': 18.18.6 + '@types/node-fetch': 2.6.7 + '@types/pretty-hrtime': 1.0.2 + chalk: 4.1.2 + esbuild: 0.18.20 + esbuild-register: 3.5.0(esbuild@0.18.20) + file-system-cache: 2.3.0 + find-cache-dir: 3.3.2 + find-up: 5.0.0 + fs-extra: 11.1.1 + glob: 10.3.10 + handlebars: 4.7.8 + lazy-universal-dotenv: 4.0.0 + node-fetch: 2.7.0 + picomatch: 2.3.1 + pkg-dir: 5.0.0 + pretty-hrtime: 1.0.3 + resolve-from: 5.0.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + /@storybook/core-events@7.5.1: resolution: {integrity: sha512-2eyaUhTfmEEqOEZVoCXVITCBn6N7QuZCG2UNxv0l//ED+7MuMiFhVw7kS7H3WOVk65R7gb8qbKFTNX8HFTgBHg==} dependencies: ts-dedent: 2.2.0 dev: true - /@storybook/core-server@7.5.1: - resolution: {integrity: sha512-DD4BXCH91aZJoFuu0cQwG1ZUmE59kG5pazuE3S89zH1GwKS1jWyeAv4EwEfvynT5Ah1ctd8QdCZCSXVzjq0qcw==} + /@storybook/core-events@7.5.2: + resolution: {integrity: sha512-DV8bFEFVKDEvaH87KYPXDE0YEV+Y9yjFv2xxmC9pF8l+MWCtVW72RBLhB+gU5NM1bkHrRDNb0lOJfVGKlhxOog==} + dependencies: + ts-dedent: 2.2.0 + dev: true + + /@storybook/core-server@7.5.2: + resolution: {integrity: sha512-4oXpy1L/NyHiz/OXNUFnSeMLA/+lTgQAlVx86pRbEBDj6snt1/NSx2+yZyFtZ/XTnJ22BPpM8IIrgm95ZlQKmA==} dependencies: '@aw-web-design/x-default-browser': 1.4.126 '@discoveryjs/json-ext': 0.5.7 - '@storybook/builder-manager': 7.5.1 - '@storybook/channels': 7.5.1 - '@storybook/core-common': 7.5.1 - '@storybook/core-events': 7.5.1 + '@storybook/builder-manager': 7.5.2 + '@storybook/channels': 7.5.2 + '@storybook/core-common': 7.5.2 + '@storybook/core-events': 7.5.2 '@storybook/csf': 0.1.1 - '@storybook/csf-tools': 7.5.1 + '@storybook/csf-tools': 7.5.2 '@storybook/docs-mdx': 0.1.0 '@storybook/global': 5.0.0 - '@storybook/manager': 7.5.1 - '@storybook/node-logger': 7.5.1 - '@storybook/preview-api': 7.5.1 - '@storybook/telemetry': 7.5.1 - '@storybook/types': 7.5.1 + '@storybook/manager': 7.5.2 + '@storybook/node-logger': 7.5.2 + '@storybook/preview-api': 7.5.2 + '@storybook/telemetry': 7.5.2 + '@storybook/types': 7.5.2 '@types/detect-port': 1.3.4 '@types/node': 18.18.6 '@types/pretty-hrtime': 1.0.2 @@ -3266,10 +3379,10 @@ packages: - utf-8-validate dev: true - /@storybook/csf-plugin@7.5.1: - resolution: {integrity: sha512-jhV2aCZhSIXUiQDcHtuCg3dyYMzjYHTwLb4cJtkNw4sXqQoTGydTSWYwWigcHFfKGoyQp82rSgE1hE4YYx6iew==} + /@storybook/csf-plugin@7.5.2: + resolution: {integrity: sha512-ndjn1ia2rQLO1r1z6mXv6nipLzJMwWJp31h16lQUXIBQEOiGKjGGvObiuKaad3nNHxWHpGra4zUg7R+54Yw0Hw==} dependencies: - '@storybook/csf-tools': 7.5.1 + '@storybook/csf-tools': 7.5.2 unplugin: 1.5.0 transitivePeerDependencies: - supports-color @@ -3291,6 +3404,28 @@ packages: - supports-color dev: true + /@storybook/csf-tools@7.5.2: + resolution: {integrity: sha512-yXaEDREc2wvkjYkQqDMatJw23f0fEFhMIf/zBNF7YljeYw0j8jAg/7XI5WJJSN2KTxD/feD/yD+6eaLUXvrneQ==} + dependencies: + '@babel/generator': 7.23.0 + '@babel/parser': 7.23.0 + '@babel/traverse': 7.23.2 + '@babel/types': 7.23.0 + '@storybook/csf': 0.1.1 + '@storybook/types': 7.5.2 + fs-extra: 11.1.1 + recast: 0.23.4 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@storybook/csf@0.0.1: + resolution: {integrity: sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==} + dependencies: + lodash: 4.17.21 + dev: true + /@storybook/csf@0.1.1: resolution: {integrity: sha512-4hE3AlNVxR60Wc5KSC68ASYzUobjPqtSKyhV6G+ge0FIXU55N5nTY7dXGRZHQGDBPq+XqchMkIdlkHPRs8nTHg==} dependencies: @@ -3301,12 +3436,12 @@ packages: resolution: {integrity: sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==} dev: true - /@storybook/docs-tools@7.5.1: - resolution: {integrity: sha512-tDtQGeKU5Kc2XoqZ5vpeGQrOkRg2UoDiSRS6cLy+M/sMB03Annq0ZngnJXaMiv0DLi2zpWSgWqPgYA3TJTZHBw==} + /@storybook/docs-tools@7.5.2: + resolution: {integrity: sha512-mBiZFhzMA2ub7wX0ho3UqKqKXO+xUi/rqb4KV4PihLKlhThEdzKyYrIZO4W90NOmlp1yUJJcjG8D8SUPuHQoTw==} dependencies: - '@storybook/core-common': 7.5.1 - '@storybook/preview-api': 7.5.1 - '@storybook/types': 7.5.1 + '@storybook/core-common': 7.5.2 + '@storybook/preview-api': 7.5.2 + '@storybook/types': 7.5.2 '@types/doctrine': 0.0.3 doctrine: 3.0.0 lodash: 4.17.21 @@ -3319,30 +3454,30 @@ packages: resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} dev: true - /@storybook/instrumenter@7.5.1: - resolution: {integrity: sha512-bxRoWVVLlevqTFappXj1JfZlvEceBiBPdQQqTTeeA09VL3UyFWDpPFRn8Wf2C43Vt4V18w+krMyb1KfTk37ROQ==} + /@storybook/instrumenter@7.5.2: + resolution: {integrity: sha512-1l36cc7GaVeTiknhToZcaqI6RsIOfcBgdnvgJ0tiL1naN1GkneCMr+1oLWnlHVrWIOXgh6vNyD792kE3uTLkFg==} dependencies: - '@storybook/channels': 7.5.1 - '@storybook/client-logger': 7.5.1 - '@storybook/core-events': 7.5.1 + '@storybook/channels': 7.5.2 + '@storybook/client-logger': 7.5.2 + '@storybook/core-events': 7.5.2 '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.5.1 + '@storybook/preview-api': 7.5.2 dev: true - /@storybook/manager-api@7.5.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-ygwJywluhhE1dpA0jC2D/3NFhMXzFCt+iW4m3cOwexYTuiDWF66AbGOFBx9peE7Wk/Z9doKkf9E3v11enwaidA==} + /@storybook/manager-api@7.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-WX8GjBkITRQzhQ08WEAVjdDW8QqqIQhWOpFzXUYCxCNzt1eSALI31QQ+M1/MYymw+TOkotC/SMcn/puIAm4rdA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/channels': 7.5.1 - '@storybook/client-logger': 7.5.1 - '@storybook/core-events': 7.5.1 + '@storybook/channels': 7.5.2 + '@storybook/client-logger': 7.5.2 + '@storybook/core-events': 7.5.2 '@storybook/csf': 0.1.1 '@storybook/global': 5.0.0 - '@storybook/router': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/theming': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.5.1 + '@storybook/router': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/theming': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.5.2 dequal: 2.0.3 lodash: 4.17.21 memoizerific: 1.11.3 @@ -3354,8 +3489,8 @@ packages: ts-dedent: 2.2.0 dev: true - /@storybook/manager@7.5.1: - resolution: {integrity: sha512-Jo83sj7KvsZ78vvqjH72ErmQ31Frx6GBLbpeYXZtbAXWl0/LHsxAEVz0Mke+DixzWDyP0/cn+Nw8QUfA+Oz1fg==} + /@storybook/manager@7.5.2: + resolution: {integrity: sha512-5l1z9SpCFQBcHjC5mbfWQ8mPTYFxD8GQ9mNZ6PPrj47yu9TyCRYSQj7A8ZXJiIY1ZEg4a2BCW7fPUYG+lX6Drw==} dev: true /@storybook/mdx2-csf@1.1.0: @@ -3366,19 +3501,23 @@ packages: resolution: {integrity: sha512-xRMdL5YPe8C9sgJ1R0QD3YbiLjDGrfQk91+GplRD8N9FVCT5dki55Bv5Kp0FpemLYYg6uxAZL5nHmsZHKDKQoA==} dev: true - /@storybook/postinstall@7.5.1: - resolution: {integrity: sha512-+LFUe2nNbmmLPKNt34RXSSC1r40yGGOoP/qlaPFwNOgQN2AZUrfqk6ZYnw6LjmcuHpQInZ4y4WDgbzg6QQL3+w==} + /@storybook/node-logger@7.5.2: + resolution: {integrity: sha512-VIBuwPJOylu8vJofk1VfmqxlhXgbBgV0pCTo/UzdQAbc3w5y+qNRemf8goWxYEY+L9p6oUXqm/i9+bNGyX7/Mw==} + dev: true + + /@storybook/postinstall@7.5.2: + resolution: {integrity: sha512-fKgyV1fAgckDoxQkUGJl5uzjzGC5esC/nITiCjccZFrqxt9mgmz4VAUkMeseD5tfWQ5oFA0Xdgtrrcl39+chnw==} dev: true - /@storybook/preview-api@7.5.1: - resolution: {integrity: sha512-8xjUbuGmHLmw8tfTUCjXSvMM9r96JaexPFmHdwW6XLe71KKdWp8u96vRDRE5648cd+/of15OjaRtakRKqluA/A==} + /@storybook/preview-api@7.5.2: + resolution: {integrity: sha512-rpmHR/09UBSnorDBTcE7JgHUQjZLO146NCI+vbI7Pqfb4QX/8lhwkFr4cuHRAR16mv6DAJbDVoPETO0Z/CH9aw==} dependencies: - '@storybook/channels': 7.5.1 - '@storybook/client-logger': 7.5.1 - '@storybook/core-events': 7.5.1 + '@storybook/channels': 7.5.2 + '@storybook/client-logger': 7.5.2 + '@storybook/core-events': 7.5.2 '@storybook/csf': 0.1.1 '@storybook/global': 5.0.0 - '@storybook/types': 7.5.1 + '@storybook/types': 7.5.2 '@types/qs': 6.9.9 dequal: 2.0.3 lodash: 4.17.21 @@ -3389,12 +3528,12 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/preview@7.5.1: - resolution: {integrity: sha512-nfZC103z9Cy27FrJKUr2IjDuVt8Mvn1Z5gZ0TtJihoK7sfLTv29nd/XU9zzrb/epM3o8UEzc63xZZsMaToDbAw==} + /@storybook/preview@7.5.2: + resolution: {integrity: sha512-dA5VpHp0D9nh9/wOzWP8At1wtz/SiaMBbwaiEOFTFUGcPerrkroEWadIlSSB7vgQJ9yWiD4l3KDaS8ANzHWtPQ==} dev: true - /@storybook/react-dom-shim@7.5.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-bzTIfLm91O9h3rPYJLtRbmsPARerY3z7MoyvadGp8TikvIvf+WyT/vHujw+20SxnqiZVq5Jv65FFlxc46GGB1Q==} + /@storybook/react-dom-shim@7.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-x7h3TTLRLs8mrsCBKXbvjBRFms73XrNlm0Lo5Tu/Tf//+pwOFq+2sGBkqbRkYd54jNHhpqNF7+UUdzA93ESnbQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3403,8 +3542,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/react-vite@7.5.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(vite@4.5.0): - resolution: {integrity: sha512-996/CtOqTjDWMKBGcHG8pwIVlORnoknLD+OTkPXl+aAl9oM9jUtc7psVKLJKGHSHTlVElM2wMTwIHnJ4yeP7bw==} + /@storybook/react-vite@7.5.2(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2)(vite@4.5.0): + resolution: {integrity: sha512-faYGER/qU/jeaMEf5kgx4dNeKno+HkCEviXo/bgRswRg7odW5XydlGGSATOYLYxLhWG6jztaYHYIaDk21KoOVA==} engines: {node: '>=16'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3413,8 +3552,8 @@ packages: dependencies: '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.2.2)(vite@4.5.0) '@rollup/pluginutils': 5.0.5 - '@storybook/builder-vite': 7.5.1(typescript@5.2.2)(vite@4.5.0) - '@storybook/react': 7.5.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) + '@storybook/builder-vite': 7.5.2(typescript@5.2.2)(vite@4.5.0) + '@storybook/react': 7.5.2(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2) '@vitejs/plugin-react': 3.1.0(vite@4.5.0) magic-string: 0.30.5 react: 18.2.0 @@ -3430,8 +3569,8 @@ packages: - vite-plugin-glimmerx dev: true - /@storybook/react@7.5.1(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2): - resolution: {integrity: sha512-IG97c30fFSmPyGpJ1awHC/+9XnCTqleeOQwROXjroMHSm8m/JTWpHMVLyM1x7b6VAnBhNHWJ+oXLZe/hXkXfpA==} + /@storybook/react@7.5.2(react-dom@18.2.0)(react@18.2.0)(typescript@5.2.2): + resolution: {integrity: sha512-7X8GtqvRjWmVS112ifChJMxfD15rMVg5m3t6apZqi0uui1S/DImAveHwz8M4FhsElW6MIHs5xK0uJhR9rVQgTA==} engines: {node: '>=16.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -3441,13 +3580,13 @@ packages: typescript: optional: true dependencies: - '@storybook/client-logger': 7.5.1 - '@storybook/core-client': 7.5.1 - '@storybook/docs-tools': 7.5.1 + '@storybook/client-logger': 7.5.2 + '@storybook/core-client': 7.5.2 + '@storybook/docs-tools': 7.5.2 '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.5.1 - '@storybook/react-dom-shim': 7.5.1(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.5.1 + '@storybook/preview-api': 7.5.2 + '@storybook/react-dom-shim': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.5.2 '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 '@types/node': 18.18.6 @@ -3470,13 +3609,13 @@ packages: - supports-color dev: true - /@storybook/router@7.5.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-BvKo+IxWwo3dfIG1+vLtZLT4qqkNHL5GTIozTyX04uqt9ByYZL6SJEzxEa1Xn6Qq/fbdQwzCanNHbTlwiTMf7Q==} + /@storybook/router@7.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-jlh48TVUlqvGkU8MnkVp9SrCHomWGtQGx1WMK94NMyOPVPTLWzM6LjIybgmHz0MTe4lpzmbiIOfSlU3pPX054w==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/client-logger': 7.5.1 + '@storybook/client-logger': 7.5.2 memoizerific: 1.11.3 qs: 6.11.2 react: 18.2.0 @@ -3499,6 +3638,22 @@ packages: - supports-color dev: true + /@storybook/telemetry@7.5.2: + resolution: {integrity: sha512-tUgrcIx1vTMhTySp11JbBnWLsaMUNlil5yuOWEJy5i71E4Xy/2hYUtLfxzgXWd/0W7eTl4p2tjUk9uS8AP+S0Q==} + dependencies: + '@storybook/client-logger': 7.5.2 + '@storybook/core-common': 7.5.2 + '@storybook/csf-tools': 7.5.2 + chalk: 4.1.2 + detect-package-manager: 2.0.1 + fetch-retry: 5.0.6 + fs-extra: 11.1.1 + read-pkg-up: 7.0.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + /@storybook/testing-library@0.2.2: resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} dependencies: @@ -3521,6 +3676,20 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true + /@storybook/theming@7.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-DZBTcYErSYvmTYsGz7lKtiIcBe8flBw5Ojp52r3O4GcRYG4AbuUwwVvehz+O1cWaS+UW3HavrcgapERH7ZHd1A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@storybook/client-logger': 7.5.2 + '@storybook/global': 5.0.0 + memoizerific: 1.11.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + /@storybook/types@7.5.1: resolution: {integrity: sha512-ZcMSaqFNx1E+G00nRDUi8kKL7gxJVlnCvbKLNj3V85guy4DkIYAZr31yDqze07gDWbjvKoHIp3tKpgE+2i8upQ==} dependencies: @@ -3530,6 +3699,15 @@ packages: file-system-cache: 2.3.0 dev: true + /@storybook/types@7.5.2: + resolution: {integrity: sha512-RDKHo6WUES+4nt7uZMfankjxdpYX2EI2GpJ2n2RPcnhzmb/ub1huNTjbzDEYMqY24SppljZeIN57m3Ar6L6f9A==} + dependencies: + '@storybook/channels': 7.5.2 + '@types/babel__core': 7.20.3 + '@types/express': 4.17.20 + file-system-cache: 2.3.0 + dev: true + /@testing-library/dom@9.3.3: resolution: {integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==} engines: {node: '>=14'} @@ -3872,6 +4050,14 @@ packages: - supports-color dev: true + /@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + dev: true + /@typescript-eslint/scope-manager@6.9.0: resolution: {integrity: sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==} engines: {node: ^16.0.0 || >=18.0.0} @@ -3900,11 +4086,37 @@ packages: - supports-color dev: true + /@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@typescript-eslint/types@6.9.0: resolution: {integrity: sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==} engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + tsutils: 3.21.0(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/typescript-estree@6.9.0(typescript@5.2.2): resolution: {integrity: sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -3926,6 +4138,26 @@ packages: - supports-color dev: true + /@typescript-eslint/utils@5.62.0(eslint@8.52.0)(typescript@5.2.2): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) + '@types/json-schema': 7.0.14 + '@types/semver': 7.5.4 + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + eslint: 8.52.0 + eslint-scope: 5.1.1 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/utils@6.9.0(eslint@8.52.0)(typescript@5.2.2): resolution: {integrity: sha512-5Wf+Jsqya7WcCO8me504FBigeQKVLAMPmUzYgDbWchINNh1KJbxCgVya3EQ2MjvJMVeXl3pofRmprqX6mfQkjQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -3945,6 +4177,14 @@ packages: - typescript dev: true + /@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@typescript-eslint/visitor-keys@6.9.0: resolution: {integrity: sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -5320,6 +5560,30 @@ packages: string.prototype.matchall: 4.0.10 dev: true + /eslint-plugin-storybook@0.6.15(eslint@8.52.0)(typescript@5.2.2): + resolution: {integrity: sha512-lAGqVAJGob47Griu29KXYowI4G7KwMoJDOkEip8ujikuDLxU+oWJ1l0WL6F2oDO4QiyUFXvtDkEkISMOPzo+7w==} + engines: {node: 12.x || 14.x || >= 16} + peerDependencies: + eslint: '>=6' + dependencies: + '@storybook/csf': 0.0.1 + '@typescript-eslint/utils': 5.62.0(eslint@8.52.0)(typescript@5.2.2) + eslint: 8.52.0 + requireindex: 1.2.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5409,6 +5673,11 @@ packages: estraverse: 5.3.0 dev: true + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -7890,6 +8159,11 @@ packages: unist-util-visit: 2.0.3 dev: true + /requireindex@1.2.0: + resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} + engines: {node: '>=0.10.5'} + dev: true + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -8208,11 +8482,37 @@ packages: resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==} dev: true - /storybook@7.5.1: - resolution: {integrity: sha512-Wg3j3z5H03PYnEcmlnhf6bls0OtjmsNPsQ93dTV8F4AweqBECwzjf94Wj++NrP3X+WbfMoCbBU6LRFuEyzCCxw==} + /storybook-dark-mode@3.0.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3V6XBhkUq63BF6KzyDBbfV5/8sYtF4UtVccH1tK+Lrd4p0tF8k7yHOvVDhFL9hexnKXcLEnbC+42YDTPvjpK+A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + '@storybook/addons': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/api': 7.5.2(react-dom@18.2.0)(react@18.2.0) + '@storybook/components': 7.5.1(@types/react-dom@18.2.14)(@types/react@18.2.31)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.5.1 + '@storybook/global': 5.0.0 + '@storybook/theming': 7.5.2(react-dom@18.2.0)(react@18.2.0) + fast-deep-equal: 3.1.3 + memoizerific: 1.11.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + dev: true + + /storybook@7.5.2: + resolution: {integrity: sha512-wuB5VdmI6teU2z5iiBEZ2ziNeP6g6Da/dGM7+tWQVUl8bmfOmpEgzgEyS1/XqdOfm+HoZplspwM0XMHOLo/Now==} hasBin: true dependencies: - '@storybook/cli': 7.5.1 + '@storybook/cli': 7.5.2 transitivePeerDependencies: - bufferutil - encoding @@ -8565,6 +8865,16 @@ packages: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true + /tsutils@3.21.0(typescript@5.2.2): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 5.2.2 + dev: true + /tween-functions@1.2.0: resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} dev: true