@shipfox/react-ui 0.3.0 → 0.5.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/main.ts +20 -10
- package/.storybook/preview.tsx +1 -1
- package/.storybook/vitest.setup.ts +4 -0
- package/.turbo/turbo-build.log +2 -2
- package/.turbo/turbo-check.log +2 -2
- package/.turbo/turbo-type.log +1 -1
- package/CHANGELOG.md +18 -0
- package/README.md +40 -1
- package/argos.config.ts +33 -0
- package/dist/components/alert/alert.d.ts +2 -2
- package/dist/components/alert/alert.js +3 -3
- package/dist/components/alert/alert.js.map +1 -1
- package/dist/components/alert/alert.stories.js +2 -2
- package/dist/components/alert/alert.stories.js.map +1 -1
- package/dist/components/avatar/avatar-group.js +3 -3
- package/dist/components/avatar/avatar-group.js.map +1 -1
- package/dist/components/avatar/avatar.d.ts +4 -1
- package/dist/components/avatar/avatar.d.ts.map +1 -1
- package/dist/components/avatar/avatar.js +7 -8
- package/dist/components/avatar/avatar.js.map +1 -1
- package/dist/components/avatar/avatar.stories.js +15 -3
- package/dist/components/avatar/avatar.stories.js.map +1 -1
- package/dist/components/badge/badge.d.ts +48 -0
- package/dist/components/badge/badge.d.ts.map +1 -0
- package/dist/components/badge/badge.js +72 -0
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/badge/badge.stories.js +802 -0
- package/dist/components/badge/badge.stories.js.map +1 -0
- package/dist/components/badge/icon-badge.d.ts +9 -0
- package/dist/components/badge/icon-badge.d.ts.map +1 -0
- package/dist/components/badge/icon-badge.js +32 -0
- package/dist/components/badge/icon-badge.js.map +1 -0
- package/dist/components/badge/index.d.ts +5 -0
- package/dist/components/badge/index.d.ts.map +1 -0
- package/dist/components/badge/index.js +6 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/badge/status-badge.d.ts +9 -0
- package/dist/components/badge/status-badge.d.ts.map +1 -0
- package/dist/components/badge/status-badge.js +29 -0
- package/dist/components/badge/status-badge.js.map +1 -0
- package/dist/components/badge/user-badge.d.ts +8 -0
- package/dist/components/badge/user-badge.d.ts.map +1 -0
- package/dist/components/badge/user-badge.js +24 -0
- package/dist/components/badge/user-badge.js.map +1 -0
- package/dist/components/button/button-link.d.ts +14 -0
- package/dist/components/button/button-link.d.ts.map +1 -0
- package/dist/components/button/button-link.js +63 -0
- package/dist/components/button/button-link.js.map +1 -0
- package/dist/components/button/button-link.stories.js +127 -0
- package/dist/components/button/button-link.stories.js.map +1 -0
- package/dist/components/{button.d.ts → button/button.d.ts} +2 -2
- package/dist/components/button/button.d.ts.map +1 -0
- package/dist/components/{button.js → button/button.js} +9 -8
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/{button.stories.js → button/button.stories.js} +2 -14
- package/dist/components/button/button.stories.js.map +1 -0
- package/dist/components/button/icon-button.d.ts +14 -0
- package/dist/components/button/icon-button.d.ts.map +1 -0
- package/dist/components/button/icon-button.js +53 -0
- package/dist/components/button/icon-button.js.map +1 -0
- package/dist/components/button/icon-button.stories.js +254 -0
- package/dist/components/button/icon-button.stories.js.map +1 -0
- package/dist/components/button/index.d.ts +4 -0
- package/dist/components/button/index.d.ts.map +1 -0
- package/dist/components/button/index.js +5 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/checkbox/checkbox-label.d.ts +14 -0
- package/dist/components/checkbox/checkbox-label.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox-label.js +82 -0
- package/dist/components/checkbox/checkbox-label.js.map +1 -0
- package/dist/components/checkbox/checkbox-links.d.ts +18 -0
- package/dist/components/checkbox/checkbox-links.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox-links.js +58 -0
- package/dist/components/checkbox/checkbox-links.js.map +1 -0
- package/dist/components/checkbox/checkbox.d.ts +9 -0
- package/dist/components/checkbox/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox/checkbox.js +49 -0
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/checkbox/checkbox.stories.js +566 -0
- package/dist/components/checkbox/checkbox.stories.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +4 -0
- package/dist/components/checkbox/index.d.ts.map +1 -0
- package/dist/components/checkbox/index.js +5 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/code-block/code-block-footer.d.ts +26 -0
- package/dist/components/code-block/code-block-footer.d.ts.map +1 -0
- package/dist/components/code-block/code-block-footer.js +86 -0
- package/dist/components/code-block/code-block-footer.js.map +1 -0
- package/dist/components/code-block/code-block.d.ts +50 -0
- package/dist/components/code-block/code-block.d.ts.map +1 -0
- package/dist/components/code-block/code-block.js +142 -0
- package/dist/components/code-block/code-block.js.map +1 -0
- package/dist/components/code-block/code-block.stories.js +341 -0
- package/dist/components/code-block/code-block.stories.js.map +1 -0
- package/dist/components/code-block/code-content.d.ts +11 -0
- package/dist/components/code-block/code-content.d.ts.map +1 -0
- package/dist/components/code-block/code-content.js +29 -0
- package/dist/components/code-block/code-content.js.map +1 -0
- package/dist/components/code-block/code-copy-button.d.ts +11 -0
- package/dist/components/code-block/code-copy-button.d.ts.map +1 -0
- package/dist/components/code-block/code-copy-button.js +49 -0
- package/dist/components/code-block/code-copy-button.js.map +1 -0
- package/dist/components/code-block/code-tabs.d.ts +16 -0
- package/dist/components/code-block/code-tabs.d.ts.map +1 -0
- package/dist/components/code-block/code-tabs.js +98 -0
- package/dist/components/code-block/code-tabs.js.map +1 -0
- package/dist/components/code-block/index.d.ts +4 -0
- package/dist/components/code-block/index.d.ts.map +1 -0
- package/dist/components/code-block/index.js +5 -0
- package/dist/components/code-block/index.js.map +1 -0
- package/dist/components/dynamic-item/dynamic-item.d.ts +13 -0
- package/dist/components/dynamic-item/dynamic-item.d.ts.map +1 -0
- package/dist/components/dynamic-item/dynamic-item.js +43 -0
- package/dist/components/dynamic-item/dynamic-item.js.map +1 -0
- package/dist/components/dynamic-item/dynamic-item.stories.js +375 -0
- package/dist/components/dynamic-item/dynamic-item.stories.js.map +1 -0
- package/dist/components/dynamic-item/index.d.ts +2 -0
- package/dist/components/dynamic-item/index.d.ts.map +1 -0
- package/dist/components/dynamic-item/index.js +3 -0
- package/dist/components/dynamic-item/index.js.map +1 -0
- package/dist/components/icon/custom/index.d.ts +2 -0
- package/dist/components/icon/custom/index.d.ts.map +1 -1
- package/dist/components/icon/custom/index.js +2 -0
- package/dist/components/icon/custom/index.js.map +1 -1
- package/dist/components/icon/custom/slack-logo.d.ts +6 -0
- package/dist/components/icon/custom/slack-logo.d.ts.map +1 -0
- package/dist/components/icon/custom/slack-logo.js +34 -0
- package/dist/components/icon/custom/slack-logo.js.map +1 -0
- package/dist/components/icon/custom/stripe-logo.d.ts +8 -0
- package/dist/components/icon/custom/stripe-logo.d.ts.map +1 -0
- package/dist/components/icon/custom/stripe-logo.js +24 -0
- package/dist/components/icon/custom/stripe-logo.js.map +1 -0
- package/dist/components/icon/icon.d.ts +13 -2
- package/dist/components/icon/icon.d.ts.map +1 -1
- package/dist/components/icon/icon.js +14 -3
- package/dist/components/icon/icon.js.map +1 -1
- package/dist/components/icon/icon.stories.js +6 -3
- package/dist/components/icon/icon.stories.js.map +1 -1
- package/dist/components/index.d.ts +9 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +10 -2
- package/dist/components/index.js.map +1 -1
- package/dist/components/inline-tips/inline-tips.d.ts +1 -1
- package/dist/components/inline-tips/inline-tips.d.ts.map +1 -1
- package/dist/components/inline-tips/inline-tips.js +1 -1
- package/dist/components/inline-tips/inline-tips.js.map +1 -1
- package/dist/components/inline-tips/inline-tips.stories.js +5 -5
- package/dist/components/inline-tips/inline-tips.stories.js.map +1 -1
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/input/index.d.ts.map +1 -0
- package/dist/components/input/index.js +3 -0
- package/dist/components/input/index.js.map +1 -0
- package/dist/components/input/input.d.ts.map +1 -0
- package/dist/components/{input.js → input/input.js} +2 -2
- package/dist/components/input/input.js.map +1 -0
- package/dist/components/{input.stories.js → input/input.stories.js} +1 -1
- package/dist/components/input/input.stories.js.map +1 -0
- package/dist/components/item/index.d.ts +2 -0
- package/dist/components/item/index.d.ts.map +1 -0
- package/dist/components/item/index.js +3 -0
- package/dist/components/item/index.js.map +1 -0
- package/dist/components/item/item.d.ts +32 -0
- package/dist/components/item/item.d.ts.map +1 -0
- package/dist/components/item/item.js +120 -0
- package/dist/components/item/item.js.map +1 -0
- package/dist/components/item/item.stories.js +232 -0
- package/dist/components/item/item.stories.js.map +1 -0
- package/dist/components/label/index.d.ts +2 -0
- package/dist/components/label/index.d.ts.map +1 -0
- package/dist/components/label/index.js +3 -0
- package/dist/components/label/index.js.map +1 -0
- package/dist/components/label/label.d.ts +7 -0
- package/dist/components/label/label.d.ts.map +1 -0
- package/dist/components/label/label.js +13 -0
- package/dist/components/label/label.js.map +1 -0
- package/dist/components/label/label.stories.js +105 -0
- package/dist/components/label/label.stories.js.map +1 -0
- package/dist/components/moving-border/moving-border.d.ts +9 -0
- package/dist/components/moving-border/moving-border.d.ts.map +1 -0
- package/dist/components/moving-border/moving-border.js +54 -0
- package/dist/components/moving-border/moving-border.js.map +1 -0
- package/dist/components/textarea/textarea.js +1 -1
- package/dist/components/textarea/textarea.js.map +1 -1
- package/dist/components/theme/index.d.ts +2 -0
- package/dist/components/theme/index.d.ts.map +1 -0
- package/dist/components/theme/index.js +3 -0
- package/dist/components/theme/index.js.map +1 -0
- package/dist/components/{theme-provider.d.ts → theme/theme-provider.d.ts} +1 -1
- package/dist/components/theme/theme-provider.d.ts.map +1 -0
- package/dist/components/{theme-provider.js → theme/theme-provider.js} +1 -1
- package/dist/components/theme/theme-provider.js.map +1 -0
- package/dist/components/toast/index.d.ts +3 -0
- package/dist/components/toast/index.d.ts.map +1 -0
- package/dist/components/toast/index.js +4 -0
- package/dist/components/toast/index.js.map +1 -0
- package/dist/components/toast/toast-custom.d.ts +19 -0
- package/dist/components/toast/toast-custom.d.ts.map +1 -0
- package/dist/components/toast/toast-custom.js +134 -0
- package/dist/components/toast/toast-custom.js.map +1 -0
- package/dist/components/toast/toast.d.ts +5 -0
- package/dist/components/toast/toast.d.ts.map +1 -0
- package/dist/components/toast/toast.js +40 -0
- package/dist/components/toast/toast.js.map +1 -0
- package/dist/components/toast/toast.stories.js +326 -0
- package/dist/components/toast/toast.stories.js.map +1 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.d.ts.map +1 -0
- package/dist/components/tooltip/index.js +3 -0
- package/dist/components/tooltip/index.js.map +1 -0
- package/dist/components/tooltip/tooltip.d.ts +18 -5
- package/dist/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/tooltip/tooltip.js +63 -3
- package/dist/components/tooltip/tooltip.js.map +1 -1
- package/dist/components/tooltip/tooltip.stories.js +560 -0
- package/dist/components/tooltip/tooltip.stories.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useResolvedTheme.d.ts +2 -0
- package/dist/hooks/useResolvedTheme.d.ts.map +1 -0
- package/dist/hooks/useResolvedTheme.js +24 -0
- package/dist/hooks/useResolvedTheme.js.map +1 -0
- package/dist/hooks/useShikiHighlight.d.ts +28 -0
- package/dist/hooks/useShikiHighlight.d.ts.map +1 -0
- package/dist/hooks/useShikiHighlight.js +106 -0
- package/dist/hooks/useShikiHighlight.js.map +1 -0
- package/dist/hooks/useShikiStyleInjection.d.ts +2 -0
- package/dist/hooks/useShikiStyleInjection.d.ts.map +1 -0
- package/dist/hooks/useShikiStyleInjection.js +34 -0
- package/dist/hooks/useShikiStyleInjection.js.map +1 -0
- package/dist/onboarding/sign-in.stories.js +93 -0
- package/dist/onboarding/sign-in.stories.js.map +1 -0
- package/index.css +130 -12
- package/package.json +14 -3
- package/src/assets/illustration-1.svg +92 -0
- package/src/assets/illustration-2.svg +14 -0
- package/src/assets/illustration-gradient.svg +7049 -0
- package/src/components/alert/alert.stories.tsx +2 -2
- package/src/components/alert/alert.tsx +3 -3
- package/src/components/avatar/avatar-group.tsx +3 -3
- package/src/components/avatar/avatar.stories.tsx +9 -2
- package/src/components/avatar/avatar.tsx +10 -6
- package/src/components/badge/badge.stories.tsx +468 -0
- package/src/components/badge/badge.tsx +147 -0
- package/src/components/badge/icon-badge.tsx +43 -0
- package/src/components/badge/index.ts +4 -0
- package/src/components/badge/status-badge.tsx +43 -0
- package/src/components/badge/user-badge.tsx +34 -0
- package/src/components/button/button-link.stories.tsx +86 -0
- package/src/components/button/button-link.tsx +76 -0
- package/src/components/{button.stories.tsx → button/button.stories.tsx} +1 -7
- package/src/components/{button.tsx → button/button.tsx} +9 -7
- package/src/components/button/icon-button.stories.tsx +182 -0
- package/src/components/button/icon-button.tsx +69 -0
- package/src/components/button/index.ts +3 -0
- package/src/components/checkbox/checkbox-label.tsx +125 -0
- package/src/components/checkbox/checkbox-links.tsx +90 -0
- package/src/components/checkbox/checkbox.stories.tsx +375 -0
- package/src/components/checkbox/checkbox.tsx +71 -0
- package/src/components/checkbox/index.ts +3 -0
- package/src/components/code-block/code-block-footer.tsx +173 -0
- package/src/components/code-block/code-block.stories.tsx +323 -0
- package/src/components/code-block/code-block.tsx +283 -0
- package/src/components/code-block/code-content.tsx +63 -0
- package/src/components/code-block/code-copy-button.tsx +73 -0
- package/src/components/code-block/code-tabs.tsx +170 -0
- package/src/components/code-block/index.ts +3 -0
- package/src/components/dynamic-item/dynamic-item.stories.tsx +261 -0
- package/src/components/dynamic-item/dynamic-item.tsx +68 -0
- package/src/components/dynamic-item/index.ts +1 -0
- package/src/components/icon/custom/index.ts +2 -0
- package/src/components/icon/custom/slack-logo.tsx +35 -0
- package/src/components/icon/custom/stripe-logo.tsx +27 -0
- package/src/components/icon/icon.stories.tsx +3 -1
- package/src/components/icon/icon.tsx +23 -1
- package/src/components/index.ts +9 -1
- package/src/components/inline-tips/inline-tips.stories.tsx +3 -3
- package/src/components/inline-tips/inline-tips.tsx +2 -2
- package/src/components/input/index.ts +1 -0
- package/src/components/{input.tsx → input/input.tsx} +1 -1
- package/src/components/item/index.ts +1 -0
- package/src/components/item/item.stories.tsx +150 -0
- package/src/components/item/item.tsx +182 -0
- package/src/components/label/index.ts +1 -0
- package/src/components/label/label.stories.tsx +67 -0
- package/src/components/label/label.tsx +15 -0
- package/src/components/moving-border/moving-border.tsx +67 -0
- package/src/components/textarea/textarea.tsx +1 -1
- package/src/components/theme/index.ts +1 -0
- package/src/components/toast/index.ts +2 -0
- package/src/components/toast/toast-custom.tsx +154 -0
- package/src/components/toast/toast.stories.tsx +369 -0
- package/src/components/toast/toast.tsx +41 -0
- package/src/components/tooltip/index.ts +1 -0
- package/src/components/tooltip/tooltip.stories.tsx +284 -0
- package/src/components/tooltip/tooltip.tsx +79 -10
- package/src/hooks/index.ts +3 -0
- package/src/hooks/useResolvedTheme.ts +34 -0
- package/src/hooks/useShikiHighlight.ts +140 -0
- package/src/hooks/useShikiStyleInjection.ts +34 -0
- package/src/onboarding/sign-in.stories.tsx +73 -0
- package/vitest.config.ts +30 -3
- package/dist/components/button.d.ts.map +0 -1
- package/dist/components/button.js.map +0 -1
- package/dist/components/button.stories.js.map +0 -1
- package/dist/components/input.d.ts.map +0 -1
- package/dist/components/input.js.map +0 -1
- package/dist/components/input.stories.js.map +0 -1
- package/dist/components/theme-provider.d.ts.map +0 -1
- package/dist/components/theme-provider.js.map +0 -1
- /package/dist/components/{input.d.ts → input/input.d.ts} +0 -0
- /package/src/components/{input.stories.tsx → input/input.stories.tsx} +0 -0
- /package/src/components/{theme-provider.tsx → theme/theme-provider.tsx} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useResolvedTheme.d.ts","sourceRoot":"","sources":["../../src/hooks/useResolvedTheme.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,IAAI,OAAO,GAAG,MAAM,CA8BnD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useSyncExternalStore } from 'react';
|
|
2
|
+
import { useTheme } from './useTheme.js';
|
|
3
|
+
export function useResolvedTheme() {
|
|
4
|
+
const { theme } = useTheme();
|
|
5
|
+
const systemTheme = useSyncExternalStore((callback)=>{
|
|
6
|
+
if (typeof window === 'undefined' || theme !== 'system') {
|
|
7
|
+
return ()=>{
|
|
8
|
+
// No-op unsubscribe
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
const mql = window.matchMedia('(prefers-color-scheme: dark)');
|
|
12
|
+
mql.addEventListener('change', callback);
|
|
13
|
+
return ()=>{
|
|
14
|
+
mql.removeEventListener('change', callback);
|
|
15
|
+
};
|
|
16
|
+
}, ()=>typeof window !== 'undefined' && theme === 'system' ? window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : 'light', ()=>'light');
|
|
17
|
+
if (theme === 'system') {
|
|
18
|
+
return systemTheme;
|
|
19
|
+
}
|
|
20
|
+
// TypeScript should narrow theme to 'light' | 'dark' here
|
|
21
|
+
return theme;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=useResolvedTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useResolvedTheme.ts"],"sourcesContent":["import {useSyncExternalStore} from 'react';\nimport {useTheme} from './useTheme';\n\nexport function useResolvedTheme(): 'light' | 'dark' {\n const {theme} = useTheme();\n\n const systemTheme = useSyncExternalStore<'light' | 'dark'>(\n (callback) => {\n if (typeof window === 'undefined' || theme !== 'system') {\n return () => {\n // No-op unsubscribe\n };\n }\n const mql = window.matchMedia('(prefers-color-scheme: dark)');\n mql.addEventListener('change', callback);\n return () => {\n mql.removeEventListener('change', callback);\n };\n },\n (): 'light' | 'dark' =>\n typeof window !== 'undefined' && theme === 'system'\n ? window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n : 'light',\n (): 'light' | 'dark' => 'light', // Server snapshot\n );\n\n if (theme === 'system') {\n return systemTheme;\n }\n // TypeScript should narrow theme to 'light' | 'dark' here\n return theme as 'light' | 'dark';\n}\n"],"names":["useSyncExternalStore","useTheme","useResolvedTheme","theme","systemTheme","callback","window","mql","matchMedia","addEventListener","removeEventListener","matches"],"mappings":"AAAA,SAAQA,oBAAoB,QAAO,QAAQ;AAC3C,SAAQC,QAAQ,QAAO,aAAa;AAEpC,OAAO,SAASC;IACd,MAAM,EAACC,KAAK,EAAC,GAAGF;IAEhB,MAAMG,cAAcJ,qBAClB,CAACK;QACC,IAAI,OAAOC,WAAW,eAAeH,UAAU,UAAU;YACvD,OAAO;YACL,oBAAoB;YACtB;QACF;QACA,MAAMI,MAAMD,OAAOE,UAAU,CAAC;QAC9BD,IAAIE,gBAAgB,CAAC,UAAUJ;QAC/B,OAAO;YACLE,IAAIG,mBAAmB,CAAC,UAAUL;QACpC;IACF,GACA,IACE,OAAOC,WAAW,eAAeH,UAAU,WACvCG,OAAOE,UAAU,CAAC,gCAAgCG,OAAO,GACvD,SACA,UACF,SACN,IAAwB;IAG1B,IAAIR,UAAU,UAAU;QACtB,OAAOC;IACT;IACA,0DAA0D;IAC1D,OAAOD;AACT"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
type ShikiThemes = {
|
|
2
|
+
light: string;
|
|
3
|
+
dark: string;
|
|
4
|
+
};
|
|
5
|
+
type UseShikiHighlightOptions = {
|
|
6
|
+
code: string;
|
|
7
|
+
lang: string;
|
|
8
|
+
themes: ShikiThemes;
|
|
9
|
+
resolvedTheme: 'light' | 'dark';
|
|
10
|
+
syntaxHighlighting: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare function useShikiHighlight({ code, lang, themes, resolvedTheme, syntaxHighlighting, }: UseShikiHighlightOptions): {
|
|
13
|
+
highlightedCode: string;
|
|
14
|
+
isLoading: boolean;
|
|
15
|
+
};
|
|
16
|
+
type UseShikiHighlightMultipleOptions = {
|
|
17
|
+
codes: Record<string, string>;
|
|
18
|
+
lang: string;
|
|
19
|
+
themes: ShikiThemes;
|
|
20
|
+
resolvedTheme: 'light' | 'dark';
|
|
21
|
+
syntaxHighlighting: boolean;
|
|
22
|
+
};
|
|
23
|
+
export declare function useShikiHighlightMultiple({ codes, lang, themes, resolvedTheme, syntaxHighlighting, }: UseShikiHighlightMultipleOptions): {
|
|
24
|
+
highlightedCodes: Record<string, string>;
|
|
25
|
+
isLoading: boolean;
|
|
26
|
+
};
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=useShikiHighlight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useShikiHighlight.d.ts","sourceRoot":"","sources":["../../src/hooks/useShikiHighlight.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,aAAa,EACb,kBAAkB,GACnB,EAAE,wBAAwB,GAAG;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAC,CA6C1E;AAED,KAAK,gCAAgC,GAAG;IACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACxC,KAAK,EACL,IAAI,EACJ,MAAM,EACN,aAAa,EACb,kBAAkB,GACnB,EAAE,gCAAgC,GAAG;IACpC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;CACpB,CAsDA"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
export function useShikiHighlight({ code, lang, themes, resolvedTheme, syntaxHighlighting }) {
|
|
3
|
+
const [highlightedCode, setHighlightedCode] = useState('');
|
|
4
|
+
const [isLoading, setIsLoading] = useState(syntaxHighlighting);
|
|
5
|
+
useEffect(()=>{
|
|
6
|
+
if (!syntaxHighlighting) {
|
|
7
|
+
setIsLoading(false);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
setIsLoading(true);
|
|
11
|
+
let cancelled = false;
|
|
12
|
+
const loadHighlightedCode = async ()=>{
|
|
13
|
+
try {
|
|
14
|
+
const { codeToHtml } = await import('shiki');
|
|
15
|
+
const html = await codeToHtml(code, {
|
|
16
|
+
lang,
|
|
17
|
+
themes: {
|
|
18
|
+
light: themes.light,
|
|
19
|
+
dark: themes.dark
|
|
20
|
+
},
|
|
21
|
+
defaultColor: resolvedTheme === 'dark' ? 'dark' : 'light'
|
|
22
|
+
});
|
|
23
|
+
if (!cancelled) {
|
|
24
|
+
setHighlightedCode(html);
|
|
25
|
+
setIsLoading(false);
|
|
26
|
+
}
|
|
27
|
+
} catch {
|
|
28
|
+
if (!cancelled) {
|
|
29
|
+
setIsLoading(false);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
loadHighlightedCode();
|
|
34
|
+
return ()=>{
|
|
35
|
+
cancelled = true;
|
|
36
|
+
};
|
|
37
|
+
}, [
|
|
38
|
+
code,
|
|
39
|
+
lang,
|
|
40
|
+
themes.light,
|
|
41
|
+
themes.dark,
|
|
42
|
+
resolvedTheme,
|
|
43
|
+
syntaxHighlighting
|
|
44
|
+
]);
|
|
45
|
+
return {
|
|
46
|
+
highlightedCode,
|
|
47
|
+
isLoading
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export function useShikiHighlightMultiple({ codes, lang, themes, resolvedTheme, syntaxHighlighting }) {
|
|
51
|
+
const [highlightedCodes, setHighlightedCodes] = useState({});
|
|
52
|
+
const [isLoading, setIsLoading] = useState(syntaxHighlighting);
|
|
53
|
+
useEffect(()=>{
|
|
54
|
+
if (!syntaxHighlighting) {
|
|
55
|
+
setIsLoading(false);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
setIsLoading(true);
|
|
59
|
+
let cancelled = false;
|
|
60
|
+
const loadHighlightedCode = async ()=>{
|
|
61
|
+
try {
|
|
62
|
+
const { codeToHtml } = await import('shiki');
|
|
63
|
+
const newHighlightedCodes = {};
|
|
64
|
+
for (const [command, val] of Object.entries(codes)){
|
|
65
|
+
if (cancelled) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const highlighted = await codeToHtml(val, {
|
|
69
|
+
lang,
|
|
70
|
+
themes: {
|
|
71
|
+
light: themes.light,
|
|
72
|
+
dark: themes.dark
|
|
73
|
+
},
|
|
74
|
+
defaultColor: resolvedTheme === 'dark' ? 'dark' : 'light'
|
|
75
|
+
});
|
|
76
|
+
newHighlightedCodes[command] = highlighted;
|
|
77
|
+
}
|
|
78
|
+
if (!cancelled) {
|
|
79
|
+
setHighlightedCodes(newHighlightedCodes);
|
|
80
|
+
setIsLoading(false);
|
|
81
|
+
}
|
|
82
|
+
} catch {
|
|
83
|
+
if (!cancelled) {
|
|
84
|
+
setIsLoading(false);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
loadHighlightedCode();
|
|
89
|
+
return ()=>{
|
|
90
|
+
cancelled = true;
|
|
91
|
+
};
|
|
92
|
+
}, [
|
|
93
|
+
resolvedTheme,
|
|
94
|
+
lang,
|
|
95
|
+
themes.light,
|
|
96
|
+
themes.dark,
|
|
97
|
+
codes,
|
|
98
|
+
syntaxHighlighting
|
|
99
|
+
]);
|
|
100
|
+
return {
|
|
101
|
+
highlightedCodes,
|
|
102
|
+
isLoading
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
//# sourceMappingURL=useShikiHighlight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useShikiHighlight.ts"],"sourcesContent":["import {useEffect, useState} from 'react';\n\ntype ShikiThemes = {\n light: string;\n dark: string;\n};\n\ntype UseShikiHighlightOptions = {\n code: string;\n lang: string;\n themes: ShikiThemes;\n resolvedTheme: 'light' | 'dark';\n syntaxHighlighting: boolean;\n};\n\nexport function useShikiHighlight({\n code,\n lang,\n themes,\n resolvedTheme,\n syntaxHighlighting,\n}: UseShikiHighlightOptions): {highlightedCode: string; isLoading: boolean} {\n const [highlightedCode, setHighlightedCode] = useState<string>('');\n const [isLoading, setIsLoading] = useState(syntaxHighlighting);\n\n useEffect(() => {\n if (!syntaxHighlighting) {\n setIsLoading(false);\n return;\n }\n\n setIsLoading(true);\n let cancelled = false;\n\n const loadHighlightedCode = async () => {\n try {\n const {codeToHtml} = await import('shiki');\n\n const html = await codeToHtml(code, {\n lang,\n themes: {\n light: themes.light,\n dark: themes.dark,\n },\n defaultColor: resolvedTheme === 'dark' ? 'dark' : 'light',\n });\n\n if (!cancelled) {\n setHighlightedCode(html);\n setIsLoading(false);\n }\n } catch {\n if (!cancelled) {\n setIsLoading(false);\n }\n }\n };\n\n loadHighlightedCode();\n\n return () => {\n cancelled = true;\n };\n }, [code, lang, themes.light, themes.dark, resolvedTheme, syntaxHighlighting]);\n\n return {highlightedCode, isLoading};\n}\n\ntype UseShikiHighlightMultipleOptions = {\n codes: Record<string, string>;\n lang: string;\n themes: ShikiThemes;\n resolvedTheme: 'light' | 'dark';\n syntaxHighlighting: boolean;\n};\n\nexport function useShikiHighlightMultiple({\n codes,\n lang,\n themes,\n resolvedTheme,\n syntaxHighlighting,\n}: UseShikiHighlightMultipleOptions): {\n highlightedCodes: Record<string, string>;\n isLoading: boolean;\n} {\n const [highlightedCodes, setHighlightedCodes] = useState<Record<string, string>>({});\n const [isLoading, setIsLoading] = useState(syntaxHighlighting);\n\n useEffect(() => {\n if (!syntaxHighlighting) {\n setIsLoading(false);\n return;\n }\n\n setIsLoading(true);\n let cancelled = false;\n\n const loadHighlightedCode = async () => {\n try {\n const {codeToHtml} = await import('shiki');\n const newHighlightedCodes: Record<string, string> = {};\n\n for (const [command, val] of Object.entries(codes)) {\n if (cancelled) {\n return;\n }\n\n const highlighted = await codeToHtml(val, {\n lang,\n themes: {\n light: themes.light,\n dark: themes.dark,\n },\n defaultColor: resolvedTheme === 'dark' ? 'dark' : 'light',\n });\n\n newHighlightedCodes[command] = highlighted;\n }\n\n if (!cancelled) {\n setHighlightedCodes(newHighlightedCodes);\n setIsLoading(false);\n }\n } catch {\n if (!cancelled) {\n setIsLoading(false);\n }\n }\n };\n\n loadHighlightedCode();\n\n return () => {\n cancelled = true;\n };\n }, [resolvedTheme, lang, themes.light, themes.dark, codes, syntaxHighlighting]);\n\n return {highlightedCodes, isLoading};\n}\n"],"names":["useEffect","useState","useShikiHighlight","code","lang","themes","resolvedTheme","syntaxHighlighting","highlightedCode","setHighlightedCode","isLoading","setIsLoading","cancelled","loadHighlightedCode","codeToHtml","html","light","dark","defaultColor","useShikiHighlightMultiple","codes","highlightedCodes","setHighlightedCodes","newHighlightedCodes","command","val","Object","entries","highlighted"],"mappings":"AAAA,SAAQA,SAAS,EAAEC,QAAQ,QAAO,QAAQ;AAe1C,OAAO,SAASC,kBAAkB,EAChCC,IAAI,EACJC,IAAI,EACJC,MAAM,EACNC,aAAa,EACbC,kBAAkB,EACO;IACzB,MAAM,CAACC,iBAAiBC,mBAAmB,GAAGR,SAAiB;IAC/D,MAAM,CAACS,WAAWC,aAAa,GAAGV,SAASM;IAE3CP,UAAU;QACR,IAAI,CAACO,oBAAoB;YACvBI,aAAa;YACb;QACF;QAEAA,aAAa;QACb,IAAIC,YAAY;QAEhB,MAAMC,sBAAsB;YAC1B,IAAI;gBACF,MAAM,EAACC,UAAU,EAAC,GAAG,MAAM,MAAM,CAAC;gBAElC,MAAMC,OAAO,MAAMD,WAAWX,MAAM;oBAClCC;oBACAC,QAAQ;wBACNW,OAAOX,OAAOW,KAAK;wBACnBC,MAAMZ,OAAOY,IAAI;oBACnB;oBACAC,cAAcZ,kBAAkB,SAAS,SAAS;gBACpD;gBAEA,IAAI,CAACM,WAAW;oBACdH,mBAAmBM;oBACnBJ,aAAa;gBACf;YACF,EAAE,OAAM;gBACN,IAAI,CAACC,WAAW;oBACdD,aAAa;gBACf;YACF;QACF;QAEAE;QAEA,OAAO;YACLD,YAAY;QACd;IACF,GAAG;QAACT;QAAMC;QAAMC,OAAOW,KAAK;QAAEX,OAAOY,IAAI;QAAEX;QAAeC;KAAmB;IAE7E,OAAO;QAACC;QAAiBE;IAAS;AACpC;AAUA,OAAO,SAASS,0BAA0B,EACxCC,KAAK,EACLhB,IAAI,EACJC,MAAM,EACNC,aAAa,EACbC,kBAAkB,EACe;IAIjC,MAAM,CAACc,kBAAkBC,oBAAoB,GAAGrB,SAAiC,CAAC;IAClF,MAAM,CAACS,WAAWC,aAAa,GAAGV,SAASM;IAE3CP,UAAU;QACR,IAAI,CAACO,oBAAoB;YACvBI,aAAa;YACb;QACF;QAEAA,aAAa;QACb,IAAIC,YAAY;QAEhB,MAAMC,sBAAsB;YAC1B,IAAI;gBACF,MAAM,EAACC,UAAU,EAAC,GAAG,MAAM,MAAM,CAAC;gBAClC,MAAMS,sBAA8C,CAAC;gBAErD,KAAK,MAAM,CAACC,SAASC,IAAI,IAAIC,OAAOC,OAAO,CAACP,OAAQ;oBAClD,IAAIR,WAAW;wBACb;oBACF;oBAEA,MAAMgB,cAAc,MAAMd,WAAWW,KAAK;wBACxCrB;wBACAC,QAAQ;4BACNW,OAAOX,OAAOW,KAAK;4BACnBC,MAAMZ,OAAOY,IAAI;wBACnB;wBACAC,cAAcZ,kBAAkB,SAAS,SAAS;oBACpD;oBAEAiB,mBAAmB,CAACC,QAAQ,GAAGI;gBACjC;gBAEA,IAAI,CAAChB,WAAW;oBACdU,oBAAoBC;oBACpBZ,aAAa;gBACf;YACF,EAAE,OAAM;gBACN,IAAI,CAACC,WAAW;oBACdD,aAAa;gBACf;YACF;QACF;QAEAE;QAEA,OAAO;YACLD,YAAY;QACd;IACF,GAAG;QAACN;QAAeF;QAAMC,OAAOW,KAAK;QAAEX,OAAOY,IAAI;QAAEG;QAAOb;KAAmB;IAE9E,OAAO;QAACc;QAAkBX;IAAS;AACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useShikiStyleInjection.d.ts","sourceRoot":"","sources":["../../src/hooks/useShikiStyleInjection.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,OAAO,GAAG,IAAI,CA+BxE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
export function useShikiStyleInjection(syntaxHighlighting) {
|
|
3
|
+
useEffect(()=>{
|
|
4
|
+
if (!syntaxHighlighting) {
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
const styleId = 'shiki-override-styles';
|
|
8
|
+
if (document.getElementById(styleId)) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const style = document.createElement('style');
|
|
12
|
+
style.id = styleId;
|
|
13
|
+
style.textContent = `
|
|
14
|
+
.shiki-override pre,
|
|
15
|
+
.shiki-override code,
|
|
16
|
+
.shiki-override pre *,
|
|
17
|
+
.shiki-override code * {
|
|
18
|
+
background: transparent !important;
|
|
19
|
+
font-family: "Commit Mono", monospace !important;
|
|
20
|
+
}
|
|
21
|
+
`;
|
|
22
|
+
document.head.appendChild(style);
|
|
23
|
+
return ()=>{
|
|
24
|
+
const existingStyle = document.getElementById(styleId);
|
|
25
|
+
if (existingStyle) {
|
|
26
|
+
existingStyle.remove();
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}, [
|
|
30
|
+
syntaxHighlighting
|
|
31
|
+
]);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=useShikiStyleInjection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useShikiStyleInjection.ts"],"sourcesContent":["import {useEffect} from 'react';\n\nexport function useShikiStyleInjection(syntaxHighlighting: boolean): void {\n useEffect(() => {\n if (!syntaxHighlighting) {\n return;\n }\n\n const styleId = 'shiki-override-styles';\n if (document.getElementById(styleId)) {\n return;\n }\n\n const style = document.createElement('style');\n style.id = styleId;\n style.textContent = `\n .shiki-override pre,\n .shiki-override code,\n .shiki-override pre *,\n .shiki-override code * {\n background: transparent !important;\n font-family: \"Commit Mono\", monospace !important;\n }\n `;\n document.head.appendChild(style);\n\n return () => {\n const existingStyle = document.getElementById(styleId);\n if (existingStyle) {\n existingStyle.remove();\n }\n };\n }, [syntaxHighlighting]);\n}\n"],"names":["useEffect","useShikiStyleInjection","syntaxHighlighting","styleId","document","getElementById","style","createElement","id","textContent","head","appendChild","existingStyle","remove"],"mappings":"AAAA,SAAQA,SAAS,QAAO,QAAQ;AAEhC,OAAO,SAASC,uBAAuBC,kBAA2B;IAChEF,UAAU;QACR,IAAI,CAACE,oBAAoB;YACvB;QACF;QAEA,MAAMC,UAAU;QAChB,IAAIC,SAASC,cAAc,CAACF,UAAU;YACpC;QACF;QAEA,MAAMG,QAAQF,SAASG,aAAa,CAAC;QACrCD,MAAME,EAAE,GAAGL;QACXG,MAAMG,WAAW,GAAG,CAAC;;;;;;;;IAQrB,CAAC;QACDL,SAASM,IAAI,CAACC,WAAW,CAACL;QAE1B,OAAO;YACL,MAAMM,gBAAgBR,SAASC,cAAc,CAACF;YAC9C,IAAIS,eAAe;gBACjBA,cAAcC,MAAM;YACtB;QACF;IACF,GAAG;QAACX;KAAmB;AACzB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { argosScreenshot } from '@argos-ci/storybook/vitest';
|
|
3
|
+
import { Avatar } from '../components/avatar/index.js';
|
|
4
|
+
import { Button } from '../components/button/index.js';
|
|
5
|
+
import { Header, Text } from '../components/typography/index.js';
|
|
6
|
+
const meta = {
|
|
7
|
+
title: 'Onboarding/Signin',
|
|
8
|
+
parameters: {
|
|
9
|
+
layout: 'fullscreen'
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
export default meta;
|
|
13
|
+
export const Default = {
|
|
14
|
+
play: async (ctx)=>{
|
|
15
|
+
await argosScreenshot(ctx, 'example-screenshot');
|
|
16
|
+
},
|
|
17
|
+
render: ()=>{
|
|
18
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
19
|
+
className: "flex min-h-screen items-center justify-center bg-background-subtle-base",
|
|
20
|
+
children: [
|
|
21
|
+
/*#__PURE__*/ _jsx("div", {
|
|
22
|
+
className: "pointer-events-none absolute left-1/2 top-0 -translate-x-1/2 -translate-y-[120px]",
|
|
23
|
+
children: /*#__PURE__*/ _jsx("div", {
|
|
24
|
+
className: "h-[332px] w-[800px] opacity-20",
|
|
25
|
+
style: {
|
|
26
|
+
backgroundImage: `radial-gradient(circle, rgba(255, 75, 0, 0.3) 1px, transparent 1px)`,
|
|
27
|
+
backgroundSize: '24px 24px',
|
|
28
|
+
backgroundPosition: '-80px 31px'
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
}),
|
|
32
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
33
|
+
className: "relative flex w-full max-w-[384px] flex-col items-center gap-32 px-24 pb-80 pt-24",
|
|
34
|
+
children: [
|
|
35
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
36
|
+
className: "flex flex-col items-center gap-16",
|
|
37
|
+
children: [
|
|
38
|
+
/*#__PURE__*/ _jsx(Avatar, {
|
|
39
|
+
content: "logo",
|
|
40
|
+
size: "xl",
|
|
41
|
+
radius: "rounded",
|
|
42
|
+
logoName: "shipfox"
|
|
43
|
+
}),
|
|
44
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
45
|
+
className: "flex min-w-[128px] flex-col items-center gap-4 text-center",
|
|
46
|
+
children: [
|
|
47
|
+
/*#__PURE__*/ _jsx(Header, {
|
|
48
|
+
variant: "h1",
|
|
49
|
+
className: "text-[28px] font-medium leading-[44px] text-foreground-neutral-base",
|
|
50
|
+
children: "Connect to Shipfox"
|
|
51
|
+
}),
|
|
52
|
+
/*#__PURE__*/ _jsx(Text, {
|
|
53
|
+
size: "sm",
|
|
54
|
+
className: "text-sm font-normal leading-[24px] text-foreground-neutral-subtle",
|
|
55
|
+
children: "Log in to access Shipfox."
|
|
56
|
+
})
|
|
57
|
+
]
|
|
58
|
+
})
|
|
59
|
+
]
|
|
60
|
+
}),
|
|
61
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
62
|
+
className: "flex w-full flex-col gap-20",
|
|
63
|
+
children: [
|
|
64
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
65
|
+
variant: "primary",
|
|
66
|
+
size: "md",
|
|
67
|
+
iconLeft: "google",
|
|
68
|
+
className: "w-full",
|
|
69
|
+
children: "Continue with Google"
|
|
70
|
+
}),
|
|
71
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
72
|
+
variant: "primary",
|
|
73
|
+
size: "md",
|
|
74
|
+
iconLeft: "microsoft",
|
|
75
|
+
className: "w-full",
|
|
76
|
+
children: "Continue with Microsoft"
|
|
77
|
+
}),
|
|
78
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
79
|
+
variant: "transparent",
|
|
80
|
+
size: "md",
|
|
81
|
+
className: "w-full",
|
|
82
|
+
children: "Connect with Enterprise SSO"
|
|
83
|
+
})
|
|
84
|
+
]
|
|
85
|
+
})
|
|
86
|
+
]
|
|
87
|
+
})
|
|
88
|
+
]
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
//# sourceMappingURL=sign-in.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/onboarding/sign-in.stories.tsx"],"sourcesContent":["import {argosScreenshot} from '@argos-ci/storybook/vitest';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {Avatar} from 'components/avatar';\nimport {Button} from 'components/button';\nimport {Header, Text} from 'components/typography';\n\nconst meta = {\n title: 'Onboarding/Signin',\n parameters: {\n layout: 'fullscreen',\n },\n} satisfies Meta;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const Default: Story = {\n play: async (ctx) => {\n await argosScreenshot(ctx, 'example-screenshot');\n },\n render: () => {\n return (\n <div className=\"flex min-h-screen items-center justify-center bg-background-subtle-base\">\n {/* Background illustration - simplified decorative element */}\n <div className=\"pointer-events-none absolute left-1/2 top-0 -translate-x-1/2 -translate-y-[120px]\">\n <div\n className=\"h-[332px] w-[800px] opacity-20\"\n style={{\n backgroundImage: `radial-gradient(circle, rgba(255, 75, 0, 0.3) 1px, transparent 1px)`,\n backgroundSize: '24px 24px',\n backgroundPosition: '-80px 31px',\n }}\n />\n </div>\n\n {/* Main content */}\n <div className=\"relative flex w-full max-w-[384px] flex-col items-center gap-32 px-24 pb-80 pt-24\">\n {/* Logo and title section */}\n <div className=\"flex flex-col items-center gap-16\">\n <Avatar content=\"logo\" size=\"xl\" radius=\"rounded\" logoName=\"shipfox\" />\n <div className=\"flex min-w-[128px] flex-col items-center gap-4 text-center\">\n <Header\n variant=\"h1\"\n className=\"text-[28px] font-medium leading-[44px] text-foreground-neutral-base\"\n >\n Connect to Shipfox\n </Header>\n <Text\n size=\"sm\"\n className=\"text-sm font-normal leading-[24px] text-foreground-neutral-subtle\"\n >\n Log in to access Shipfox.\n </Text>\n </div>\n </div>\n\n {/* Action buttons */}\n <div className=\"flex w-full flex-col gap-20\">\n <Button variant=\"primary\" size=\"md\" iconLeft=\"google\" className=\"w-full\">\n Continue with Google\n </Button>\n <Button variant=\"primary\" size=\"md\" iconLeft=\"microsoft\" className=\"w-full\">\n Continue with Microsoft\n </Button>\n <Button variant=\"transparent\" size=\"md\" className=\"w-full\">\n Connect with Enterprise SSO\n </Button>\n </div>\n </div>\n </div>\n );\n },\n};\n"],"names":["argosScreenshot","Avatar","Button","Header","Text","meta","title","parameters","layout","Default","play","ctx","render","div","className","style","backgroundImage","backgroundSize","backgroundPosition","content","size","radius","logoName","variant","iconLeft"],"mappings":";AAAA,SAAQA,eAAe,QAAO,6BAA6B;AAE3D,SAAQC,MAAM,QAAO,oBAAoB;AACzC,SAAQC,MAAM,QAAO,oBAAoB;AACzC,SAAQC,MAAM,EAAEC,IAAI,QAAO,wBAAwB;AAEnD,MAAMC,OAAO;IACXC,OAAO;IACPC,YAAY;QACVC,QAAQ;IACV;AACF;AAEA,eAAeH,KAAK;AAGpB,OAAO,MAAMI,UAAiB;IAC5BC,MAAM,OAAOC;QACX,MAAMX,gBAAgBW,KAAK;IAC7B;IACAC,QAAQ;QACN,qBACE,MAACC;YAAIC,WAAU;;8BAEb,KAACD;oBAAIC,WAAU;8BACb,cAAA,KAACD;wBACCC,WAAU;wBACVC,OAAO;4BACLC,iBAAiB,CAAC,mEAAmE,CAAC;4BACtFC,gBAAgB;4BAChBC,oBAAoB;wBACtB;;;8BAKJ,MAACL;oBAAIC,WAAU;;sCAEb,MAACD;4BAAIC,WAAU;;8CACb,KAACb;oCAAOkB,SAAQ;oCAAOC,MAAK;oCAAKC,QAAO;oCAAUC,UAAS;;8CAC3D,MAACT;oCAAIC,WAAU;;sDACb,KAACX;4CACCoB,SAAQ;4CACRT,WAAU;sDACX;;sDAGD,KAACV;4CACCgB,MAAK;4CACLN,WAAU;sDACX;;;;;;sCAOL,MAACD;4BAAIC,WAAU;;8CACb,KAACZ;oCAAOqB,SAAQ;oCAAUH,MAAK;oCAAKI,UAAS;oCAASV,WAAU;8CAAS;;8CAGzE,KAACZ;oCAAOqB,SAAQ;oCAAUH,MAAK;oCAAKI,UAAS;oCAAYV,WAAU;8CAAS;;8CAG5E,KAACZ;oCAAOqB,SAAQ;oCAAcH,MAAK;oCAAKN,WAAU;8CAAS;;;;;;;;IAOrE;AACF,EAAE"}
|
package/index.css
CHANGED
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
@import "tailwindcss";
|
|
5
5
|
@import "tw-animate-css";
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
/* Commented because it breaks default Tailwind theme with breakpoints */
|
|
8
|
+
/* @theme {
|
|
8
9
|
--\*: initial;
|
|
9
|
-
}
|
|
10
|
+
} */
|
|
10
11
|
|
|
11
12
|
@custom-variant hover (&:hover);
|
|
12
13
|
|
|
@@ -197,14 +198,17 @@
|
|
|
197
198
|
--background-button-transparent-default: var(--color-alpha-white-0);
|
|
198
199
|
--background-button-neutral-hover: var(--color-neutral-100);
|
|
199
200
|
--background-button-danger-hover: var(--color-red-700);
|
|
201
|
+
--background-button-success-hover: var(--color-green-700);
|
|
200
202
|
--background-button-neutral-pressed: var(--color-neutral-200);
|
|
201
203
|
--background-button-neutral-default: var(--color-neutral-0);
|
|
202
|
-
--background-button-transparent-hover: var(--color-alpha-
|
|
204
|
+
--background-button-transparent-hover: var(--color-alpha-black-6);
|
|
203
205
|
--background-button-inverted-pressed: var(--color-neutral-600);
|
|
204
|
-
--background-button-transparent-pressed: var(--color-alpha-
|
|
206
|
+
--background-button-transparent-pressed: var(--color-alpha-black-10);
|
|
205
207
|
--background-button-danger-pressed: var(--color-red-800);
|
|
208
|
+
--background-button-success-pressed: var(--color-green-800);
|
|
206
209
|
--background-button-inverted-hover: var(--color-neutral-700);
|
|
207
210
|
--background-button-danger-default: var(--color-red-600);
|
|
211
|
+
--background-button-success-default: var(--color-green-600);
|
|
208
212
|
--background-button-inverted-default: var(--color-neutral-800);
|
|
209
213
|
|
|
210
214
|
/* Accent Background */
|
|
@@ -267,7 +271,7 @@
|
|
|
267
271
|
--tag-error-icon: var(--color-red-500);
|
|
268
272
|
--tag-error-text: var(--color-red-800);
|
|
269
273
|
--tag-warning-icon: var(--color-orange-400);
|
|
270
|
-
--tag-warning-text: var(--color-orange-
|
|
274
|
+
--tag-warning-text: var(--color-orange-800);
|
|
271
275
|
--tag-success-bg: var(--color-green-100);
|
|
272
276
|
--tag-success-border: var(--color-green-200);
|
|
273
277
|
--tag-success-text: var(--color-green-800);
|
|
@@ -307,12 +311,11 @@
|
|
|
307
311
|
var(--color-neutral-600), 0 0 0 2px var(--color-alpha-white-88), 0 0 0 4px
|
|
308
312
|
var(--color-primary-500);
|
|
309
313
|
--shadow-button-neutral:
|
|
310
|
-
0
|
|
311
|
-
var(--color-
|
|
312
|
-
var(--color-alpha-black-24);
|
|
314
|
+
0 0 0 1px var(--color-alpha-black-8), 0 2px 4px 0 var(--color-alpha-black-8), 0 4px 8px 0
|
|
315
|
+
var(--color-alpha-black-8);
|
|
313
316
|
--shadow-button-neutral-focus:
|
|
314
317
|
0 -1px 0 0 var(--color-alpha-white-6), 0 0 0 1px var(--color-alpha-white-6), 0 0 0 1px
|
|
315
|
-
var(--color-
|
|
318
|
+
var(--color-alpha-black-8), 0 0 0 2px var(--color-alpha-white-88), 0 0 0 4px
|
|
316
319
|
var(--color-primary-500);
|
|
317
320
|
--shadow-button-danger:
|
|
318
321
|
0 -1px 0 0 var(--color-alpha-white-16), 0 0 0 1px var(--color-alpha-white-12), 0 0 0 1px
|
|
@@ -321,6 +324,49 @@
|
|
|
321
324
|
--shadow-button-danger-focus:
|
|
322
325
|
0 -1px 0 0 var(--color-alpha-white-16), 0 0 0 1px var(--color-alpha-white-12), 0 0 0 1px
|
|
323
326
|
var(--color-red-700), 0 0 0 2px var(--color-alpha-white-88), 0 0 0 4px var(--color-primary-500);
|
|
327
|
+
--shadow-button-success:
|
|
328
|
+
0 -1px 0 0 var(--color-alpha-white-16), 0 0 0 1px var(--color-alpha-white-12), 0 0 0 1px
|
|
329
|
+
var(--color-green-700), 0 0 1px 1.5px var(--color-alpha-black-24), 0 2px 2px 0
|
|
330
|
+
var(--color-alpha-black-24);
|
|
331
|
+
--shadow-button-success-focus:
|
|
332
|
+
0 -1px 0 0 var(--color-alpha-white-16), 0 0 0 1px var(--color-alpha-white-12), 0 0 0 1px
|
|
333
|
+
var(--color-green-700), 0 0 0 2px var(--color-alpha-white-88), 0 0 0 4px
|
|
334
|
+
var(--color-primary-500);
|
|
335
|
+
|
|
336
|
+
/* Checkbox */
|
|
337
|
+
/* Checkbox - Unchecked States */
|
|
338
|
+
--checkbox-unchecked-bg: var(--background-components-base);
|
|
339
|
+
--checkbox-unchecked-bg-hover: var(--background-components-hover);
|
|
340
|
+
--checkbox-unchecked-border: var(--color-alpha-black-8);
|
|
341
|
+
--checkbox-unchecked-shadow:
|
|
342
|
+
0px 1px 2px 0px var(--color-alpha-black-12), 0px 0px 0px 1px var(--color-alpha-black-8);
|
|
343
|
+
--checkbox-unchecked-focus-shadow:
|
|
344
|
+
0px 1px 2px 0px rgba(30, 58, 138, 0.5), 0px 0px 0px 1px #ff4b00, 0px 0px 0px 2px
|
|
345
|
+
var(--color-neutral-0), 0px 0px 0px 4px rgba(255, 75, 0, 0.6);
|
|
346
|
+
|
|
347
|
+
/* Checkbox - Checked States */
|
|
348
|
+
--checkbox-checked-bg: var(--foreground-highlight-interactive);
|
|
349
|
+
--checkbox-checked-bg-hover: var(--foreground-highlight-interactive-hover);
|
|
350
|
+
--checkbox-checked-border: rgba(255, 75, 0, 0.69);
|
|
351
|
+
--checkbox-checked-shadow:
|
|
352
|
+
0px 1px 2px 0px rgba(30, 58, 138, 0.5), 0px 0px 0px 1px rgba(255, 75, 0, 0.69);
|
|
353
|
+
--checkbox-checked-focus-shadow:
|
|
354
|
+
0px 1px 2px 0px rgba(30, 58, 138, 0.5), 0px 0px 0px 1px #ff4b00, 0px 0px 0px 2px
|
|
355
|
+
var(--color-neutral-0), 0px 0px 0px 4px rgba(255, 75, 0, 0.6);
|
|
356
|
+
|
|
357
|
+
/* Checkbox - Indeterminate States */
|
|
358
|
+
--checkbox-indeterminate-bg: var(--foreground-highlight-interactive);
|
|
359
|
+
--checkbox-indeterminate-bg-hover: var(--foreground-highlight-interactive-hover);
|
|
360
|
+
--checkbox-indeterminate-border: rgba(255, 75, 0, 0.69);
|
|
361
|
+
--checkbox-indeterminate-shadow:
|
|
362
|
+
0px 1px 2px 0px rgba(30, 58, 138, 0.5), 0px 0px 0px 1px rgba(255, 75, 0, 0.69);
|
|
363
|
+
--checkbox-indeterminate-focus-shadow:
|
|
364
|
+
0px 0px 0px 1px var(--color-neutral-0), 0px 0px 0px 3px rgba(255, 75, 0, 0.6);
|
|
365
|
+
--shadow-tooltip:
|
|
366
|
+
0 0 0 1px var(--color-alpha-black-8), 0 2px 4px 0 var(--color-alpha-black-8), 0 4px 8px 0
|
|
367
|
+
var(--color-alpha-black-8);
|
|
368
|
+
--shadow-separator-inset:
|
|
369
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.15), inset 0 -1px 0 0 rgba(0, 0, 0, 0.06);
|
|
324
370
|
}
|
|
325
371
|
|
|
326
372
|
.dark {
|
|
@@ -357,14 +403,17 @@
|
|
|
357
403
|
--background-button-transparent-default: var(--color-alpha-white-0);
|
|
358
404
|
--background-button-neutral-hover: var(--color-alpha-white-8);
|
|
359
405
|
--background-button-danger-hover: var(--color-red-700);
|
|
406
|
+
--background-button-success-hover: var(--color-green-700);
|
|
360
407
|
--background-button-neutral-pressed: var(--color-alpha-white-12);
|
|
361
408
|
--background-button-neutral-default: var(--color-alpha-white-4);
|
|
362
409
|
--background-button-transparent-hover: var(--color-alpha-white-8);
|
|
363
410
|
--background-button-inverted-pressed: var(--color-neutral-400);
|
|
364
411
|
--background-button-transparent-pressed: var(--color-alpha-white-12);
|
|
365
412
|
--background-button-danger-pressed: var(--color-red-600);
|
|
413
|
+
--background-button-success-pressed: var(--color-green-600);
|
|
366
414
|
--background-button-inverted-hover: var(--color-neutral-500);
|
|
367
415
|
--background-button-danger-default: var(--color-red-800);
|
|
416
|
+
--background-button-success-default: var(--color-green-800);
|
|
368
417
|
--background-button-inverted-default: var(--color-neutral-600);
|
|
369
418
|
|
|
370
419
|
/* Accent Background */
|
|
@@ -466,9 +515,8 @@
|
|
|
466
515
|
0 -1px 0 0 var(--color-alpha-white-12), 0 0 0 1px var(--color-alpha-white-12), 0 0 0 1px
|
|
467
516
|
var(--color-neutral-600), 0 0 0 2px var(--color-neutral-950), 0 0 0 4px var(--color-primary-500);
|
|
468
517
|
--shadow-button-neutral:
|
|
469
|
-
0 -1px 0 0 var(--color-alpha-white-
|
|
470
|
-
var(--color-
|
|
471
|
-
var(--color-alpha-black-24);
|
|
518
|
+
0 -1px 0 0 var(--color-alpha-white-4), 0 2px 4px 0 var(--color-alpha-black-40), 0 0 0 1px
|
|
519
|
+
var(--color-alpha-white-10), 0 4px 8px 0 var(--color-alpha-black-40);
|
|
472
520
|
--shadow-button-neutral-focus:
|
|
473
521
|
0 -1px 0 0 var(--color-alpha-white-6), 0 0 0 1px var(--color-alpha-white-6), 0 0 0 1px
|
|
474
522
|
var(--color-neutral-800), 0 0 0 2px var(--color-neutral-950), 0 0 0 4px var(--color-primary-500);
|
|
@@ -479,6 +527,52 @@
|
|
|
479
527
|
--shadow-button-danger-focus:
|
|
480
528
|
0 -1px 0 0 var(--color-alpha-white-16), 0 0 0 1px var(--color-alpha-white-12), 0 0 0 1px
|
|
481
529
|
var(--color-red-700), 0 0 0 2px var(--color-neutral-950), 0 0 0 4px var(--color-primary-500);
|
|
530
|
+
--shadow-button-success:
|
|
531
|
+
0 -1px 0 0 var(--color-alpha-white-16), 0 0 0 1px var(--color-alpha-white-12), 0 0 0 1px
|
|
532
|
+
var(--color-green-700), 0 0 1px 1.5px var(--color-alpha-black-24), 0 2px 2px 0
|
|
533
|
+
var(--color-alpha-black-24);
|
|
534
|
+
--shadow-button-success-focus:
|
|
535
|
+
0 -1px 0 0 var(--color-alpha-white-16), 0 0 0 1px var(--color-alpha-white-12), 0 0 0 1px
|
|
536
|
+
var(--color-green-700), 0 0 0 2px var(--color-neutral-950), 0 0 0 4px var(--color-primary-500);
|
|
537
|
+
|
|
538
|
+
/* Checkbox */
|
|
539
|
+
/* Checkbox - Unchecked States */
|
|
540
|
+
--checkbox-unchecked-bg: var(--background-components-base);
|
|
541
|
+
--checkbox-unchecked-bg-hover: var(--background-components-hover);
|
|
542
|
+
--checkbox-unchecked-border: var(--color-alpha-white-10);
|
|
543
|
+
--checkbox-unchecked-shadow:
|
|
544
|
+
0px 1px 2px 0px var(--color-alpha-black-12), 0px 0px 0px 1px var(--color-alpha-white-10);
|
|
545
|
+
--checkbox-unchecked-focus-shadow:
|
|
546
|
+
0px 1px 2px 0px rgba(30, 58, 138, 0.5), 0px 0px 0px 1px #ff4b00, 0px 0px 0px 2px var(
|
|
547
|
+
--color-alpha-black-80
|
|
548
|
+
),
|
|
549
|
+
0px 0px 0px 4px rgba(255, 75, 0, 0.6);
|
|
550
|
+
|
|
551
|
+
/* Checkbox - Checked States */
|
|
552
|
+
--checkbox-checked-bg: var(--foreground-highlight-interactive);
|
|
553
|
+
--checkbox-checked-bg-hover: var(--foreground-highlight-interactive-hover);
|
|
554
|
+
--checkbox-checked-border: rgba(255, 75, 0, 0.69);
|
|
555
|
+
--checkbox-checked-shadow:
|
|
556
|
+
0px 1px 2px 0px rgba(30, 58, 138, 0.5), 0px 0px 0px 1px rgba(255, 75, 0, 0.69);
|
|
557
|
+
--checkbox-checked-focus-shadow:
|
|
558
|
+
0px 1px 2px 0px rgba(30, 58, 138, 0.5), 0px 0px 0px 1px #ff4b00, 0px 0px 0px 2px var(
|
|
559
|
+
--color-alpha-black-80
|
|
560
|
+
),
|
|
561
|
+
0px 0px 0px 4px rgba(255, 75, 0, 0.6);
|
|
562
|
+
|
|
563
|
+
/* Checkbox - Indeterminate States */
|
|
564
|
+
--checkbox-indeterminate-bg: var(--foreground-highlight-interactive);
|
|
565
|
+
--checkbox-indeterminate-bg-hover: var(--foreground-highlight-interactive-hover);
|
|
566
|
+
--checkbox-indeterminate-border: rgba(255, 75, 0, 0.69);
|
|
567
|
+
--checkbox-indeterminate-shadow:
|
|
568
|
+
0px 1px 2px 0px rgba(30, 58, 138, 0.5), 0px 0px 0px 1px rgba(255, 75, 0, 0.69);
|
|
569
|
+
--checkbox-indeterminate-focus-shadow:
|
|
570
|
+
0px 0px 0px 1px var(--color-alpha-black-80), 0px 0px 0px 3px rgba(255, 75, 0, 0.6);
|
|
571
|
+
--shadow-tooltip:
|
|
572
|
+
0 -1px 0 0 var(--color-alpha-white-4), 0 2px 4px 0 var(--color-alpha-black-40), 0 0 0 1px
|
|
573
|
+
var(--color-alpha-white-10), 0 4px 8px 0 var(--color-alpha-black-40);
|
|
574
|
+
--shadow-separator-inset:
|
|
575
|
+
inset 0 1px 0 0 rgba(255, 255, 255, 0.06), inset 0 -1px 0 0 rgba(0, 0, 0, 0.1);
|
|
482
576
|
}
|
|
483
577
|
|
|
484
578
|
@theme inline {
|
|
@@ -654,14 +748,17 @@
|
|
|
654
748
|
--color-background-button-transparent-default: var(--background-button-transparent-default);
|
|
655
749
|
--color-background-button-neutral-hover: var(--background-button-neutral-hover);
|
|
656
750
|
--color-background-button-danger-hover: var(--background-button-danger-hover);
|
|
751
|
+
--color-background-button-success-hover: var(--background-button-success-hover);
|
|
657
752
|
--color-background-button-neutral-pressed: var(--background-button-neutral-pressed);
|
|
658
753
|
--color-background-button-neutral-default: var(--background-button-neutral-default);
|
|
659
754
|
--color-background-button-transparent-hover: var(--background-button-transparent-hover);
|
|
660
755
|
--color-background-button-inverted-pressed: var(--background-button-inverted-pressed);
|
|
661
756
|
--color-background-button-transparent-pressed: var(--background-button-transparent-pressed);
|
|
662
757
|
--color-background-button-danger-pressed: var(--background-button-danger-pressed);
|
|
758
|
+
--color-background-button-success-pressed: var(--background-button-success-pressed);
|
|
663
759
|
--color-background-button-inverted-hover: var(--background-button-inverted-hover);
|
|
664
760
|
--color-background-button-danger-default: var(--background-button-danger-default);
|
|
761
|
+
--color-background-button-success-default: var(--background-button-success-default);
|
|
665
762
|
--color-background-button-inverted-default: var(--background-button-inverted-default);
|
|
666
763
|
|
|
667
764
|
/* Theme tokens - accent background */
|
|
@@ -802,6 +899,27 @@
|
|
|
802
899
|
--shadow-button-neutral-focus: var(--shadow-button-neutral-focus);
|
|
803
900
|
--shadow-button-danger: var(--shadow-button-danger);
|
|
804
901
|
--shadow-button-danger-focus: var(--shadow-button-danger-focus);
|
|
902
|
+
--shadow-button-success: var(--shadow-button-success);
|
|
903
|
+
--shadow-button-success-focus: var(--shadow-button-success-focus);
|
|
904
|
+
|
|
905
|
+
/* Checkbox */
|
|
906
|
+
--color-checkbox-unchecked-bg: var(--checkbox-unchecked-bg);
|
|
907
|
+
--color-checkbox-unchecked-bg-hover: var(--checkbox-unchecked-bg-hover);
|
|
908
|
+
--color-checkbox-unchecked-border: var(--checkbox-unchecked-border);
|
|
909
|
+
--shadow-checkbox-unchecked: var(--checkbox-unchecked-shadow);
|
|
910
|
+
--shadow-checkbox-unchecked-focus: var(--checkbox-unchecked-focus-shadow);
|
|
911
|
+
--color-checkbox-checked-bg: var(--checkbox-checked-bg);
|
|
912
|
+
--color-checkbox-checked-bg-hover: var(--checkbox-checked-bg-hover);
|
|
913
|
+
--color-checkbox-checked-border: var(--checkbox-checked-border);
|
|
914
|
+
--shadow-checkbox-checked: var(--checkbox-checked-shadow);
|
|
915
|
+
--shadow-checkbox-checked-focus: var(--checkbox-checked-focus-shadow);
|
|
916
|
+
--color-checkbox-indeterminate-bg: var(--checkbox-indeterminate-bg);
|
|
917
|
+
--color-checkbox-indeterminate-bg-hover: var(--checkbox-indeterminate-bg-hover);
|
|
918
|
+
--color-checkbox-indeterminate-border: var(--checkbox-indeterminate-border);
|
|
919
|
+
--shadow-checkbox-indeterminate: var(--checkbox-indeterminate-shadow);
|
|
920
|
+
--shadow-checkbox-indeterminate-focus: var(--checkbox-indeterminate-focus-shadow);
|
|
921
|
+
--shadow-tooltip: var(--shadow-tooltip);
|
|
922
|
+
--shadow-separator-inset: var(--shadow-separator-inset);
|
|
805
923
|
}
|
|
806
924
|
|
|
807
925
|
@layer base {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shipfox/react-ui",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.5.0",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -22,12 +22,15 @@
|
|
|
22
22
|
"@radix-ui/react-slot": "^1.2.3",
|
|
23
23
|
"@radix-ui/react-tabs": "^1.1.13",
|
|
24
24
|
"@radix-ui/react-tooltip": "^1.2.8",
|
|
25
|
+
"@radix-ui/react-use-controllable-state": "^1.2.2",
|
|
25
26
|
"@remixicon/react": "^4.6.0",
|
|
26
27
|
"class-variance-authority": "^0.7.1",
|
|
27
28
|
"clsx": "^2.1.1",
|
|
28
|
-
"
|
|
29
|
+
"framer-motion": "^12.23.24",
|
|
30
|
+
"lucide-react": "^0.553.0",
|
|
29
31
|
"react-day-picker": "^9.5.1",
|
|
30
32
|
"recharts": "^3.1.0",
|
|
33
|
+
"shiki": "^3.15.0",
|
|
31
34
|
"sonner": "^2.0.7",
|
|
32
35
|
"tailwind-merge": "^3.2.0"
|
|
33
36
|
},
|
|
@@ -40,6 +43,9 @@
|
|
|
40
43
|
"react-hook-form": "^7.52.1"
|
|
41
44
|
},
|
|
42
45
|
"devDependencies": {
|
|
46
|
+
"@argos-ci/cli": "^3.2.1",
|
|
47
|
+
"@argos-ci/storybook": "^5.2.1",
|
|
48
|
+
"@storybook/addon-vitest": "^9.1.16",
|
|
43
49
|
"@storybook/builder-vite": "^9.1.8",
|
|
44
50
|
"@storybook/react": "^9.1.8",
|
|
45
51
|
"@storybook/react-vite": "^9.1.8",
|
|
@@ -56,7 +62,11 @@
|
|
|
56
62
|
"storybook-addon-pseudo-states": "^9.1.8",
|
|
57
63
|
"tailwindcss": "^4.1.13",
|
|
58
64
|
"tw-animate-css": "^1.4.0",
|
|
59
|
-
"
|
|
65
|
+
"vitest": "^4.0.8",
|
|
66
|
+
"playwright": "^1.56.1",
|
|
67
|
+
"@vitest/browser-playwright": "^4.0.8",
|
|
68
|
+
"@vitest/coverage-v8": "^4.0.8",
|
|
69
|
+
"@shipfox/biome": "1.3.1",
|
|
60
70
|
"@shipfox/swc": "1.2.1",
|
|
61
71
|
"@shipfox/ts-config": "1.3.5",
|
|
62
72
|
"@shipfox/typescript": "1.1.2",
|
|
@@ -68,6 +78,7 @@
|
|
|
68
78
|
"check": "biome-check",
|
|
69
79
|
"storybook": "storybook dev",
|
|
70
80
|
"storybook:build": "storybook build -o storybook-static",
|
|
81
|
+
"argos": "argos upload --build-name react-ui storybook-static",
|
|
71
82
|
"test": "vitest-run",
|
|
72
83
|
"type": "tsc-emit"
|
|
73
84
|
}
|