@shipfox/react-ui 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.storybook/preview.tsx +11 -0
- package/.turbo/turbo-build.log +16 -3
- package/.turbo/turbo-check.log +2 -2
- package/.turbo/turbo-type.log +1 -1
- package/CHANGELOG.md +8 -0
- package/README.md +16 -0
- package/dist/build-css-entry.js +5 -0
- package/dist/build-css-entry.js.map +1 -0
- package/dist/components/code-block/code-block-footer.d.ts.map +1 -1
- package/dist/components/code-block/code-block-footer.js +29 -15
- package/dist/components/code-block/code-block-footer.js.map +1 -1
- package/dist/components/dynamic-item/dynamic-item.stories.js +1 -1
- package/dist/components/dynamic-item/dynamic-item.stories.js.map +1 -1
- package/dist/components/icon/icon.d.ts +1 -0
- package/dist/components/icon/icon.d.ts.map +1 -1
- package/dist/components/icon/icon.js +3 -2
- package/dist/components/icon/icon.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/modal/index.d.ts +3 -0
- package/dist/components/modal/index.d.ts.map +1 -0
- package/dist/components/modal/index.js +3 -0
- package/dist/components/modal/index.js.map +1 -0
- package/dist/components/modal/modal.d.ts +37 -0
- package/dist/components/modal/modal.d.ts.map +1 -0
- package/dist/components/modal/modal.js +262 -0
- package/dist/components/modal/modal.js.map +1 -0
- package/dist/components/modal/modal.stories.js +497 -0
- package/dist/components/modal/modal.stories.js.map +1 -0
- package/dist/components/moving-border/index.d.ts +2 -0
- package/dist/components/moving-border/index.d.ts.map +1 -0
- package/dist/components/moving-border/index.js +3 -0
- package/dist/components/moving-border/index.js.map +1 -0
- package/dist/components/typography/text.d.ts.map +1 -1
- package/dist/components/typography/text.js +1 -1
- package/dist/components/typography/text.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useMediaQuery.d.ts +2 -0
- package/dist/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/hooks/useMediaQuery.js +74 -0
- package/dist/hooks/useMediaQuery.js.map +1 -0
- package/dist/styles.css +1 -0
- package/index.css +1 -1
- package/package.json +11 -7
- package/src/build-css-entry.ts +3 -0
- package/src/components/code-block/code-block-footer.tsx +37 -30
- package/src/components/dynamic-item/dynamic-item.stories.tsx +1 -1
- package/src/components/icon/icon.tsx +2 -0
- package/src/components/index.ts +1 -0
- package/src/components/modal/index.ts +23 -0
- package/src/components/modal/modal.stories.tsx +384 -0
- package/src/components/modal/modal.tsx +309 -0
- package/src/components/moving-border/index.ts +1 -0
- package/src/components/typography/text.tsx +9 -1
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useMediaQuery.ts +87 -0
- package/tsconfig.build.json +7 -1
- package/vite.css.config.ts +30 -0
package/.storybook/preview.tsx
CHANGED
|
@@ -9,6 +9,17 @@ const withTheme: Decorator = (Story, context) => {
|
|
|
9
9
|
const preview: Preview = {
|
|
10
10
|
decorators: [withTheme],
|
|
11
11
|
parameters: {
|
|
12
|
+
viewport: {
|
|
13
|
+
viewports: {
|
|
14
|
+
large: {
|
|
15
|
+
name: 'Large Viewport',
|
|
16
|
+
styles: {
|
|
17
|
+
width: '1280px',
|
|
18
|
+
height: '2000px',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
12
23
|
options: {
|
|
13
24
|
storySort: {
|
|
14
25
|
method: 'alphabetical',
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
WARN Issue while reading "/runnertmp/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @shipfox/react-ui@0.
|
|
4
|
-
> swc
|
|
3
|
+
> @shipfox/react-ui@0.6.0 build /runnertmp/_work/tooling/tooling/libs/react/ui
|
|
4
|
+
> swc && pnpm run build:css
|
|
5
5
|
|
|
6
|
-
Successfully compiled:
|
|
6
|
+
Successfully compiled: 114 files with swc (419.67ms)
|
|
7
|
+
WARN Issue while reading "/runnertmp/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
|
|
8
|
+
|
|
9
|
+
> @shipfox/react-ui@0.6.0 build:css /runnertmp/_work/tooling/tooling/libs/react/ui
|
|
10
|
+
> vite build --config vite.css.config.ts && rm -f dist/css-entry.js dist/css-entry.js.map
|
|
11
|
+
|
|
12
|
+
[36mvite v7.2.2 [32mbuilding client environment for production...[36m[39m
|
|
13
|
+
transforming...
|
|
14
|
+
[32m✓[39m 2 modules transformed.
|
|
15
|
+
rendering chunks...
|
|
16
|
+
computing gzip size...
|
|
17
|
+
[2mdist/[22m[35mstyles.css [39m[1m[2m84.61 kB[22m[1m[22m[2m │ gzip: 13.44 kB[22m
|
|
18
|
+
[2mdist/[22m[36mcss-entry.js [39m[1m[2m 0.00 kB[22m[1m[22m[2m │ gzip: 0.02 kB[22m
|
|
19
|
+
[32m✓ built in 1.97s[39m
|
package/.turbo/turbo-check.log
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
WARN Issue while reading "/runnertmp/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @shipfox/react-ui@0.
|
|
3
|
+
> @shipfox/react-ui@0.6.0 check /runnertmp/_work/tooling/tooling/libs/react/ui
|
|
4
4
|
> biome-check --fix
|
|
5
5
|
|
|
6
|
-
Checked
|
|
6
|
+
Checked 133 files in 500ms. No fixes applied.
|
package/.turbo/turbo-type.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
WARN Issue while reading "/runnertmp/_work/tooling/tooling/.npmrc". Failed to replace env in config: ${NPM_ACCESS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @shipfox/react-ui@0.
|
|
3
|
+
> @shipfox/react-ui@0.6.0 type /runnertmp/_work/tooling/tooling/libs/react/ui
|
|
4
4
|
> tsc-emit
|
|
5
5
|
|
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -14,6 +14,22 @@ yarn add @shipfox/react-ui
|
|
|
14
14
|
npm install @shipfox/react-ui
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
+
### CSS Styles
|
|
18
|
+
|
|
19
|
+
This package includes a pre-built, minified CSS bundle with all Tailwind CSS styles and design tokens. Import it in your application:
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import "@shipfox/react-ui/dist/styles.css"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Or in your HTML:
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<link rel="stylesheet" href="node_modules/@shipfox/react-ui/dist/styles.css" />
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The CSS bundle is self-contained and includes all design tokens, so you don't need to configure Tailwind CSS in your consuming project.
|
|
32
|
+
|
|
17
33
|
## Storybook
|
|
18
34
|
|
|
19
35
|
The storybook is [publicly accessible online](https://react-ui.shipfox.vercel.app).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/build-css-entry.ts"],"sourcesContent":["// This file is only used for building CSS\n// It imports the CSS file which Vite will process and bundle\nimport '../index.css';\n"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,6DAA6D;AAC7D,OAAO,eAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block-footer.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-block-footer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"code-block-footer.d.ts","sourceRoot":"","sources":["../../../src/components/code-block/code-block-footer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAC,MAAM,OAAO,CAAC;AAGrE,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,OAAe,EACf,KAAiB,EACjB,OAAO,EACP,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,2CA0CtB;AAED,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,OAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,wBAAwB,2CAY1B;AAED,MAAM,MAAM,2BAA2B,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,OAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,2BAA2B,2CAY7B;AAED,MAAM,MAAM,2BAA2B,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,OAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,2BAA2B,2CAuB7B;AAED,MAAM,MAAM,+BAA+B,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,EACzC,SAAS,EACT,OAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,+BAA+B,2CAuBjC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Slot } from '@radix-ui/react-slot';
|
|
3
3
|
import { Icon } from '../../components/icon/icon.js';
|
|
4
|
+
import { Text } from '../../components/typography/index.js';
|
|
4
5
|
import { cn } from '../../utils/cn.js';
|
|
5
6
|
export function CodeBlockFooter({ className, asChild = false, state = 'running', message, description, icon, children, ...props }) {
|
|
6
7
|
const Comp = asChild ? Slot : 'div';
|
|
@@ -26,19 +27,16 @@ export function CodeBlockFooter({ className, asChild = false, state = 'running',
|
|
|
26
27
|
className: cn('flex w-full items-center justify-start gap-12 px-16 py-12', className),
|
|
27
28
|
...props,
|
|
28
29
|
children: [
|
|
29
|
-
/*#__PURE__*/ _jsx(
|
|
30
|
-
className: "
|
|
30
|
+
/*#__PURE__*/ _jsx(CodeBlockFooterIcon, {
|
|
31
|
+
className: "text-tag-success-icon",
|
|
31
32
|
children: defaultIcon
|
|
32
33
|
}),
|
|
33
|
-
(message || description) && /*#__PURE__*/ _jsxs(
|
|
34
|
-
className: "flex flex-col items-start justify-center gap-0",
|
|
34
|
+
(message || description) && /*#__PURE__*/ _jsxs(CodeBlockFooterContent, {
|
|
35
35
|
children: [
|
|
36
|
-
message && /*#__PURE__*/ _jsx(
|
|
37
|
-
className: "overflow-hidden text-ellipsis whitespace-nowrap text-xs leading-20 text-foreground-neutral-base",
|
|
36
|
+
message && /*#__PURE__*/ _jsx(CodeBlockFooterMessage, {
|
|
38
37
|
children: message
|
|
39
38
|
}),
|
|
40
|
-
description && /*#__PURE__*/ _jsx(
|
|
41
|
-
className: "overflow-hidden text-ellipsis whitespace-nowrap text-xs leading-20 text-foreground-neutral-subtle",
|
|
39
|
+
description && /*#__PURE__*/ _jsx(CodeBlockFooterDescription, {
|
|
42
40
|
children: description
|
|
43
41
|
})
|
|
44
42
|
]
|
|
@@ -59,25 +57,41 @@ export function CodeBlockFooterContent({ className, asChild = false, children, .
|
|
|
59
57
|
const Comp = asChild ? Slot : 'div';
|
|
60
58
|
return /*#__PURE__*/ _jsx(Comp, {
|
|
61
59
|
"data-slot": "code-block-footer-content",
|
|
62
|
-
className: cn('flex flex-col items-start justify-center gap-0', className),
|
|
60
|
+
className: cn('flex flex-col items-start justify-center gap-0 min-w-0 flex-1', className),
|
|
63
61
|
...props,
|
|
64
62
|
children: children
|
|
65
63
|
});
|
|
66
64
|
}
|
|
67
65
|
export function CodeBlockFooterMessage({ className, asChild = false, children, ...props }) {
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
if (asChild) {
|
|
67
|
+
return /*#__PURE__*/ _jsx(Slot, {
|
|
68
|
+
"data-slot": "code-block-footer-message",
|
|
69
|
+
className: cn('overflow-hidden text-ellipsis whitespace-nowrap text-xs', className),
|
|
70
|
+
...props,
|
|
71
|
+
children: children
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return /*#__PURE__*/ _jsx(Text, {
|
|
70
75
|
"data-slot": "code-block-footer-message",
|
|
71
|
-
|
|
76
|
+
size: "xs",
|
|
77
|
+
className: cn('overflow-hidden text-ellipsis whitespace-nowrap', className),
|
|
72
78
|
...props,
|
|
73
79
|
children: children
|
|
74
80
|
});
|
|
75
81
|
}
|
|
76
82
|
export function CodeBlockFooterDescription({ className, asChild = false, children, ...props }) {
|
|
77
|
-
|
|
78
|
-
|
|
83
|
+
if (asChild) {
|
|
84
|
+
return /*#__PURE__*/ _jsx(Slot, {
|
|
85
|
+
"data-slot": "code-block-footer-description",
|
|
86
|
+
className: cn('text-xs text-foreground-neutral-subtle', className),
|
|
87
|
+
...props,
|
|
88
|
+
children: children
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return /*#__PURE__*/ _jsx(Text, {
|
|
79
92
|
"data-slot": "code-block-footer-description",
|
|
80
|
-
|
|
93
|
+
size: "xs",
|
|
94
|
+
className: cn('text-foreground-neutral-subtle', className),
|
|
81
95
|
...props,
|
|
82
96
|
children: children
|
|
83
97
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/code-block/code-block-footer.tsx"],"sourcesContent":["import {Slot} from '@radix-ui/react-slot';\nimport {Icon} from 'components/icon/icon';\nimport type {ComponentProps, HTMLAttributes, ReactNode} from 'react';\nimport {cn} from 'utils/cn';\n\nexport type CodeBlockFooterProps = HTMLAttributes<HTMLDivElement> & {\n asChild?: boolean;\n state?: 'running' | 'done';\n message?: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n};\n\nexport function CodeBlockFooter({\n className,\n asChild = false,\n state = 'running',\n message,\n description,\n icon,\n children,\n ...props\n}: CodeBlockFooterProps) {\n const Comp = asChild ? Slot : 'div';\n\n const defaultIcon =\n icon ??\n (state === 'running' ? (\n <Icon name=\"shipfox\" className=\"size-20\" aria-hidden=\"true\" />\n ) : (\n <Icon\n name=\"checkCircleSolid\"\n className=\"size-20 text-foreground-neutral-base\"\n aria-hidden=\"true\"\n />\n ));\n\n if (asChild || children) {\n return (\n <Comp\n data-slot=\"code-block-footer\"\n className={cn('flex w-full items-center justify-start gap-12 px-16 py-12', className)}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n\n return (\n <Comp\n data-slot=\"code-block-footer\"\n className={cn('flex w-full items-center justify-start gap-12 px-16 py-12', className)}\n {...props}\n >\n <
|
|
1
|
+
{"version":3,"sources":["../../../src/components/code-block/code-block-footer.tsx"],"sourcesContent":["import {Slot} from '@radix-ui/react-slot';\nimport {Icon} from 'components/icon/icon';\nimport {Text} from 'components/typography';\nimport type {ComponentProps, HTMLAttributes, ReactNode} from 'react';\nimport {cn} from 'utils/cn';\n\nexport type CodeBlockFooterProps = HTMLAttributes<HTMLDivElement> & {\n asChild?: boolean;\n state?: 'running' | 'done';\n message?: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n};\n\nexport function CodeBlockFooter({\n className,\n asChild = false,\n state = 'running',\n message,\n description,\n icon,\n children,\n ...props\n}: CodeBlockFooterProps) {\n const Comp = asChild ? Slot : 'div';\n\n const defaultIcon =\n icon ??\n (state === 'running' ? (\n <Icon name=\"shipfox\" className=\"size-20\" aria-hidden=\"true\" />\n ) : (\n <Icon\n name=\"checkCircleSolid\"\n className=\"size-20 text-foreground-neutral-base\"\n aria-hidden=\"true\"\n />\n ));\n\n if (asChild || children) {\n return (\n <Comp\n data-slot=\"code-block-footer\"\n className={cn('flex w-full items-center justify-start gap-12 px-16 py-12', className)}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n\n return (\n <Comp\n data-slot=\"code-block-footer\"\n className={cn('flex w-full items-center justify-start gap-12 px-16 py-12', className)}\n {...props}\n >\n <CodeBlockFooterIcon className=\"text-tag-success-icon\">{defaultIcon}</CodeBlockFooterIcon>\n {(message || description) && (\n <CodeBlockFooterContent>\n {message && <CodeBlockFooterMessage>{message}</CodeBlockFooterMessage>}\n {description && <CodeBlockFooterDescription>{description}</CodeBlockFooterDescription>}\n </CodeBlockFooterContent>\n )}\n </Comp>\n );\n}\n\nexport type CodeBlockFooterIconProps = ComponentProps<'div'> & {\n asChild?: boolean;\n};\n\nexport function CodeBlockFooterIcon({\n className,\n asChild = false,\n children,\n ...props\n}: CodeBlockFooterIconProps) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n data-slot=\"code-block-footer-icon\"\n className={cn('flex shrink-0 items-center justify-center size-20', className)}\n {...props}\n >\n {children}\n </Comp>\n );\n}\n\nexport type CodeBlockFooterContentProps = ComponentProps<'div'> & {\n asChild?: boolean;\n};\n\nexport function CodeBlockFooterContent({\n className,\n asChild = false,\n children,\n ...props\n}: CodeBlockFooterContentProps) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n data-slot=\"code-block-footer-content\"\n className={cn('flex flex-col items-start justify-center gap-0 min-w-0 flex-1', className)}\n {...props}\n >\n {children}\n </Comp>\n );\n}\n\nexport type CodeBlockFooterMessageProps = ComponentProps<'div'> & {\n asChild?: boolean;\n};\n\nexport function CodeBlockFooterMessage({\n className,\n asChild = false,\n children,\n ...props\n}: CodeBlockFooterMessageProps) {\n if (asChild) {\n return (\n <Slot\n data-slot=\"code-block-footer-message\"\n className={cn('overflow-hidden text-ellipsis whitespace-nowrap text-xs', className)}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <Text\n data-slot=\"code-block-footer-message\"\n size=\"xs\"\n className={cn('overflow-hidden text-ellipsis whitespace-nowrap', className)}\n {...props}\n >\n {children}\n </Text>\n );\n}\n\nexport type CodeBlockFooterDescriptionProps = ComponentProps<'div'> & {\n asChild?: boolean;\n};\n\nexport function CodeBlockFooterDescription({\n className,\n asChild = false,\n children,\n ...props\n}: CodeBlockFooterDescriptionProps) {\n if (asChild) {\n return (\n <Slot\n data-slot=\"code-block-footer-description\"\n className={cn('text-xs text-foreground-neutral-subtle', className)}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <Text\n data-slot=\"code-block-footer-description\"\n size=\"xs\"\n className={cn('text-foreground-neutral-subtle', className)}\n {...props}\n >\n {children}\n </Text>\n );\n}\n"],"names":["Slot","Icon","Text","cn","CodeBlockFooter","className","asChild","state","message","description","icon","children","props","Comp","defaultIcon","name","aria-hidden","data-slot","CodeBlockFooterIcon","CodeBlockFooterContent","CodeBlockFooterMessage","CodeBlockFooterDescription","size"],"mappings":";AAAA,SAAQA,IAAI,QAAO,uBAAuB;AAC1C,SAAQC,IAAI,QAAO,uBAAuB;AAC1C,SAAQC,IAAI,QAAO,wBAAwB;AAE3C,SAAQC,EAAE,QAAO,WAAW;AAU5B,OAAO,SAASC,gBAAgB,EAC9BC,SAAS,EACTC,UAAU,KAAK,EACfC,QAAQ,SAAS,EACjBC,OAAO,EACPC,WAAW,EACXC,IAAI,EACJC,QAAQ,EACR,GAAGC,OACkB;IACrB,MAAMC,OAAOP,UAAUN,OAAO;IAE9B,MAAMc,cACJJ,QACCH,CAAAA,UAAU,0BACT,KAACN;QAAKc,MAAK;QAAUV,WAAU;QAAUW,eAAY;uBAErD,KAACf;QACCc,MAAK;QACLV,WAAU;QACVW,eAAY;MAEhB;IAEF,IAAIV,WAAWK,UAAU;QACvB,qBACE,KAACE;YACCI,aAAU;YACVZ,WAAWF,GAAG,6DAA6DE;YAC1E,GAAGO,KAAK;sBAERD;;IAGP;IAEA,qBACE,MAACE;QACCI,aAAU;QACVZ,WAAWF,GAAG,6DAA6DE;QAC1E,GAAGO,KAAK;;0BAET,KAACM;gBAAoBb,WAAU;0BAAyBS;;YACtDN,CAAAA,WAAWC,WAAU,mBACrB,MAACU;;oBACEX,yBAAW,KAACY;kCAAwBZ;;oBACpCC,6BAAe,KAACY;kCAA4BZ;;;;;;AAKvD;AAMA,OAAO,SAASS,oBAAoB,EAClCb,SAAS,EACTC,UAAU,KAAK,EACfK,QAAQ,EACR,GAAGC,OACsB;IACzB,MAAMC,OAAOP,UAAUN,OAAO;IAE9B,qBACE,KAACa;QACCI,aAAU;QACVZ,WAAWF,GAAG,qDAAqDE;QAClE,GAAGO,KAAK;kBAERD;;AAGP;AAMA,OAAO,SAASQ,uBAAuB,EACrCd,SAAS,EACTC,UAAU,KAAK,EACfK,QAAQ,EACR,GAAGC,OACyB;IAC5B,MAAMC,OAAOP,UAAUN,OAAO;IAE9B,qBACE,KAACa;QACCI,aAAU;QACVZ,WAAWF,GAAG,iEAAiEE;QAC9E,GAAGO,KAAK;kBAERD;;AAGP;AAMA,OAAO,SAASS,uBAAuB,EACrCf,SAAS,EACTC,UAAU,KAAK,EACfK,QAAQ,EACR,GAAGC,OACyB;IAC5B,IAAIN,SAAS;QACX,qBACE,KAACN;YACCiB,aAAU;YACVZ,WAAWF,GAAG,2DAA2DE;YACxE,GAAGO,KAAK;sBAERD;;IAGP;IAEA,qBACE,KAACT;QACCe,aAAU;QACVK,MAAK;QACLjB,WAAWF,GAAG,mDAAmDE;QAChE,GAAGO,KAAK;kBAERD;;AAGP;AAMA,OAAO,SAASU,2BAA2B,EACzChB,SAAS,EACTC,UAAU,KAAK,EACfK,QAAQ,EACR,GAAGC,OAC6B;IAChC,IAAIN,SAAS;QACX,qBACE,KAACN;YACCiB,aAAU;YACVZ,WAAWF,GAAG,0CAA0CE;YACvD,GAAGO,KAAK;sBAERD;;IAGP;IAEA,qBACE,KAACT;QACCe,aAAU;QACVK,MAAK;QACLjB,WAAWF,GAAG,kCAAkCE;QAC/C,GAAGO,KAAK;kBAERD;;AAGP"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Button } from '../../components/button/button.js';
|
|
3
3
|
import { ItemTitle } from '../../components/item/index.js';
|
|
4
|
+
import { MovingBorder } from '../../components/moving-border/index.js';
|
|
4
5
|
import { cn } from '../../utils/cn.js';
|
|
5
6
|
import illustration1 from '../../assets/illustration-1.svg';
|
|
6
7
|
import illustration2 from '../../assets/illustration-2.svg';
|
|
@@ -8,7 +9,6 @@ import illustrationBg from '../../assets/illustration-gradient.svg';
|
|
|
8
9
|
import { Avatar } from '../avatar/avatar.js';
|
|
9
10
|
import { AvatarGroup, AvatarGroupTooltip } from '../avatar/avatar-group.js';
|
|
10
11
|
import { Icon } from '../icon/icon.js';
|
|
11
|
-
import { MovingBorder } from '../moving-border/moving-border.js';
|
|
12
12
|
import { DynamicItem } from './dynamic-item.js';
|
|
13
13
|
const meta = {
|
|
14
14
|
title: 'Components/DynamicItem',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/dynamic-item/dynamic-item.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Button} from 'components/button/button';\nimport {ItemTitle} from 'components/item';\nimport {cn} from 'utils/cn';\nimport illustration1 from '../../assets/illustration-1.svg';\nimport illustration2 from '../../assets/illustration-2.svg';\nimport illustrationBg from '../../assets/illustration-gradient.svg';\nimport {Avatar} from '../avatar/avatar';\nimport {AvatarGroup, AvatarGroupTooltip} from '../avatar/avatar-group';\nimport {Icon} from '../icon/icon';\nimport {MovingBorder} from '../moving-border/moving-border';\nimport {DynamicItem} from './dynamic-item';\n\nconst meta = {\n title: 'Components/DynamicItem',\n component: DynamicItem,\n tags: ['autodocs'],\n} satisfies Meta<typeof DynamicItem>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const OrganizationItem: Story = {\n args: {},\n render: () => (\n <div className=\"flex flex-col gap-16 w-full max-w-476\">\n <DynamicItem\n variant=\"default\"\n leftElement={<Avatar content=\"logo\" logoName=\"slack\" radius=\"rounded\" size=\"xl\" />}\n title=\"Slack\"\n description=\"3 members\"\n rightElement={\n <AvatarGroup size=\"md\">\n <Avatar content=\"image\" fallback=\"John Doe\">\n <AvatarGroupTooltip>John Doe</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Jane Smith\">\n <AvatarGroupTooltip>Jane Smith</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Bob Johnson\">\n <AvatarGroupTooltip>Bob Johnson</AvatarGroupTooltip>\n </Avatar>\n </AvatarGroup>\n }\n />\n <DynamicItem\n variant=\"default\"\n leftElement={<Avatar content=\"logo\" logoName=\"stripe\" radius=\"rounded\" size=\"xl\" />}\n title=\"Stripe\"\n description=\"2 members\"\n rightElement={\n <AvatarGroup size=\"md\">\n <Avatar content=\"image\" fallback=\"Alice Brown\">\n <AvatarGroupTooltip>Alice Brown</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Carlos Vega\">\n <AvatarGroupTooltip>Carlos Vega</AvatarGroupTooltip>\n </Avatar>\n </AvatarGroup>\n }\n />\n <DynamicItem\n variant=\"default\"\n leftElement={<Avatar content=\"logo\" logoName=\"shipfox\" radius=\"rounded\" size=\"xl\" />}\n title=\"Shipfox\"\n description=\"9 members\"\n rightElement={\n <AvatarGroup size=\"md\" maxVisible={4} animateOnHover>\n <Avatar content=\"image\" fallback=\"Linda Tran\">\n <AvatarGroupTooltip>Linda Tran</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Michael Chen\">\n <AvatarGroupTooltip>Michael Chen</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Sarah Williams\">\n <AvatarGroupTooltip>Sarah Williams</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"David Lee\">\n <AvatarGroupTooltip>David Lee</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Emily Davis\">\n <AvatarGroupTooltip>Emily Davis</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"James Wilson\">\n <AvatarGroupTooltip>James Wilson</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Olivia Martinez\">\n <AvatarGroupTooltip>Olivia Martinez</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Noah Anderson\">\n <AvatarGroupTooltip>Noah Anderson</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Sophia Taylor\">\n <AvatarGroupTooltip>Sophia Taylor</AvatarGroupTooltip>\n </Avatar>\n </AvatarGroup>\n }\n />\n </div>\n ),\n};\n\nexport const ConnectGithubAccountItem: Story = {\n args: {},\n render: () => (\n <div className=\"flex flex-col gap-16 w-full max-w-476\">\n <DynamicItem\n variant=\"default\"\n leftElement={\n <div className=\"relative\">\n <Avatar content=\"logoPlaceholder\" logoName=\"slack\" radius=\"full\" size=\"lg\" />\n <Avatar\n content=\"logoPlaceholder\"\n logoName=\"github\"\n radius=\"full\"\n size=\"2xs\"\n logoClassName=\"p-0\"\n className=\"absolute bottom-0 left-27\"\n />\n </div>\n }\n title=\"Slack\"\n description=\"Connect Github organization\"\n rightElement={\n <Button variant=\"primary\" size=\"sm\">\n Connect\n </Button>\n }\n />\n\n <DynamicItem\n variant=\"default\"\n leftElement={\n <div className=\"relative\">\n <Avatar content=\"logoPlaceholder\" logoName=\"slack\" radius=\"full\" size=\"lg\" />\n <Avatar\n content=\"logo\"\n logoName=\"github\"\n radius=\"full\"\n size=\"2xs\"\n logoClassName=\"p-0\"\n className=\"absolute bottom-0 left-27\"\n />\n </div>\n }\n title=\"Slack\"\n description=\"Personal account (kye-nguyen)\"\n rightElement={\n <Button variant=\"primary\" size=\"sm\">\n Change account\n </Button>\n }\n />\n\n <DynamicItem\n variant=\"default\"\n leftElement={\n <div className=\"relative\">\n <Avatar content=\"logoPlaceholder\" logoName=\"slack\" radius=\"full\" size=\"lg\" />\n <Avatar\n content=\"logo\"\n logoName=\"github\"\n radius=\"full\"\n size=\"2xs\"\n logoClassName=\"p-0\"\n className=\"absolute bottom-0 left-27\"\n />\n </div>\n }\n title=\"Slack\"\n description=\"Organization (slack-github)\"\n rightElement={\n <Button variant=\"secondary\" size=\"sm\">\n Change account\n </Button>\n }\n />\n </div>\n ),\n};\n\nexport const WithCustomElementsItem: Story = {\n args: {},\n render: () => {\n return (\n <div className=\"flex flex-col gap-16 w-full max-w-672\">\n <DynamicItem\n variant=\"default\"\n leftElement={\n <div className=\"flex shrink-0 items-center justify-center text-tag-success-icon\">\n <Icon name=\"checkCircleSolid\" size=\"sm\" />\n </div>\n }\n title=\"Give access to your Github organizations\"\n description=\"We'll use this permission to sync your organization's.\"\n action={\n <div className=\"flex gap-8 mx-auto sm:mx-0\">\n <Button variant=\"primary\" size=\"sm\">\n Github access\n </Button>\n <Button variant=\"transparentMuted\" size=\"sm\">\n Skip for now\n </Button>\n </div>\n }\n rightElement={\n <img\n src={illustration1}\n alt=\"illustration-1\"\n className=\"hidden sm:block absolute overflow-clip right-2 top-1/2 -translate-y-1/2 -translate-x-46 w-fit object-contain\"\n />\n }\n />\n <div className=\"relative\">\n <img\n src={illustration2}\n alt=\"illustration-2\"\n className=\"hidden sm:block absolute overflow-clip right-2 top-1/2 -translate-y-1/2 translate-x-8 w-fit object-contain z-50\"\n />\n <div className={cn('relative overflow-hidden bg-transparent p-1 rounded-8')}>\n <div className=\"absolute inset-0\" style={{borderRadius: 'calc(0.5rem * 0.96)'}}>\n <MovingBorder duration={6000} rx=\"30%\" ry=\"30%\">\n <div className=\"h-100 w-200 bg-[radial-gradient(#ff9e7a_40%,transparent_60%)]\" />\n </MovingBorder>\n </div>\n <div\n className=\"relative\"\n style={{\n borderRadius: 'calc(0.5rem * 0.96)',\n }}\n >\n <DynamicItem\n variant=\"default\"\n title={\n <div className=\"flex items-center gap-6\">\n <span className=\"flex shrink-0 items-center justify-center text-tag-success-icon w-16 h-16\">\n <Icon\n name=\"money\"\n size=\"sm\"\n color=\"var(--foreground-neutral-subtle, #a1a1aa)\"\n />\n </span>\n <ItemTitle>6000 free credits/month to run your jobs</ItemTitle>\n </div>\n }\n description=\"~500 builds/month. No payment required.\"\n rightElement={\n <img\n src={illustrationBg}\n alt=\"illustration-bg\"\n className=\"hidden sm:block absolute overflow-clip right-4 w-fit object-contain scale-105\"\n />\n }\n />\n </div>\n </div>\n </div>\n </div>\n );\n },\n};\n"],"names":["Button","ItemTitle","cn","illustration1","illustration2","illustrationBg","Avatar","AvatarGroup","AvatarGroupTooltip","Icon","MovingBorder","DynamicItem","meta","title","component","tags","OrganizationItem","args","render","div","className","variant","leftElement","content","logoName","radius","size","description","rightElement","fallback","maxVisible","animateOnHover","ConnectGithubAccountItem","logoClassName","WithCustomElementsItem","name","action","img","src","alt","style","borderRadius","duration","rx","ry","span","color"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/dynamic-item/dynamic-item.stories.tsx"],"sourcesContent":["import type {Meta, StoryObj} from '@storybook/react';\nimport {Button} from 'components/button/button';\nimport {ItemTitle} from 'components/item';\nimport {MovingBorder} from 'components/moving-border';\nimport {cn} from 'utils/cn';\nimport illustration1 from '../../assets/illustration-1.svg';\nimport illustration2 from '../../assets/illustration-2.svg';\nimport illustrationBg from '../../assets/illustration-gradient.svg';\nimport {Avatar} from '../avatar/avatar';\nimport {AvatarGroup, AvatarGroupTooltip} from '../avatar/avatar-group';\nimport {Icon} from '../icon/icon';\nimport {DynamicItem} from './dynamic-item';\n\nconst meta = {\n title: 'Components/DynamicItem',\n component: DynamicItem,\n tags: ['autodocs'],\n} satisfies Meta<typeof DynamicItem>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const OrganizationItem: Story = {\n args: {},\n render: () => (\n <div className=\"flex flex-col gap-16 w-full max-w-476\">\n <DynamicItem\n variant=\"default\"\n leftElement={<Avatar content=\"logo\" logoName=\"slack\" radius=\"rounded\" size=\"xl\" />}\n title=\"Slack\"\n description=\"3 members\"\n rightElement={\n <AvatarGroup size=\"md\">\n <Avatar content=\"image\" fallback=\"John Doe\">\n <AvatarGroupTooltip>John Doe</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Jane Smith\">\n <AvatarGroupTooltip>Jane Smith</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Bob Johnson\">\n <AvatarGroupTooltip>Bob Johnson</AvatarGroupTooltip>\n </Avatar>\n </AvatarGroup>\n }\n />\n <DynamicItem\n variant=\"default\"\n leftElement={<Avatar content=\"logo\" logoName=\"stripe\" radius=\"rounded\" size=\"xl\" />}\n title=\"Stripe\"\n description=\"2 members\"\n rightElement={\n <AvatarGroup size=\"md\">\n <Avatar content=\"image\" fallback=\"Alice Brown\">\n <AvatarGroupTooltip>Alice Brown</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Carlos Vega\">\n <AvatarGroupTooltip>Carlos Vega</AvatarGroupTooltip>\n </Avatar>\n </AvatarGroup>\n }\n />\n <DynamicItem\n variant=\"default\"\n leftElement={<Avatar content=\"logo\" logoName=\"shipfox\" radius=\"rounded\" size=\"xl\" />}\n title=\"Shipfox\"\n description=\"9 members\"\n rightElement={\n <AvatarGroup size=\"md\" maxVisible={4} animateOnHover>\n <Avatar content=\"image\" fallback=\"Linda Tran\">\n <AvatarGroupTooltip>Linda Tran</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Michael Chen\">\n <AvatarGroupTooltip>Michael Chen</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Sarah Williams\">\n <AvatarGroupTooltip>Sarah Williams</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"David Lee\">\n <AvatarGroupTooltip>David Lee</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Emily Davis\">\n <AvatarGroupTooltip>Emily Davis</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"James Wilson\">\n <AvatarGroupTooltip>James Wilson</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Olivia Martinez\">\n <AvatarGroupTooltip>Olivia Martinez</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Noah Anderson\">\n <AvatarGroupTooltip>Noah Anderson</AvatarGroupTooltip>\n </Avatar>\n <Avatar content=\"image\" fallback=\"Sophia Taylor\">\n <AvatarGroupTooltip>Sophia Taylor</AvatarGroupTooltip>\n </Avatar>\n </AvatarGroup>\n }\n />\n </div>\n ),\n};\n\nexport const ConnectGithubAccountItem: Story = {\n args: {},\n render: () => (\n <div className=\"flex flex-col gap-16 w-full max-w-476\">\n <DynamicItem\n variant=\"default\"\n leftElement={\n <div className=\"relative\">\n <Avatar content=\"logoPlaceholder\" logoName=\"slack\" radius=\"full\" size=\"lg\" />\n <Avatar\n content=\"logoPlaceholder\"\n logoName=\"github\"\n radius=\"full\"\n size=\"2xs\"\n logoClassName=\"p-0\"\n className=\"absolute bottom-0 left-27\"\n />\n </div>\n }\n title=\"Slack\"\n description=\"Connect Github organization\"\n rightElement={\n <Button variant=\"primary\" size=\"sm\">\n Connect\n </Button>\n }\n />\n\n <DynamicItem\n variant=\"default\"\n leftElement={\n <div className=\"relative\">\n <Avatar content=\"logoPlaceholder\" logoName=\"slack\" radius=\"full\" size=\"lg\" />\n <Avatar\n content=\"logo\"\n logoName=\"github\"\n radius=\"full\"\n size=\"2xs\"\n logoClassName=\"p-0\"\n className=\"absolute bottom-0 left-27\"\n />\n </div>\n }\n title=\"Slack\"\n description=\"Personal account (kye-nguyen)\"\n rightElement={\n <Button variant=\"primary\" size=\"sm\">\n Change account\n </Button>\n }\n />\n\n <DynamicItem\n variant=\"default\"\n leftElement={\n <div className=\"relative\">\n <Avatar content=\"logoPlaceholder\" logoName=\"slack\" radius=\"full\" size=\"lg\" />\n <Avatar\n content=\"logo\"\n logoName=\"github\"\n radius=\"full\"\n size=\"2xs\"\n logoClassName=\"p-0\"\n className=\"absolute bottom-0 left-27\"\n />\n </div>\n }\n title=\"Slack\"\n description=\"Organization (slack-github)\"\n rightElement={\n <Button variant=\"secondary\" size=\"sm\">\n Change account\n </Button>\n }\n />\n </div>\n ),\n};\n\nexport const WithCustomElementsItem: Story = {\n args: {},\n render: () => {\n return (\n <div className=\"flex flex-col gap-16 w-full max-w-672\">\n <DynamicItem\n variant=\"default\"\n leftElement={\n <div className=\"flex shrink-0 items-center justify-center text-tag-success-icon\">\n <Icon name=\"checkCircleSolid\" size=\"sm\" />\n </div>\n }\n title=\"Give access to your Github organizations\"\n description=\"We'll use this permission to sync your organization's.\"\n action={\n <div className=\"flex gap-8 mx-auto sm:mx-0\">\n <Button variant=\"primary\" size=\"sm\">\n Github access\n </Button>\n <Button variant=\"transparentMuted\" size=\"sm\">\n Skip for now\n </Button>\n </div>\n }\n rightElement={\n <img\n src={illustration1}\n alt=\"illustration-1\"\n className=\"hidden sm:block absolute overflow-clip right-2 top-1/2 -translate-y-1/2 -translate-x-46 w-fit object-contain\"\n />\n }\n />\n <div className=\"relative\">\n <img\n src={illustration2}\n alt=\"illustration-2\"\n className=\"hidden sm:block absolute overflow-clip right-2 top-1/2 -translate-y-1/2 translate-x-8 w-fit object-contain z-50\"\n />\n <div className={cn('relative overflow-hidden bg-transparent p-1 rounded-8')}>\n <div className=\"absolute inset-0\" style={{borderRadius: 'calc(0.5rem * 0.96)'}}>\n <MovingBorder duration={6000} rx=\"30%\" ry=\"30%\">\n <div className=\"h-100 w-200 bg-[radial-gradient(#ff9e7a_40%,transparent_60%)]\" />\n </MovingBorder>\n </div>\n <div\n className=\"relative\"\n style={{\n borderRadius: 'calc(0.5rem * 0.96)',\n }}\n >\n <DynamicItem\n variant=\"default\"\n title={\n <div className=\"flex items-center gap-6\">\n <span className=\"flex shrink-0 items-center justify-center text-tag-success-icon w-16 h-16\">\n <Icon\n name=\"money\"\n size=\"sm\"\n color=\"var(--foreground-neutral-subtle, #a1a1aa)\"\n />\n </span>\n <ItemTitle>6000 free credits/month to run your jobs</ItemTitle>\n </div>\n }\n description=\"~500 builds/month. No payment required.\"\n rightElement={\n <img\n src={illustrationBg}\n alt=\"illustration-bg\"\n className=\"hidden sm:block absolute overflow-clip right-4 w-fit object-contain scale-105\"\n />\n }\n />\n </div>\n </div>\n </div>\n </div>\n );\n },\n};\n"],"names":["Button","ItemTitle","MovingBorder","cn","illustration1","illustration2","illustrationBg","Avatar","AvatarGroup","AvatarGroupTooltip","Icon","DynamicItem","meta","title","component","tags","OrganizationItem","args","render","div","className","variant","leftElement","content","logoName","radius","size","description","rightElement","fallback","maxVisible","animateOnHover","ConnectGithubAccountItem","logoClassName","WithCustomElementsItem","name","action","img","src","alt","style","borderRadius","duration","rx","ry","span","color"],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ declare const iconsMap: {
|
|
|
29
29
|
readonly copy: RemixiconComponentType;
|
|
30
30
|
readonly addLine: RemixiconComponentType;
|
|
31
31
|
readonly chevronRight: RemixiconComponentType;
|
|
32
|
+
readonly bookOpen: RemixiconComponentType;
|
|
32
33
|
};
|
|
33
34
|
export type IconName = keyof typeof iconsMap;
|
|
34
35
|
export declare const iconNames: IconName[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,
|
|
1
|
+
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAQ3B,YAAY,EAOb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,EACX,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B6C,CAAC;AAE5D,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAC7C,eAAO,MAAM,SAAS,EAA4B,QAAQ,EAAE,CAAC;AAE7D,KAAK,aAAa,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC;AACzD,KAAK,SAAS,GAAG;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAEhE,wBAAgB,IAAI,CAAC,EAAC,IAAI,EAAE,GAAG,KAAK,EAAC,EAAE,SAAS,2CAG/C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { RiAddLine, RiArrowRightSLine, RiCheckLine, RiCloseLine, RiFileCopyLine, RiGithubFill, RiGoogleFill, RiHomeSmileFill, RiImageAddFill, RiInformationFill, RiMicrosoftFill, RiMoneyDollarCircleLine, RiSubtractLine } from '@remixicon/react';
|
|
2
|
+
import { RiAddLine, RiArrowRightSLine, RiBookOpenFill, RiCheckLine, RiCloseLine, RiFileCopyLine, RiGithubFill, RiGoogleFill, RiHomeSmileFill, RiImageAddFill, RiInformationFill, RiMicrosoftFill, RiMoneyDollarCircleLine, RiSubtractLine } from '@remixicon/react';
|
|
3
3
|
import { BadgeIcon, CheckCircleSolidIcon, CircleDottedLineIcon, ComponentFillIcon, ComponentLineIcon, EllipseMiniSolidIcon, InfoTooltipFillIcon, ResizeIcon, ShipfoxLogo, SlackLogo, SpinnerIcon, StripeLogo, ThunderIcon, XCircleSolidIcon } from './custom/index.js';
|
|
4
4
|
const iconsMap = {
|
|
5
5
|
google: RiGoogleFill,
|
|
@@ -28,7 +28,8 @@ const iconsMap = {
|
|
|
28
28
|
homeSmile: RiHomeSmileFill,
|
|
29
29
|
copy: RiFileCopyLine,
|
|
30
30
|
addLine: RiAddLine,
|
|
31
|
-
chevronRight: RiArrowRightSLine
|
|
31
|
+
chevronRight: RiArrowRightSLine,
|
|
32
|
+
bookOpen: RiBookOpenFill
|
|
32
33
|
};
|
|
33
34
|
export const iconNames = Object.keys(iconsMap);
|
|
34
35
|
export function Icon({ name, ...props }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/icon/icon.tsx"],"sourcesContent":["import {\n type RemixiconComponentType,\n RiAddLine,\n RiArrowRightSLine,\n RiCheckLine,\n RiCloseLine,\n RiFileCopyLine,\n RiGithubFill,\n RiGoogleFill,\n RiHomeSmileFill,\n RiImageAddFill,\n RiInformationFill,\n RiMicrosoftFill,\n RiMoneyDollarCircleLine,\n RiSubtractLine,\n} from '@remixicon/react';\nimport type {ComponentProps} from 'react';\nimport {\n BadgeIcon,\n CheckCircleSolidIcon,\n CircleDottedLineIcon,\n ComponentFillIcon,\n ComponentLineIcon,\n EllipseMiniSolidIcon,\n InfoTooltipFillIcon,\n ResizeIcon,\n ShipfoxLogo,\n SlackLogo,\n SpinnerIcon,\n StripeLogo,\n ThunderIcon,\n XCircleSolidIcon,\n} from './custom';\n\nconst iconsMap = {\n google: RiGoogleFill,\n microsoft: RiMicrosoftFill,\n badge: BadgeIcon,\n checkCircleSolid: CheckCircleSolidIcon,\n circleDottedLine: CircleDottedLineIcon,\n componentFill: ComponentFillIcon,\n xCircleSolid: XCircleSolidIcon,\n thunder: ThunderIcon,\n resize: ResizeIcon,\n infoTooltipFill: InfoTooltipFillIcon,\n spinner: SpinnerIcon,\n ellipseMiniSolid: EllipseMiniSolidIcon,\n componentLine: ComponentLineIcon,\n imageAdd: RiImageAddFill,\n close: RiCloseLine,\n shipfox: ShipfoxLogo,\n slack: SlackLogo,\n stripe: StripeLogo,\n github: RiGithubFill,\n check: RiCheckLine,\n subtractLine: RiSubtractLine,\n info: RiInformationFill,\n money: RiMoneyDollarCircleLine,\n homeSmile: RiHomeSmileFill,\n copy: RiFileCopyLine,\n addLine: RiAddLine,\n chevronRight: RiArrowRightSLine,\n} as const satisfies Record<string, RemixiconComponentType>;\n\nexport type IconName = keyof typeof iconsMap;\nexport const iconNames = Object.keys(iconsMap) as IconName[];\n\ntype BaseIconProps = ComponentProps<typeof RiGoogleFill>;\ntype IconProps = {name: IconName} & Omit<BaseIconProps, 'name'>;\n\nexport function Icon({name, ...props}: IconProps) {\n const IconComponent = iconsMap[name];\n return <IconComponent {...props} />;\n}\n"],"names":["RiAddLine","RiArrowRightSLine","RiCheckLine","RiCloseLine","RiFileCopyLine","RiGithubFill","RiGoogleFill","RiHomeSmileFill","RiImageAddFill","RiInformationFill","RiMicrosoftFill","RiMoneyDollarCircleLine","RiSubtractLine","BadgeIcon","CheckCircleSolidIcon","CircleDottedLineIcon","ComponentFillIcon","ComponentLineIcon","EllipseMiniSolidIcon","InfoTooltipFillIcon","ResizeIcon","ShipfoxLogo","SlackLogo","SpinnerIcon","StripeLogo","ThunderIcon","XCircleSolidIcon","iconsMap","google","microsoft","badge","checkCircleSolid","circleDottedLine","componentFill","xCircleSolid","thunder","resize","infoTooltipFill","spinner","ellipseMiniSolid","componentLine","imageAdd","close","shipfox","slack","stripe","github","check","subtractLine","info","money","homeSmile","copy","addLine","chevronRight","iconNames","Object","keys","Icon","name","props","IconComponent"],"mappings":";AAAA,SAEEA,SAAS,EACTC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,YAAY,EACZC,YAAY,EACZC,eAAe,EACfC,cAAc,EACdC,iBAAiB,EACjBC,eAAe,EACfC,uBAAuB,EACvBC,cAAc,QACT,mBAAmB;AAE1B,SACEC,SAAS,EACTC,oBAAoB,EACpBC,oBAAoB,EACpBC,iBAAiB,EACjBC,iBAAiB,EACjBC,oBAAoB,EACpBC,mBAAmB,EACnBC,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,WAAW,EACXC,UAAU,EACVC,WAAW,EACXC,gBAAgB,QACX,WAAW;AAElB,MAAMC,WAAW;IACfC,QAAQtB;IACRuB,WAAWnB;IACXoB,OAAOjB;IACPkB,kBAAkBjB;IAClBkB,kBAAkBjB;IAClBkB,eAAejB;IACfkB,cAAcR;IACdS,SAASV;IACTW,QAAQhB;IACRiB,iBAAiBlB;IACjBmB,SAASf;IACTgB,kBAAkBrB;IAClBsB,eAAevB;IACfwB,UAAUjC;IACVkC,OAAOvC;IACPwC,SAAStB;IACTuB,OAAOtB;IACPuB,QAAQrB;IACRsB,QAAQzC;IACR0C,OAAO7C;IACP8C,cAAcpC;IACdqC,MAAMxC;IACNyC,OAAOvC;IACPwC,WAAW5C;IACX6C,MAAMhD;IACNiD,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/icon/icon.tsx"],"sourcesContent":["import {\n type RemixiconComponentType,\n RiAddLine,\n RiArrowRightSLine,\n RiBookOpenFill,\n RiCheckLine,\n RiCloseLine,\n RiFileCopyLine,\n RiGithubFill,\n RiGoogleFill,\n RiHomeSmileFill,\n RiImageAddFill,\n RiInformationFill,\n RiMicrosoftFill,\n RiMoneyDollarCircleLine,\n RiSubtractLine,\n} from '@remixicon/react';\nimport type {ComponentProps} from 'react';\nimport {\n BadgeIcon,\n CheckCircleSolidIcon,\n CircleDottedLineIcon,\n ComponentFillIcon,\n ComponentLineIcon,\n EllipseMiniSolidIcon,\n InfoTooltipFillIcon,\n ResizeIcon,\n ShipfoxLogo,\n SlackLogo,\n SpinnerIcon,\n StripeLogo,\n ThunderIcon,\n XCircleSolidIcon,\n} from './custom';\n\nconst iconsMap = {\n google: RiGoogleFill,\n microsoft: RiMicrosoftFill,\n badge: BadgeIcon,\n checkCircleSolid: CheckCircleSolidIcon,\n circleDottedLine: CircleDottedLineIcon,\n componentFill: ComponentFillIcon,\n xCircleSolid: XCircleSolidIcon,\n thunder: ThunderIcon,\n resize: ResizeIcon,\n infoTooltipFill: InfoTooltipFillIcon,\n spinner: SpinnerIcon,\n ellipseMiniSolid: EllipseMiniSolidIcon,\n componentLine: ComponentLineIcon,\n imageAdd: RiImageAddFill,\n close: RiCloseLine,\n shipfox: ShipfoxLogo,\n slack: SlackLogo,\n stripe: StripeLogo,\n github: RiGithubFill,\n check: RiCheckLine,\n subtractLine: RiSubtractLine,\n info: RiInformationFill,\n money: RiMoneyDollarCircleLine,\n homeSmile: RiHomeSmileFill,\n copy: RiFileCopyLine,\n addLine: RiAddLine,\n chevronRight: RiArrowRightSLine,\n bookOpen: RiBookOpenFill,\n} as const satisfies Record<string, RemixiconComponentType>;\n\nexport type IconName = keyof typeof iconsMap;\nexport const iconNames = Object.keys(iconsMap) as IconName[];\n\ntype BaseIconProps = ComponentProps<typeof RiGoogleFill>;\ntype IconProps = {name: IconName} & Omit<BaseIconProps, 'name'>;\n\nexport function Icon({name, ...props}: IconProps) {\n const IconComponent = iconsMap[name];\n return <IconComponent {...props} />;\n}\n"],"names":["RiAddLine","RiArrowRightSLine","RiBookOpenFill","RiCheckLine","RiCloseLine","RiFileCopyLine","RiGithubFill","RiGoogleFill","RiHomeSmileFill","RiImageAddFill","RiInformationFill","RiMicrosoftFill","RiMoneyDollarCircleLine","RiSubtractLine","BadgeIcon","CheckCircleSolidIcon","CircleDottedLineIcon","ComponentFillIcon","ComponentLineIcon","EllipseMiniSolidIcon","InfoTooltipFillIcon","ResizeIcon","ShipfoxLogo","SlackLogo","SpinnerIcon","StripeLogo","ThunderIcon","XCircleSolidIcon","iconsMap","google","microsoft","badge","checkCircleSolid","circleDottedLine","componentFill","xCircleSolid","thunder","resize","infoTooltipFill","spinner","ellipseMiniSolid","componentLine","imageAdd","close","shipfox","slack","stripe","github","check","subtractLine","info","money","homeSmile","copy","addLine","chevronRight","bookOpen","iconNames","Object","keys","Icon","name","props","IconComponent"],"mappings":";AAAA,SAEEA,SAAS,EACTC,iBAAiB,EACjBC,cAAc,EACdC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,YAAY,EACZC,YAAY,EACZC,eAAe,EACfC,cAAc,EACdC,iBAAiB,EACjBC,eAAe,EACfC,uBAAuB,EACvBC,cAAc,QACT,mBAAmB;AAE1B,SACEC,SAAS,EACTC,oBAAoB,EACpBC,oBAAoB,EACpBC,iBAAiB,EACjBC,iBAAiB,EACjBC,oBAAoB,EACpBC,mBAAmB,EACnBC,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,WAAW,EACXC,UAAU,EACVC,WAAW,EACXC,gBAAgB,QACX,WAAW;AAElB,MAAMC,WAAW;IACfC,QAAQtB;IACRuB,WAAWnB;IACXoB,OAAOjB;IACPkB,kBAAkBjB;IAClBkB,kBAAkBjB;IAClBkB,eAAejB;IACfkB,cAAcR;IACdS,SAASV;IACTW,QAAQhB;IACRiB,iBAAiBlB;IACjBmB,SAASf;IACTgB,kBAAkBrB;IAClBsB,eAAevB;IACfwB,UAAUjC;IACVkC,OAAOvC;IACPwC,SAAStB;IACTuB,OAAOtB;IACPuB,QAAQrB;IACRsB,QAAQzC;IACR0C,OAAO7C;IACP8C,cAAcpC;IACdqC,MAAMxC;IACNyC,OAAOvC;IACPwC,WAAW5C;IACX6C,MAAMhD;IACNiD,SAAStD;IACTuD,cAActD;IACduD,UAAUtD;AACZ;AAGA,OAAO,MAAMuD,YAAYC,OAAOC,IAAI,CAAC/B,UAAwB;AAK7D,OAAO,SAASgC,KAAK,EAACC,IAAI,EAAE,GAAGC,OAAiB;IAC9C,MAAMC,gBAAgBnC,QAAQ,CAACiC,KAAK;IACpC,qBAAO,KAACE;QAAe,GAAGD,KAAK;;AACjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
|
package/dist/components/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * from './inline-tips/index.js';
|
|
|
10
10
|
export * from './input/index.js';
|
|
11
11
|
export * from './item/index.js';
|
|
12
12
|
export * from './label/index.js';
|
|
13
|
+
export * from './modal/index.js';
|
|
13
14
|
export * from './textarea/index.js';
|
|
14
15
|
export * from './theme/index.js';
|
|
15
16
|
export * from './toast/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './alert';\nexport * from './avatar';\nexport * from './badge';\nexport * from './button';\nexport * from './checkbox';\nexport * from './code-block';\nexport * from './dynamic-item';\nexport * from './icon';\nexport * from './inline-tips';\nexport * from './input';\nexport * from './item';\nexport * from './label';\nexport * from './textarea';\nexport * from './theme';\nexport * from './toast';\nexport * from './typography';\n"],"names":[],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,WAAW;AACzB,cAAc,aAAa;AAC3B,cAAc,eAAe;AAC7B,cAAc,iBAAiB;AAC/B,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,aAAa;AAC3B,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,eAAe"}
|
|
1
|
+
{"version":3,"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './alert';\nexport * from './avatar';\nexport * from './badge';\nexport * from './button';\nexport * from './checkbox';\nexport * from './code-block';\nexport * from './dynamic-item';\nexport * from './icon';\nexport * from './inline-tips';\nexport * from './input';\nexport * from './item';\nexport * from './label';\nexport * from './modal';\nexport * from './textarea';\nexport * from './theme';\nexport * from './toast';\nexport * from './typography';\n"],"names":[],"mappings":"AAAA,cAAc,UAAU;AACxB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,WAAW;AACzB,cAAc,aAAa;AAC3B,cAAc,eAAe;AAC7B,cAAc,iBAAiB;AAC/B,cAAc,SAAS;AACvB,cAAc,gBAAgB;AAC9B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,aAAa;AAC3B,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,eAAe"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { ModalContentProps, ModalDescriptionProps, ModalHeaderProps, ModalOverlayProps, ModalTitleProps, } from './modal';
|
|
2
|
+
export { Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, modalContentVariants, modalDefaultTransition, modalOverlayVariants, } from './modal';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/modal/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/modal/index.ts"],"sourcesContent":["export type {\n ModalContentProps,\n ModalDescriptionProps,\n ModalHeaderProps,\n ModalOverlayProps,\n ModalTitleProps,\n} from './modal';\nexport {\n Modal,\n ModalBody,\n ModalClose,\n ModalContent,\n ModalDescription,\n ModalFooter,\n ModalHeader,\n ModalOverlay,\n ModalPortal,\n ModalTitle,\n ModalTrigger,\n modalContentVariants,\n modalDefaultTransition,\n modalOverlayVariants,\n} from './modal';\n"],"names":["Modal","ModalBody","ModalClose","ModalContent","ModalDescription","ModalFooter","ModalHeader","ModalOverlay","ModalPortal","ModalTitle","ModalTrigger","modalContentVariants","modalDefaultTransition","modalOverlayVariants"],"mappings":"AAOA,SACEA,KAAK,EACLC,SAAS,EACTC,UAAU,EACVC,YAAY,EACZC,gBAAgB,EAChBC,WAAW,EACXC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,UAAU,EACVC,YAAY,EACZC,oBAAoB,EACpBC,sBAAsB,EACtBC,oBAAoB,QACf,UAAU"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
2
|
+
import { type Transition } from 'framer-motion';
|
|
3
|
+
import { type ComponentProps } from 'react';
|
|
4
|
+
declare const modalDefaultTransition: Transition;
|
|
5
|
+
declare const modalOverlayVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
6
|
+
declare const modalContentVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
7
|
+
declare function Modal({ breakpoint, children, ...props }: ComponentProps<typeof DialogPrimitive.Root> & {
|
|
8
|
+
breakpoint?: string;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function ModalTrigger(props: ComponentProps<typeof DialogPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
declare function ModalPortal(props: ComponentProps<typeof DialogPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare function ModalClose(props: ComponentProps<typeof DialogPrimitive.Close>): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
type ModalOverlayProps = ComponentProps<typeof DialogPrimitive.Overlay> & {
|
|
14
|
+
animated?: boolean;
|
|
15
|
+
transition?: Transition;
|
|
16
|
+
};
|
|
17
|
+
declare function ModalOverlay({ className, animated, transition, ...props }: ModalOverlayProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
type ModalContentProps = ComponentProps<typeof DialogPrimitive.Content> & {
|
|
19
|
+
animated?: boolean;
|
|
20
|
+
transition?: Transition;
|
|
21
|
+
};
|
|
22
|
+
declare function ModalContent({ className, children, animated, transition, ...props }: ModalContentProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
type ModalHeaderProps = ComponentProps<'div'> & {
|
|
24
|
+
title?: string;
|
|
25
|
+
showEscIndicator?: boolean;
|
|
26
|
+
showClose?: boolean;
|
|
27
|
+
};
|
|
28
|
+
declare function ModalHeader({ className, title, showEscIndicator, showClose, children, ...props }: ModalHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
declare function ModalBody({ className, children, ...props }: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
declare function ModalFooter({ className, children, ...props }: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
type ModalTitleProps = ComponentProps<typeof DialogPrimitive.Title>;
|
|
32
|
+
declare function ModalTitle({ className, ...props }: ModalTitleProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
type ModalDescriptionProps = ComponentProps<typeof DialogPrimitive.Description>;
|
|
34
|
+
declare function ModalDescription({ className, ...props }: ModalDescriptionProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export { Modal, ModalPortal, ModalOverlay, ModalTrigger, ModalClose, ModalContent, ModalHeader, ModalBody, ModalFooter, ModalTitle, ModalDescription, modalContentVariants, modalOverlayVariants, modalDefaultTransition, };
|
|
36
|
+
export type { ModalContentProps, ModalHeaderProps, ModalOverlayProps, ModalTitleProps, ModalDescriptionProps, };
|
|
37
|
+
//# sourceMappingURL=modal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.tsx"],"names":[],"mappings":"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"}
|