diff --git a/.gitignore b/.gitignore index f649a283c..9a068440c 100644 --- a/.gitignore +++ b/.gitignore @@ -26,9 +26,10 @@ /ui/dashboard/.vscode /ui/dashboard/build /ui/dashboard/node_modules +/ui/dashboard/src/icons/materialSymbols.ts /ui/dashboard/output /ui/dashboard/yarn-debug.log* /ui/dashboard/yarn-error.log* # Dist directory is created by goreleaser -/dist \ No newline at end of file +/dist diff --git a/ui/dashboard/package.json b/ui/dashboard/package.json index a99e78983..db804f593 100644 --- a/ui/dashboard/package.json +++ b/ui/dashboard/package.json @@ -4,18 +4,22 @@ "private": true, "main": "index.js", "scripts": { + "prestart": "node scripts/setupMaterialSymbols.js", "start": "if-node-version '>= 17' && craco --openssl-legacy-provider start || craco start", + "prebuid": "node scripts/setupMaterialSymbols.js", "build": "GENERATE_SOURCEMAP=false if-node-version '>= 17' && craco --openssl-legacy-provider build || craco build", "test": "craco test", "eject": "react-scripts eject", "prettify": "prettier --write \"src/**/*.{js,jsx,ts,tsx,json,css,scss,md}\"", "analyze": "source-map-explorer 'build/static/js/*.js'", - "storybook": "start-storybook -p 6006 -s public", + "prestorybook": "node scripts/setupMaterialSymbols.js", + "storybook": "NODE_OPTIONS=--openssl-legacy-provider start-storybook -p 6006 -s public", "build-storybook": "build-storybook -s public" }, "dependencies": { "@headlessui/react": "1.7.4", "@heroicons/react": "2.0.13", + "@material-symbols/svg-200": "0.4.1", "@popperjs/core": "2.11.6", "@supabase/sql-formatter": "4.0.3", "color-convert": "2.0.1", @@ -51,16 +55,16 @@ }, "devDependencies": { "@craco/craco": "7.0.0", - "@storybook/addon-actions": "6.5.13", - "@storybook/addon-essentials": "6.5.13", - "@storybook/addon-links": "6.5.13", - "@storybook/addons": "6.5.13", - "@storybook/builder-webpack5": "6.5.13", - "@storybook/manager-webpack5": "6.5.13", - "@storybook/node-logger": "6.5.13", + "@storybook/addon-actions": "6.5.14", + "@storybook/addon-essentials": "6.5.14", + "@storybook/addon-links": "6.5.14", + "@storybook/addons": "6.5.14", + "@storybook/builder-webpack5": "6.5.14", + "@storybook/manager-webpack5": "6.5.14", + "@storybook/node-logger": "6.5.14", "@storybook/preset-create-react-app": "4.1.2", - "@storybook/react": "6.5.13", - "@storybook/theming": "6.5.13", + "@storybook/react": "6.5.14", + "@storybook/theming": "6.5.14", "@tailwindcss/forms": "0.5.3", "@tailwindcss/line-clamp": "0.4.2", "@tailwindcss/typography": "0.5.8", @@ -68,15 +72,15 @@ "@testing-library/react": "13.4.0", "@tsconfig/create-react-app": "1.0.3", "@types/echarts": "4.9.16", - "@types/jest": "29.2.3", + "@types/jest": "29.2.4", "@types/lodash": "4.14.191", - "@types/node": "18.11.10", - "@types/react": "18.0.25", + "@types/node": "18.11.11", + "@types/react": "18.0.26", "@types/react-dom": "18.0.9", "autoprefixer": "10.4.13", "circular-dependency-plugin": "5.2.2", "if-node-version": "1.1.1", - "lint-staged": "13.0.4", + "lint-staged": "13.1.0", "npm-run-all": "4.1.5", "prettier": "2.8.0", "process": "0.11.10", @@ -84,7 +88,7 @@ "react-scripts": "5.0.1", "source-map-explorer": "2.5.3", "storybook-addon-react-router-v6": "0.2.1", - "storybook-dark-mode": "1.1.2", + "storybook-dark-mode": "2.0.3", "tailwindcss": "3.2.4", "typescript": "4.5.5" }, diff --git a/ui/dashboard/scripts/setupMaterialSymbols.js b/ui/dashboard/scripts/setupMaterialSymbols.js new file mode 100644 index 000000000..e5c14b787 --- /dev/null +++ b/ui/dashboard/scripts/setupMaterialSymbols.js @@ -0,0 +1,49 @@ +const camelCase = require("lodash/camelCase"); +const fs = require("fs-extra"); +const upperFirst = require("lodash/upperFirst"); + +(async () => { + const nodeModulesPath = "@material-symbols/svg-200/rounded"; + const dir = await fs.readdir("./node_modules/" + nodeModulesPath); + let generatedFile = "// @ts-nocheck\n"; + const outlineIcons = {}; + const solidIcons = {}; + for (const file of dir) { + const fileNameParts = file.split("."); + let importName = upperFirst(camelCase(fileNameParts[0])); + if (/^\d/.test(importName)) { + importName = "_" + importName; + } + const nameAndStyleParts = fileNameParts[0].split("-"); + const nameKebab = nameAndStyleParts[0].replaceAll("_", "-"); + const isFillIcon = + nameAndStyleParts.length === 2 && nameAndStyleParts[1] === "fill"; + + if (isFillIcon) { + solidIcons[nameKebab] = { + component: importName, + }; + } else { + outlineIcons[nameKebab] = { + component: importName, + }; + } + generatedFile += `import { ReactComponent as ${importName} } from "${nodeModulesPath}/${file}";\n`; + } + generatedFile += "\n"; + generatedFile += "const icons = {\n"; + for (const [name, definition] of Object.entries(outlineIcons)) { + generatedFile += ` "${name}": ${definition.component},\n`; + generatedFile += ` "materialsymbols-outline:${name}": ${definition.component},\n`; + } + + for (const [name, definition] of Object.entries(solidIcons)) { + generatedFile += ` "materialsymbols-solid:${name}": ${definition.component},\n`; + } + generatedFile += "}\n\n"; + generatedFile += "export {\n"; + generatedFile += " icons,\n"; + generatedFile += "}"; + + await fs.writeFile("./src/icons/materialSymbols.ts", generatedFile); +})(); diff --git a/ui/dashboard/src/components/Icon/index.test.ts b/ui/dashboard/src/components/Icon/index.test.ts deleted file mode 100644 index 81fc37716..000000000 --- a/ui/dashboard/src/components/Icon/index.test.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { getDashboardIconName } from "./"; - -describe("common.adjustMinValue", () => { - test("null returns null", () => { - expect(getDashboardIconName(null)).toEqual(null); - }); - - test("undefined returns null", () => { - expect(getDashboardIconName(undefined)).toEqual(null); - }); - - test("existing icon not mapped", () => { - expect(getDashboardIconName("bell")).toEqual("bell"); - }); - - test("existing namespaced icon not mapped", () => { - expect(getDashboardIconName("heroicons-outline:bell")).toEqual( - "heroicons-outline:bell" - ); - }); - - test("migrated icon mapped", () => { - expect(getDashboardIconName("search")).toEqual("magnifying-glass"); - }); - - test("prefixed migrated icon mapped", () => { - expect(getDashboardIconName("heroicons-solid:search")).toEqual( - "heroicons-solid:magnifying-glass" - ); - }); -}); diff --git a/ui/dashboard/src/components/Icon/index.tsx b/ui/dashboard/src/components/Icon/index.tsx index 543f7b477..982e8b8c6 100644 --- a/ui/dashboard/src/components/Icon/index.tsx +++ b/ui/dashboard/src/components/Icon/index.tsx @@ -1,179 +1,4 @@ -import kebabCase from "lodash/kebabCase"; -import * as outlineIconExports from "@heroicons/react/24/outline"; -import * as solidIconExports from "@heroicons/react/24/solid"; - -const icons = {}; - -const migratedV2IconNames = { - adjustments: "adjustments-vertical", - annotation: "chat-bubble-bottom-center-text", - archive: "archive-box", - "arrow-circle-down": "arrow-down-circle", - "arrow-circle-left": "arrow-left-circle", - "arrow-circle-right": "arrow-right-circle", - "arrow-circle-up": "arrow-up-circle", - "arrow-narrow-down": "arrow-long-down", - "arrow-narrow-left": "arrow-long-left", - "arrow-narrow-right": "arrow-long-right", - "arrow-narrow-up": "arrow-long-up", - "arrow-sm-left": "arrow-small-left", - "arrow-sm-right": "arrow-small-right", - "arrow-sm-up": "arrow-small-up", - "arrow-sm-down": "arrow-small-down", - "arrows-expand": "arrows-pointing-out", - "badge-check": "check-badge", - ban: "no-symbol", - "bookmark-alt": "bookmark-square", - cash: "banknotes", - "chart-square-bar": "chart-bar-square", - "chat-alt-2": "chat-bubble-left-right", - "chat-alt": "chat-bubble-left-ellipsis", - chat: "chat-bubble-oval-left-ellipsis", - chip: "cpu-chip", - "clipboard-check": "clipboard-document-check", - "clipboard-copy": "clipboard-document", - "clipboard-list": "clipboard-document-list", - "cloud-download": "cloud-arrow-down", - "cloud-upload": "cloud-arrow-up", - code: "code-bracket", - collection: "rectangle-stack", - "color-swatch": "swatch", - "cursor-click": "cursor-arrow-rays", - database: "circle-stack", - "desktop-computer": "computer-desktop", - "device-mobile": "device-phone-mobile", - "document-add": "document-plus", - "document-download": "document-arrow-down", - "document-remove": "document-minus", - "document-report": "document-chart-bar", - "document-search": "document-magnifying-glass", - "dots-circle-horizontal": "ellipsis-horizontal-circle", - "dots-horizontal": "ellipsis-horizontal", - "dots-vertical": "ellipsis-vertical", - download: "arrow-down-tray", - duplicate: "square-2-stack", - "emoji-happy": "face-smile", - "emoji-sad": "face-frown", - exclamation: "exclamation-triangle", - "external-link": "arrow-top-right-on-square", - "eye-off": "eye-slash", - "fast-forward": "forward", - filter: "funnel", - "folder-add": "folder-plus", - "folder-download": "folder-arrow-down", - "folder-remove": "folder-minus", - globe: "globe-americas", - hand: "hand-raised", - "inbox-in": "inbox-arrow-down", - library: "building-library", - "lightning-bolt": "bolt", - "location-marker": "map-pin", - login: "arrow-left-on-rectangle", - logout: "arrow-right-on-rectangle", - "mail-open": "envelope-open", - mail: "envelope", - "menu-alt-1": "bars-3-center-left", - "menu-alt-2": "bars-3-bottom-left", - "menu-alt-3": "bars-3-bottom-right", - "menu-alt-4": "bars-2", - menu: "bars-3", - "minus-sm": "minus-small", - "music-note": "musical-note", - "office-building": "building-office", - "pencil-alt": "pencil-square", - "phone-incoming": "phone-arrow-down-left", - "phone-missed-call": "phone-x-mark", - "phone-outgoing": "phone-arrow-up-right", - photograph: "photo", - "plus-sm": "plus-small", - puzzle: "puzzle-piece", - qrcode: "qr-code", - "receipt-tax": "receipt-percent", - refresh: "arrow-path", - reply: "arrow-uturn-left", - rewind: "backward", - "save-as": "arrow-down-on-square-stack", - save: "arrow-down-on-square", - "search-circle": "magnifying-glass-circle", - search: "magnifying-glass", - selector: "chevron-up-down", - "sort-ascending": "bars-arrow-up", - "sort-descending": "bars-arrow-down", - speakerphone: "megaphone", - "status-offline": "signal-slash", - "status-online": "signal", - support: "lifebuoy", - "switch-horizontal": "arrow-right-left", - "switch-vertical": "arrow-up-down", - table: "table-cells", - template: "rectangle-group", - terminal: "command-line", - "thumb-down": "hand-thumb-down", - "thumb-up": "hand-thumb-up", - translate: "language", - "trending-down": "arrow-trending-down", - "trending-up": "arrow-trending-up", - upload: "arrow-up-tray", - "user-add": "user-plus", - "user-remove": "user-minus", - "view-boards": "view-columns", - "view-grid-add": "squares-plus", - "view-grid": "squares-2x2", - "view-list": "bars-4", - "volume-off": "speaker-x-mark", - "volume-up": "speaker-wave", - x: "x-mark", - "zoom-in": "magnifying-glass-plus", - "zoom-out": "magnifying-glass-minus", -}; - -const kebabCaseExceptions = { - Square3Stack3D: "square-3-stack-3d", - Squares2X2: "squares-2x2", -}; - -const convertIconName = (name) => { - let condensedName = name; - const iconOccurrence = name.lastIndexOf("Icon"); - if (iconOccurrence >= 0) { - condensedName = condensedName.substring(0, iconOccurrence); - } - return kebabCaseExceptions[condensedName] || kebabCase(condensedName); -}; - -const getDashboardIconName = (name?: string | null) => { - if (!name) { - return null; - } - - const parts = name.split(":"); - if (parts.length === 1) { - const migratedV2IconName = migratedV2IconNames[parts[0]]; - if (migratedV2IconName) { - return migratedV2IconName; - } - return name; - } else if (parts.length === 2) { - const migratedV2IconName = migratedV2IconNames[parts[1]]; - if (migratedV2IconName) { - return [parts[0], migratedV2IconName].join(":"); - } - return name; - } else { - return null; - } -}; - -Object.entries(outlineIconExports).forEach(([name, exported]) => { - const iconName = convertIconName(name); - icons[iconName] = exported; - icons[`heroicons-outline:${iconName}`] = exported; -}); - -Object.entries(solidIconExports).forEach(([name, exported]) => { - const iconName = convertIconName(name); - icons[`heroicons-solid:${iconName}`] = exported; -}); +import useDashboardIcons from "../../hooks/useDashboardIcons"; interface IconProps { className?: string; @@ -183,13 +8,29 @@ interface IconProps { } const Icon = ({ className = "h-6 w-6", icon, style, title }: IconProps) => { - const MatchingIcon = icons[getDashboardIconName(icon)]; + const icons = useDashboardIcons(); + let MatchingIcon = icons.materialSymbols[icon]; + + if (MatchingIcon) { + return ( + + ); + } else { + MatchingIcon = icons.heroIcons[icon]; + } + if (!MatchingIcon) { return null; } + return ; }; export default Icon; - -export { getDashboardIconName }; diff --git a/ui/dashboard/src/components/SaveSnapshotButton/index.tsx b/ui/dashboard/src/components/SaveSnapshotButton/index.tsx index 538d9e514..4867e9d42 100644 --- a/ui/dashboard/src/components/SaveSnapshotButton/index.tsx +++ b/ui/dashboard/src/components/SaveSnapshotButton/index.tsx @@ -36,7 +36,7 @@ const SaveSnapshotButton = () => { <> Snap diff --git a/ui/dashboard/src/components/ThemeToggle/index.tsx b/ui/dashboard/src/components/ThemeToggle/index.tsx index b2d65d32e..2b0db20ea 100644 --- a/ui/dashboard/src/components/ThemeToggle/index.tsx +++ b/ui/dashboard/src/components/ThemeToggle/index.tsx @@ -1,4 +1,5 @@ import DashboardIcon from "../dashboards/common/DashboardIcon"; +import { classNames } from "../../utils/styles"; import { ThemeNames } from "../../hooks/useTheme"; import { useDashboard } from "../../hooks/useDashboard"; @@ -9,12 +10,12 @@ const ThemeToggle = () => { return ( diff --git a/ui/dashboard/src/components/dashboards/Card/index.stories.js b/ui/dashboard/src/components/dashboards/Card/index.stories.js index 2b26f23e0..2646cb2a4 100644 --- a/ui/dashboard/src/components/dashboards/Card/index.stories.js +++ b/ui/dashboard/src/components/dashboards/Card/index.stories.js @@ -27,40 +27,43 @@ LoadingCustomIcon.args = { export const LoadingOK = Template.bind({}); LoadingOK.args = { data: null, - properties: { type: "ok" }, + display_type: "ok", }; export const LoadingOKCustomIcon = Template.bind({}); LoadingOKCustomIcon.storyName = "Loading OK (Custom Icon)"; LoadingOKCustomIcon.args = { data: null, - properties: { type: "ok", icon: "check-circle" }, + display_type: "ok", + properties: { icon: "check-circle" }, }; export const LoadingAlert = Template.bind({}); LoadingAlert.args = { data: null, - properties: { type: "alert" }, + display_type: "alert", }; export const LoadingAlertCustomIcon = Template.bind({}); LoadingAlertCustomIcon.storyName = "Loading Alert (Custom Icon)"; LoadingAlertCustomIcon.args = { data: null, - properties: { type: "alert", icon: "shield-exclamation" }, + display_type: "alert", + properties: { icon: "shield-exclamation" }, }; export const LoadingInfo = Template.bind({}); LoadingInfo.args = { data: null, - properties: { type: "info" }, + display_type: "info", }; export const LoadingInfoCustomIcon = Template.bind({}); LoadingInfoCustomIcon.storyName = "Loading Info (Custom Icon)"; LoadingInfoCustomIcon.args = { data: null, - properties: { type: "info", icon: "light-bulb" }, + display_type: "info", + properties: { icon: "light-bulb" }, }; export const Error = Template.bind({}); @@ -77,19 +80,19 @@ Empty.args = { export const EmptyOK = Template.bind({}); EmptyOK.args = { data: [], - properties: { type: "ok" }, + display_type: "ok", }; export const EmptyAlert = Template.bind({}); EmptyAlert.args = { data: [], - properties: { type: "alert" }, + display_type: "alert", }; export const EmptyInfo = Template.bind({}); EmptyInfo.args = { data: [], - properties: { type: "info" }, + display_type: "info", }; export const StringValue = Template.bind({}); @@ -122,7 +125,7 @@ SimpleDataFormatOK.args = { columns: [{ name: "Encrypted EC2 Instances", data_type: "INT8" }], rows: [{ "Encrypted EC2 Instances": 5 }], }, - properties: { type: "ok" }, + display_type: "ok", }; export const SimpleDataFormatOKCustomIcon = Template.bind({}); @@ -132,7 +135,8 @@ SimpleDataFormatOKCustomIcon.args = { columns: [{ name: "Encrypted EC2 Instances", data_type: "INT8" }], rows: [{ "Encrypted EC2 Instances": 5 }], }, - properties: { type: "ok", icon: "check-circle" }, + display_type: "ok", + properties: { icon: "check-circle" }, }; export const SimpleDataFormatAlert = Template.bind({}); @@ -141,7 +145,7 @@ SimpleDataFormatAlert.args = { columns: [{ name: "Public Buckets", data_type: "INT8" }], rows: [{ "Public Buckets": 5 }], }, - properties: { type: "alert" }, + display_type: "alert", }; export const SimpleDataFormatAlertCustomIcon = Template.bind({}); @@ -152,7 +156,8 @@ SimpleDataFormatAlertCustomIcon.args = { columns: [{ name: "Public Buckets", data_type: "INT8" }], rows: [{ "Public Buckets": 5 }], }, - properties: { type: "alert", icon: "shield-exclamation" }, + display_type: "alert", + properties: { icon: "shield-exclamation" }, }; export const SimpleDataFormatInfo = Template.bind({}); @@ -161,7 +166,7 @@ SimpleDataFormatInfo.args = { columns: [{ name: "EC2 Instances", data_type: "INT8" }], rows: [{ "EC2 Instances": 106 }], }, - properties: { type: "info" }, + display_type: "info", }; export const SimpleDataFormatInfoCustomIcon = Template.bind({}); @@ -172,7 +177,8 @@ SimpleDataFormatInfoCustomIcon.args = { columns: [{ name: "EC2 Instances", data_type: "INT8" }], rows: [{ "EC2 Instances": 106 }], }, - properties: { type: "info", icon: "light-bulb" }, + display_type: "info", + properties: { icon: "light-bulb" }, }; export const SimpleDataFormatThousands = Template.bind({}); @@ -182,7 +188,7 @@ SimpleDataFormatThousands.args = { columns: [{ name: "EC2 Instances", data_type: "INT8" }], rows: [{ "EC2 Instances": 1236 }], }, - properties: { type: "info" }, + display_type: "info", }; export const SimpleDataFormatMillions = Template.bind({}); @@ -192,7 +198,7 @@ SimpleDataFormatMillions.args = { columns: [{ name: "Log Lines", data_type: "INT8" }], rows: [{ "Log Lines": 5236174 }], }, - properties: { type: "info" }, + display_type: "info", }; export const FormalDataFormat = Template.bind({}); diff --git a/ui/dashboard/src/components/dashboards/Card/index.tsx b/ui/dashboard/src/components/dashboards/Card/index.tsx index 4b7aae814..b2f3567ab 100644 --- a/ui/dashboard/src/components/dashboards/Card/index.tsx +++ b/ui/dashboard/src/components/dashboards/Card/index.tsx @@ -16,6 +16,7 @@ import { DashboardDataModeLive } from "../../../types"; import { getComponent, registerComponent } from "../index"; import { getIconClasses, + getIconForType, getTextClasses, getWrapperClasses, } from "../../../utils/card"; @@ -58,29 +59,6 @@ const getDataFormat = (data: LeafNodeData): CardDataFormat => { return "simple"; }; -const getIconForType = (type, icon) => { - if (!type && !icon) { - return null; - } - - if (icon) { - return icon; - } - - switch (type) { - case "alert": - return "heroicons-solid:exclamation-circle"; - case "ok": - return "heroicons-solid:check-circle"; - case "info": - return "heroicons-solid:information-circle"; - case "severity": - return "heroicons-solid:exclamation"; - default: - return null; - } -}; - const useCardState = ({ data, sql, display_type, properties }: CardProps) => { const [calculatedProperties, setCalculatedProperties] = useState({ loading: !!sql, @@ -233,12 +211,6 @@ const Card = (props: CardProps) => { doRender(); }, [state, props.data]); - // return ( - //
- // Hello - //
- // ); - const card = (
{ > {state.loading && "Loading..."} {!state.loading && !state.label && ( - + )} {!state.loading && state.label}

@@ -295,7 +270,7 @@ const Card = (props: CardProps) => { (state.value === null || state.value === undefined) && ( )} {state.value !== null && diff --git a/ui/dashboard/src/components/dashboards/check/Benchmark/index.tsx b/ui/dashboard/src/components/dashboards/check/Benchmark/index.tsx index 4cfb8be45..e0454e154 100644 --- a/ui/dashboard/src/components/dashboards/check/Benchmark/index.tsx +++ b/ui/dashboard/src/components/dashboards/check/Benchmark/index.tsx @@ -90,7 +90,7 @@ const Benchmark = (props: InnerCheckProps) => { properties: { label: "OK", value: totalSummary.ok.toString(), - icon: "heroicons-solid:check-circle", + icon: "materialsymbols-solid:check-circle", }, }, { @@ -100,7 +100,7 @@ const Benchmark = (props: InnerCheckProps) => { properties: { label: "Alarm", value: totalSummary.alarm.toString(), - icon: "heroicons-solid:bell", + icon: "materialsymbols-solid:notifications", }, }, { @@ -110,7 +110,7 @@ const Benchmark = (props: InnerCheckProps) => { properties: { label: "Error", value: totalSummary.error.toString(), - icon: "heroicons-solid:exclamation-circle", + icon: "materialsymbols-solid:error", }, }, { @@ -120,7 +120,7 @@ const Benchmark = (props: InnerCheckProps) => { properties: { label: "Info", value: totalSummary.info.toString(), - icon: "heroicons-solid:information-circle", + icon: "materialsymbols-solid:info", }, }, { @@ -129,7 +129,7 @@ const Benchmark = (props: InnerCheckProps) => { properties: { label: "Skipped", value: totalSummary.skip.toString(), - icon: "heroicons-solid:arrow-circle-right", + icon: "materialsymbols-solid:arrow-circle-right", }, }, ]; @@ -150,7 +150,7 @@ const Benchmark = (props: InnerCheckProps) => { properties: { label: "Critical / High", value: total.toString(), - icon: "heroicons-solid:exclamation", + icon: "materialsymbols-solid:exclamation", }, }); } diff --git a/ui/dashboard/src/components/dashboards/check/CheckGrouping/index.tsx b/ui/dashboard/src/components/dashboards/check/CheckGrouping/index.tsx index 575965212..71d0cb9bf 100644 --- a/ui/dashboard/src/components/dashboards/check/CheckGrouping/index.tsx +++ b/ui/dashboard/src/components/dashboards/check/CheckGrouping/index.tsx @@ -18,13 +18,11 @@ const CheckGrouping = ({ node }: CheckGroupingProps) => { useState(null); const expand = useCallback(() => { - // console.log("Capturing and expanding", nodeStates); setRestoreNodeStates(nodeStates); dispatch({ type: CheckGroupingActions.EXPAND_ALL_NODES }); }, [dispatch, nodeStates]); const restore = useCallback(() => { - // console.log("Restoring", restoreNodeStates); if (restoreNodeStates) { dispatch({ type: CheckGroupingActions.UPDATE_NODES, diff --git a/ui/dashboard/src/components/dashboards/check/CheckSummaryChart/index.tsx b/ui/dashboard/src/components/dashboards/check/CheckSummaryChart/index.tsx index d6fe7bb39..a82edea2a 100644 --- a/ui/dashboard/src/components/dashboards/check/CheckSummaryChart/index.tsx +++ b/ui/dashboard/src/components/dashboards/check/CheckSummaryChart/index.tsx @@ -111,118 +111,6 @@ const ProgressBarGroup = ({ children, className }: ProgressBarGroupProps) => (
); -// interface ValueWithIndex { -// value: number; -// percent: number; -// index: number; -// } - -// const ensureMinPercentages = ( -// name, -// values: number[] = [], -// minPercentage = 2 -// ) => { -// // Summary here is I want to ensure each percent is >= 2% and a round number, so I'll adjust -// // all other values accordingly to ensure we total 100% -// const total = values.reduce((partial, v) => partial + v, 0); -// const valuesWithPercentAndIndex: ValueWithIndex[] = []; -// for (let i = 0; i < values.length; i++) { -// const value = values[i]; -// valuesWithPercentAndIndex.push({ -// value, -// percent: (value / total) * 100, -// index: i, -// }); -// } -// const withMinPercentages = valuesWithPercentAndIndex.map((p) => ({ -// ...p, -// percent: -// p.percent > 0 && p.percent < minPercentage ? minPercentage : p.percent, -// })); -// const flooredPercentages = withMinPercentages.map((p) => ({ -// ...p, -// percent: p.percent > 0 ? Math.floor(p.percent) : p.percent, -// })); -// let diff = -// flooredPercentages.reduce((partial, v) => partial + v.percent, 0) - 100; -// const numberOfValuesToDistributeAcross = flooredPercentages.filter((p) => { -// if (diff < 0) { -// return p.percent > minPercentage && 100 - p.percent + 4 > 0; -// } else { -// return p.percent > minPercentage && p.percent - 4 > minPercentage; -// } -// }).length; -// const perItem = diff / numberOfValuesToDistributeAcross; -// // if (name === "aws_compliance.control.cis_v140_1_12") { -// // console.log({ -// // values, -// // total, -// // valuesWithPercentAndIndex, -// // withMinPercentages, -// // flooredPercentages, -// // numberOfValuesToDistributeAcross, -// // perItem, -// // diff, -// // }); -// // } -// let adjusted; -// if (diff < 0) { -// const ascending = [...flooredPercentages] -// .sort((a, b) => -// a.percent < b.percent ? -1 : a.percent > b.percent ? 1 : 0 -// ) -// .map((p) => ({ ...p })); -// for (const percentageItem of ascending) { -// if ( -// diff === 0 || -// percentageItem.percent < minPercentage || -// percentageItem.percent - 4 <= minPercentage -// ) { -// continue; -// } -// if (perItem < 0 && perItem > -1) { -// percentageItem.percent += 1; -// diff += 1; -// } else { -// percentageItem.percent -= perItem; -// diff -= perItem; -// } -// } -// adjusted = ascending -// .sort((a, b) => (a.index < b.index ? -1 : a.index > b.index ? 1 : 0)) -// .map((p) => p.percent); -// } else { -// const descending = [...flooredPercentages] -// .sort((a, b) => -// b.percent < a.percent ? -1 : b.percent > a.percent ? 1 : 0 -// ) -// .map((p) => ({ ...p })); -// for (const percentageItem of descending) { -// if ( -// diff === 0 || -// percentageItem.percent < minPercentage || -// percentageItem.percent - 4 <= minPercentage -// ) { -// continue; -// } -// if (perItem > 0 && perItem < 1) { -// percentageItem.percent -= 1; -// diff -= 1; -// } else { -// percentageItem.percent -= perItem; -// diff -= perItem; -// } -// } -// adjusted = descending -// .sort((a, b) => (a.index < b.index ? -1 : a.index > b.index ? 1 : 0)) -// .map((p) => p.percent); -// } -// // if (name === "aws_compliance.control.cis_v140_1_12") { -// // console.log(adjusted); -// // } -// return adjusted; -// }; - const ProgressBar = ({ className, percent }: ProgressBarProps) => { if (!percent) { return null; diff --git a/ui/dashboard/src/components/dashboards/common/DashboardIcon.stories.tsx b/ui/dashboard/src/components/dashboards/common/DashboardIcon.stories.tsx index 66c4fec30..da158f188 100644 --- a/ui/dashboard/src/components/dashboards/common/DashboardIcon.stories.tsx +++ b/ui/dashboard/src/components/dashboards/common/DashboardIcon.stories.tsx @@ -17,16 +17,67 @@ heroIconDefaultOutline.args = { icon: "arrow-up-circle", }; +export const heroIconDefaultOutlineWithColor = Template.bind({}); +heroIconDefaultOutlineWithColor.args = { + icon: "arrow-up-circle", + style: { color: "red" }, +}; + export const heroIconOutlineFullyNamespaced = Template.bind({}); heroIconOutlineFullyNamespaced.args = { icon: "heroicons-outline:arrow-up-circle", }; +export const heroIconOutlineFullyNamespacedWithColor = Template.bind({}); +heroIconOutlineFullyNamespacedWithColor.args = { + icon: "heroicons-outline:arrow-up-circle", + style: { color: "red" }, +}; + export const heroIconSolid = Template.bind({}); heroIconSolid.args = { icon: "heroicons-solid:arrow-up-circle", }; +export const heroIconSolidWithColor = Template.bind({}); +heroIconSolidWithColor.args = { + icon: "heroicons-solid:arrow-up-circle", + style: { color: "red" }, +}; + +export const materialSymbolDefaultOutline = Template.bind({}); +materialSymbolDefaultOutline.args = { + icon: "cloud", +}; + +export const materialSymbolDefaultOutlineWithColor = Template.bind({}); +materialSymbolDefaultOutlineWithColor.args = { + icon: "cloud", + style: { color: "red" }, +}; + +export const materialSymbolOutlineFullyNamespaced = Template.bind({}); +materialSymbolOutlineFullyNamespaced.args = { + icon: "materialsymbols-outline:cloud", +}; + +export const materialSymbolOutlineFullyNamespacedWithColor = Template.bind({}); +materialSymbolOutlineFullyNamespacedWithColor.args = { + icon: "materialsymbols-outline:cloud", + style: { color: "red" }, +}; + +export const materialSymbolSolid = Template.bind({}); +materialSymbolSolid.args = { + icon: "materialsymbols-solid:cloud", +}; + +export const materialSymbolSolidWithColor = Template.bind({}); +materialSymbolSolidWithColor.args = { + icon: "materialsymbols-solid:cloud", + style: { color: "red" }, +}; + export const text1Letter = Template.bind({}); text1Letter.args = { icon: "text:A", diff --git a/ui/dashboard/src/components/dashboards/common/DashboardIcon.tsx b/ui/dashboard/src/components/dashboards/common/DashboardIcon.tsx index 646aa9956..26f507505 100644 --- a/ui/dashboard/src/components/dashboards/common/DashboardIcon.tsx +++ b/ui/dashboard/src/components/dashboards/common/DashboardIcon.tsx @@ -1,6 +1,6 @@ import Icon from "../../Icon"; import { classNames } from "../../../utils/styles"; -import { memo, useMemo } from "react"; +import { useMemo } from "react"; interface DashboardIconProps { className?: string; @@ -9,14 +9,12 @@ interface DashboardIconProps { title?: string; } -interface DashboardHeroIconProps extends DashboardIconProps { +interface DashboardTextIconProps extends DashboardIconProps { icon: string; - style?: any; } interface DashboardImageIconProps extends DashboardIconProps { icon: string; - style?: any; } const useDashboardIconType = (icon) => @@ -28,7 +26,9 @@ const useDashboardIconType = (icon) => // This gets parsed as a URL if we don't check first if ( icon.startsWith("heroicons-outline:") || - icon.startsWith("heroicons-solid:") + icon.startsWith("heroicons-solid:") || + icon.startsWith("materialsymbols-outline:") || + icon.startsWith("materialsymbols-solid:") ) { return "icon"; } @@ -57,21 +57,12 @@ const DashboardImageIcon = ({ ); -const DashboardHeroIcon = ({ - className, - icon, - style, - title, -}: DashboardHeroIconProps) => ( - -); - const DashboardTextIcon = ({ className, icon, style, title, -}: DashboardHeroIconProps) => { +}: DashboardTextIconProps) => { const text = useMemo(() => { if (!icon) { return ""; @@ -104,12 +95,7 @@ const DashboardIcon = ({ switch (iconType) { case "icon": return ( - + ); case "text": return ( @@ -134,6 +120,6 @@ const DashboardIcon = ({ } }; -export default memo(DashboardIcon); +export default DashboardIcon; export { useDashboardIconType }; diff --git a/ui/dashboard/src/components/dashboards/common/NodeAndEdgePanelInformation.tsx b/ui/dashboard/src/components/dashboards/common/NodeAndEdgePanelInformation.tsx index 5401181ba..489301f0b 100644 --- a/ui/dashboard/src/components/dashboards/common/NodeAndEdgePanelInformation.tsx +++ b/ui/dashboard/src/components/dashboards/common/NodeAndEdgePanelInformation.tsx @@ -51,7 +51,7 @@ const NodeAndEdgePanelInformation = ({
{category.title || category.id} diff --git a/ui/dashboard/src/hooks/useDashboardIcons.ts b/ui/dashboard/src/hooks/useDashboardIcons.ts new file mode 100644 index 000000000..7fd7b1f84 --- /dev/null +++ b/ui/dashboard/src/hooks/useDashboardIcons.ts @@ -0,0 +1,22 @@ +import { useMemo } from "react"; + +let heroIcons = {}; +let materialSymbols = {}; +import("../icons/heroIcons").then((m) => { + heroIcons = m.icons; +}); +import("../icons/materialSymbols").then((m) => { + materialSymbols = m.icons; +}); + +const useDashboardIcons = () => { + return useMemo( + () => ({ + heroIcons, + materialSymbols, + }), + [heroIcons, materialSymbols] + ); +}; + +export default useDashboardIcons; diff --git a/ui/dashboard/src/icons/heroIcons.test.ts b/ui/dashboard/src/icons/heroIcons.test.ts new file mode 100644 index 000000000..78dfb32f1 --- /dev/null +++ b/ui/dashboard/src/icons/heroIcons.test.ts @@ -0,0 +1,23 @@ +import { icons } from "./heroIcons"; + +describe("hero icons", () => { + test("unknown returns null", () => { + expect(icons["hjdfghskhgskfdjg"]).toEqual(undefined); + }); + + test("existing icon not mapped", () => { + expect(icons["bell"]).not.toBeNull(); + }); + + test("existing namespaced icon not mapped", () => { + expect(icons["heroicons-outline:bell"]).not.toBeNull(); + }); + + test("migrated icon mapped", () => { + expect(icons["search"]).not.toBeNull(); + }); + + test("prefixed migrated icon mapped", () => { + expect(icons["heroicons-solid:search"]).not.toBeNull(); + }); +}); diff --git a/ui/dashboard/src/icons/heroIcons.ts b/ui/dashboard/src/icons/heroIcons.ts new file mode 100644 index 000000000..ba05ab243 --- /dev/null +++ b/ui/dashboard/src/icons/heroIcons.ts @@ -0,0 +1,162 @@ +import kebabCase from "lodash/kebabCase"; +import * as outline from "@heroicons/react/24/outline"; +import * as solid from "@heroicons/react/24/solid"; + +const migratedV2IconNames = { + adjustments: "adjustments-vertical", + annotation: "chat-bubble-bottom-center-text", + archive: "archive-box", + "arrow-circle-down": "arrow-down-circle", + "arrow-circle-left": "arrow-left-circle", + "arrow-circle-right": "arrow-right-circle", + "arrow-circle-up": "arrow-up-circle", + "arrow-narrow-down": "arrow-long-down", + "arrow-narrow-left": "arrow-long-left", + "arrow-narrow-right": "arrow-long-right", + "arrow-narrow-up": "arrow-long-up", + "arrow-sm-left": "arrow-small-left", + "arrow-sm-right": "arrow-small-right", + "arrow-sm-up": "arrow-small-up", + "arrow-sm-down": "arrow-small-down", + "arrows-expand": "arrows-pointing-out", + "badge-check": "check-badge", + ban: "no-symbol", + "bookmark-alt": "bookmark-square", + cash: "banknotes", + "chart-square-bar": "chart-bar-square", + "chat-alt-2": "chat-bubble-left-right", + "chat-alt": "chat-bubble-left-ellipsis", + chat: "chat-bubble-oval-left-ellipsis", + chip: "cpu-chip", + "clipboard-check": "clipboard-document-check", + "clipboard-copy": "clipboard-document", + "clipboard-list": "clipboard-document-list", + "cloud-download": "cloud-arrow-down", + "cloud-upload": "cloud-arrow-up", + code: "code-bracket", + collection: "rectangle-stack", + "color-swatch": "swatch", + "cursor-click": "cursor-arrow-rays", + database: "circle-stack", + "desktop-computer": "computer-desktop", + "device-mobile": "device-phone-mobile", + "document-add": "document-plus", + "document-download": "document-arrow-down", + "document-remove": "document-minus", + "document-report": "document-chart-bar", + "document-search": "document-magnifying-glass", + "dots-circle-horizontal": "ellipsis-horizontal-circle", + "dots-horizontal": "ellipsis-horizontal", + "dots-vertical": "ellipsis-vertical", + download: "arrow-down-tray", + duplicate: "square-2-stack", + "emoji-happy": "face-smile", + "emoji-sad": "face-frown", + exclamation: "exclamation-triangle", + "external-link": "arrow-top-right-on-square", + "eye-off": "eye-slash", + "fast-forward": "forward", + filter: "funnel", + "folder-add": "folder-plus", + "folder-download": "folder-arrow-down", + "folder-remove": "folder-minus", + globe: "globe-americas", + hand: "hand-raised", + "inbox-in": "inbox-arrow-down", + library: "building-library", + "lightning-bolt": "bolt", + "location-marker": "map-pin", + login: "arrow-left-on-rectangle", + logout: "arrow-right-on-rectangle", + "mail-open": "envelope-open", + mail: "envelope", + "menu-alt-1": "bars-3-center-left", + "menu-alt-2": "bars-3-bottom-left", + "menu-alt-3": "bars-3-bottom-right", + "menu-alt-4": "bars-2", + menu: "bars-3", + "minus-sm": "minus-small", + "music-note": "musical-note", + "office-building": "building-office", + "pencil-alt": "pencil-square", + "phone-incoming": "phone-arrow-down-left", + "phone-missed-call": "phone-x-mark", + "phone-outgoing": "phone-arrow-up-right", + photograph: "photo", + "plus-sm": "plus-small", + puzzle: "puzzle-piece", + qrcode: "qr-code", + "receipt-tax": "receipt-percent", + refresh: "arrow-path", + reply: "arrow-uturn-left", + rewind: "backward", + "save-as": "arrow-down-on-square-stack", + save: "arrow-down-on-square", + "search-circle": "magnifying-glass-circle", + search: "magnifying-glass", + selector: "chevron-up-down", + "sort-ascending": "bars-arrow-up", + "sort-descending": "bars-arrow-down", + speakerphone: "megaphone", + "status-offline": "signal-slash", + "status-online": "signal", + support: "lifebuoy", + "switch-horizontal": "arrow-right-left", + "switch-vertical": "arrow-up-down", + table: "table-cells", + template: "rectangle-group", + terminal: "command-line", + "thumb-down": "hand-thumb-down", + "thumb-up": "hand-thumb-up", + translate: "language", + "trending-down": "arrow-trending-down", + "trending-up": "arrow-trending-up", + upload: "arrow-up-tray", + "user-add": "user-plus", + "user-remove": "user-minus", + "view-boards": "view-columns", + "view-grid-add": "squares-plus", + "view-grid": "squares-2x2", + "view-list": "bars-4", + "volume-off": "speaker-x-mark", + "volume-up": "speaker-wave", + x: "x-mark", + "zoom-in": "magnifying-glass-plus", + "zoom-out": "magnifying-glass-minus", +}; + +const kebabCaseExceptions = { + Square3Stack3D: "square-3-stack-3d", + Squares2X2: "squares-2x2", +}; + +const convertIconName = (name) => { + let condensedName = name; + const iconOccurrence = name.lastIndexOf("Icon"); + if (iconOccurrence >= 0) { + condensedName = condensedName.substring(0, iconOccurrence); + } + return kebabCaseExceptions[condensedName] || kebabCase(condensedName); +}; + +const icons = {}; + +Object.entries(outline).forEach(([name, exported]) => { + const iconName = convertIconName(name); + icons[iconName] = exported; + icons[`heroicons-outline:${iconName}`] = exported; +}); + +Object.entries(solid).forEach(([name, exported]) => { + const iconName = convertIconName(name); + icons[`heroicons-solid:${iconName}`] = exported; +}); + +Object.entries(migratedV2IconNames).forEach(([name, mappedName]) => { + const mappedIcon = icons[mappedName]; + icons[name] = mappedIcon; + icons[`heroicons-outline:${name}`] = mappedIcon; + icons[`heroicons-solid:${name}`] = mappedIcon; +}); + +export { icons }; diff --git a/ui/dashboard/src/utils/card.ts b/ui/dashboard/src/utils/card.ts index 304d9d822..eb43fdef9 100644 --- a/ui/dashboard/src/utils/card.ts +++ b/ui/dashboard/src/utils/card.ts @@ -16,6 +16,29 @@ const getIconClasses = (type) => { } }; +const getIconForType = (type, icon) => { + if (!type && !icon) { + return null; + } + + if (icon) { + return icon; + } + + switch (type) { + case "alert": + return "materialsymbols-solid:error"; + case "ok": + return "materialsymbols-solid:check-circle"; + case "info": + return "materialsymbols-solid:info"; + case "severity": + return "materialsymbols-solid:exclamation"; + default: + return null; + } +}; + const getTextClasses = (type) => { switch (type) { case "alert": @@ -46,4 +69,4 @@ const getWrapperClasses = (type) => { } }; -export { getIconClasses, getTextClasses, getWrapperClasses }; +export { getIconClasses, getIconForType, getTextClasses, getWrapperClasses }; diff --git a/ui/dashboard/yarn.lock b/ui/dashboard/yarn.lock index d41f8833e..7870106ee 100644 --- a/ui/dashboard/yarn.lock +++ b/ui/dashboard/yarn.lock @@ -3153,6 +3153,11 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@material-symbols/svg-200@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@material-symbols/svg-200/-/svg-200-0.4.1.tgz#0922c4d4fdf9bb828d1f3caf306c9a16e04a66b3" + integrity sha512-HNDf9+LYFF45u66NPyujcnKpNrwX8+pgjNKmJWNw1UzvhoTK95XKFDIqcW9C/p6lCud8bx38JI6VErlA4p7NaQ== + "@mdx-js/mdx@^1.6.22": version "1.6.22" resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz" @@ -3374,18 +3379,18 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@storybook/addon-actions@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.5.13.tgz#84535dda78c7fe15fc61f19a23ed1440952f3c76" - integrity sha512-3Tji0gIy95havhTpSc6CsFl5lNxGn4O5Y1U9fyji+GRkKqDFOrvVLYAHPtLOpYdEI5tF0bDo+akiqfDouY8+eA== +"@storybook/addon-actions@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.5.14.tgz#29dd6a27e4b373513190ffd8bc89c7a89a7e071c" + integrity sha512-fZt8bn+oCsVDv9yuZfKL4lq77V5EqW60khHpOxLRRK69hMsE+gaylK0O5l/pelVf3Jf3+TablUG+2xWTaJHGlQ== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/components" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/components" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.13" + "@storybook/theming" "6.5.14" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -3399,18 +3404,18 @@ util-deprecate "^1.0.2" uuid-browser "^3.1.0" -"@storybook/addon-backgrounds@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.5.13.tgz#37629db582501aa22bddf492a9f01d6614aaa993" - integrity sha512-b4JX7JMY7e50y1l6g71D+2XWV3GO0TO2z1ta8J6W4OQt8f44V7sSkRQaJUzXdLjQMrA+Anojuy1ZwPjVeLC6vg== +"@storybook/addon-backgrounds@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.5.14.tgz#de34ae41d2700d05acff2929b6b421ee78be417a" + integrity sha512-DZY8oizDTiNLsknyrCyjf6OirwyfrXB4+UCXKXT7Xp+S5PHsdHwBZUADgM6yIwLUjDXzcsL7Ok00C1zI9qERdg== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/components" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/components" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.13" + "@storybook/theming" "6.5.14" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" @@ -3418,47 +3423,47 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-controls@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.5.13.tgz#14c8f9379337768bf03f59d19f1a16f3c41418ab" - integrity sha512-lYq3uf2mlVevm0bi6ueL3H6TpUMRYW9s/pTNTVJT225l27kLdFR9wEKxAkCBrlKaTgDLJmzzDRsJE3NLZlR/5Q== +"@storybook/addon-controls@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.5.14.tgz#c3ad5f716a43032cb982f7b863d5a453ba73c788" + integrity sha512-p16k/69GjwVtnpEiz0fmb1qoqp/H2d5aaSGDt7VleeXsdhs4Kh0kJyxfLpekHmlzT+5IkO08Nm/U8tJOHbw4Hw== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/components" "6.5.13" - "@storybook/core-common" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/components" "6.5.14" + "@storybook/core-common" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/node-logger" "6.5.13" - "@storybook/store" "6.5.13" - "@storybook/theming" "6.5.13" + "@storybook/node-logger" "6.5.14" + "@storybook/store" "6.5.14" + "@storybook/theming" "6.5.14" core-js "^3.8.2" lodash "^4.17.21" ts-dedent "^2.0.0" -"@storybook/addon-docs@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.5.13.tgz#fd82893946b0fa6f0657f16bf6a94637ab4b7532" - integrity sha512-RG/NjsheD9FixZ789RJlNyNccaR2Cuy7CtAwph4oUNi3aDFjtOI8Oe9L+FOT7qtVnZLw/YMjF+pZxoDqJNKLPw== +"@storybook/addon-docs@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.5.14.tgz#5df8bd132890828320cfb5b4769f098142e57a4c" + integrity sha512-gapuzDY+dqgS4/Ap9zj5L76OSExBYtVNYej9xTiF+v0Gh4/kty9FIGlVWiqskffOmixL4nlyImpfsSH8V0JnCw== dependencies: "@babel/plugin-transform-react-jsx" "^7.12.12" "@babel/preset-env" "^7.12.11" "@jest/transform" "^26.6.2" "@mdx-js/react" "^1.6.22" - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/components" "6.5.13" - "@storybook/core-common" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/components" "6.5.14" + "@storybook/core-common" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/docs-tools" "6.5.13" + "@storybook/docs-tools" "6.5.14" "@storybook/mdx1-csf" "^0.0.1" - "@storybook/node-logger" "6.5.13" - "@storybook/postinstall" "6.5.13" - "@storybook/preview-web" "6.5.13" - "@storybook/source-loader" "6.5.13" - "@storybook/store" "6.5.13" - "@storybook/theming" "6.5.13" + "@storybook/node-logger" "6.5.14" + "@storybook/postinstall" "6.5.14" + "@storybook/preview-web" "6.5.14" + "@storybook/source-loader" "6.5.14" + "@storybook/store" "6.5.14" + "@storybook/theming" "6.5.14" babel-loader "^8.0.0" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -3470,37 +3475,37 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-essentials@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.5.13.tgz#274b8e6b556af4cd43b63fab361fa7d19c704e76" - integrity sha512-G9FVAWV7ixjVLWeLgIX+VT90tcAk6yQxfZQegfg5ucRilGysJCDaNnoab4xuuvm1R40TfFhba3iAGZtQYsddmw== +"@storybook/addon-essentials@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.5.14.tgz#f0fb5738878e62d58dc9ce0e9305aa7b4488ff8c" + integrity sha512-6fmfDHbp1y/hF0GU0W95RLw4rzN3KGcEcpAZ8HbgTyXIF528j0hhlvkD5AjnQ5dVarlHdKAtMRZA9Y3OCEZD6A== dependencies: - "@storybook/addon-actions" "6.5.13" - "@storybook/addon-backgrounds" "6.5.13" - "@storybook/addon-controls" "6.5.13" - "@storybook/addon-docs" "6.5.13" - "@storybook/addon-measure" "6.5.13" - "@storybook/addon-outline" "6.5.13" - "@storybook/addon-toolbars" "6.5.13" - "@storybook/addon-viewport" "6.5.13" - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/core-common" "6.5.13" - "@storybook/node-logger" "6.5.13" + "@storybook/addon-actions" "6.5.14" + "@storybook/addon-backgrounds" "6.5.14" + "@storybook/addon-controls" "6.5.14" + "@storybook/addon-docs" "6.5.14" + "@storybook/addon-measure" "6.5.14" + "@storybook/addon-outline" "6.5.14" + "@storybook/addon-toolbars" "6.5.14" + "@storybook/addon-viewport" "6.5.14" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/core-common" "6.5.14" + "@storybook/node-logger" "6.5.14" core-js "^3.8.2" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-links@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.5.13.tgz#816816907e28ca1cccb58908360628d1b3914513" - integrity sha512-K/LYYu9R/Xoah5h9MNh4mSHOic3q5csqjderLqr2YW/KPYiuNubgvzEbAAbzI5xq5JrtAZqnINrZUv2A4CyYbQ== +"@storybook/addon-links@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.5.14.tgz#cf2fd95394d1c344391470d9937db7e127b6d754" + integrity sha512-Q4gNVFi3PqJH/YYmYJ6xX7a2VPZYs8QV97fMIjdg7/k4FLelSRj7QfsHc7jO2RGG2qQpenapO569jFoVNAW4/Q== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/router" "6.5.13" + "@storybook/router" "6.5.14" "@types/qs" "^6.9.5" core-js "^3.8.2" global "^4.4.0" @@ -3509,78 +3514,78 @@ regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-measure@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-6.5.13.tgz#05c0e9813fee84a13ba1172444ea99ee083acdbd" - integrity sha512-pi5RFB9YTnESRFtYHAVRUrgEI5to0TFc4KndtwcCKt1fMJ8OFjXQeznEfdj95PFeUvW5TNUwjL38vK4LhicB+g== +"@storybook/addon-measure@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-6.5.14.tgz#3dc5989dd540d23992eadc35e91e6d3a5122c97e" + integrity sha512-7JH35z7NRaNiOMYIG+tJQrQdV2fdURUK94g9x58rNBT4GCtXTclFvhWiwKHHT2CnM8xdYuKGMt3DY9U0urq3Gg== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/components" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/components" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" global "^4.4.0" -"@storybook/addon-outline@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-6.5.13.tgz#e4233e7d268cd0e1b814c253e8756fb459a341bf" - integrity sha512-8d8taPheO/tryflzXbj2QRuxHOIS8CtzRzcaglCcioqHEMhOIDOx9BdXKdheq54gdk/UN94HdGJUoVxYyXwZ4Q== +"@storybook/addon-outline@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-6.5.14.tgz#b14fe67e90efc2757f406f01841f63686b8f3c41" + integrity sha512-eXkkRmSxfPIcztfcLxGO1Cj61Ohx4qKuYSjNh25CRc+HYbBjQkWyxOXZP+x4Ritx4IuQsgWiCJJO3/zdgXLRgw== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/components" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/components" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" global "^4.4.0" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-toolbars@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.5.13.tgz#0e67552786f08a6c0a443eaaef21ee565acca839" - integrity sha512-Qgr4wKRSP+gY1VaN7PYT4TM1um7KY341X3GHTglXLFHd8nDsCweawfV2shaX3WxCfZmVro8g4G+Oest30kLLCw== +"@storybook/addon-toolbars@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.5.14.tgz#200bb8cfc771bb8d14c61d7810b02765a473458e" + integrity sha512-BZGQ9YadVRtSd5mpmrwnJta0wK1leX/vgziJX4gUKX2A5JX7VWsiswUGVukLVtE9Oa1jp3fJXE3O5Ip9moj0Ag== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/components" "6.5.13" - "@storybook/theming" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/components" "6.5.14" + "@storybook/theming" "6.5.14" core-js "^3.8.2" regenerator-runtime "^0.13.7" -"@storybook/addon-viewport@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.5.13.tgz#97771ed2f4ca1bef83d25174ce07db8557cdf795" - integrity sha512-KSfeuCSIjncwWGnUu6cZBx8WNqYvm5gHyFvkSPKEu0+MJtgncbUy7pl53lrEEr6QmIq0GRXvS3A0XzV8RCnrSA== +"@storybook/addon-viewport@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.5.14.tgz#992cc3a61cd231a6c5cdb76c9c206aad8d1ffdfb" + integrity sha512-QtcQZe5ahWcMr4oRgfjeCIJtweTitArc8x1cDfS8maEEy965JJGjrR9xBIOLaw6IEiRtBuvrewYAWbRLLsUE+g== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/components" "6.5.13" - "@storybook/core-events" "6.5.13" - "@storybook/theming" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/components" "6.5.14" + "@storybook/core-events" "6.5.14" + "@storybook/theming" "6.5.14" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" prop-types "^15.7.2" regenerator-runtime "^0.13.7" -"@storybook/addons@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.5.13.tgz#61ec5eab07879400d423d60bb397880d10ee5e73" - integrity sha512-18CqzNnrGMfeZtiKz+R/3rHtSNnfNwz6y6prIQIbWseK16jY8ELTfIFGviwO5V2OqpbHDQi5+xQQ63QAIb89YA== +"@storybook/addons@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.5.14.tgz#855ddd85533ffa596b7684f3df7b91b833fdf3f7" + integrity sha512-8wVy1eDKipj+dmWpVmmPa1p2jYVqDvrkWll4IsP/KU7AYFCiyCiVAd1ZPDv9EhDnwArfYYjrdJjAl6gmP0UMag== dependencies: - "@storybook/api" "6.5.13" - "@storybook/channels" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/api" "6.5.14" + "@storybook/channels" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/router" "6.5.13" - "@storybook/theming" "6.5.13" + "@storybook/router" "6.5.14" + "@storybook/theming" "6.5.14" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" global "^4.4.0" @@ -3626,18 +3631,18 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/api@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.5.13.tgz#8671e580721ff68d209fcde2975f967ae79b7d64" - integrity sha512-xVSmB7/IuFd6G7eiJjbI2MuS7SZunoUM6d+YCWpjiehfMeX47MXt1gZtOwFrgJC1ShZlefXFahq/dvxwtmWs+w== +"@storybook/api@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.5.14.tgz#e0caaee2d8634857ac428acc93db62aba744c1c1" + integrity sha512-RpgEWV4mxD1mNsGWkjSNq3+B/LFNIhXZc4OapEEK5u0jgCZKB7OCsRL9NJZB5WfpyN+vx8SwbUTgo8DIkes3qw== dependencies: - "@storybook/channels" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/channels" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/router" "6.5.13" + "@storybook/router" "6.5.14" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.5.13" + "@storybook/theming" "6.5.14" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -3649,28 +3654,28 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-webpack4@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.5.13.tgz#35b22c49562d72934a0bc311657989f3b43be575" - integrity sha512-Agqy3IKPv3Nl8QqdS7PjtqLp+c0BD8+/3A2ki/YfKqVz+F+J34EpbZlh3uU053avm1EoNQHSmhZok3ZlWH6O7A== +"@storybook/builder-webpack4@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.5.14.tgz#ff9e1f7b08c112462596ca9a30ce935669147894" + integrity sha512-0pv8BlsMeiP9VYU2CbCZaa3yXDt1ssb8OeTRDbFC0uFFb3eqslsH68I7XsC8ap/dr0RZR0Edtw0OW3HhkjUXXw== dependencies: "@babel/core" "^7.12.10" - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/channel-postmessage" "6.5.13" - "@storybook/channels" "6.5.13" - "@storybook/client-api" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/components" "6.5.13" - "@storybook/core-common" "6.5.13" - "@storybook/core-events" "6.5.13" - "@storybook/node-logger" "6.5.13" - "@storybook/preview-web" "6.5.13" - "@storybook/router" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/channel-postmessage" "6.5.14" + "@storybook/channels" "6.5.14" + "@storybook/client-api" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/components" "6.5.14" + "@storybook/core-common" "6.5.14" + "@storybook/core-events" "6.5.14" + "@storybook/node-logger" "6.5.14" + "@storybook/preview-web" "6.5.14" + "@storybook/router" "6.5.14" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.13" - "@storybook/theming" "6.5.13" - "@storybook/ui" "6.5.13" + "@storybook/store" "6.5.14" + "@storybook/theming" "6.5.14" + "@storybook/ui" "6.5.14" "@types/node" "^14.0.10 || ^16.0.0" "@types/webpack" "^4.41.26" autoprefixer "^9.8.6" @@ -3702,27 +3707,27 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.2.2" -"@storybook/builder-webpack5@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-6.5.13.tgz#b40a6fc0ff22b6e7c7e1a46a8fc3c24cf14833f8" - integrity sha512-juNH31ZljWbaoBD6Yx2/iQ4G66UBkwq+cFUqLzgVROKMXmYaT0AJYbfyY8CgGqcXkc+sqNA63yWaLWd8/K9vTg== +"@storybook/builder-webpack5@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-6.5.14.tgz#d200bfed3f45b631e417299024e335905429fb2c" + integrity sha512-Ukj7Wwxz/3mKn5TI5mkm2mIm583LxOz78ZrpcOgI+vpjeRlMFXmGGEb68R47SiCdZoVCfIeCXXXzBd6Q6As6QQ== dependencies: "@babel/core" "^7.12.10" - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/channel-postmessage" "6.5.13" - "@storybook/channels" "6.5.13" - "@storybook/client-api" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/components" "6.5.13" - "@storybook/core-common" "6.5.13" - "@storybook/core-events" "6.5.13" - "@storybook/node-logger" "6.5.13" - "@storybook/preview-web" "6.5.13" - "@storybook/router" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/channel-postmessage" "6.5.14" + "@storybook/channels" "6.5.14" + "@storybook/client-api" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/components" "6.5.14" + "@storybook/core-common" "6.5.14" + "@storybook/core-events" "6.5.14" + "@storybook/node-logger" "6.5.14" + "@storybook/preview-web" "6.5.14" + "@storybook/router" "6.5.14" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.13" - "@storybook/theming" "6.5.13" + "@storybook/store" "6.5.14" + "@storybook/theming" "6.5.14" "@types/node" "^14.0.10 || ^16.0.0" babel-loader "^8.0.0" babel-plugin-named-exports-order "^0.0.2" @@ -3746,26 +3751,26 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.4.1" -"@storybook/channel-postmessage@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.5.13.tgz#cdb36cf4180bd75687c0c4ec75248044ac975828" - integrity sha512-R79MBs0mQ7TV8M/a6x/SiTRyvZBidDfMEEthG7Cyo9p35JYiKOhj2535zhW4qlVMESBu95pwKYBibTjASoStPw== +"@storybook/channel-postmessage@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.5.14.tgz#17d6071b3563819092ef3e18f8ca7946c2532823" + integrity sha512-0Cmdze5G3Qwxf7yYPGlJxGiY+KiEUQ+8GfpohsKGfvrP8cfSrx6VhxupHA7hDNyRh75hqZq5BrkW4HO9Ypbt5A== dependencies: - "@storybook/channels" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/channels" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/core-events" "6.5.14" core-js "^3.8.2" global "^4.4.0" qs "^6.10.0" telejson "^6.0.8" -"@storybook/channel-websocket@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.5.13.tgz#b7a55149295a77004bb156a4ceefc44839f52bb3" - integrity sha512-kwh667H+tzCiNvs92GNwYOwVXdj9uHZyieRAN5rJtTBJ7XgLzGkpTEU50mWlbc0nDKhgE0qYvzyr5H393Iy5ug== +"@storybook/channel-websocket@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.5.14.tgz#8b24fcf61a32623f2d03c6f3f962fc24855cff6e" + integrity sha512-ZyDL5PBFWuFQ15NBljhbOaD/3FAijXvLj5oxfNris2khdkqlP6/8JmcIvfohJJcqepGZHUF9H29OaUsRC35ftA== dependencies: - "@storybook/channels" "6.5.13" - "@storybook/client-logger" "6.5.13" + "@storybook/channels" "6.5.14" + "@storybook/client-logger" "6.5.14" core-js "^3.8.2" global "^4.4.0" telejson "^6.0.8" @@ -3779,27 +3784,27 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/channels@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.5.13.tgz#f3f86b90a7832484ee3dcbc6845f5a47f62f028f" - integrity sha512-sGYSilE30bz0jG+HdHnkv0B4XkAv2hP+KRZr4xmnv+MOOQpRnZpJ5Z3HVU16s17cj/83NWihKj6BuKcEVzyilg== +"@storybook/channels@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.5.14.tgz#dcb73496a771dafb77a9e25dce2ba1adaa352df9" + integrity sha512-hHpr4Sya6fuEDhy7vnfD2QnL5wy1CaAK9BC0FLupndXnQyKJtygfIaUP4a0B2KntuNPbzPhclb2Hb4yM7CExmQ== dependencies: core-js "^3.8.2" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.5.13.tgz#0bd89339c08898e0409c5a1dd719ed4807b400cb" - integrity sha512-uH1mAWbidPiuuTdMUVEiuaNOfrYXm+9QLSP1MMYTKULqEOZI5MSOGkEDqRfVWxbYv/iWBOPTQ+OM9TQ6ecYacg== +"@storybook/client-api@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.5.14.tgz#57a660810165126cdf3380cd04bf6c5f027eab5c" + integrity sha512-G5mBQCKn8/VqE9XDCL19ixcvu8YhaQZ0AE+EXGYXUsvPpyQ43oGoGJry5IqOzeRlc7dbglFWpMkB6PeeUD7aCw== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/channel-postmessage" "6.5.13" - "@storybook/channels" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/channel-postmessage" "6.5.14" + "@storybook/channels" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.13" + "@storybook/store" "6.5.14" "@types/qs" "^6.9.5" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" @@ -3822,22 +3827,22 @@ core-js "^3.8.2" global "^4.4.0" -"@storybook/client-logger@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.5.13.tgz#83f332dd9bb4ff1696d16b0cc24561df90905264" - integrity sha512-F2SMW3LWFGXLm2ENTwTitrLWJgmMXRf3CWQXdN2EbkNCIBHy5Zcbt+91K4OX8e2e5h9gjGfrdYbyYDYOoUCEfA== +"@storybook/client-logger@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.5.14.tgz#ec178f31e70969ae22399ce4207c05e4f1d480a8" + integrity sha512-r1pY69DGKzX9/GngkudthaaPxPlka16zjG7Y58psunwcoUuH3riAP1cjqhXt5+S8FKCNI/MGb82PLlCPX2Liuw== dependencies: core-js "^3.8.2" global "^4.4.0" -"@storybook/components@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.5.13.tgz#a05fc969458760b348d640f26c2cad310ab35030" - integrity sha512-6Hhx70JK5pGfKCkqMU4yq/BBH+vRTmzj7tZKfPwba+f8VmTMoOr/2ysTQFRtXryiHB6Z15xBYgfq5x2pIwQzLQ== +"@storybook/components@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.5.14.tgz#e4d35b689674a16d88d0d16f50319865387497dd" + integrity sha512-wqB9CF3sjxtgffnDW1G/W5SsKumsFQ0ftn/3PdrsvKULu5LM5bjNEqC2cTCWrk9vQhj+EVQxzdVM/BlPl/lSwg== dependencies: - "@storybook/client-logger" "6.5.13" + "@storybook/client-logger" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/theming" "6.5.13" + "@storybook/theming" "6.5.14" core-js "^3.8.2" memoizerific "^1.11.3" qs "^6.10.0" @@ -3858,21 +3863,21 @@ regenerator-runtime "^0.13.7" util-deprecate "^1.0.2" -"@storybook/core-client@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.5.13.tgz#5e2a155af5773c4211a0e1fcd72e0cefea52b7ae" - integrity sha512-YuELbRokTBdqjbx/R4/7O4rou9kvbBIOJjlUkor9hdLLuJ3P0yGianERGNkZFfvcfMBAxU0p52o7QvDldSR3kA== +"@storybook/core-client@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.5.14.tgz#ff8bd155750ca4644dba7e8ac53ed3ad1c414bda" + integrity sha512-d5mUgz1xSvrAdal8XKI5YOZOM/XUly90vis3DboeZRO58qSp+NH5xFYIBBED5qefDgmGU0Yv4rXHQlph96LSHQ== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/channel-postmessage" "6.5.13" - "@storybook/channel-websocket" "6.5.13" - "@storybook/client-api" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/channel-postmessage" "6.5.14" + "@storybook/channel-websocket" "6.5.14" + "@storybook/client-api" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/preview-web" "6.5.13" - "@storybook/store" "6.5.13" - "@storybook/ui" "6.5.13" + "@storybook/preview-web" "6.5.14" + "@storybook/store" "6.5.14" + "@storybook/ui" "6.5.14" airbnb-js-shims "^2.2.1" ansi-to-html "^0.6.11" core-js "^3.8.2" @@ -3884,10 +3889,10 @@ unfetch "^4.2.0" util-deprecate "^1.0.2" -"@storybook/core-common@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.5.13.tgz#941fe2aea3326c2d524d095870a4150b9f9b1845" - integrity sha512-+DVZrRsteE9pw0X5MNffkdBgejQnbnL+UOG3qXkE9xxUamQALnuqS/w1BzpHE9WmOHuf7RWMKflyQEW3OLKAJg== +"@storybook/core-common@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.5.14.tgz#162f321d0c3011ece84b324f584c641c474e20d9" + integrity sha512-MrxhYXYrtN6z/+tydjPkCIwDQm5q8Jx+w4TPdLKBZu7vzfp6T3sT12Ym96j9MJ42CvE4vSDl/Njbw6C0D+yEVw== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -3911,7 +3916,7 @@ "@babel/preset-react" "^7.12.10" "@babel/preset-typescript" "^7.12.7" "@babel/register" "^7.12.1" - "@storybook/node-logger" "6.5.13" + "@storybook/node-logger" "6.5.14" "@storybook/semver" "^7.3.2" "@types/node" "^14.0.10 || ^16.0.0" "@types/pretty-hrtime" "^1.0.0" @@ -3947,30 +3952,30 @@ dependencies: core-js "^3.8.2" -"@storybook/core-events@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.5.13.tgz#a8c0cc92694f09981ca6501d5c5ef328db18db8a" - integrity sha512-kL745tPpRKejzHToA3/CoBNbI+NPRVk186vGxXBmk95OEg0TlwgQExP8BnqEtLlRZMbW08e4+6kilc1M1M4N5w== +"@storybook/core-events@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.5.14.tgz#5b4f94d336cd14f0e8e213a0f3cf9a098c45d1dc" + integrity sha512-PLu0M8Mqt9ruN5RupgcFKHEybiSm3CdWQyylWO5FRGg+WZV3BCm0aI8ujvO1GAm+YEi57Lull+M9d6NUycTpRg== dependencies: core-js "^3.8.2" -"@storybook/core-server@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.5.13.tgz#5f0f13b73122f73b9d27962616815305da2a5b28" - integrity sha512-vs7tu3kAnFwuINio1p87WyqDNlFyZESmeh9s7vvrZVbe/xS/ElqDscr9DT5seW+jbtxufAaHsx+JUTver1dheQ== +"@storybook/core-server@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.5.14.tgz#ba9ca39b41879aa657c524e3c0ac4c7b1abe9bbd" + integrity sha512-+Z3lHEsDpiBXt6xBwU5AVBoEkicndnHoiLwhEGPkfixy7POYEEny3cm54tteVxV8O5AHMwsHs54/QD+hHxAXnQ== dependencies: "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-webpack4" "6.5.13" - "@storybook/core-client" "6.5.13" - "@storybook/core-common" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/builder-webpack4" "6.5.14" + "@storybook/core-client" "6.5.14" + "@storybook/core-common" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/csf-tools" "6.5.13" - "@storybook/manager-webpack4" "6.5.13" - "@storybook/node-logger" "6.5.13" + "@storybook/csf-tools" "6.5.14" + "@storybook/manager-webpack4" "6.5.14" + "@storybook/node-logger" "6.5.14" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.13" - "@storybook/telemetry" "6.5.13" + "@storybook/store" "6.5.14" + "@storybook/telemetry" "6.5.14" "@types/node" "^14.0.10 || ^16.0.0" "@types/node-fetch" "^2.5.7" "@types/pretty-hrtime" "^1.0.0" @@ -4005,18 +4010,18 @@ ws "^8.2.3" x-default-browser "^0.4.0" -"@storybook/core@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.5.13.tgz#4c657c5d8d243f1187dad8763a275d555426957e" - integrity sha512-kw1lCgbsxzUimGww6t5rmuWJmFPe9kGGyzIqvj4RC4BBcEsP40LEu9XhSfvnb8vTOLIULFZeZpdRFfJs4TYbUw== +"@storybook/core@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.5.14.tgz#8fa21c7539e2ffe8f9601d9542b0e627f7f9a349" + integrity sha512-5rjwZXk++NkKWCmHt/CC+h2L4ZbOYkLJpMmaB97CwgQCA6kaF8xuJqlAwG72VUH3oV+6RntW02X6/ypgX1atPw== dependencies: - "@storybook/core-client" "6.5.13" - "@storybook/core-server" "6.5.13" + "@storybook/core-client" "6.5.14" + "@storybook/core-server" "6.5.14" -"@storybook/csf-tools@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.5.13.tgz#cb5cd26083a594bf31b19a66a250ad94863822f6" - integrity sha512-63Ev+VmBqzwSwfUzbuXOLKBD5dMTK2zBYLQ9anTVw70FuTikwTsGIbPgb098K0vsxRCgxl7KM7NpivHqtZtdjw== +"@storybook/csf-tools@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.5.14.tgz#fe36c8570c1f9e27aa4536f09a729a61598a1255" + integrity sha512-PgCKgyfD6UD9aNilDxmKJRbCZwcZl8t8Orb6+vVGuzB5f0BV92NqnHS4sgAlFoZ+iqcQGUEU9vRIdUxNcyItaw== dependencies: "@babel/core" "^7.12.10" "@babel/generator" "^7.12.11" @@ -4040,33 +4045,33 @@ dependencies: lodash "^4.17.15" -"@storybook/docs-tools@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-6.5.13.tgz#00c7041ac7bc827d12731face909351a5af0cb3f" - integrity sha512-hB+hk+895ny4SW84j3X5iV55DHs3bCfTOp7cDdcZJdQrlm0wuDb4A6d4ffNC7ZLh9VkUjU6ST4VEV5Bb0Cptow== +"@storybook/docs-tools@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-6.5.14.tgz#68d9c156cdc80a906570807f1d116be103032656" + integrity sha512-qA0UWvrZ7XyIWD+01NGHiiGPSbfercrxjphM9wHgF6KrO6e5iykNKIEL4elsM+EV4szfhlalQdtpnwM7WtXODA== dependencies: "@babel/core" "^7.12.10" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.13" + "@storybook/store" "6.5.14" core-js "^3.8.2" doctrine "^3.0.0" lodash "^4.17.21" regenerator-runtime "^0.13.7" -"@storybook/manager-webpack4@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.5.13.tgz#73350ac3e8a10494158df3c1ea01dd7f329bec8e" - integrity sha512-pURzS5W3XM0F7bCBWzpl7TRsuy+OXFwLXiWLaexuvo0POZe31Ueo2A1R4rx3MT5Iee8O9mYvG2XTmvK9MlLefQ== +"@storybook/manager-webpack4@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.5.14.tgz#92cd3d34b9e28d7edd215b1e79b1f0757fb66eba" + integrity sha512-ixfJuaG0eiOlxn4i+LJNRUZkm+3WMsiaGUm0hw2XHF0pW3cBIA/+HyzkEwVh/fROHbsOERTkjNl0Ygl12Imw9w== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.5.13" - "@storybook/core-client" "6.5.13" - "@storybook/core-common" "6.5.13" - "@storybook/node-logger" "6.5.13" - "@storybook/theming" "6.5.13" - "@storybook/ui" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/core-client" "6.5.14" + "@storybook/core-common" "6.5.14" + "@storybook/node-logger" "6.5.14" + "@storybook/theming" "6.5.14" + "@storybook/ui" "6.5.14" "@types/node" "^14.0.10 || ^16.0.0" "@types/webpack" "^4.41.26" babel-loader "^8.0.0" @@ -4094,20 +4099,20 @@ webpack-dev-middleware "^3.7.3" webpack-virtual-modules "^0.2.2" -"@storybook/manager-webpack5@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/manager-webpack5/-/manager-webpack5-6.5.13.tgz#3d88d4ec7dfce6413da944e94e28f3b7a1af4b51" - integrity sha512-lQEZacSfeRsbqfJE7TVk35Hm1vkr0I2i1pyYqM+4862gRbMh1nJQXbJ5GqZ+Fo/bf0ZfyFZ32jGDIJAFdlpkuQ== +"@storybook/manager-webpack5@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/manager-webpack5/-/manager-webpack5-6.5.14.tgz#a45e9400ff9e8af96e989bedcf2a68c78b4c55cd" + integrity sha512-Z9uXhaBPpUhbLEYkZVm95vKSmyxXk+DLqa1apAQEmHz3EBMTNk/2n0aZnNnsspYzjNP6wvXWT0sGyXG6yhX2cw== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.5.13" - "@storybook/core-client" "6.5.13" - "@storybook/core-common" "6.5.13" - "@storybook/node-logger" "6.5.13" - "@storybook/theming" "6.5.13" - "@storybook/ui" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/core-client" "6.5.14" + "@storybook/core-common" "6.5.14" + "@storybook/node-logger" "6.5.14" + "@storybook/theming" "6.5.14" + "@storybook/ui" "6.5.14" "@types/node" "^14.0.10 || ^16.0.0" babel-loader "^8.0.0" case-sensitive-paths-webpack-plugin "^2.3.0" @@ -4149,10 +4154,10 @@ prettier ">=2.2.1 <=2.3.0" ts-dedent "^2.0.0" -"@storybook/node-logger@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.5.13.tgz#f4833ae220efe841747c4fead26419d6625af8d9" - integrity sha512-/r5aVZAqZRoy5FyNk/G4pj7yKJd3lJfPbAaOHVROv2IF7PJP/vtRaDkcfh0g2U6zwuDxGIqSn80j+qoEli9m5A== +"@storybook/node-logger@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.5.14.tgz#5d85c475c0afd4124f86fae559bcb35db92f35b2" + integrity sha512-MbEEgUEfrDN8Y0vzZJqPcxwWvX0l8zAsXy6d/DORP2AmwuNmnWTy++BE9YhxH6HMdM1ivRDmBbT30+KBUWhnUA== dependencies: "@types/npmlog" "^4.1.2" chalk "^4.1.0" @@ -4160,10 +4165,10 @@ npmlog "^5.0.1" pretty-hrtime "^1.0.3" -"@storybook/postinstall@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.5.13.tgz#b57b68682b853fd451061c06becd1eff18a75cf8" - integrity sha512-qmqP39FGIP5NdhXC5IpAs9cFoYx9fg1psoQKwb9snYb98eVQU31uHc1W2MBUh3lG4AjAm7pQaXJci7ti4jOh3g== +"@storybook/postinstall@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.5.14.tgz#492d45008c39c4274dfc1a69ef5f31981e913f99" + integrity sha512-vtnQczSSkz7aPIc2dsDaZWlCDAcJb258KGXk72w7MEY9/zLlr6tdQLI30B6SkRNFnR8fQQf4H2gbFq/GM0EF5A== dependencies: core-js "^3.8.2" @@ -4179,17 +4184,17 @@ pnp-webpack-plugin "^1.7.0" semver "^7.3.5" -"@storybook/preview-web@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.5.13.tgz#332cac4c95e3fd760c9eb8448dfa50fdb3b6255b" - integrity sha512-GNNYVzw4SmRua3dOc52Ye6Us4iQbq5GKQ56U3iwnzZM3TBdJB+Rft94Fn1/pypHujEHS8hl5Xgp9td6C1lLCow== +"@storybook/preview-web@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.5.14.tgz#acfd5e3ba72a00405f9ad5925a9a7844b36602c4" + integrity sha512-ey2E7222xw0itPgCWH7ZIrdgM1yCdYte/QxRvwv/O4us4SUs/RQaL1aoCD+hCRwd0BNyZUk/u1KnqB4y0MnHww== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/channel-postmessage" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/channel-postmessage" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/store" "6.5.13" + "@storybook/store" "6.5.14" ansi-to-html "^0.6.11" core-js "^3.8.2" global "^4.4.0" @@ -4214,24 +4219,24 @@ react-docgen-typescript "^2.1.1" tslib "^2.0.0" -"@storybook/react@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.5.13.tgz#9b02c4515b6c6a13ce92f1bb4869c20c8ae05dfa" - integrity sha512-4gO8qihEkVZ8RNm9iQd7G2iZz4rRAHizJ6T5m58Sn21fxfyg9zAMzhgd0JzXuPXR8lTTj4AvRyPv1Qx7b43smg== +"@storybook/react@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.5.14.tgz#9e5a93958c410c3f9d21374e30f68ac2960a9c91" + integrity sha512-SL0P5czN3g/IZAYw8ur9I/O8MPZI7Lyd46Pw+B1f7+Ou8eLmhqa8Uc8+3fU6v7ohtUDwsBiTsg3TAfTVEPog4A== dependencies: "@babel/preset-flow" "^7.12.1" "@babel/preset-react" "^7.12.10" "@pmmmwh/react-refresh-webpack-plugin" "^0.5.3" - "@storybook/addons" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/core" "6.5.13" - "@storybook/core-common" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/core" "6.5.14" + "@storybook/core-common" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" - "@storybook/docs-tools" "6.5.13" - "@storybook/node-logger" "6.5.13" + "@storybook/docs-tools" "6.5.14" + "@storybook/node-logger" "6.5.14" "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.5.13" + "@storybook/store" "6.5.14" "@types/estree" "^0.0.51" "@types/node" "^14.14.20 || ^16.0.0" "@types/webpack-env" "^1.16.0" @@ -4266,12 +4271,12 @@ qs "^6.10.0" regenerator-runtime "^0.13.7" -"@storybook/router@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.5.13.tgz#c8bfed96f2343b097d416cfc95194038365fce94" - integrity sha512-sf5aogfirH5ucD0d0hc2mKf2iyWsZsvXhr5kjxUQmgkcoflkGUWhc34sbSQVRQ1i8K5lkLIDH/q2s1Zr2SbzhQ== +"@storybook/router@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.5.14.tgz#8cb959c8cfece2a948cd6a4e14ac0fa1cece3095" + integrity sha512-AvHbpRUAHnzm5pmwFPjDR09uPjQITD6kA0QNa2pe+7/Q/b4k40z5dHvHZJ/YhWhwVwGqGBG20KdDOl30wLXAZw== dependencies: - "@storybook/client-logger" "6.5.13" + "@storybook/client-logger" "6.5.14" core-js "^3.8.2" memoizerific "^1.11.3" qs "^6.10.0" @@ -4285,30 +4290,30 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.5.13.tgz#40e6e42888b8c12b43a505ffa6c6f1f2cebb0b0d" - integrity sha512-tHuM8PfeB/0m+JigbaFp+Ld0euFH+fgOObH2W9rjEXy5vnwmaeex/JAdCprv4oL+LcDQEERqNULUUNIvbcTPAg== +"@storybook/source-loader@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.5.14.tgz#cf4e78166a40edd7dd3df3563face750f70c29df" + integrity sha512-0GKMZ6IMVGxfQn/RYdRdnzxCe4+zZsxHBY9SQB2bbYWyfjJQ5rCJvmYQuMAuuuUmXBv9gk50iJLwai+lb4tbFg== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/client-logger" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/client-logger" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" estraverse "^5.2.0" global "^4.4.0" - loader-utils "^2.0.0" + loader-utils "^2.0.4" lodash "^4.17.21" prettier ">=2.2.1 <=2.3.0" regenerator-runtime "^0.13.7" -"@storybook/store@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.5.13.tgz#0281bdf0e24c880f85ea75ae47b6a84e8545b5f8" - integrity sha512-GG6lm+8fBX1tNUnX7x3raBOjYhhf14bPWLtYiPlxDTFEMs3sJte7zWKZq6NQ79MoBLL6jjzTeolBfDCBw6fiWQ== +"@storybook/store@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.5.14.tgz#92b67aac8c6a55beff934e135937a1c6e1e77879" + integrity sha512-s07Vw4nbShPYwBJmVXzptuyCkrDQD3khcrKB5L7NsHHgWsm2QI0OyiPMuMbSvgipjcMc/oRqdL3tFUeFak9EMg== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/core-events" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/core-events" "6.5.14" "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -4322,13 +4327,13 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/telemetry@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-6.5.13.tgz#a190001f679ce7899c72b53710765685281fe567" - integrity sha512-PFJEfGbunmfFWabD3rdCF8EHH+45578OHOkMPpXJjqXl94vPQxUH2XTVKQgEQJbYrgX0Vx9Z4tSkdMHuzYDbWQ== +"@storybook/telemetry@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-6.5.14.tgz#b2e8a99ed36fc97451a1f695792a79605b5f7746" + integrity sha512-AVSw7WyKHrVbXMSZZ0fvg3oAb8xAS7OrmNU6++yUfbuqpF0JNtNkNnRSaJ4Nh7Vujzloy5jYhbpfY44nb/hsCw== dependencies: - "@storybook/client-logger" "6.5.13" - "@storybook/core-common" "6.5.13" + "@storybook/client-logger" "6.5.14" + "@storybook/core-common" "6.5.14" chalk "^4.1.0" core-js "^3.8.2" detect-package-manager "^2.0.1" @@ -4350,30 +4355,30 @@ memoizerific "^1.11.3" regenerator-runtime "^0.13.7" -"@storybook/theming@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.5.13.tgz#3f905eb9f72ddc28d096384290999057987f3083" - integrity sha512-oif5NGFAUQhizo50r+ctw2hZNLWV4dPHai+L/gFvbaSeRBeHSNkIcMoZ2FlrO566HdGZTDutYXcR+xus8rI28g== +"@storybook/theming@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.5.14.tgz#4cc7e568b9641112f35abe0606cc6925952cb647" + integrity sha512-3ff6RLZGaIil/AFJ0/BRlE2hhdPrC5v6wGbRfroZVmGldRCxio/7+KAA3LH6cuHnjK5MeBcCBaHuxzXqGmbEFw== dependencies: - "@storybook/client-logger" "6.5.13" + "@storybook/client-logger" "6.5.14" core-js "^3.8.2" memoizerific "^1.11.3" regenerator-runtime "^0.13.7" -"@storybook/ui@6.5.13": - version "6.5.13" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.5.13.tgz#16b25fd839cdafc2b9989c548bc1ffb711b33dee" - integrity sha512-MklJuSg4Bc+MWjwhZVmZhJaucaeEBUMMa2V9oRWbIgZOdRHqdW72S2vCbaarDAYfBQdnfaoq1GkSQiw+EnWOzA== +"@storybook/ui@6.5.14": + version "6.5.14" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.5.14.tgz#8c03a37917adc0060b077d3acb7f0064ace68083" + integrity sha512-dXlCIULh8ytgdFrvVoheQLlZjAyyYmGCuw+6m+s+2yF/oUbFREG/5Zo9hDwlJ4ZiAyqNLkuwg2tnMYtjapZSog== dependencies: - "@storybook/addons" "6.5.13" - "@storybook/api" "6.5.13" - "@storybook/channels" "6.5.13" - "@storybook/client-logger" "6.5.13" - "@storybook/components" "6.5.13" - "@storybook/core-events" "6.5.13" - "@storybook/router" "6.5.13" + "@storybook/addons" "6.5.14" + "@storybook/api" "6.5.14" + "@storybook/channels" "6.5.14" + "@storybook/client-logger" "6.5.14" + "@storybook/components" "6.5.14" + "@storybook/core-events" "6.5.14" + "@storybook/router" "6.5.14" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.5.13" + "@storybook/theming" "6.5.14" core-js "^3.8.2" memoizerific "^1.11.3" qs "^6.10.0" @@ -5008,10 +5013,10 @@ expect "^29.0.0" pretty-format "^29.0.0" -"@types/jest@29.2.3": - version "29.2.3" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.3.tgz#f5fd88e43e5a9e4221ca361e23790d48fcf0a211" - integrity sha512-6XwoEbmatfyoCjWRX7z0fKMmgYKe9+/HrviJ5k0X/tjJWHGAezZOfYaxqQKuzG/TvQyr+ktjm4jgbk0s4/oF2w== +"@types/jest@29.2.4": + version "29.2.4" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.4.tgz#9c155c4b81c9570dbd183eb8604aa0ae80ba5a5b" + integrity sha512-PipFB04k2qTRPePduVLTRiPzQfvMeLwUN3Z21hsAKaB/W9IIzgB2pizCL466ftJlcyZqnHoC9ZHpxLGl3fS86A== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -5083,10 +5088,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.25.tgz#527051f3c2f77aa52e5dc74e45a3da5fb2301448" integrity sha512-wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w== -"@types/node@18.11.10": - version "18.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.10.tgz#4c64759f3c2343b7e6c4b9caf761c7a3a05cee34" - integrity sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ== +"@types/node@18.11.11": + version "18.11.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.11.tgz#1d455ac0211549a8409d3cdb371cd55cc971e8dc" + integrity sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g== "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0": version "16.11.15" @@ -5175,10 +5180,10 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@18.0.25": - version "18.0.25" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.25.tgz#8b1dcd7e56fe7315535a4af25435e0bb55c8ae44" - integrity sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g== +"@types/react@18.0.26": + version "18.0.26" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" + integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -12124,10 +12129,10 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -lint-staged@13.0.4: - version "13.0.4" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.0.4.tgz#c4b4391280c35165b805ad43304ba01f733067a0" - integrity sha512-HxlHCXoYRsq9QCby5wFozmZW00hMs/9e3l+/dz6Qr8Kle4UH0kJTdABAbqhzG+3pcG6QjL9kz7NgGBfph+a5dw== +lint-staged@13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.0.tgz#d4c61aec939e789e489fa51987ec5207b50fd37e" + integrity sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ== dependencies: cli-truncate "^3.1.0" colorette "^2.0.19" @@ -12206,6 +12211,15 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" +loader-utils@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + loader-utils@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz" @@ -16744,10 +16758,10 @@ storybook-addon-react-router-v6@0.2.1: dependencies: react-inspector "^5.1.1" -storybook-dark-mode@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/storybook-dark-mode/-/storybook-dark-mode-1.1.2.tgz#2ba3ab912cdd03a76a560408de1883eb378cb04c" - integrity sha512-L5QjJN49bl+ktprM6faMkTeW+LCvuMYWQaRo8/JGSMmzomIjLT7Yo20UiTsnMgMYyYWYF5O4EK/F3OvjDNp8tQ== +storybook-dark-mode@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/storybook-dark-mode/-/storybook-dark-mode-2.0.3.tgz#828610f006909a306466820fd25cd8b17f1ce645" + integrity sha512-UhFZ3truqDsI6N6KgrrTWjd3/2eAH+KhMCxXu9ytP/nSPhUb59HURAREh7LNEx61vZ/sbUY8w+uDswogUCFHLg== dependencies: "@storybook/addons" "^6.0.0" "@storybook/api" "^6.0.0"