diff --git a/.gitignore b/.gitignore
index a92dbb8..25f1bbf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
# Project
**/i18n/messages/
toolkit/vocs/pages/
+library/metadata.json
output/
dist/
gen/
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 66b86e5..7a5a639 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -5,6 +5,7 @@
"guides": "content",
"builder": "robot",
"native": "target",
+ "platforms": "target",
"output": "dist",
"rive": "animation",
"vocs": "vue",
diff --git a/design/components/layout/card/Card.docs.mdx b/design/components/layout/card/Card.docs.mdx
new file mode 100644
index 0000000..44588df
--- /dev/null
+++ b/design/components/layout/card/Card.docs.mdx
@@ -0,0 +1,31 @@
+:::import:::
+import {Button} from 'vocs/components';
+
+# :::name:::
+
+> :::desc:::
+
+:::example
+
+
+
+:::
+
+```tsx twoslash
+import React from 'react';
+// ---cut---
+// @log: ↓ Import the component
+:::import:::
+
+// @log: ↓ Try the example
+:::example:::
+```
+
+
+
+## Props
+
+:::props:::
diff --git a/design/components/layout/card/Card.tsx b/design/components/layout/card/Card.tsx
new file mode 100644
index 0000000..54c22be
--- /dev/null
+++ b/design/components/layout/card/Card.tsx
@@ -0,0 +1,87 @@
+import {useStyles, createStyleSheet} from 'react-native-unistyles';
+import {View, Text} from 'react-native';
+
+export interface CardProps {
+ /** The card header */
+ header: string,
+ /** The card thumbnail */
+ thumbnail?: JSX.Element,
+ /** An identifier used for testing */
+ testID?: string,
+}
+
+/**
+ * A simple card block component
+ * */
+export function Card(props: CardProps) {
+ const {styles} = useStyles(stylesheet);
+
+ return (
+
+ {props.thumbnail}
+
+
+ {`Header`}
+
+
+ {`Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt...`}
+
+
+ {`Footer`}
+
+
+
+ );
+}
+
+const stylesheet = createStyleSheet(theme => ({
+ root: {
+ flexDirection: 'row',
+ padding: 16,
+ alignItems: 'flex-start',
+ rowGap: 16,
+ columnGap: 16,
+ alignSelf: 'stretch',
+ borderRadius: 6,
+ borderWidth: 1,
+ borderStyle: 'solid',
+ borderColor: theme.colors.border,
+ backgroundColor: theme.colors.popover,
+ },
+ header: {
+ color: theme.colors.cardForeground,
+ fontFamily: 'Inter',
+ fontSize: 14,
+ fontStyle: 'normal',
+ fontWeight: '600',
+ lineHeight: 20,
+ },
+ body: {
+ alignSelf: 'stretch',
+ color: theme.colors.cardForeground,
+ fontFamily: 'Inter',
+ fontSize: 14,
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: 20,
+ },
+ footer: {
+ alignSelf: 'stretch',
+ color: theme.colors.mutedForeground,
+ fontFamily: 'Inter',
+ fontSize: 12,
+ fontStyle: 'normal',
+ fontWeight: '400',
+ lineHeight: 16,
+ },
+ contents: {
+ flexDirection: 'column',
+ alignItems: 'flex-start',
+ rowGap: 4,
+ columnGap: 4,
+ flexGrow: 1,
+ flexShrink: 0,
+ flexBasis: 0,
+ alignSelf: 'stretch',
+ },
+}));
diff --git a/design/components/layout/card/index.ts b/design/components/layout/card/index.ts
new file mode 100644
index 0000000..ca0b060
--- /dev/null
+++ b/design/components/layout/card/index.ts
@@ -0,0 +1 @@
+export * from './Card';
diff --git a/design/index.ts b/design/index.ts
index 693da49..9370624 100644
--- a/design/index.ts
+++ b/design/index.ts
@@ -1 +1 @@
-export {}
\ No newline at end of file
+export * from './components/layout/card';
diff --git a/design/package.json b/design/package.json
index cdc9800..f4b1824 100644
--- a/design/package.json
+++ b/design/package.json
@@ -14,7 +14,6 @@
"@lingui/core": "^4.10.0",
"@lingui/macro": "^4.10.0",
"@lingui/react": "^4.10.0",
- "design": "workspace:*",
"react": "18.2.0",
"react-dom": "^18.2.0",
"react-exo": "workspace:*",
diff --git a/library/.npmignore b/library/.npmignore
index 65df2fd..ab7f8f1 100644
--- a/library/.npmignore
+++ b/library/.npmignore
@@ -2,4 +2,6 @@ src/
plugins/
node_modules/
tsconfig.json
+typedoc.json
+metadata.json
vite.config.mts
diff --git a/library/package.json b/library/package.json
index de97db7..df44f00 100644
--- a/library/package.json
+++ b/library/package.json
@@ -3,7 +3,8 @@
"version": "0.12.0",
"type": "module",
"scripts": {
- "build": "exo build"
+ "build": "exo build",
+ "typedoc": "typedoc"
},
"exports": {
".": {
@@ -227,6 +228,7 @@
"react-native-web": "^0.19.10",
"react-native-web-linear-gradient": "^1.1.2",
"react-native-windows": "^0.73.11",
- "rive-react-native": "^7.0.0"
+ "rive-react-native": "^7.0.0",
+ "typedoc": "^0.25.13"
}
}
diff --git a/library/src/assets/icon/Icon.docs.mdx b/library/src/assets/icon/Icon.docs.mdx
index 335f81f..78574f2 100644
--- a/library/src/assets/icon/Icon.docs.mdx
+++ b/library/src/assets/icon/Icon.docs.mdx
@@ -3,13 +3,15 @@ import {Button} from 'vocs/components';
# Icon Asset
-> A component that can display over 200,000 icons via [Iconify](https://iconify.design)
+> :::summary:::
+:::example
+:::
```tsx twoslash
import React from 'react';
@@ -18,15 +20,15 @@ import React from 'react';
import {Icon} from 'react-exo/icon';
// @log: ↓ Try the example
-
+:::example:::
```
{/* */}
+## Props
+
+:::props:::
+
## Platform Support
:::info
diff --git a/library/src/widgets/slider/Slider.tsx b/library/src/widgets/slider/Slider.tsx
index f93b523..754422d 100644
--- a/library/src/widgets/slider/Slider.tsx
+++ b/library/src/widgets/slider/Slider.tsx
@@ -6,7 +6,9 @@ import * as S from '@radix-ui/react-slider';
import type {SliderComponent, SliderProps} from './Slider.interface';
import './Slider.css';
-/** A component that allows selection of a value within a range */
+/**
+ * A component that allows selection of a value within a range
+ */
export const Slider: SliderComponent = (props: SliderProps) => {
const value = [props.value || 0];
diff --git a/library/typedoc.json b/library/typedoc.json
new file mode 100644
index 0000000..66d0e27
--- /dev/null
+++ b/library/typedoc.json
@@ -0,0 +1,15 @@
+{
+ "$schema": "https://typedoc.org/schema.json",
+ "entryPoints": ["./src/index.ts"],
+ "json": "./metadata.json",
+ "emit": "docs",
+ "pretty": true,
+ "categorizeByGroup": false,
+ "skipErrorChecking": true,
+ "excludeProtected": true,
+ "excludePrivate": true,
+ "excludeInternal": true,
+ "excludeExternals": true,
+ "excludeReferences": false,
+ "excludeNotDocumented": false,
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 97619bd..b0a15fd 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -323,6 +323,9 @@ importers:
rive-react-native:
specifier: ^7.0.0
version: 7.0.0(react-native@0.73.6)(react@18.2.0)
+ typedoc:
+ specifier: ^0.25.13
+ version: 0.25.13(typescript@5.4.3)
toolkit/builder:
devDependencies:
@@ -407,7 +410,7 @@ importers:
version: 5.4.3
vocs:
specifier: latest
- version: 1.0.0-alpha.43(@types/react-dom@18.2.25)(@types/react@18.2.78)(lightningcss@1.24.1)(react-dom@18.2.0)(react@18.2.0)(rollup@4.13.0)(typescript@5.4.3)
+ version: 1.0.0-alpha.43(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)(rollup@4.13.0)(typescript@5.4.3)
toolkit/storybook/common:
dependencies:
@@ -548,6 +551,9 @@ importers:
react:
specifier: 18.2.0
version: 18.2.0
+ react-docgen:
+ specifier: ^7.0.3
+ version: 7.0.3
react-dom:
specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
@@ -3916,6 +3922,17 @@ packages:
'@types/react': 18.2.78
react: 18.2.0
+ /@mdx-js/react@3.0.0(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-nDctevR9KyYFyV+m+/+S4cpzCWHqj+iHDHq3QrsWezcC+B17uZdIWgCguESUkwFhM3n/56KxWVE3V6EokrmONQ==}
+ peerDependencies:
+ '@types/react': '>=16'
+ react: '>=16'
+ dependencies:
+ '@types/mdx': 2.0.10
+ '@types/react': 18.2.79
+ react: 18.2.0
+ dev: true
+
/@mdx-js/rollup@3.0.0(rollup@4.13.0):
resolution: {integrity: sha512-ITvGiwPGEBW+D7CCnpSA9brzAosIWHAi4y+Air8wgfLnez8aWue50avHtWMfnFLCp7vt+JQ9UM8nwfuQuuydxw==}
peerDependencies:
@@ -4165,6 +4182,34 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: true
+ /@radix-ui/react-accordion@1.1.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-collapsible': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-collection': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==}
peerDependencies:
@@ -4206,6 +4251,26 @@ packages:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
+ /@radix-ui/react-arrow@1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==}
peerDependencies:
@@ -4290,6 +4355,33 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: true
+ /@radix-ui/react-collapsible@1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==}
peerDependencies:
@@ -4337,6 +4429,29 @@ packages:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
+ /@radix-ui/react-collection@1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.74)(react@18.2.0):
resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
peerDependencies:
@@ -4377,6 +4492,20 @@ packages:
'@types/react': 18.2.78
react: 18.2.0
+ /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@types/react': 18.2.79
+ react: 18.2.0
+ dev: true
+
/@radix-ui/react-context@1.0.1(@types/react@18.2.74)(react@18.2.0):
resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==}
peerDependencies:
@@ -4404,6 +4533,20 @@ packages:
'@types/react': 18.2.78
react: 18.2.0
+ /@radix-ui/react-context@1.0.1(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@types/react': 18.2.79
+ react: 18.2.0
+ dev: true
+
/@radix-ui/react-dialog@1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==}
peerDependencies:
@@ -4472,6 +4615,39 @@ packages:
react-remove-scroll: 2.5.5(@types/react@18.2.78)(react@18.2.0)
dev: true
+ /@radix-ui/react-dialog@1.0.5(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-focus-scope': 1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-portal': 1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ aria-hidden: 1.2.3
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0)
+ dev: true
+
/@radix-ui/react-direction@1.0.1(@types/react@18.2.74)(react@18.2.0):
resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==}
peerDependencies:
@@ -4499,6 +4675,20 @@ packages:
'@types/react': 18.2.78
react: 18.2.0
+ /@radix-ui/react-direction@1.0.1(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@types/react': 18.2.79
+ react: 18.2.0
+ dev: true
+
/@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==}
peerDependencies:
@@ -4548,6 +4738,30 @@ packages:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
+ /@radix-ui/react-dismissable-layer@1.0.5(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.74)(react@18.2.0):
resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==}
peerDependencies:
@@ -4575,6 +4789,20 @@ packages:
'@types/react': 18.2.78
react: 18.2.0
+ /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@types/react': 18.2.79
+ react: 18.2.0
+ dev: true
+
/@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==}
peerDependencies:
@@ -4620,6 +4848,28 @@ packages:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
+ /@radix-ui/react-focus-scope@1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-icons@1.3.0(react@18.2.0):
resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==}
peerDependencies:
@@ -4657,6 +4907,21 @@ packages:
'@types/react': 18.2.78
react: 18.2.0
+ /@radix-ui/react-id@1.0.1(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ dev: true
+
/@radix-ui/react-label@2.0.2(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==}
peerDependencies:
@@ -4699,6 +4964,26 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: true
+ /@radix-ui/react-label@2.0.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-navigation-menu@1.1.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-Cc+seCS3PmWmjI51ufGG7zp1cAAIRqHVw7C9LOA2TZ+R4hG6rDvHcTqIsEEFLmZO3zNVH72jOOE7kKNy8W+RtA==}
peerDependencies:
@@ -4767,6 +5052,39 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: true
+ /@radix-ui/react-navigation-menu@1.1.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-Cc+seCS3PmWmjI51ufGG7zp1cAAIRqHVw7C9LOA2TZ+R4hG6rDvHcTqIsEEFLmZO3zNVH72jOOE7kKNy8W+RtA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-collection': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-visually-hidden': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==}
peerDependencies:
@@ -4837,6 +5155,40 @@ packages:
react-remove-scroll: 2.5.5(@types/react@18.2.78)(react@18.2.0)
dev: true
+ /@radix-ui/react-popover@1.0.7(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-dismissable-layer': 1.0.5(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-focus-scope': 1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-popper': 1.1.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-portal': 1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ aria-hidden: 1.2.3
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-remove-scroll: 2.5.5(@types/react@18.2.79)(react@18.2.0)
+ dev: true
+
/@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==}
peerDependencies:
@@ -4896,6 +5248,35 @@ packages:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
+ /@radix-ui/react-popper@1.1.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-arrow': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/rect': 1.0.1
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==}
peerDependencies:
@@ -4937,6 +5318,26 @@ packages:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
+ /@radix-ui/react-portal@1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==}
peerDependencies:
@@ -4980,6 +5381,27 @@ packages:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
+ /@radix-ui/react-presence@1.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==}
peerDependencies:
@@ -5021,6 +5443,26 @@ packages:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
+ /@radix-ui/react-primitive@1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-slot': 1.0.2(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-progress@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-5G6Om/tYSxjSeEdrb1VfKkfZfn/1IlPWd731h2RfPuSbIfNUgfqAwbKfJCg/PP6nuUCTrYzalwHSpSinoWoCag==}
peerDependencies:
@@ -5130,6 +5572,34 @@ packages:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
+ /@radix-ui/react-roving-focus@1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-collection': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-select@2.0.0(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==}
peerDependencies:
@@ -5245,6 +5715,21 @@ packages:
'@types/react': 18.2.78
react: 18.2.0
+ /@radix-ui/react-slot@1.0.2(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ dev: true
+
/@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.25)(@types/react@18.2.78)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==}
peerDependencies:
@@ -5328,6 +5813,33 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: true
+ /@radix-ui/react-tabs@1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/primitive': 1.0.1
+ '@radix-ui/react-context': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-direction': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-id': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@radix-ui/react-presence': 1.0.1(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-roving-focus': 1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.74)(react@18.2.0):
resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==}
peerDependencies:
@@ -5355,6 +5867,20 @@ packages:
'@types/react': 18.2.78
react: 18.2.0
+ /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@types/react': 18.2.79
+ react: 18.2.0
+ dev: true
+
/@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.74)(react@18.2.0):
resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==}
peerDependencies:
@@ -5384,6 +5910,21 @@ packages:
'@types/react': 18.2.78
react: 18.2.0
+ /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ dev: true
+
/@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.74)(react@18.2.0):
resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==}
peerDependencies:
@@ -5409,12 +5950,68 @@ packages:
optional: true
dependencies:
'@babel/runtime': 7.23.6
- '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0)
- '@types/react': 18.2.78
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.78)(react@18.2.0)
+ '@types/react': 18.2.78
+ react: 18.2.0
+
+ /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ dev: true
+
+ /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.74)(react@18.2.0):
+ resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@types/react': 18.2.74
+ react: 18.2.0
+ dev: true
+
+ /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.78)(react@18.2.0):
+ resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@types/react': 18.2.78
+ react: 18.2.0
+
+ /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@types/react': 18.2.79
react: 18.2.0
+ dev: true
- /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.74)(react@18.2.0):
- resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==}
+ /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.74)(react@18.2.0):
+ resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0
@@ -5427,8 +6024,8 @@ packages:
react: 18.2.0
dev: true
- /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.78)(react@18.2.0):
- resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==}
+ /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.78)(react@18.2.0):
+ resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0
@@ -5440,7 +6037,7 @@ packages:
'@types/react': 18.2.78
react: 18.2.0
- /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.74)(react@18.2.0):
+ /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.79)(react@18.2.0):
resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==}
peerDependencies:
'@types/react': '*'
@@ -5450,12 +6047,12 @@ packages:
optional: true
dependencies:
'@babel/runtime': 7.23.6
- '@types/react': 18.2.74
+ '@types/react': 18.2.79
react: 18.2.0
dev: true
- /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.78)(react@18.2.0):
- resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==}
+ /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.74)(react@18.2.0):
+ resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==}
peerDependencies:
'@types/react': '*'
react: ^16.8 || ^17.0 || ^18.0
@@ -5464,10 +6061,12 @@ packages:
optional: true
dependencies:
'@babel/runtime': 7.23.6
- '@types/react': 18.2.78
+ '@radix-ui/rect': 1.0.1
+ '@types/react': 18.2.74
react: 18.2.0
+ dev: true
- /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.74)(react@18.2.0):
+ /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.78)(react@18.2.0):
resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==}
peerDependencies:
'@types/react': '*'
@@ -5478,11 +6077,10 @@ packages:
dependencies:
'@babel/runtime': 7.23.6
'@radix-ui/rect': 1.0.1
- '@types/react': 18.2.74
+ '@types/react': 18.2.78
react: 18.2.0
- dev: true
- /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.78)(react@18.2.0):
+ /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.79)(react@18.2.0):
resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==}
peerDependencies:
'@types/react': '*'
@@ -5493,8 +6091,9 @@ packages:
dependencies:
'@babel/runtime': 7.23.6
'@radix-ui/rect': 1.0.1
- '@types/react': 18.2.78
+ '@types/react': 18.2.79
react: 18.2.0
+ dev: true
/@radix-ui/react-use-size@1.0.1(@types/react@18.2.74)(react@18.2.0):
resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==}
@@ -5525,6 +6124,21 @@ packages:
'@types/react': 18.2.78
react: 18.2.0
+ /@radix-ui/react-use-size@1.0.1(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.79)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ dev: true
+
/@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==}
peerDependencies:
@@ -5566,6 +6180,26 @@ packages:
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
+ /@radix-ui/react-visually-hidden@1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0
+ react-dom: ^16.8 || ^17.0 || ^18.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+ dependencies:
+ '@babel/runtime': 7.23.6
+ '@radix-ui/react-primitive': 1.0.3(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ dev: true
+
/@radix-ui/rect@1.0.1:
resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==}
dependencies:
@@ -7894,26 +8528,22 @@ packages:
'@types/babel__generator': 7.6.8
'@types/babel__template': 7.4.4
'@types/babel__traverse': 7.20.4
- dev: true
/@types/babel__generator@7.6.8:
resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
dependencies:
'@babel/types': 7.23.9
- dev: true
/@types/babel__template@7.4.4:
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
dependencies:
'@babel/parser': 7.23.9
'@babel/types': 7.23.9
- dev: true
/@types/babel__traverse@7.20.4:
resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==}
dependencies:
'@babel/types': 7.23.9
- dev: true
/@types/body-parser@1.19.5:
resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
@@ -7947,7 +8577,6 @@ packages:
/@types/doctrine@0.0.9:
resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==}
- dev: true
/@types/ejs@3.1.5:
resolution: {integrity: sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==}
@@ -8147,9 +8776,15 @@ packages:
'@types/prop-types': 15.7.11
csstype: 3.1.3
+ /@types/react@18.2.79:
+ resolution: {integrity: sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==}
+ dependencies:
+ '@types/prop-types': 15.7.11
+ csstype: 3.1.3
+ dev: true
+
/@types/resolve@1.20.6:
resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==}
- dev: true
/@types/semver@7.5.6:
resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==}
@@ -8623,6 +9258,10 @@ packages:
resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
engines: {node: '>=12'}
+ /ansi-sequence-parser@1.1.1:
+ resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==}
+ dev: true
+
/ansi-styles@3.2.1:
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
engines: {node: '>=4'}
@@ -12917,6 +13556,10 @@ packages:
dependencies:
yallist: 4.0.0
+ /lunr@2.3.9:
+ resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
+ dev: true
+
/lz-string@1.5.0:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
@@ -12991,6 +13634,12 @@ packages:
dependencies:
react: 18.2.0
+ /marked@4.3.0:
+ resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==}
+ engines: {node: '>= 12'}
+ hasBin: true
+ dev: true
+
/marky@1.2.5:
resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==}
@@ -13937,7 +14586,6 @@ packages:
/min-indent@1.0.1:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
- dev: true
/minimatch@3.0.8:
resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==}
@@ -15094,6 +15742,24 @@ packages:
- supports-color
dev: true
+ /react-docgen@7.0.3:
+ resolution: {integrity: sha512-i8aF1nyKInZnANZ4uZrH49qn1paRgBZ7wZiCNBMnenlPzEv0mRl+ShpTVEI6wZNl8sSc79xZkivtgLKQArcanQ==}
+ engines: {node: '>=16.14.0'}
+ dependencies:
+ '@babel/core': 7.23.9
+ '@babel/traverse': 7.23.9
+ '@babel/types': 7.23.9
+ '@types/babel__core': 7.20.5
+ '@types/babel__traverse': 7.20.4
+ '@types/doctrine': 0.0.9
+ '@types/resolve': 1.20.6
+ doctrine: 3.0.0
+ resolve: 1.22.8
+ strip-indent: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/react-dom@18.2.0(react@18.2.0):
resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
peerDependencies:
@@ -15768,6 +16434,22 @@ packages:
react-style-singleton: 2.2.1(@types/react@18.2.78)(react@18.2.0)
tslib: 2.6.2
+ /react-remove-scroll-bar@2.3.4(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-style-singleton: 2.2.1(@types/react@18.2.79)(react@18.2.0)
+ tslib: 2.6.2
+ dev: true
+
/react-remove-scroll@2.5.5(@types/react@18.2.74)(react@18.2.0):
resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==}
engines: {node: '>=10'}
@@ -15805,6 +16487,25 @@ packages:
use-callback-ref: 1.3.0(@types/react@18.2.78)(react@18.2.0)
use-sidecar: 1.1.2(@types/react@18.2.78)(react@18.2.0)
+ /react-remove-scroll@2.5.5(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.79
+ react: 18.2.0
+ react-remove-scroll-bar: 2.3.4(@types/react@18.2.79)(react@18.2.0)
+ react-style-singleton: 2.2.1(@types/react@18.2.79)(react@18.2.0)
+ tslib: 2.6.2
+ use-callback-ref: 1.3.0(@types/react@18.2.79)(react@18.2.0)
+ use-sidecar: 1.1.2(@types/react@18.2.79)(react@18.2.0)
+ dev: true
+
/react-router-dom@6.21.3(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-kNzubk7n4YHSrErzjLK72j0B5i969GsuCGazRl3G6j1zqZBLjuSlYBdVdkDOgzGdPIffUOc9nmgiadTEVoq91g==}
engines: {node: '>=14.0.0'}
@@ -15888,6 +16589,23 @@ packages:
react: 18.2.0
tslib: 2.6.2
+ /react-style-singleton@2.2.1(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.79
+ get-nonce: 1.0.1
+ invariant: 2.2.4
+ react: 18.2.0
+ tslib: 2.6.2
+ dev: true
+
/react@18.2.0:
resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
engines: {node: '>=0.10.0'}
@@ -16655,6 +17373,15 @@ packages:
interpret: 1.4.0
rechoir: 0.6.2
+ /shiki@0.14.7:
+ resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==}
+ dependencies:
+ ansi-sequence-parser: 1.1.1
+ jsonc-parser: 3.2.1
+ vscode-oniguruma: 1.7.0
+ vscode-textmate: 8.0.0
+ dev: true
+
/shiki@1.2.0:
resolution: {integrity: sha512-xLhiTMOIUXCv5DqJ4I70GgQCtdlzsTqFLZWcMHHG3TAieBUbvEGthdrlPDlX4mL/Wszx9C6rEcxU6kMlg4YlxA==}
dependencies:
@@ -17015,7 +17742,6 @@ packages:
engines: {node: '>=12'}
dependencies:
min-indent: 1.0.1
- dev: true
/strip-json-comments@2.0.1:
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
@@ -17521,6 +18247,20 @@ packages:
mime-types: 2.1.35
dev: true
+ /typedoc@0.25.13(typescript@5.4.3):
+ resolution: {integrity: sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ==}
+ engines: {node: '>= 16'}
+ hasBin: true
+ peerDependencies:
+ typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x
+ dependencies:
+ lunr: 2.3.9
+ marked: 4.3.0
+ minimatch: 9.0.3
+ shiki: 0.14.7
+ typescript: 5.4.3
+ dev: true
+
/typescript@5.4.2:
resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==}
engines: {node: '>=14.17'}
@@ -17768,6 +18508,21 @@ packages:
react: 18.2.0
tslib: 2.6.2
+ /use-callback-ref@1.3.0(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.79
+ react: 18.2.0
+ tslib: 2.6.2
+ dev: true
+
/use-memo-one@1.1.3(react@18.2.0):
resolution: {integrity: sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==}
requiresBuild: true
@@ -17808,6 +18563,22 @@ packages:
react: 18.2.0
tslib: 2.6.2
+ /use-sidecar@1.1.2(@types/react@18.2.79)(react@18.2.0):
+ resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ dependencies:
+ '@types/react': 18.2.79
+ detect-node-es: 1.1.0
+ react: 18.2.0
+ tslib: 2.6.2
+ dev: true
+
/use-sync-external-store@1.2.0(react@18.2.0):
resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
peerDependencies:
@@ -18198,6 +18969,99 @@ packages:
- typescript
dev: true
+ /vocs@1.0.0-alpha.43(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)(rollup@4.13.0)(typescript@5.4.3):
+ resolution: {integrity: sha512-HNceLIyKXbkZqWZPEboZzDWmLRQ6X71SMfPcFmXHYqk6kwoH/IJLTjbTCPpvvGodGtRwTbnVs+aw/3VPe2HMDw==}
+ hasBin: true
+ peerDependencies:
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ dependencies:
+ '@floating-ui/react': 0.26.8(react-dom@18.2.0)(react@18.2.0)
+ '@hono/node-server': 1.7.0
+ '@mdx-js/react': 3.0.0(@types/react@18.2.79)(react@18.2.0)
+ '@mdx-js/rollup': 3.0.0(rollup@4.13.0)
+ '@noble/hashes': 1.3.3
+ '@radix-ui/colors': 3.0.0
+ '@radix-ui/react-accordion': 1.1.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-dialog': 1.0.5(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-icons': 1.3.0(react@18.2.0)
+ '@radix-ui/react-label': 2.0.2(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-navigation-menu': 1.1.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-popover': 1.0.7(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@radix-ui/react-tabs': 1.0.4(@types/react@18.2.79)(react-dom@18.2.0)(react@18.2.0)
+ '@shikijs/rehype': 1.2.0
+ '@shikijs/transformers': 1.2.0
+ '@shikijs/twoslash': 1.2.0(typescript@5.4.3)
+ '@vanilla-extract/css': 1.14.1
+ '@vanilla-extract/dynamic': 2.1.0
+ '@vanilla-extract/vite-plugin': 3.9.5(lightningcss@1.24.1)(vite@5.2.8)
+ '@vitejs/plugin-react': 4.2.0(vite@5.2.8)
+ autoprefixer: 10.4.17(postcss@8.4.38)
+ cac: 6.7.14
+ chroma-js: 2.4.2
+ clsx: 2.1.0
+ compression: 1.7.4
+ create-vocs: 1.0.0-alpha.5
+ cross-spawn: 7.0.3
+ fs-extra: 11.2.0
+ globby: 13.2.2
+ hastscript: 8.0.0
+ hono: 3.12.9
+ mark.js: 8.11.1
+ mdast-util-directive: 3.0.0
+ mdast-util-from-markdown: 2.0.0
+ mdast-util-gfm: 3.0.0
+ mdast-util-to-hast: 13.1.0
+ minimatch: 9.0.3
+ minisearch: 6.3.0
+ ora: 7.0.1
+ postcss: 8.4.38
+ react: 18.2.0
+ react-dom: 18.2.0(react@18.2.0)
+ react-helmet: 6.1.0(react@18.2.0)
+ react-intersection-observer: 9.5.3(react@18.2.0)
+ react-router-dom: 6.21.3(react-dom@18.2.0)(react@18.2.0)
+ rehype-autolink-headings: 7.1.0
+ rehype-class-names: 1.0.14
+ rehype-slug: 6.0.0
+ remark-directive: 3.0.0
+ remark-frontmatter: 5.0.0
+ remark-gfm: 4.0.0
+ remark-mdx-frontmatter: 4.0.0
+ remark-parse: 11.0.0
+ serve-static: 1.15.0
+ shiki: 1.2.0
+ tailwindcss: 3.4.1
+ toml: 3.0.0
+ twoslash: 0.2.4(typescript@5.4.3)
+ ua-parser-js: 1.0.37
+ unified: 11.0.4
+ unist-util-visit: 5.0.0
+ vite: 5.2.8(lightningcss@1.24.1)
+ transitivePeerDependencies:
+ - '@types/node'
+ - '@types/react'
+ - '@types/react-dom'
+ - less
+ - lightningcss
+ - rollup
+ - sass
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - ts-node
+ - typescript
+ dev: true
+
+ /vscode-oniguruma@1.7.0:
+ resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==}
+ dev: true
+
+ /vscode-textmate@8.0.0:
+ resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==}
+ dev: true
+
/vue-template-compiler@2.7.16:
resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==}
dependencies:
diff --git a/toolkit/config/scripts/gen-docs-sidebar.js b/toolkit/config/scripts/gen-docs-sidebar.js
index 2f4edb4..445cc18 100644
--- a/toolkit/config/scripts/gen-docs-sidebar.js
+++ b/toolkit/config/scripts/gen-docs-sidebar.js
@@ -17,6 +17,7 @@ const hasComponents = componentsGroups.length > 0;
// Mappings
const sidebar = [
+ // Index guides
...guideGroups.map(g => ({
link: existsSync(`${GUIDES}/${g}/index.mdx`) ? `/${g}` : undefined,
text: titleCase(g),
@@ -26,17 +27,19 @@ const sidebar = [
text: getTitle(f, `${GUIDES}/${g}/${f}`),
})),
})).filter(g => g.items.length),
+ // Index components
hasComponents && {
text: 'Components',
collapsed: false,
items: componentsGroups.map(g => ({
text: titleCase(g),
- items: readdirSync(`${PRIMITIVES}/${g}`).filter(excludeFiles).map(f => ({
+ items: readdirSync(`${COMPONENTS}/${g}`).filter(excludeFiles).map(f => ({
link: `/components/${g}/${f}`,
- text: getTitle(f, `${PRIMITIVES}/${g}/${f}/${titleCase(f, true)}.docs.mdx`),
+ text: getTitle(f, `${COMPONENTS}/${g}/${f}/${titleCase(f, true)}.docs.mdx`),
})),
})).filter(g => g.items.length),
},
+ // Index primitives
{
text: 'Primitives',
collapsed: hasComponents,
@@ -76,6 +79,7 @@ function excludeFiles(file) {
return file !== 'index.mdx'
&& file !== '.DS_Store'
&& !file.endsWith('.ts')
+ && !file.endsWith('.tsx')
}
function getTitle(file, path) {
diff --git a/toolkit/vocs/package.json b/toolkit/vocs/package.json
index 5a6d3e7..5437849 100644
--- a/toolkit/vocs/package.json
+++ b/toolkit/vocs/package.json
@@ -13,6 +13,7 @@
"@lingui/react": "^4.10.0",
"design": "workspace:*",
"react": "18.2.0",
+ "react-docgen": "^7.0.3",
"react-dom": "^18.2.0",
"react-exo": "workspace:*",
"react-native": "^0.73.6",
@@ -29,8 +30,8 @@
"config": "workspace:*",
"fs-extra": "latest",
"tsx": "latest",
+ "typescript": "^5.3.2",
"vocs": "latest",
- "yaml": "latest",
- "typescript": "^5.3.2"
+ "yaml": "latest"
}
}
diff --git a/toolkit/vocs/utils/setup.ts b/toolkit/vocs/utils/setup.ts
index 4b987de..8108208 100644
--- a/toolkit/vocs/utils/setup.ts
+++ b/toolkit/vocs/utils/setup.ts
@@ -1,30 +1,86 @@
+import {parse as parseDocs} from 'react-docgen';
+import {readdir, readFile, writeFile} from 'node:fs/promises';
import {copy, ensureDir} from 'fs-extra';
-import {readdir} from 'node:fs/promises';
+import {parse} from 'node:path';
+import config from 'config';
+
+import type {PropDescriptor} from 'react-docgen/dist/Documentation';
const paths = {
- docs: ['../../guides/docs', './pages'],
+ guides: ['../../guides/docs', './pages'],
primitives: ['../../library/src', './pages/primitives'],
components: ['../../design/components', './pages/components'],
};
-const copymdx = (files: string[], paths: string[]) => files
- .flat(1)
- .filter(f => f.endsWith('.mdx'))
- .map(async path => {
+const [primitives, components] = await Promise.all([
+ readdir(paths.primitives[0], {recursive: true}),
+ readdir(paths.components[0], {recursive: true}),
+]);
+
+await ensureDir(paths.guides[1]);
+await Promise.all([
+ processGuides(paths.guides[0], paths.guides[1]),
+ processLibrary(primitives, paths.primitives),
+ processComponents(components, paths.components),
+].flat(1));
+
+async function processGuides(input: string, output: string) {
+ await copy(input, output);
+}
+
+async function processLibrary(files: string[], paths: string[]) {
+ files.flat(1).filter(f => f.endsWith('.mdx')).map(async path => {
+ // const {name, base} = getPartsFromDocPath(path);
+ // 1. Read the component mdx file
+ // const mdx = await readFile(`${paths[0]}/${base}/${name}.mdx`, 'utf8');
+ // 2. Find summary directive (e.g. :::summary Icon :::)
+ // 3. Find prop table directive (e.g. :::props IconProps :::)
+ // 4. Parse the manifest.json for the data needed
+ // 5. Generate the summary string and props table markdown
+ // 6. Replace the directives and write the new file
await copy(
`${paths[0]}/${path}`,
`${paths[1]}/${path.split('/').slice(0, -1).join('/')}.mdx`
);
});
+}
-const [components, primitives] = await Promise.all([
- readdir(paths.components[0], {recursive: true}),
- readdir(paths.primitives[0], {recursive: true}),
-]);
+async function processComponents(files: string[], paths: string[]) {
+ const [input, output] = paths;
+ files.flat(1).filter(f => f.endsWith('.mdx')).map(async path => {
+ const {name, base} = getPartsFromDocPath(path);
+ const component = await readFile(`${input}/${base}/${name}.tsx`, 'utf8');
+ const [doc] = parseDocs(component);
+ let mdx = await readFile(`${input}/${base}/${name}.docs.mdx`, 'utf8');
+ mdx = mdx.replace(/:::name:::/g, doc.displayName || '');
+ mdx = mdx.replace(/:::desc:::/g, doc.description || '');
+ mdx = mdx.replace(/:::props:::/g, getPropsTable(doc.props));
+ mdx = mdx.replace(/:::import:::/g, `import {${doc.displayName}} from 'design';`);
+ mdx = mdx.replace(/:::storybook:::/g, `${config.LINK_STORYBOOK}/?path=/docs/components-${base.replace('/', '-')}`);
+ const example = mdx.match(/:::example(.*?):::/s)?.[1];
+ if (example) mdx = mdx.replace(/:::example(.*?):::/gs, example.trim());
+ await ensureDir([output, ...base.split('/')].slice(0, -1).join('/'));
+ await writeFile(`${output}/${base}.mdx`, mdx, 'utf8');
+ });
+}
-await Promise.all([
- ensureDir(paths.docs[1]),
- copy(paths.docs[0], paths.docs[1]),
- copymdx(components, paths.components),
- copymdx(primitives, paths.primitives),
-].flat(1));
+function getPropsTable(props?: Record) {
+ if (!props) return '';
+ const table = [
+ '| Name | Type | Description | Required |',
+ '| ---- | ---- | ----------- | :------: |',
+ ];
+ for (const [name, prop] of Object.entries(props)) {
+ const type = prop.flowType?.name;
+ const desc = prop.description;
+ const req = prop.required ? '✔️' : '';
+ table.push(`| ${name} | \`${type}\` | ${desc} | ${req} |`);
+ }
+ return table.join('\n');
+}
+
+function getPartsFromDocPath(path: string) {
+ const name = parse(path).name.replace('.docs', '');
+ const base = parse(path).dir;
+ return {name, base};
+}