This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

chore: set up storybook

+1787 -176
+126 -129
eslint.config.mjs
··· 1 + // For more info, see https://github.com/storybookjs/eslint-plugin-storybook#configuration-flat-config-format 2 + import storybook from "eslint-plugin-storybook"; 3 + 1 4 import js from '@eslint/js'; 2 5 import prettierPlugin from 'eslint-plugin-prettier'; 3 6 import tseslint from '@typescript-eslint/eslint-plugin'; 4 7 import tsparser from '@typescript-eslint/parser'; 5 8 6 - export default [ 7 - js.configs.recommended, 8 - { 9 - ignores: [ 10 - 'src/webapp/**', 11 - 'dist/**', 12 - 'node_modules/**', 13 - 'src/modules/atproto/infrastructure/lexicon/**', 14 - 'src/webapp/next-env.d.ts', 15 - ], 9 + export default [js.configs.recommended, { 10 + ignores: [ 11 + 'src/webapp/**', 12 + 'dist/**', 13 + 'node_modules/**', 14 + 'src/modules/atproto/infrastructure/lexicon/**', 15 + 'src/webapp/next-env.d.ts', 16 + ], 17 + }, { 18 + files: ['**/*.js'], 19 + languageOptions: { 20 + ecmaVersion: 2022, 21 + sourceType: 'script', 22 + globals: { 23 + console: 'readonly', 24 + process: 'readonly', 25 + Buffer: 'readonly', 26 + __dirname: 'readonly', 27 + __filename: 'readonly', 28 + module: 'readonly', 29 + require: 'readonly', 30 + exports: 'readonly', 31 + global: 'readonly', 32 + setTimeout: 'readonly', 33 + }, 16 34 }, 17 - { 18 - files: ['**/*.js'], 19 - languageOptions: { 20 - ecmaVersion: 2022, 21 - sourceType: 'script', 22 - globals: { 23 - console: 'readonly', 24 - process: 'readonly', 25 - Buffer: 'readonly', 26 - __dirname: 'readonly', 27 - __filename: 'readonly', 28 - module: 'readonly', 29 - require: 'readonly', 30 - exports: 'readonly', 31 - global: 'readonly', 32 - setTimeout: 'readonly', 33 - }, 35 + plugins: { 36 + prettier: prettierPlugin, 37 + }, 38 + rules: { 39 + 'prettier/prettier': 'error', 40 + 'no-unused-vars': 'warn', 41 + 'no-console': 'warn', 42 + }, 43 + }, { 44 + files: ['**/*.ts'], 45 + plugins: { 46 + '@typescript-eslint': tseslint, 47 + prettier: prettierPlugin, 48 + }, 49 + languageOptions: { 50 + parser: tsparser, 51 + ecmaVersion: 2022, 52 + sourceType: 'module', 53 + globals: { 54 + console: 'readonly', 55 + process: 'readonly', 56 + Buffer: 'readonly', 57 + __dirname: 'readonly', 58 + __filename: 'readonly', 59 + module: 'readonly', 60 + require: 'readonly', 61 + exports: 'readonly', 62 + global: 'readonly', 63 + fetch: 'readonly', 64 + // Jest globals 65 + describe: 'readonly', 66 + test: 'readonly', 67 + it: 'readonly', 68 + expect: 'readonly', 69 + beforeAll: 'readonly', 70 + beforeEach: 'readonly', 71 + afterAll: 'readonly', 72 + afterEach: 'readonly', 73 + jest: 'readonly', 74 + URLSearchParams: 'readonly', 75 + setTimeout: 'readonly', 76 + NodeJS: 'readonly', 77 + clearTimeout: 'readonly', 78 + setImmediate: 'readonly', 79 + setInterval: 'readonly', 80 + clearInterval: 'readonly', 81 + URL: 'readonly', 34 82 }, 35 - plugins: { 36 - prettier: prettierPlugin, 37 - }, 38 - rules: { 39 - 'prettier/prettier': 'error', 40 - 'no-unused-vars': 'warn', 41 - 'no-console': 'warn', 83 + }, 84 + rules: { 85 + 'prettier/prettier': 'error', 86 + 'no-unused-vars': 'off', // Turn off base rule 87 + '@typescript-eslint/no-unused-vars': 'warn', 88 + 'no-console': 'warn', 89 + }, 90 + }, { 91 + files: ['**/*.test.ts', '**/*.spec.ts'], 92 + languageOptions: { 93 + parser: tsparser, 94 + ecmaVersion: 2022, 95 + sourceType: 'module', 96 + globals: { 97 + console: 'readonly', 98 + process: 'readonly', 99 + Buffer: 'readonly', 100 + __dirname: 'readonly', 101 + __filename: 'readonly', 102 + module: 'readonly', 103 + require: 'readonly', 104 + exports: 'readonly', 105 + global: 'readonly', 106 + fetch: 'readonly', 107 + // Jest globals 108 + describe: 'readonly', 109 + test: 'readonly', 110 + it: 'readonly', 111 + expect: 'readonly', 112 + beforeAll: 'readonly', 113 + beforeEach: 'readonly', 114 + afterAll: 'readonly', 115 + afterEach: 'readonly', 116 + jest: 'readonly', 117 + // Browser globals for e2e tests using Playwright 118 + document: 'readonly', 119 + window: 'readonly', 120 + navigator: 'readonly', 121 + location: 'readonly', 122 + setTimeout: 'readonly', 123 + NodeJS: 'readonly', 124 + clearTimeout: 'readonly', 42 125 }, 43 126 }, 44 - { 45 - files: ['**/*.ts'], 46 - plugins: { 47 - '@typescript-eslint': tseslint, 48 - prettier: prettierPlugin, 49 - }, 50 - languageOptions: { 51 - parser: tsparser, 52 - ecmaVersion: 2022, 53 - sourceType: 'module', 54 - globals: { 55 - console: 'readonly', 56 - process: 'readonly', 57 - Buffer: 'readonly', 58 - __dirname: 'readonly', 59 - __filename: 'readonly', 60 - module: 'readonly', 61 - require: 'readonly', 62 - exports: 'readonly', 63 - global: 'readonly', 64 - fetch: 'readonly', 65 - // Jest globals 66 - describe: 'readonly', 67 - test: 'readonly', 68 - it: 'readonly', 69 - expect: 'readonly', 70 - beforeAll: 'readonly', 71 - beforeEach: 'readonly', 72 - afterAll: 'readonly', 73 - afterEach: 'readonly', 74 - jest: 'readonly', 75 - URLSearchParams: 'readonly', 76 - setTimeout: 'readonly', 77 - NodeJS: 'readonly', 78 - clearTimeout: 'readonly', 79 - setImmediate: 'readonly', 80 - setInterval: 'readonly', 81 - clearInterval: 'readonly', 82 - URL: 'readonly', 83 - }, 84 - }, 85 - rules: { 86 - 'prettier/prettier': 'error', 87 - 'no-unused-vars': 'off', // Turn off base rule 88 - '@typescript-eslint/no-unused-vars': 'warn', 89 - 'no-console': 'warn', 90 - }, 127 + plugins: { 128 + '@typescript-eslint': tseslint, 129 + prettier: prettierPlugin, 91 130 }, 92 - { 93 - files: ['**/*.test.ts', '**/*.spec.ts'], 94 - languageOptions: { 95 - parser: tsparser, 96 - ecmaVersion: 2022, 97 - sourceType: 'module', 98 - globals: { 99 - console: 'readonly', 100 - process: 'readonly', 101 - Buffer: 'readonly', 102 - __dirname: 'readonly', 103 - __filename: 'readonly', 104 - module: 'readonly', 105 - require: 'readonly', 106 - exports: 'readonly', 107 - global: 'readonly', 108 - fetch: 'readonly', 109 - // Jest globals 110 - describe: 'readonly', 111 - test: 'readonly', 112 - it: 'readonly', 113 - expect: 'readonly', 114 - beforeAll: 'readonly', 115 - beforeEach: 'readonly', 116 - afterAll: 'readonly', 117 - afterEach: 'readonly', 118 - jest: 'readonly', 119 - // Browser globals for e2e tests using Playwright 120 - document: 'readonly', 121 - window: 'readonly', 122 - navigator: 'readonly', 123 - location: 'readonly', 124 - setTimeout: 'readonly', 125 - NodeJS: 'readonly', 126 - clearTimeout: 'readonly', 127 - }, 128 - }, 129 - plugins: { 130 - '@typescript-eslint': tseslint, 131 - prettier: prettierPlugin, 132 - }, 133 - rules: { 134 - 'prettier/prettier': 'error', 135 - 'no-unused-vars': 'off', 136 - '@typescript-eslint/no-unused-vars': 'warn', 137 - 'no-console': 'warn', 138 - }, 131 + rules: { 132 + 'prettier/prettier': 'error', 133 + 'no-unused-vars': 'off', 134 + '@typescript-eslint/no-unused-vars': 'warn', 135 + 'no-console': 'warn', 139 136 }, 140 - ]; 137 + }, ...storybook.configs["flat/recommended"]];
+1514 -20
package-lock.json
··· 79 79 "typescript": "^5.8.3" 80 80 } 81 81 }, 82 + "node_modules/@adobe/css-tools": { 83 + "version": "4.4.4", 84 + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", 85 + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", 86 + "dev": true, 87 + "license": "MIT" 88 + }, 82 89 "node_modules/@ampproject/remapping": { 83 90 "version": "2.3.0", 84 91 "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", ··· 1262 1269 } 1263 1270 }, 1264 1271 "node_modules/@babel/helper-validator-identifier": { 1265 - "version": "7.27.1", 1266 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", 1267 - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", 1272 + "version": "7.28.5", 1273 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", 1274 + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", 1268 1275 "devOptional": true, 1276 + "license": "MIT", 1269 1277 "engines": { 1270 1278 "node": ">=6.9.0" 1271 1279 } ··· 1293 1301 } 1294 1302 }, 1295 1303 "node_modules/@babel/parser": { 1296 - "version": "7.28.4", 1297 - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", 1298 - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", 1304 + "version": "7.29.2", 1305 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", 1306 + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", 1299 1307 "devOptional": true, 1308 + "license": "MIT", 1300 1309 "dependencies": { 1301 - "@babel/types": "^7.28.4" 1310 + "@babel/types": "^7.29.0" 1302 1311 }, 1303 1312 "bin": { 1304 1313 "parser": "bin/babel-parser.js" ··· 1570 1579 } 1571 1580 }, 1572 1581 "node_modules/@babel/types": { 1573 - "version": "7.28.4", 1574 - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", 1575 - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", 1582 + "version": "7.29.0", 1583 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", 1584 + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", 1576 1585 "devOptional": true, 1586 + "license": "MIT", 1577 1587 "dependencies": { 1578 1588 "@babel/helper-string-parser": "^7.27.1", 1579 - "@babel/helper-validator-identifier": "^7.27.1" 1589 + "@babel/helper-validator-identifier": "^7.28.5" 1580 1590 }, 1581 1591 "engines": { 1582 1592 "node": ">=6.9.0" ··· 1588 1598 "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==", 1589 1599 "dev": true 1590 1600 }, 1601 + "node_modules/@bcoe/v8-coverage": { 1602 + "version": "1.0.2", 1603 + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", 1604 + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", 1605 + "dev": true, 1606 + "license": "MIT", 1607 + "engines": { 1608 + "node": ">=18" 1609 + } 1610 + }, 1611 + "node_modules/@blazediff/core": { 1612 + "version": "1.9.1", 1613 + "resolved": "https://registry.npmjs.org/@blazediff/core/-/core-1.9.1.tgz", 1614 + "integrity": "sha512-ehg3jIkYKulZh+8om/O25vkvSsXXwC+skXmyA87FFx6A/45eqOkZsBltMw/TVteb0mloiGT8oGRTcjRAz66zaA==", 1615 + "dev": true, 1616 + "license": "MIT" 1617 + }, 1591 1618 "node_modules/@cbor-extract/cbor-extract-darwin-arm64": { 1592 1619 "version": "2.2.0", 1593 1620 "resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz", ··· 1659 1686 "os": [ 1660 1687 "win32" 1661 1688 ] 1689 + }, 1690 + "node_modules/@chromatic-com/storybook": { 1691 + "version": "5.1.2", 1692 + "resolved": "https://registry.npmjs.org/@chromatic-com/storybook/-/storybook-5.1.2.tgz", 1693 + "integrity": "sha512-H/hgvwC3E+OtseP2OT2QYUJH2VfnzT6wM3pWOkaNV6g7QI+VUdWJbeJ3o2jFqvEPQNqzhQKWDOlvM4lu+7is6g==", 1694 + "dev": true, 1695 + "license": "MIT", 1696 + "dependencies": { 1697 + "@neoconfetti/react": "^1.0.0", 1698 + "chromatic": "^13.3.4", 1699 + "filesize": "^10.0.12", 1700 + "jsonfile": "^6.1.0", 1701 + "strip-ansi": "^7.1.0" 1702 + }, 1703 + "engines": { 1704 + "node": ">=20.0.0", 1705 + "yarn": ">=1.22.18" 1706 + }, 1707 + "peerDependencies": { 1708 + "storybook": "^0.0.0-0 || ^10.1.0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0" 1709 + } 1662 1710 }, 1663 1711 "node_modules/@cosmik.network/semble-pds-client": { 1664 1712 "resolved": "src/packages/semble-pds-client", ··· 4768 4816 "@emnapi/runtime": "^1.4.3", 4769 4817 "@tybys/wasm-util": "^0.10.0" 4770 4818 } 4819 + }, 4820 + "node_modules/@neoconfetti/react": { 4821 + "version": "1.0.0", 4822 + "resolved": "https://registry.npmjs.org/@neoconfetti/react/-/react-1.0.0.tgz", 4823 + "integrity": "sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==", 4824 + "dev": true, 4825 + "license": "MIT" 4771 4826 }, 4772 4827 "node_modules/@next/env": { 4773 4828 "version": "15.5.14", ··· 9678 9733 "node": ">=12" 9679 9734 } 9680 9735 }, 9736 + "node_modules/@polka/url": { 9737 + "version": "1.0.0-next.29", 9738 + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", 9739 + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", 9740 + "dev": true, 9741 + "license": "MIT" 9742 + }, 9681 9743 "node_modules/@posthog/core": { 9682 9744 "version": "1.23.1", 9683 9745 "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.23.1.tgz", ··· 10094 10156 "dev": true, 10095 10157 "license": "MIT" 10096 10158 }, 10159 + "node_modules/@rollup/pluginutils": { 10160 + "version": "5.3.0", 10161 + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", 10162 + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", 10163 + "dev": true, 10164 + "license": "MIT", 10165 + "dependencies": { 10166 + "@types/estree": "^1.0.0", 10167 + "estree-walker": "^2.0.2", 10168 + "picomatch": "^4.0.2" 10169 + }, 10170 + "engines": { 10171 + "node": ">=14.0.0" 10172 + }, 10173 + "peerDependencies": { 10174 + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" 10175 + }, 10176 + "peerDependenciesMeta": { 10177 + "rollup": { 10178 + "optional": true 10179 + } 10180 + } 10181 + }, 10182 + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { 10183 + "version": "2.0.2", 10184 + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 10185 + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 10186 + "dev": true, 10187 + "license": "MIT" 10188 + }, 10097 10189 "node_modules/@rollup/rollup-android-arm-eabi": { 10098 10190 "version": "4.60.1", 10099 10191 "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz", ··· 10708 10800 "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", 10709 10801 "license": "MIT" 10710 10802 }, 10803 + "node_modules/@storybook/addon-a11y": { 10804 + "version": "10.3.6", 10805 + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-10.3.6.tgz", 10806 + "integrity": "sha512-cbwXIT5CeHZ9AFbTKQ6YB7Ct6TAl/kKOgALbvzzVtFfRvm51JYygGaiJaB7PbPWn9wgJP2olJcFt+erlEc6cRw==", 10807 + "dev": true, 10808 + "license": "MIT", 10809 + "dependencies": { 10810 + "@storybook/global": "^5.0.0", 10811 + "axe-core": "^4.2.0" 10812 + }, 10813 + "funding": { 10814 + "type": "opencollective", 10815 + "url": "https://opencollective.com/storybook" 10816 + }, 10817 + "peerDependencies": { 10818 + "storybook": "^10.3.6" 10819 + } 10820 + }, 10821 + "node_modules/@storybook/addon-docs": { 10822 + "version": "10.3.6", 10823 + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-10.3.6.tgz", 10824 + "integrity": "sha512-TvIdADVPtauxW0LzXIpIv7X6GxwetorhyNh+6+7MHC27XSBCWVxxRUwL63YeLlHTuXsIk0quG3b1xgwVRzWOJA==", 10825 + "dev": true, 10826 + "license": "MIT", 10827 + "dependencies": { 10828 + "@mdx-js/react": "^3.0.0", 10829 + "@storybook/csf-plugin": "10.3.6", 10830 + "@storybook/icons": "^2.0.1", 10831 + "@storybook/react-dom-shim": "10.3.6", 10832 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 10833 + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 10834 + "ts-dedent": "^2.0.0" 10835 + }, 10836 + "funding": { 10837 + "type": "opencollective", 10838 + "url": "https://opencollective.com/storybook" 10839 + }, 10840 + "peerDependencies": { 10841 + "storybook": "^10.3.6" 10842 + } 10843 + }, 10844 + "node_modules/@storybook/addon-docs/node_modules/@storybook/csf-plugin": { 10845 + "version": "10.3.6", 10846 + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.3.6.tgz", 10847 + "integrity": "sha512-9kBf7VRdRqTSIYo+rPtVn5yjYYyK8kP2QhEYx3oiXvfwy4RexmbJnhk/tXa/lNiTqukA1TqaWQ2+5MqF4fu6YQ==", 10848 + "dev": true, 10849 + "license": "MIT", 10850 + "dependencies": { 10851 + "unplugin": "^2.3.5" 10852 + }, 10853 + "funding": { 10854 + "type": "opencollective", 10855 + "url": "https://opencollective.com/storybook" 10856 + }, 10857 + "peerDependencies": { 10858 + "esbuild": "*", 10859 + "rollup": "*", 10860 + "storybook": "^10.3.6", 10861 + "vite": "*", 10862 + "webpack": "*" 10863 + }, 10864 + "peerDependenciesMeta": { 10865 + "esbuild": { 10866 + "optional": true 10867 + }, 10868 + "rollup": { 10869 + "optional": true 10870 + }, 10871 + "vite": { 10872 + "optional": true 10873 + }, 10874 + "webpack": { 10875 + "optional": true 10876 + } 10877 + } 10878 + }, 10879 + "node_modules/@storybook/addon-onboarding": { 10880 + "version": "10.3.6", 10881 + "resolved": "https://registry.npmjs.org/@storybook/addon-onboarding/-/addon-onboarding-10.3.6.tgz", 10882 + "integrity": "sha512-Tys9eOFzCkBygfDWVRa2hpTQI5Y1HQt9ybkJIHdR16GASQ3fhyXVULHVRmGQLEGN+3n84JGvlU8CN9S/OBB1IQ==", 10883 + "dev": true, 10884 + "license": "MIT", 10885 + "funding": { 10886 + "type": "opencollective", 10887 + "url": "https://opencollective.com/storybook" 10888 + }, 10889 + "peerDependencies": { 10890 + "storybook": "^10.3.6" 10891 + } 10892 + }, 10893 + "node_modules/@storybook/addon-vitest": { 10894 + "version": "10.3.6", 10895 + "resolved": "https://registry.npmjs.org/@storybook/addon-vitest/-/addon-vitest-10.3.6.tgz", 10896 + "integrity": "sha512-HXj7RrPJY+xzoNjL+xZu2oLw1fI5BA87Noh1NAXMPuECHR5R5fuRM/tTsJuIGXHFMO06FjSi/rekDIfCj1fL4w==", 10897 + "dev": true, 10898 + "license": "MIT", 10899 + "dependencies": { 10900 + "@storybook/global": "^5.0.0", 10901 + "@storybook/icons": "^2.0.1" 10902 + }, 10903 + "funding": { 10904 + "type": "opencollective", 10905 + "url": "https://opencollective.com/storybook" 10906 + }, 10907 + "peerDependencies": { 10908 + "@vitest/browser": "^3.0.0 || ^4.0.0", 10909 + "@vitest/browser-playwright": "^4.0.0", 10910 + "@vitest/runner": "^3.0.0 || ^4.0.0", 10911 + "storybook": "^10.3.6", 10912 + "vitest": "^3.0.0 || ^4.0.0" 10913 + }, 10914 + "peerDependenciesMeta": { 10915 + "@vitest/browser": { 10916 + "optional": true 10917 + }, 10918 + "@vitest/browser-playwright": { 10919 + "optional": true 10920 + }, 10921 + "@vitest/runner": { 10922 + "optional": true 10923 + }, 10924 + "vitest": { 10925 + "optional": true 10926 + } 10927 + } 10928 + }, 10929 + "node_modules/@storybook/global": { 10930 + "version": "5.0.0", 10931 + "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", 10932 + "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", 10933 + "dev": true, 10934 + "license": "MIT" 10935 + }, 10936 + "node_modules/@storybook/icons": { 10937 + "version": "2.0.1", 10938 + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.0.1.tgz", 10939 + "integrity": "sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==", 10940 + "dev": true, 10941 + "license": "MIT", 10942 + "peerDependencies": { 10943 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 10944 + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" 10945 + } 10946 + }, 10947 + "node_modules/@storybook/react-dom-shim": { 10948 + "version": "10.3.6", 10949 + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.3.6.tgz", 10950 + "integrity": "sha512-/Tu1gPu+Fw+zOnAGmxRmOD30FX3a04LxcTAKflEtdpmtIMVR5bA3qpjy+f5YhoyDCecbXyKmL1OeIU2FIIZHqQ==", 10951 + "dev": true, 10952 + "license": "MIT", 10953 + "funding": { 10954 + "type": "opencollective", 10955 + "url": "https://opencollective.com/storybook" 10956 + }, 10957 + "peerDependencies": { 10958 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 10959 + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 10960 + "storybook": "^10.3.6" 10961 + } 10962 + }, 10711 10963 "node_modules/@svgr/babel-plugin-add-jsx-attribute": { 10712 10964 "version": "6.5.1", 10713 10965 "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", ··· 11411 11663 "dev": true, 11412 11664 "license": "MIT" 11413 11665 }, 11666 + "node_modules/@testing-library/jest-dom": { 11667 + "version": "6.9.1", 11668 + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", 11669 + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", 11670 + "dev": true, 11671 + "license": "MIT", 11672 + "dependencies": { 11673 + "@adobe/css-tools": "^4.4.0", 11674 + "aria-query": "^5.0.0", 11675 + "css.escape": "^1.5.1", 11676 + "dom-accessibility-api": "^0.6.3", 11677 + "picocolors": "^1.1.1", 11678 + "redent": "^3.0.0" 11679 + }, 11680 + "engines": { 11681 + "node": ">=14", 11682 + "npm": ">=6", 11683 + "yarn": ">=1" 11684 + } 11685 + }, 11686 + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { 11687 + "version": "0.6.3", 11688 + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", 11689 + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", 11690 + "dev": true, 11691 + "license": "MIT" 11692 + }, 11414 11693 "node_modules/@testing-library/react": { 11415 11694 "version": "16.3.2", 11416 11695 "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", ··· 11625 11904 "@types/node": "*", 11626 11905 "@types/ssh2": "*" 11627 11906 } 11907 + }, 11908 + "node_modules/@types/doctrine": { 11909 + "version": "0.0.9", 11910 + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz", 11911 + "integrity": "sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==", 11912 + "dev": true, 11913 + "license": "MIT" 11628 11914 }, 11629 11915 "node_modules/@types/estree": { 11630 11916 "version": "1.0.8", ··· 11900 12186 "resolved": "https://registry.npmjs.org/@types/relateurl/-/relateurl-0.2.33.tgz", 11901 12187 "integrity": "sha512-bTQCKsVbIdzLqZhLkF5fcJQreE4y1ro4DIyVrlDNSCJRRwHhB8Z+4zXXa8jN6eDvc2HbRsEYgbvrnGvi54EpSw==", 11902 12188 "dev": true 12189 + }, 12190 + "node_modules/@types/resolve": { 12191 + "version": "1.20.6", 12192 + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.6.tgz", 12193 + "integrity": "sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==", 12194 + "dev": true, 12195 + "license": "MIT" 11903 12196 }, 11904 12197 "node_modules/@types/send": { 11905 12198 "version": "1.2.0", ··· 12611 12904 } 12612 12905 } 12613 12906 }, 12907 + "node_modules/@vitest/browser": { 12908 + "version": "4.1.5", 12909 + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.1.5.tgz", 12910 + "integrity": "sha512-iCDGI8c4yg+xmjUg2VsygdAUSIIB4x5Rht/P68OXy1hPELKXHDkzh87lkuTcdYmemRChDkEpB426MmDjzC0ziA==", 12911 + "dev": true, 12912 + "license": "MIT", 12913 + "peer": true, 12914 + "dependencies": { 12915 + "@blazediff/core": "1.9.1", 12916 + "@vitest/mocker": "4.1.5", 12917 + "@vitest/utils": "4.1.5", 12918 + "magic-string": "^0.30.21", 12919 + "pngjs": "^7.0.0", 12920 + "sirv": "^3.0.2", 12921 + "tinyrainbow": "^3.1.0", 12922 + "ws": "^8.19.0" 12923 + }, 12924 + "funding": { 12925 + "url": "https://opencollective.com/vitest" 12926 + }, 12927 + "peerDependencies": { 12928 + "vitest": "4.1.5" 12929 + } 12930 + }, 12931 + "node_modules/@vitest/browser-playwright": { 12932 + "version": "4.1.5", 12933 + "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.5.tgz", 12934 + "integrity": "sha512-CWy0lBQJq97nionyJJdnaU4961IXTl43a7UCu5nHy51IoKxAt6PVIJLo+76rVl7KOOgcWHNkG4kbJu/pW7knvA==", 12935 + "dev": true, 12936 + "license": "MIT", 12937 + "peer": true, 12938 + "dependencies": { 12939 + "@vitest/browser": "4.1.5", 12940 + "@vitest/mocker": "4.1.5", 12941 + "tinyrainbow": "^3.1.0" 12942 + }, 12943 + "funding": { 12944 + "url": "https://opencollective.com/vitest" 12945 + }, 12946 + "peerDependencies": { 12947 + "playwright": "*", 12948 + "vitest": "4.1.5" 12949 + }, 12950 + "peerDependenciesMeta": { 12951 + "playwright": { 12952 + "optional": false 12953 + } 12954 + } 12955 + }, 12956 + "node_modules/@vitest/browser-playwright/node_modules/@vitest/mocker": { 12957 + "version": "4.1.5", 12958 + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.5.tgz", 12959 + "integrity": "sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==", 12960 + "dev": true, 12961 + "license": "MIT", 12962 + "dependencies": { 12963 + "@vitest/spy": "4.1.5", 12964 + "estree-walker": "^3.0.3", 12965 + "magic-string": "^0.30.21" 12966 + }, 12967 + "funding": { 12968 + "url": "https://opencollective.com/vitest" 12969 + }, 12970 + "peerDependencies": { 12971 + "msw": "^2.4.9", 12972 + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" 12973 + }, 12974 + "peerDependenciesMeta": { 12975 + "msw": { 12976 + "optional": true 12977 + }, 12978 + "vite": { 12979 + "optional": true 12980 + } 12981 + } 12982 + }, 12983 + "node_modules/@vitest/browser/node_modules/@vitest/mocker": { 12984 + "version": "4.1.5", 12985 + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.5.tgz", 12986 + "integrity": "sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==", 12987 + "dev": true, 12988 + "license": "MIT", 12989 + "dependencies": { 12990 + "@vitest/spy": "4.1.5", 12991 + "estree-walker": "^3.0.3", 12992 + "magic-string": "^0.30.21" 12993 + }, 12994 + "funding": { 12995 + "url": "https://opencollective.com/vitest" 12996 + }, 12997 + "peerDependencies": { 12998 + "msw": "^2.4.9", 12999 + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" 13000 + }, 13001 + "peerDependenciesMeta": { 13002 + "msw": { 13003 + "optional": true 13004 + }, 13005 + "vite": { 13006 + "optional": true 13007 + } 13008 + } 13009 + }, 13010 + "node_modules/@vitest/coverage-v8": { 13011 + "version": "4.1.5", 13012 + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.5.tgz", 13013 + "integrity": "sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==", 13014 + "dev": true, 13015 + "license": "MIT", 13016 + "peer": true, 13017 + "dependencies": { 13018 + "@bcoe/v8-coverage": "^1.0.2", 13019 + "@vitest/utils": "4.1.5", 13020 + "ast-v8-to-istanbul": "^1.0.0", 13021 + "istanbul-lib-coverage": "^3.2.2", 13022 + "istanbul-lib-report": "^3.0.1", 13023 + "istanbul-reports": "^3.2.0", 13024 + "magicast": "^0.5.2", 13025 + "obug": "^2.1.1", 13026 + "std-env": "^4.0.0-rc.1", 13027 + "tinyrainbow": "^3.1.0" 13028 + }, 13029 + "funding": { 13030 + "url": "https://opencollective.com/vitest" 13031 + }, 13032 + "peerDependencies": { 13033 + "@vitest/browser": "4.1.5", 13034 + "vitest": "4.1.5" 13035 + }, 13036 + "peerDependenciesMeta": { 13037 + "@vitest/browser": { 13038 + "optional": true 13039 + } 13040 + } 13041 + }, 12614 13042 "node_modules/@vitest/expect": { 12615 13043 "version": "4.1.5", 12616 13044 "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.5.tgz", ··· 12648 13076 "integrity": "sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==", 12649 13077 "dev": true, 12650 13078 "license": "MIT", 13079 + "peer": true, 12651 13080 "dependencies": { 12652 13081 "@vitest/utils": "4.1.5", 12653 13082 "pathe": "^2.0.3" ··· 12826 13255 "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", 12827 13256 "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==", 12828 13257 "devOptional": true 13258 + }, 13259 + "node_modules/@webcontainer/env": { 13260 + "version": "1.1.1", 13261 + "resolved": "https://registry.npmjs.org/@webcontainer/env/-/env-1.1.1.tgz", 13262 + "integrity": "sha512-6aN99yL695Hi9SuIk1oC88l9o0gmxL1nGWWQ/kNy81HigJ0FoaoTXpytCj6ItzgyCEwA9kF1wixsTuv5cjsgng==", 13263 + "dev": true, 13264 + "license": "MIT" 12829 13265 }, 12830 13266 "node_modules/3d-force-graph": { 12831 13267 "version": "1.79.1", ··· 13381 13817 "node": ">=12" 13382 13818 } 13383 13819 }, 13820 + "node_modules/ast-types": { 13821 + "version": "0.16.1", 13822 + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", 13823 + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", 13824 + "dev": true, 13825 + "license": "MIT", 13826 + "dependencies": { 13827 + "tslib": "^2.0.1" 13828 + }, 13829 + "engines": { 13830 + "node": ">=4" 13831 + } 13832 + }, 13384 13833 "node_modules/ast-types-flow": { 13385 13834 "version": "0.0.8", 13386 13835 "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", 13387 13836 "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", 13388 13837 "dev": true 13389 13838 }, 13839 + "node_modules/ast-v8-to-istanbul": { 13840 + "version": "1.0.0", 13841 + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.0.tgz", 13842 + "integrity": "sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==", 13843 + "dev": true, 13844 + "license": "MIT", 13845 + "dependencies": { 13846 + "@jridgewell/trace-mapping": "^0.3.31", 13847 + "estree-walker": "^3.0.3", 13848 + "js-tokens": "^10.0.0" 13849 + } 13850 + }, 13390 13851 "node_modules/astring": { 13391 13852 "version": "1.9.0", 13392 13853 "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", ··· 14107 14568 "uuid": "^11.1.0" 14108 14569 } 14109 14570 }, 14571 + "node_modules/bundle-name": { 14572 + "version": "4.1.0", 14573 + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", 14574 + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", 14575 + "dev": true, 14576 + "license": "MIT", 14577 + "dependencies": { 14578 + "run-applescript": "^7.0.0" 14579 + }, 14580 + "engines": { 14581 + "node": ">=18" 14582 + }, 14583 + "funding": { 14584 + "url": "https://github.com/sponsors/sindresorhus" 14585 + } 14586 + }, 14110 14587 "node_modules/bundle-require": { 14111 14588 "version": "5.1.0", 14112 14589 "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz", ··· 14448 14925 "integrity": "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==", 14449 14926 "dev": true 14450 14927 }, 14928 + "node_modules/check-error": { 14929 + "version": "2.1.3", 14930 + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", 14931 + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", 14932 + "dev": true, 14933 + "license": "MIT", 14934 + "engines": { 14935 + "node": ">= 16" 14936 + } 14937 + }, 14451 14938 "node_modules/cheerio": { 14452 14939 "version": "1.1.2", 14453 14940 "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.1.2.tgz", ··· 14637 15124 "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", 14638 15125 "dev": true 14639 15126 }, 15127 + "node_modules/chromatic": { 15128 + "version": "13.3.5", 15129 + "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-13.3.5.tgz", 15130 + "integrity": "sha512-MzPhxpl838qJUo0A55osCF2ifwPbjcIPeElr1d4SHcjnHoIcg7l1syJDrAYK/a+PcCBrOGi06jPNpQAln5hWgw==", 15131 + "dev": true, 15132 + "license": "MIT", 15133 + "bin": { 15134 + "chroma": "dist/bin.js", 15135 + "chromatic": "dist/bin.js", 15136 + "chromatic-cli": "dist/bin.js" 15137 + }, 15138 + "peerDependencies": { 15139 + "@chromatic-com/cypress": "^0.*.* || ^1.0.0", 15140 + "@chromatic-com/playwright": "^0.*.* || ^1.0.0" 15141 + }, 15142 + "peerDependenciesMeta": { 15143 + "@chromatic-com/cypress": { 15144 + "optional": true 15145 + }, 15146 + "@chromatic-com/playwright": { 15147 + "optional": true 15148 + } 15149 + } 15150 + }, 14640 15151 "node_modules/chrome-trace-event": { 14641 15152 "version": "1.0.4", 14642 15153 "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", ··· 15342 15853 "url": "https://github.com/sponsors/fb55" 15343 15854 } 15344 15855 }, 15856 + "node_modules/css.escape": { 15857 + "version": "1.5.1", 15858 + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", 15859 + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", 15860 + "dev": true, 15861 + "license": "MIT" 15862 + }, 15345 15863 "node_modules/cssesc": { 15346 15864 "version": "3.0.0", 15347 15865 "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", ··· 15753 16271 "node": ">=0.10.0" 15754 16272 } 15755 16273 }, 16274 + "node_modules/deep-eql": { 16275 + "version": "5.0.2", 16276 + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", 16277 + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", 16278 + "dev": true, 16279 + "license": "MIT", 16280 + "engines": { 16281 + "node": ">=6" 16282 + } 16283 + }, 15756 16284 "node_modules/deep-extend": { 15757 16285 "version": "0.6.0", 15758 16286 "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", ··· 15777 16305 "node": ">=0.10.0" 15778 16306 } 15779 16307 }, 16308 + "node_modules/default-browser": { 16309 + "version": "5.5.0", 16310 + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", 16311 + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", 16312 + "dev": true, 16313 + "license": "MIT", 16314 + "dependencies": { 16315 + "bundle-name": "^4.1.0", 16316 + "default-browser-id": "^5.0.0" 16317 + }, 16318 + "engines": { 16319 + "node": ">=18" 16320 + }, 16321 + "funding": { 16322 + "url": "https://github.com/sponsors/sindresorhus" 16323 + } 16324 + }, 16325 + "node_modules/default-browser-id": { 16326 + "version": "5.0.1", 16327 + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", 16328 + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", 16329 + "dev": true, 16330 + "license": "MIT", 16331 + "engines": { 16332 + "node": ">=18" 16333 + }, 16334 + "funding": { 16335 + "url": "https://github.com/sponsors/sindresorhus" 16336 + } 16337 + }, 15780 16338 "node_modules/defer-to-connect": { 15781 16339 "version": "2.0.1", 15782 16340 "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", ··· 15801 16359 }, 15802 16360 "funding": { 15803 16361 "url": "https://github.com/sponsors/ljharb" 16362 + } 16363 + }, 16364 + "node_modules/define-lazy-prop": { 16365 + "version": "3.0.0", 16366 + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", 16367 + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", 16368 + "dev": true, 16369 + "license": "MIT", 16370 + "engines": { 16371 + "node": ">=12" 16372 + }, 16373 + "funding": { 16374 + "url": "https://github.com/sponsors/sindresorhus" 15804 16375 } 15805 16376 }, 15806 16377 "node_modules/define-properties": { ··· 16413 16984 "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 16414 16985 "dev": true 16415 16986 }, 16987 + "node_modules/empathic": { 16988 + "version": "2.0.0", 16989 + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz", 16990 + "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==", 16991 + "dev": true, 16992 + "license": "MIT", 16993 + "engines": { 16994 + "node": ">=14" 16995 + } 16996 + }, 16416 16997 "node_modules/encodeurl": { 16417 16998 "version": "2.0.0", 16418 16999 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", ··· 17257 17838 "semver": "bin/semver.js" 17258 17839 } 17259 17840 }, 17841 + "node_modules/eslint-plugin-storybook": { 17842 + "version": "10.3.6", 17843 + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-10.3.6.tgz", 17844 + "integrity": "sha512-8udrL+Rmp5LFaZvgRe4J226X1MYls25bWCyHuzR5X8s2qbFTryX+wKC+o/0Ato4A1AvwnDg8OOMPc6yWJ9JpcA==", 17845 + "dev": true, 17846 + "license": "MIT", 17847 + "dependencies": { 17848 + "@typescript-eslint/utils": "^8.48.0" 17849 + }, 17850 + "peerDependencies": { 17851 + "eslint": ">=8", 17852 + "storybook": "^10.3.6" 17853 + } 17854 + }, 17260 17855 "node_modules/eslint-scope": { 17261 17856 "version": "8.4.0", 17262 17857 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", ··· 17888 18483 "node": ">=10" 17889 18484 } 17890 18485 }, 18486 + "node_modules/filesize": { 18487 + "version": "10.1.6", 18488 + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz", 18489 + "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==", 18490 + "dev": true, 18491 + "license": "BSD-3-Clause", 18492 + "engines": { 18493 + "node": ">= 10.4.0" 18494 + } 18495 + }, 17891 18496 "node_modules/fill-range": { 17892 18497 "version": "7.1.1", 17893 18498 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", ··· 18421 19026 "engines": { 18422 19027 "node": ">= 4" 18423 19028 } 19029 + }, 19030 + "node_modules/globrex": { 19031 + "version": "0.1.2", 19032 + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", 19033 + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", 19034 + "dev": true, 19035 + "license": "MIT" 18424 19036 }, 18425 19037 "node_modules/gopd": { 18426 19038 "version": "1.2.0", ··· 19040 19652 "node": ">=0.8.19" 19041 19653 } 19042 19654 }, 19655 + "node_modules/indent-string": { 19656 + "version": "4.0.0", 19657 + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", 19658 + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", 19659 + "dev": true, 19660 + "license": "MIT", 19661 + "engines": { 19662 + "node": ">=8" 19663 + } 19664 + }, 19043 19665 "node_modules/index-array-by": { 19044 19666 "version": "1.4.2", 19045 19667 "resolved": "https://registry.npmjs.org/index-array-by/-/index-array-by-1.4.2.tgz", ··· 19344 19966 "url": "https://github.com/sponsors/wooorm" 19345 19967 } 19346 19968 }, 19969 + "node_modules/is-docker": { 19970 + "version": "3.0.0", 19971 + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", 19972 + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", 19973 + "dev": true, 19974 + "license": "MIT", 19975 + "bin": { 19976 + "is-docker": "cli.js" 19977 + }, 19978 + "engines": { 19979 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 19980 + }, 19981 + "funding": { 19982 + "url": "https://github.com/sponsors/sindresorhus" 19983 + } 19984 + }, 19347 19985 "node_modules/is-extglob": { 19348 19986 "version": "2.1.1", 19349 19987 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", ··· 19431 20069 "url": "https://github.com/sponsors/wooorm" 19432 20070 } 19433 20071 }, 20072 + "node_modules/is-inside-container": { 20073 + "version": "1.0.0", 20074 + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", 20075 + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", 20076 + "dev": true, 20077 + "license": "MIT", 20078 + "dependencies": { 20079 + "is-docker": "^3.0.0" 20080 + }, 20081 + "bin": { 20082 + "is-inside-container": "cli.js" 20083 + }, 20084 + "engines": { 20085 + "node": ">=14.16" 20086 + }, 20087 + "funding": { 20088 + "url": "https://github.com/sponsors/sindresorhus" 20089 + } 20090 + }, 19434 20091 "node_modules/is-json": { 19435 20092 "version": "2.0.1", 19436 20093 "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", ··· 19690 20347 "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", 19691 20348 "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", 19692 20349 "dev": true 20350 + }, 20351 + "node_modules/is-wsl": { 20352 + "version": "3.1.1", 20353 + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", 20354 + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", 20355 + "dev": true, 20356 + "license": "MIT", 20357 + "dependencies": { 20358 + "is-inside-container": "^1.0.0" 20359 + }, 20360 + "engines": { 20361 + "node": ">=16" 20362 + }, 20363 + "funding": { 20364 + "url": "https://github.com/sponsors/sindresorhus" 20365 + } 19693 20366 }, 19694 20367 "node_modules/isarray": { 19695 20368 "version": "2.0.5", ··· 20520 21193 "node": ">=10" 20521 21194 } 20522 21195 }, 21196 + "node_modules/js-tokens": { 21197 + "version": "10.0.0", 21198 + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", 21199 + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", 21200 + "dev": true, 21201 + "license": "MIT" 21202 + }, 20523 21203 "node_modules/js-yaml": { 20524 21204 "version": "4.1.1", 20525 21205 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", ··· 20831 21511 "resolved": "https://registry.npmjs.org/less/-/less-4.4.2.tgz", 20832 21512 "integrity": "sha512-j1n1IuTX1VQjIy3tT7cyGbX7nvQOsFLoIqobZv4ttI5axP923gA44zUj6miiA6R5Aoms4sEGVIIcucXUbRI14g==", 20833 21513 "dev": true, 20834 - "peer": true, 20835 21514 "dependencies": { 20836 21515 "copy-anything": "^2.0.1", 20837 21516 "parse-node-version": "^1.0.1", ··· 21406 22085 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 21407 22086 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 21408 22087 }, 22088 + "node_modules/loupe": { 22089 + "version": "3.2.1", 22090 + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", 22091 + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", 22092 + "dev": true, 22093 + "license": "MIT" 22094 + }, 21409 22095 "node_modules/lowercase-keys": { 21410 22096 "version": "3.0.0", 21411 22097 "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", ··· 21451 22137 "@jridgewell/sourcemap-codec": "^1.5.5" 21452 22138 } 21453 22139 }, 22140 + "node_modules/magicast": { 22141 + "version": "0.5.2", 22142 + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz", 22143 + "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", 22144 + "dev": true, 22145 + "license": "MIT", 22146 + "dependencies": { 22147 + "@babel/parser": "^7.29.0", 22148 + "@babel/types": "^7.29.0", 22149 + "source-map-js": "^1.2.1" 22150 + } 22151 + }, 21454 22152 "node_modules/make-dir": { 21455 22153 "version": "4.0.0", 21456 22154 "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", ··· 22380 23078 "dom-walk": "^0.1.0" 22381 23079 } 22382 23080 }, 23081 + "node_modules/min-indent": { 23082 + "version": "1.0.1", 23083 + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 23084 + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 23085 + "dev": true, 23086 + "license": "MIT", 23087 + "engines": { 23088 + "node": ">=4" 23089 + } 23090 + }, 22383 23091 "node_modules/minimatch": { 22384 23092 "version": "9.0.9", 22385 23093 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", ··· 22405 23113 } 22406 23114 }, 22407 23115 "node_modules/minipass": { 22408 - "version": "7.1.2", 22409 - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", 22410 - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", 23116 + "version": "7.1.3", 23117 + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", 23118 + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", 22411 23119 "dev": true, 23120 + "license": "BlueOak-1.0.0", 22412 23121 "engines": { 22413 23122 "node": ">=16 || 14 >=14.17" 22414 23123 } ··· 22449 23158 "integrity": "sha512-kysx9gAGbvrzuFYxKkcRjnsg/NK61ovJOV4F1cHTRl9T5leg+bo6WI0pWIvOFh1Z/yDL0cjA5R3EEGPPLDv/XA==", 22450 23159 "dev": true 22451 23160 }, 23161 + "node_modules/module-alias": { 23162 + "version": "2.3.4", 23163 + "resolved": "https://registry.npmjs.org/module-alias/-/module-alias-2.3.4.tgz", 23164 + "integrity": "sha512-bOclZt8hkpuGgSSoG07PKmvzTizROilUTvLNyrMqvlC9snhs7y7GzjNWAVbISIOlhCP1T14rH1PDAV9iNyBq/w==", 23165 + "dev": true, 23166 + "license": "MIT" 23167 + }, 22452 23168 "node_modules/module-details-from-path": { 22453 23169 "version": "1.0.4", 22454 23170 "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz", 22455 23171 "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==" 23172 + }, 23173 + "node_modules/mrmime": { 23174 + "version": "2.0.1", 23175 + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", 23176 + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", 23177 + "dev": true, 23178 + "license": "MIT", 23179 + "engines": { 23180 + "node": ">=10" 23181 + } 22456 23182 }, 22457 23183 "node_modules/ms": { 22458 23184 "version": "2.1.3", ··· 23362 24088 "regex-recursion": "^6.0.2" 23363 24089 } 23364 24090 }, 24091 + "node_modules/open": { 24092 + "version": "10.2.0", 24093 + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", 24094 + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", 24095 + "dev": true, 24096 + "license": "MIT", 24097 + "dependencies": { 24098 + "default-browser": "^5.2.1", 24099 + "define-lazy-prop": "^3.0.0", 24100 + "is-inside-container": "^1.0.0", 24101 + "wsl-utils": "^0.1.0" 24102 + }, 24103 + "engines": { 24104 + "node": ">=18" 24105 + }, 24106 + "funding": { 24107 + "url": "https://github.com/sponsors/sindresorhus" 24108 + } 24109 + }, 23365 24110 "node_modules/optionator": { 23366 24111 "version": "0.9.4", 23367 24112 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", ··· 23704 24449 "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", 23705 24450 "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", 23706 24451 "dev": true 24452 + }, 24453 + "node_modules/pathval": { 24454 + "version": "2.0.1", 24455 + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", 24456 + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", 24457 + "dev": true, 24458 + "license": "MIT", 24459 + "engines": { 24460 + "node": ">= 14.16" 24461 + } 23707 24462 }, 23708 24463 "node_modules/periscopic": { 23709 24464 "version": "3.1.0", ··· 24526 25281 "integrity": "sha512-C8oWjPR3F81yljW9o5OxcWzfh6avkVwDD2VYdwIGqTkl+OGFISgypqzfu7dOe4QNLL2aqcWBmI3PMtLIK233lw==", 24527 25282 "devOptional": true, 24528 25283 "license": "Apache-2.0", 25284 + "peer": true, 24529 25285 "dependencies": { 24530 25286 "playwright-core": "1.59.1" 24531 25287 }, ··· 24566 25322 "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 24567 25323 } 24568 25324 }, 25325 + "node_modules/pngjs": { 25326 + "version": "7.0.0", 25327 + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", 25328 + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", 25329 + "dev": true, 25330 + "license": "MIT", 25331 + "engines": { 25332 + "node": ">=14.19.0" 25333 + } 25334 + }, 24569 25335 "node_modules/polished": { 24570 25336 "version": "4.3.1", 24571 25337 "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", ··· 25310 26076 "node": ">=0.10.0" 25311 26077 } 25312 26078 }, 26079 + "node_modules/react-docgen": { 26080 + "version": "8.0.3", 26081 + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-8.0.3.tgz", 26082 + "integrity": "sha512-aEZ9qP+/M+58x2qgfSFEWH1BxLyHe5+qkLNJOZQb5iGS017jpbRnoKhNRrXPeA6RfBrZO5wZrT9DMC1UqE1f1w==", 26083 + "dev": true, 26084 + "license": "MIT", 26085 + "dependencies": { 26086 + "@babel/core": "^7.28.0", 26087 + "@babel/traverse": "^7.28.0", 26088 + "@babel/types": "^7.28.2", 26089 + "@types/babel__core": "^7.20.5", 26090 + "@types/babel__traverse": "^7.20.7", 26091 + "@types/doctrine": "^0.0.9", 26092 + "@types/resolve": "^1.20.2", 26093 + "doctrine": "^3.0.0", 26094 + "resolve": "^1.22.1", 26095 + "strip-indent": "^4.0.0" 26096 + }, 26097 + "engines": { 26098 + "node": "^20.9.0 || >=22" 26099 + } 26100 + }, 26101 + "node_modules/react-docgen/node_modules/doctrine": { 26102 + "version": "3.0.0", 26103 + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 26104 + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 26105 + "dev": true, 26106 + "license": "Apache-2.0", 26107 + "dependencies": { 26108 + "esutils": "^2.0.2" 26109 + }, 26110 + "engines": { 26111 + "node": ">=6.0.0" 26112 + } 26113 + }, 26114 + "node_modules/react-docgen/node_modules/strip-indent": { 26115 + "version": "4.1.1", 26116 + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.1.1.tgz", 26117 + "integrity": "sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==", 26118 + "dev": true, 26119 + "license": "MIT", 26120 + "engines": { 26121 + "node": ">=12" 26122 + }, 26123 + "funding": { 26124 + "url": "https://github.com/sponsors/sindresorhus" 26125 + } 26126 + }, 25313 26127 "node_modules/react-dom": { 25314 26128 "version": "19.1.0", 25315 26129 "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", ··· 25579 26393 "node": ">= 12.13.0" 25580 26394 } 25581 26395 }, 26396 + "node_modules/recast": { 26397 + "version": "0.23.11", 26398 + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.11.tgz", 26399 + "integrity": "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==", 26400 + "dev": true, 26401 + "license": "MIT", 26402 + "dependencies": { 26403 + "ast-types": "^0.16.1", 26404 + "esprima": "~4.0.0", 26405 + "source-map": "~0.6.1", 26406 + "tiny-invariant": "^1.3.3", 26407 + "tslib": "^2.0.1" 26408 + }, 26409 + "engines": { 26410 + "node": ">= 4" 26411 + } 26412 + }, 26413 + "node_modules/recast/node_modules/source-map": { 26414 + "version": "0.6.1", 26415 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 26416 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 26417 + "dev": true, 26418 + "license": "BSD-3-Clause", 26419 + "engines": { 26420 + "node": ">=0.10.0" 26421 + } 26422 + }, 25582 26423 "node_modules/recma-build-jsx": { 25583 26424 "version": "1.0.0", 25584 26425 "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", ··· 25640 26481 "funding": { 25641 26482 "type": "opencollective", 25642 26483 "url": "https://opencollective.com/unified" 26484 + } 26485 + }, 26486 + "node_modules/redent": { 26487 + "version": "3.0.0", 26488 + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", 26489 + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", 26490 + "dev": true, 26491 + "license": "MIT", 26492 + "dependencies": { 26493 + "indent-string": "^4.0.0", 26494 + "strip-indent": "^3.0.0" 26495 + }, 26496 + "engines": { 26497 + "node": ">=8" 25643 26498 } 25644 26499 }, 25645 26500 "node_modules/redis-errors": { ··· 26010 26865 "integrity": "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==", 26011 26866 "dev": true, 26012 26867 "license": "MIT", 26868 + "peer": true, 26013 26869 "dependencies": { 26014 26870 "@types/estree": "1.0.8" 26015 26871 }, ··· 26070 26926 "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", 26071 26927 "dev": true 26072 26928 }, 26929 + "node_modules/run-applescript": { 26930 + "version": "7.1.0", 26931 + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", 26932 + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", 26933 + "dev": true, 26934 + "license": "MIT", 26935 + "engines": { 26936 + "node": ">=18" 26937 + }, 26938 + "funding": { 26939 + "url": "https://github.com/sponsors/sindresorhus" 26940 + } 26941 + }, 26073 26942 "node_modules/run-async": { 26074 26943 "version": "4.0.6", 26075 26944 "resolved": "https://registry.npmjs.org/run-async/-/run-async-4.0.6.tgz", ··· 26569 27438 "node": ">=10" 26570 27439 } 26571 27440 }, 27441 + "node_modules/sirv": { 27442 + "version": "3.0.2", 27443 + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", 27444 + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", 27445 + "dev": true, 27446 + "license": "MIT", 27447 + "dependencies": { 27448 + "@polka/url": "^1.0.0-next.24", 27449 + "mrmime": "^2.0.0", 27450 + "totalist": "^3.0.0" 27451 + }, 27452 + "engines": { 27453 + "node": ">=18" 27454 + } 27455 + }, 26572 27456 "node_modules/sisteransi": { 26573 27457 "version": "1.0.5", 26574 27458 "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", ··· 26769 27653 "node": ">= 0.4" 26770 27654 } 26771 27655 }, 27656 + "node_modules/storybook": { 27657 + "version": "10.3.6", 27658 + "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.3.6.tgz", 27659 + "integrity": "sha512-vbSz7g/1rGMC1uAULqMZjALkIuLu2QABqfhRYhyr/11kzyesi+vAmwyJLukZP1FfecxGOgMwOh6GS0YsGpHAvQ==", 27660 + "dev": true, 27661 + "license": "MIT", 27662 + "peer": true, 27663 + "dependencies": { 27664 + "@storybook/global": "^5.0.0", 27665 + "@storybook/icons": "^2.0.1", 27666 + "@testing-library/jest-dom": "^6.9.1", 27667 + "@testing-library/user-event": "^14.6.1", 27668 + "@vitest/expect": "3.2.4", 27669 + "@vitest/spy": "3.2.4", 27670 + "@webcontainer/env": "^1.1.1", 27671 + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0", 27672 + "open": "^10.2.0", 27673 + "recast": "^0.23.5", 27674 + "semver": "^7.7.3", 27675 + "use-sync-external-store": "^1.5.0", 27676 + "ws": "^8.18.0" 27677 + }, 27678 + "bin": { 27679 + "storybook": "dist/bin/dispatcher.js" 27680 + }, 27681 + "funding": { 27682 + "type": "opencollective", 27683 + "url": "https://opencollective.com/storybook" 27684 + }, 27685 + "peerDependencies": { 27686 + "prettier": "^2 || ^3", 27687 + "vite-plus": "^0.1.15" 27688 + }, 27689 + "peerDependenciesMeta": { 27690 + "prettier": { 27691 + "optional": true 27692 + }, 27693 + "vite-plus": { 27694 + "optional": true 27695 + } 27696 + } 27697 + }, 27698 + "node_modules/storybook/node_modules/@vitest/expect": { 27699 + "version": "3.2.4", 27700 + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz", 27701 + "integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==", 27702 + "dev": true, 27703 + "license": "MIT", 27704 + "dependencies": { 27705 + "@types/chai": "^5.2.2", 27706 + "@vitest/spy": "3.2.4", 27707 + "@vitest/utils": "3.2.4", 27708 + "chai": "^5.2.0", 27709 + "tinyrainbow": "^2.0.0" 27710 + }, 27711 + "funding": { 27712 + "url": "https://opencollective.com/vitest" 27713 + } 27714 + }, 27715 + "node_modules/storybook/node_modules/@vitest/pretty-format": { 27716 + "version": "3.2.4", 27717 + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz", 27718 + "integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==", 27719 + "dev": true, 27720 + "license": "MIT", 27721 + "dependencies": { 27722 + "tinyrainbow": "^2.0.0" 27723 + }, 27724 + "funding": { 27725 + "url": "https://opencollective.com/vitest" 27726 + } 27727 + }, 27728 + "node_modules/storybook/node_modules/@vitest/spy": { 27729 + "version": "3.2.4", 27730 + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz", 27731 + "integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==", 27732 + "dev": true, 27733 + "license": "MIT", 27734 + "dependencies": { 27735 + "tinyspy": "^4.0.3" 27736 + }, 27737 + "funding": { 27738 + "url": "https://opencollective.com/vitest" 27739 + } 27740 + }, 27741 + "node_modules/storybook/node_modules/@vitest/utils": { 27742 + "version": "3.2.4", 27743 + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz", 27744 + "integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==", 27745 + "dev": true, 27746 + "license": "MIT", 27747 + "dependencies": { 27748 + "@vitest/pretty-format": "3.2.4", 27749 + "loupe": "^3.1.4", 27750 + "tinyrainbow": "^2.0.0" 27751 + }, 27752 + "funding": { 27753 + "url": "https://opencollective.com/vitest" 27754 + } 27755 + }, 27756 + "node_modules/storybook/node_modules/chai": { 27757 + "version": "5.3.3", 27758 + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", 27759 + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", 27760 + "dev": true, 27761 + "license": "MIT", 27762 + "dependencies": { 27763 + "assertion-error": "^2.0.1", 27764 + "check-error": "^2.1.1", 27765 + "deep-eql": "^5.0.1", 27766 + "loupe": "^3.1.0", 27767 + "pathval": "^2.0.0" 27768 + }, 27769 + "engines": { 27770 + "node": ">=18" 27771 + } 27772 + }, 27773 + "node_modules/storybook/node_modules/tinyrainbow": { 27774 + "version": "2.0.0", 27775 + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", 27776 + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", 27777 + "dev": true, 27778 + "license": "MIT", 27779 + "engines": { 27780 + "node": ">=14.0.0" 27781 + } 27782 + }, 26772 27783 "node_modules/streamx": { 26773 27784 "version": "2.23.0", 26774 27785 "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", ··· 27056 28067 "node": ">=6" 27057 28068 } 27058 28069 }, 28070 + "node_modules/strip-indent": { 28071 + "version": "3.0.0", 28072 + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 28073 + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 28074 + "dev": true, 28075 + "license": "MIT", 28076 + "dependencies": { 28077 + "min-indent": "^1.0.0" 28078 + }, 28079 + "engines": { 28080 + "node": ">=8" 28081 + } 28082 + }, 27059 28083 "node_modules/strip-json-comments": { 27060 28084 "version": "3.1.1", 27061 28085 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", ··· 27152 28176 "url": "https://github.com/sponsors/ai" 27153 28177 } 27154 28178 ], 27155 - "peer": true, 27156 28179 "engines": { 27157 28180 "node": ">=18.0" 27158 28181 }, ··· 27541 28564 "three": ">=0.168" 27542 28565 } 27543 28566 }, 28567 + "node_modules/tiny-invariant": { 28568 + "version": "1.3.3", 28569 + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", 28570 + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", 28571 + "dev": true, 28572 + "license": "MIT" 28573 + }, 27544 28574 "node_modules/tinybench": { 27545 28575 "version": "2.9.0", 27546 28576 "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", ··· 27580 28610 "version": "3.1.0", 27581 28611 "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", 27582 28612 "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", 28613 + "dev": true, 28614 + "license": "MIT", 28615 + "engines": { 28616 + "node": ">=14.0.0" 28617 + } 28618 + }, 28619 + "node_modules/tinyspy": { 28620 + "version": "4.0.4", 28621 + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", 28622 + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", 27583 28623 "dev": true, 27584 28624 "license": "MIT", 27585 28625 "engines": { ··· 27655 28695 "node": ">=0.6" 27656 28696 } 27657 28697 }, 28698 + "node_modules/totalist": { 28699 + "version": "3.0.1", 28700 + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", 28701 + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", 28702 + "dev": true, 28703 + "license": "MIT", 28704 + "engines": { 28705 + "node": ">=6" 28706 + } 28707 + }, 27658 28708 "node_modules/touch": { 27659 28709 "version": "3.1.1", 27660 28710 "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", ··· 27734 28784 "typescript": ">=4.8.4" 27735 28785 } 27736 28786 }, 28787 + "node_modules/ts-dedent": { 28788 + "version": "2.2.0", 28789 + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", 28790 + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", 28791 + "dev": true, 28792 + "license": "MIT", 28793 + "engines": { 28794 + "node": ">=6.10" 28795 + } 28796 + }, 27737 28797 "node_modules/ts-interface-checker": { 27738 28798 "version": "0.1.13", 27739 28799 "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", ··· 27803 28863 "code-block-writer": "^13.0.3" 27804 28864 } 27805 28865 }, 28866 + "node_modules/tsconfck": { 28867 + "version": "3.1.6", 28868 + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", 28869 + "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", 28870 + "dev": true, 28871 + "license": "MIT", 28872 + "bin": { 28873 + "tsconfck": "bin/tsconfck.js" 28874 + }, 28875 + "engines": { 28876 + "node": "^18 || >=20" 28877 + }, 28878 + "peerDependencies": { 28879 + "typescript": "^5.0.0" 28880 + }, 28881 + "peerDependenciesMeta": { 28882 + "typescript": { 28883 + "optional": true 28884 + } 28885 + } 28886 + }, 27806 28887 "node_modules/tsconfig-paths": { 27807 28888 "version": "4.2.0", 27808 28889 "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", ··· 28345 29426 "node": ">= 0.8" 28346 29427 } 28347 29428 }, 29429 + "node_modules/unplugin": { 29430 + "version": "2.3.11", 29431 + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", 29432 + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", 29433 + "dev": true, 29434 + "license": "MIT", 29435 + "dependencies": { 29436 + "@jridgewell/remapping": "^2.3.5", 29437 + "acorn": "^8.15.0", 29438 + "picomatch": "^4.0.3", 29439 + "webpack-virtual-modules": "^0.6.2" 29440 + }, 29441 + "engines": { 29442 + "node": ">=18.12.0" 29443 + } 29444 + }, 28348 29445 "node_modules/unrs-resolver": { 28349 29446 "version": "1.11.1", 28350 29447 "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", ··· 28483 29580 "@types/react": { 28484 29581 "optional": true 28485 29582 } 29583 + } 29584 + }, 29585 + "node_modules/use-sync-external-store": { 29586 + "version": "1.6.0", 29587 + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", 29588 + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", 29589 + "dev": true, 29590 + "license": "MIT", 29591 + "peerDependencies": { 29592 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" 28486 29593 } 28487 29594 }, 28488 29595 "node_modules/util-deprecate": { ··· 28579 29686 "integrity": "sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==", 28580 29687 "dev": true, 28581 29688 "license": "MIT", 29689 + "peer": true, 28582 29690 "dependencies": { 28583 29691 "@vitest/expect": "4.1.5", 28584 29692 "@vitest/mocker": "4.1.5", ··· 28860 29968 "engines": { 28861 29969 "node": ">=12" 28862 29970 } 29971 + }, 29972 + "node_modules/webpack-virtual-modules": { 29973 + "version": "0.6.2", 29974 + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", 29975 + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", 29976 + "dev": true, 29977 + "license": "MIT" 28863 29978 }, 28864 29979 "node_modules/whatwg-encoding": { 28865 29980 "version": "3.1.1", ··· 29169 30284 "dev": true 29170 30285 }, 29171 30286 "node_modules/ws": { 29172 - "version": "8.18.3", 29173 - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", 29174 - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", 30287 + "version": "8.20.0", 30288 + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", 30289 + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", 30290 + "license": "MIT", 29175 30291 "engines": { 29176 30292 "node": ">=10.0.0" 29177 30293 }, ··· 29186 30302 "utf-8-validate": { 29187 30303 "optional": true 29188 30304 } 30305 + } 30306 + }, 30307 + "node_modules/wsl-utils": { 30308 + "version": "0.1.0", 30309 + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", 30310 + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", 30311 + "dev": true, 30312 + "license": "MIT", 30313 + "dependencies": { 30314 + "is-wsl": "^3.1.0" 30315 + }, 30316 + "engines": { 30317 + "node": ">=18" 30318 + }, 30319 + "funding": { 30320 + "url": "https://github.com/sponsors/sindresorhus" 29189 30321 } 29190 30322 }, 29191 30323 "node_modules/xhr": { ··· 29274 30406 "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", 29275 30407 "dev": true, 29276 30408 "license": "ISC", 29277 - "peer": true, 29278 30409 "bin": { 29279 30410 "yaml": "bin.mjs" 29280 30411 }, ··· 29524 30655 "web-haptics": "^0.0.6" 29525 30656 }, 29526 30657 "devDependencies": { 30658 + "@chromatic-com/storybook": "^5.1.2", 29527 30659 "@playwright/test": "^1.59.1", 30660 + "@storybook/addon-a11y": "^10.3.6", 30661 + "@storybook/addon-docs": "^10.3.6", 30662 + "@storybook/addon-onboarding": "^10.3.6", 30663 + "@storybook/addon-vitest": "^10.3.6", 30664 + "@storybook/nextjs-vite": "^10.3.6", 29528 30665 "@testing-library/dom": "^10.4.1", 29529 30666 "@testing-library/react": "^16.3.2", 29530 30667 "@testing-library/user-event": "^14.6.1", ··· 29533 30670 "@types/react": "19.2.14", 29534 30671 "@types/react-dom": "19.2.3", 29535 30672 "@vitejs/plugin-react": "^6.0.1", 30673 + "@vitest/browser-playwright": "^4.1.5", 30674 + "@vitest/coverage-v8": "^4.1.5", 29536 30675 "autoprefixer": "^10.4.16", 29537 30676 "eslint": "^9.0.0", 29538 30677 "eslint-config-next": "16.2.3", 30678 + "eslint-plugin-storybook": "^10.3.6", 29539 30679 "jsdom": "^26.1.0", 29540 30680 "plasmo": "^0.90.5", 29541 30681 "postcss": "^8.5.6", 29542 30682 "postcss-preset-mantine": "^1.18.0", 29543 30683 "postcss-simple-vars": "^7.0.1", 30684 + "storybook": "^10.3.6", 29544 30685 "typescript": "^5.3.3", 30686 + "vite": "^8.0.10", 29545 30687 "vitest": "^4.1.5" 29546 30688 } 29547 30689 }, ··· 29805 30947 "node": ">= 10" 29806 30948 } 29807 30949 }, 30950 + "src/webapp/node_modules/@storybook/builder-vite": { 30951 + "version": "10.3.6", 30952 + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-10.3.6.tgz", 30953 + "integrity": "sha512-gpvR/sE4BcrFtmQZ+Ker7zD23oQzoVeqD9nF6cK6yzY+Q0svJXyX2EPmFG4y+EwygD5/vNzDpP84gGMut8VRwg==", 30954 + "dev": true, 30955 + "license": "MIT", 30956 + "dependencies": { 30957 + "@storybook/csf-plugin": "10.3.6", 30958 + "ts-dedent": "^2.0.0" 30959 + }, 30960 + "funding": { 30961 + "type": "opencollective", 30962 + "url": "https://opencollective.com/storybook" 30963 + }, 30964 + "peerDependencies": { 30965 + "storybook": "^10.3.6", 30966 + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" 30967 + } 30968 + }, 30969 + "src/webapp/node_modules/@storybook/csf-plugin": { 30970 + "version": "10.3.6", 30971 + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.3.6.tgz", 30972 + "integrity": "sha512-9kBf7VRdRqTSIYo+rPtVn5yjYYyK8kP2QhEYx3oiXvfwy4RexmbJnhk/tXa/lNiTqukA1TqaWQ2+5MqF4fu6YQ==", 30973 + "dev": true, 30974 + "license": "MIT", 30975 + "dependencies": { 30976 + "unplugin": "^2.3.5" 30977 + }, 30978 + "funding": { 30979 + "type": "opencollective", 30980 + "url": "https://opencollective.com/storybook" 30981 + }, 30982 + "peerDependencies": { 30983 + "esbuild": "*", 30984 + "rollup": "*", 30985 + "storybook": "^10.3.6", 30986 + "vite": "*", 30987 + "webpack": "*" 30988 + }, 30989 + "peerDependenciesMeta": { 30990 + "esbuild": { 30991 + "optional": true 30992 + }, 30993 + "rollup": { 30994 + "optional": true 30995 + }, 30996 + "vite": { 30997 + "optional": true 30998 + }, 30999 + "webpack": { 31000 + "optional": true 31001 + } 31002 + } 31003 + }, 31004 + "src/webapp/node_modules/@storybook/nextjs-vite": { 31005 + "version": "10.3.6", 31006 + "resolved": "https://registry.npmjs.org/@storybook/nextjs-vite/-/nextjs-vite-10.3.6.tgz", 31007 + "integrity": "sha512-X2ExCrrnq319LkOKM5E2ZpeEDFgeUmPNH/v5SQlYA9e3Jmtzs+esObaWEEtUF5pvoxzeszZGEV9zXNFmYaF9Dg==", 31008 + "dev": true, 31009 + "license": "MIT", 31010 + "dependencies": { 31011 + "@storybook/builder-vite": "10.3.6", 31012 + "@storybook/react": "10.3.6", 31013 + "@storybook/react-vite": "10.3.6", 31014 + "styled-jsx": "5.1.6", 31015 + "vite-plugin-storybook-nextjs": "^3.1.9" 31016 + }, 31017 + "funding": { 31018 + "type": "opencollective", 31019 + "url": "https://opencollective.com/storybook" 31020 + }, 31021 + "peerDependencies": { 31022 + "next": "^14.1.0 || ^15.0.0 || ^16.0.0", 31023 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 31024 + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 31025 + "storybook": "^10.3.6", 31026 + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" 31027 + }, 31028 + "peerDependenciesMeta": { 31029 + "typescript": { 31030 + "optional": true 31031 + } 31032 + } 31033 + }, 31034 + "src/webapp/node_modules/@storybook/nextjs-vite/node_modules/@storybook/react": { 31035 + "version": "10.3.6", 31036 + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-10.3.6.tgz", 31037 + "integrity": "sha512-oZQZ6xayWe5IdHmFUTL0TL8rX/gpNNh9gWhT2vzW5eeUvlkVG/RBKdsja6Ndrk2s1D9vcnwiI6r6CNXy3IEEmg==", 31038 + "dev": true, 31039 + "license": "MIT", 31040 + "dependencies": { 31041 + "@storybook/global": "^5.0.0", 31042 + "@storybook/react-dom-shim": "10.3.6", 31043 + "react-docgen": "^8.0.2", 31044 + "react-docgen-typescript": "^2.2.2" 31045 + }, 31046 + "funding": { 31047 + "type": "opencollective", 31048 + "url": "https://opencollective.com/storybook" 31049 + }, 31050 + "peerDependencies": { 31051 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 31052 + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 31053 + "storybook": "^10.3.6", 31054 + "typescript": ">= 4.9.x" 31055 + }, 31056 + "peerDependenciesMeta": { 31057 + "typescript": { 31058 + "optional": true 31059 + } 31060 + } 31061 + }, 31062 + "src/webapp/node_modules/@storybook/nextjs-vite/node_modules/react-docgen-typescript": { 31063 + "version": "2.4.0", 31064 + "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.4.0.tgz", 31065 + "integrity": "sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==", 31066 + "dev": true, 31067 + "license": "MIT", 31068 + "peerDependencies": { 31069 + "typescript": ">= 4.3.x" 31070 + } 31071 + }, 31072 + "src/webapp/node_modules/@storybook/react-vite": { 31073 + "version": "10.3.6", 31074 + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-10.3.6.tgz", 31075 + "integrity": "sha512-tySQRc+8q7V2NkylQMNJjDV8zXy6tkxb8oDqw/DIhHhI9Xn77MTKVZ8Cihbo5NMm7HYTB6xDKr6wqdSMgdufYQ==", 31076 + "dev": true, 31077 + "license": "MIT", 31078 + "dependencies": { 31079 + "@joshwooding/vite-plugin-react-docgen-typescript": "^0.7.0", 31080 + "@rollup/pluginutils": "^5.0.2", 31081 + "@storybook/builder-vite": "10.3.6", 31082 + "@storybook/react": "10.3.6", 31083 + "empathic": "^2.0.0", 31084 + "magic-string": "^0.30.0", 31085 + "react-docgen": "^8.0.0", 31086 + "resolve": "^1.22.8", 31087 + "tsconfig-paths": "^4.2.0" 31088 + }, 31089 + "funding": { 31090 + "type": "opencollective", 31091 + "url": "https://opencollective.com/storybook" 31092 + }, 31093 + "peerDependencies": { 31094 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 31095 + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 31096 + "storybook": "^10.3.6", 31097 + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" 31098 + } 31099 + }, 31100 + "src/webapp/node_modules/@storybook/react-vite/node_modules/@joshwooding/vite-plugin-react-docgen-typescript": { 31101 + "version": "0.7.0", 31102 + "resolved": "https://registry.npmjs.org/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.7.0.tgz", 31103 + "integrity": "sha512-qvsTEwEFefhdirGOPnu9Wp6ChfIwy2dBCRuETU3uE+4cC+PFoxMSiiEhxk4lOluA34eARHA0OxqsEUYDqRMgeQ==", 31104 + "dev": true, 31105 + "license": "MIT", 31106 + "dependencies": { 31107 + "glob": "^13.0.1", 31108 + "react-docgen-typescript": "^2.2.2" 31109 + }, 31110 + "peerDependencies": { 31111 + "typescript": ">= 4.3.x", 31112 + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" 31113 + }, 31114 + "peerDependenciesMeta": { 31115 + "typescript": { 31116 + "optional": true 31117 + } 31118 + } 31119 + }, 31120 + "src/webapp/node_modules/@storybook/react-vite/node_modules/@storybook/react": { 31121 + "version": "10.3.6", 31122 + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-10.3.6.tgz", 31123 + "integrity": "sha512-oZQZ6xayWe5IdHmFUTL0TL8rX/gpNNh9gWhT2vzW5eeUvlkVG/RBKdsja6Ndrk2s1D9vcnwiI6r6CNXy3IEEmg==", 31124 + "dev": true, 31125 + "license": "MIT", 31126 + "dependencies": { 31127 + "@storybook/global": "^5.0.0", 31128 + "@storybook/react-dom-shim": "10.3.6", 31129 + "react-docgen": "^8.0.2", 31130 + "react-docgen-typescript": "^2.2.2" 31131 + }, 31132 + "funding": { 31133 + "type": "opencollective", 31134 + "url": "https://opencollective.com/storybook" 31135 + }, 31136 + "peerDependencies": { 31137 + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 31138 + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 31139 + "storybook": "^10.3.6", 31140 + "typescript": ">= 4.9.x" 31141 + }, 31142 + "peerDependenciesMeta": { 31143 + "typescript": { 31144 + "optional": true 31145 + } 31146 + } 31147 + }, 31148 + "src/webapp/node_modules/@storybook/react-vite/node_modules/react-docgen-typescript": { 31149 + "version": "2.4.0", 31150 + "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.4.0.tgz", 31151 + "integrity": "sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==", 31152 + "dev": true, 31153 + "license": "MIT", 31154 + "peerDependencies": { 31155 + "typescript": ">= 4.3.x" 31156 + } 31157 + }, 29808 31158 "src/webapp/node_modules/@vitejs/plugin-react": { 29809 31159 "version": "6.0.1", 29810 31160 "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz", ··· 29831 31181 } 29832 31182 } 29833 31183 }, 31184 + "src/webapp/node_modules/balanced-match": { 31185 + "version": "4.0.4", 31186 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", 31187 + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", 31188 + "dev": true, 31189 + "license": "MIT", 31190 + "engines": { 31191 + "node": "18 || 20 || >=22" 31192 + } 31193 + }, 31194 + "src/webapp/node_modules/brace-expansion": { 31195 + "version": "5.0.5", 31196 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", 31197 + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", 31198 + "dev": true, 31199 + "license": "MIT", 31200 + "dependencies": { 31201 + "balanced-match": "^4.0.2" 31202 + }, 31203 + "engines": { 31204 + "node": "18 || 20 || >=22" 31205 + } 31206 + }, 31207 + "src/webapp/node_modules/glob": { 31208 + "version": "13.0.6", 31209 + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", 31210 + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", 31211 + "dev": true, 31212 + "license": "BlueOak-1.0.0", 31213 + "dependencies": { 31214 + "minimatch": "^10.2.2", 31215 + "minipass": "^7.1.3", 31216 + "path-scurry": "^2.0.2" 31217 + }, 31218 + "engines": { 31219 + "node": "18 || 20 || >=22" 31220 + }, 31221 + "funding": { 31222 + "url": "https://github.com/sponsors/isaacs" 31223 + } 31224 + }, 31225 + "src/webapp/node_modules/image-size": { 31226 + "version": "2.0.2", 31227 + "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", 31228 + "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", 31229 + "dev": true, 31230 + "license": "MIT", 31231 + "bin": { 31232 + "image-size": "bin/image-size.js" 31233 + }, 31234 + "engines": { 31235 + "node": ">=16.x" 31236 + } 31237 + }, 31238 + "src/webapp/node_modules/lru-cache": { 31239 + "version": "11.3.5", 31240 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", 31241 + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", 31242 + "dev": true, 31243 + "license": "BlueOak-1.0.0", 31244 + "engines": { 31245 + "node": "20 || >=22" 31246 + } 31247 + }, 31248 + "src/webapp/node_modules/minimatch": { 31249 + "version": "10.2.5", 31250 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", 31251 + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", 31252 + "dev": true, 31253 + "license": "BlueOak-1.0.0", 31254 + "dependencies": { 31255 + "brace-expansion": "^5.0.5" 31256 + }, 31257 + "engines": { 31258 + "node": "18 || 20 || >=22" 31259 + }, 31260 + "funding": { 31261 + "url": "https://github.com/sponsors/isaacs" 31262 + } 31263 + }, 29834 31264 "src/webapp/node_modules/next": { 29835 31265 "version": "16.2.3", 29836 31266 "resolved": "https://registry.npmjs.org/next/-/next-16.2.3.tgz", ··· 29910 31340 }, 29911 31341 "engines": { 29912 31342 "node": "^10 || ^12 || >=14" 31343 + } 31344 + }, 31345 + "src/webapp/node_modules/path-scurry": { 31346 + "version": "2.0.2", 31347 + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", 31348 + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", 31349 + "dev": true, 31350 + "license": "BlueOak-1.0.0", 31351 + "dependencies": { 31352 + "lru-cache": "^11.0.0", 31353 + "minipass": "^7.1.2" 31354 + }, 31355 + "engines": { 31356 + "node": "18 || 20 || >=22" 31357 + }, 31358 + "funding": { 31359 + "url": "https://github.com/sponsors/isaacs" 29913 31360 } 29914 31361 }, 29915 31362 "src/webapp/node_modules/react": { ··· 30031 31478 "optional": true 30032 31479 }, 30033 31480 "yaml": { 31481 + "optional": true 31482 + } 31483 + } 31484 + }, 31485 + "src/webapp/node_modules/vite-plugin-storybook-nextjs": { 31486 + "version": "3.2.4", 31487 + "resolved": "https://registry.npmjs.org/vite-plugin-storybook-nextjs/-/vite-plugin-storybook-nextjs-3.2.4.tgz", 31488 + "integrity": "sha512-shFOJpGQsWDS1FLm8BR8b6FIQC65pFZ5a0IUFGLiBHAX1eRz0N8TOhUJN4p708zfPBLDXqWzj++ocECe8gSoMg==", 31489 + "dev": true, 31490 + "license": "MIT", 31491 + "dependencies": { 31492 + "@next/env": "16.0.0", 31493 + "image-size": "^2.0.0", 31494 + "magic-string": "^0.30.11", 31495 + "module-alias": "^2.2.3", 31496 + "ts-dedent": "^2.2.0", 31497 + "vite-tsconfig-paths": "^5.1.4" 31498 + }, 31499 + "peerDependencies": { 31500 + "next": "^14.1.0 || ^15.0.0 || ^16.0.0", 31501 + "storybook": "^0.0.0-0 || ^9.0.0 || ^10.0.0 || ^10.0.0-0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 || ^10.4.0-0", 31502 + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" 31503 + } 31504 + }, 31505 + "src/webapp/node_modules/vite-plugin-storybook-nextjs/node_modules/@next/env": { 31506 + "version": "16.0.0", 31507 + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.0.0.tgz", 31508 + "integrity": "sha512-s5j2iFGp38QsG1LWRQaE2iUY3h1jc014/melHFfLdrsMJPqxqDQwWNwyQTcNoUSGZlCVZuM7t7JDMmSyRilsnA==", 31509 + "dev": true, 31510 + "license": "MIT" 31511 + }, 31512 + "src/webapp/node_modules/vite-tsconfig-paths": { 31513 + "version": "5.1.4", 31514 + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.1.4.tgz", 31515 + "integrity": "sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==", 31516 + "dev": true, 31517 + "license": "MIT", 31518 + "dependencies": { 31519 + "debug": "^4.1.1", 31520 + "globrex": "^0.1.2", 31521 + "tsconfck": "^3.0.3" 31522 + }, 31523 + "peerDependencies": { 31524 + "vite": "*" 31525 + }, 31526 + "peerDependenciesMeta": { 31527 + "vite": { 30034 31528 "optional": true 30035 31529 } 30036 31530 }
+3
src/webapp/.gitignore
··· 6 6 /blob-report/ 7 7 /playwright/.cache/ 8 8 /playwright/.auth/ 9 + 10 + *storybook.log 11 + storybook-static
+39
src/webapp/.storybook/main.ts
··· 1 + import type { StorybookConfig } from '@storybook/nextjs-vite'; 2 + import { dirname, resolve } from 'path'; 3 + import { fileURLToPath } from 'url'; 4 + 5 + const __dirname = dirname(fileURLToPath(import.meta.url)); 6 + 7 + /** 8 + * This function is used to resolve the absolute path of a package. 9 + * It is needed in projects that use Yarn PnP or are set up within a monorepo. 10 + */ 11 + function getAbsolutePath(value: string) { 12 + return dirname(fileURLToPath(import.meta.resolve(`${value}/package.json`))); 13 + } 14 + const config: StorybookConfig = { 15 + stories: [ 16 + '../stories/**/*.mdx', 17 + '../stories/**/*.stories.@(js|jsx|mjs|ts|tsx)', 18 + '../features/**/*.stories.@(js|jsx|mjs|ts|tsx)', 19 + '../components/**/*.stories.@(js|jsx|mjs|ts|tsx)', 20 + ], 21 + addons: [ 22 + getAbsolutePath('@chromatic-com/storybook'), 23 + getAbsolutePath('@storybook/addon-vitest'), 24 + getAbsolutePath('@storybook/addon-a11y'), 25 + getAbsolutePath('@storybook/addon-docs'), 26 + getAbsolutePath('@storybook/addon-onboarding'), 27 + ], 28 + framework: getAbsolutePath('@storybook/nextjs-vite'), 29 + staticDirs: ['../public'], 30 + viteFinal: async (config) => { 31 + config.resolve = config.resolve || {}; 32 + config.resolve.alias = { 33 + ...(config.resolve.alias || {}), 34 + '@semble/types': resolve(__dirname, '../../types/src/index.ts'), 35 + }; 36 + return config; 37 + }, 38 + }; 39 + export default config;
+47
src/webapp/.storybook/preview.tsx
··· 1 + import type { Preview } from '@storybook/nextjs-vite'; 2 + import '@mantine/core/styles.css'; 3 + import { MantineProvider } from '@mantine/core'; 4 + import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; 5 + import { theme } from '../styles/theme'; 6 + 7 + const queryClient = new QueryClient({ 8 + defaultOptions: { 9 + queries: { 10 + retry: false, 11 + staleTime: Infinity, 12 + }, 13 + }, 14 + }); 15 + 16 + const preview: Preview = { 17 + parameters: { 18 + nextjs: { 19 + appDirectory: true, 20 + }, 21 + controls: { 22 + matchers: { 23 + color: /(background|color)$/i, 24 + date: /Date$/i, 25 + }, 26 + }, 27 + 28 + a11y: { 29 + // 'todo' - show a11y violations in the test UI only 30 + // 'error' - fail CI on a11y violations 31 + // 'off' - skip a11y checks entirely 32 + test: 'todo', 33 + }, 34 + }, 35 + 36 + decorators: [ 37 + (Story) => ( 38 + <QueryClientProvider client={queryClient}> 39 + <MantineProvider theme={theme} defaultColorScheme="dark"> 40 + <Story /> 41 + </MantineProvider> 42 + </QueryClientProvider> 43 + ), 44 + ], 45 + }; 46 + 47 + export default preview;
+15 -2
src/webapp/package.json
··· 23 23 "type-check": "tsc --noEmit", 24 24 "type-check:watch": "tsc --noEmit --watch", 25 25 "test": "vitest", 26 - "test:run": "vitest run" 26 + "test:run": "vitest run", 27 + "storybook": "storybook dev -p 6006", 28 + "build-storybook": "storybook build" 27 29 }, 28 30 "dependencies": { 29 31 "@mantine/code-highlight": "9.0.0", ··· 73 75 "postcss-preset-mantine": "^1.18.0", 74 76 "postcss-simple-vars": "^7.0.1", 75 77 "typescript": "^5.3.3", 76 - "vitest": "^4.1.5" 78 + "vitest": "^4.1.5", 79 + "storybook": "^10.3.6", 80 + "@storybook/nextjs-vite": "^10.3.6", 81 + "@chromatic-com/storybook": "^5.1.2", 82 + "@storybook/addon-vitest": "^10.3.6", 83 + "@storybook/addon-a11y": "^10.3.6", 84 + "@storybook/addon-docs": "^10.3.6", 85 + "@storybook/addon-onboarding": "^10.3.6", 86 + "vite": "^8.0.10", 87 + "eslint-plugin-storybook": "^10.3.6", 88 + "@vitest/browser-playwright": "^4.1.5", 89 + "@vitest/coverage-v8": "^4.1.5" 77 90 }, 78 91 "overrides": { 79 92 "@types/react": "19.2.14",
-3
src/webapp/stories/Welcome.mdx
··· 1 - # Welcome 2 - 3 - An implementation of Semble's design system in React
+42 -22
src/webapp/vitest.config.mts
··· 1 1 import { defineConfig } from 'vitest/config'; 2 2 import react from '@vitejs/plugin-react'; 3 + import path from 'node:path'; 4 + import { fileURLToPath } from 'node:url'; 5 + import { storybookTest } from '@storybook/addon-vitest/vitest-plugin'; 6 + import { playwright } from '@vitest/browser-playwright'; 7 + const dirname = typeof __dirname !== 'undefined' ? __dirname : path.dirname(fileURLToPath(import.meta.url)); 3 8 9 + // More info at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon 4 10 export default defineConfig({ 5 11 plugins: [react()], 6 12 resolve: { 7 - tsconfigPaths: true, 13 + tsconfigPaths: true 8 14 }, 9 15 test: { 10 - environment: 'jsdom', 11 - include: ['**/*.{test,spec}.{ts,tsx}'], 12 - server: { 13 - deps: { 14 - // Mantine and react-icons publish ESM that references browser globals; 15 - // inlining them ensures Vitest transforms them for the jsdom environment. 16 - inline: [ 17 - '@mantine/code-highlight', 18 - '@mantine/core', 19 - '@mantine/dates', 20 - '@mantine/dropzone', 21 - '@mantine/form', 22 - '@mantine/hooks', 23 - '@mantine/modals', 24 - '@mantine/notifications', 25 - 'react-icons', 26 - ], 27 - }, 28 - }, 29 - }, 30 - }); 16 + projects: [{ 17 + extends: true, 18 + test: { 19 + environment: 'jsdom', 20 + include: ['**/*.{test,spec}.{ts,tsx}'], 21 + server: { 22 + deps: { 23 + // Mantine and react-icons publish ESM that references browser globals; 24 + // inlining them ensures Vitest transforms them for the jsdom environment. 25 + inline: ['@mantine/code-highlight', '@mantine/core', '@mantine/dates', '@mantine/dropzone', '@mantine/form', '@mantine/hooks', '@mantine/modals', '@mantine/notifications', 'react-icons'] 26 + } 27 + } 28 + } 29 + }, { 30 + extends: true, 31 + plugins: [ 32 + // The plugin will run tests for the stories defined in your Storybook config 33 + // See options at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon#storybooktest 34 + storybookTest({ 35 + configDir: path.join(dirname, '.storybook') 36 + })], 37 + test: { 38 + name: 'storybook', 39 + browser: { 40 + enabled: true, 41 + headless: true, 42 + provider: playwright({}), 43 + instances: [{ 44 + browser: 'chromium' 45 + }] 46 + } 47 + } 48 + }] 49 + } 50 + });
+1
src/webapp/vitest.shims.d.ts
··· 1 + /// <reference types="@vitest/browser-playwright" />