@salesmind-ai/design-system 0.6.0 → 0.7.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/README.md +2 -0
- package/dist/Anton-Regular-MLEXVTB2.woff2 +0 -0
- package/dist/admin/index.cjs +5 -61
- package/dist/admin/index.css +0 -3918
- package/dist/admin/index.css.map +1 -1
- package/dist/admin/index.d.cts +1 -422
- package/dist/admin/index.d.ts +1 -422
- package/dist/admin/index.js +1 -5
- package/dist/blog/index.cjs +13 -34
- package/dist/blog/index.css +0 -579
- package/dist/blog/index.css.map +1 -1
- package/dist/blog/index.d.cts +1 -54
- package/dist/blog/index.d.ts +1 -54
- package/dist/blog/index.js +5 -6
- package/dist/charts/index.cjs +0 -46
- package/dist/charts/index.d.cts +1 -452
- package/dist/charts/index.d.ts +1 -452
- package/dist/charts/index.js +1 -3
- package/dist/{chunk-HDVAMYSG.js → chunk-27Y5ESMM.js} +7 -2
- package/dist/chunk-27Y5ESMM.js.map +1 -0
- package/dist/{chunk-YTYDQBVY.cjs → chunk-2VVRZBUR.cjs} +4 -4
- package/dist/{chunk-GQELL2MF.cjs → chunk-3NS6X2R4.cjs} +20 -203
- package/dist/chunk-3NS6X2R4.cjs.map +1 -0
- package/dist/{chunk-XEX2AEZK.cjs → chunk-65DTHLVX.cjs} +66 -186
- package/dist/chunk-65DTHLVX.cjs.map +1 -0
- package/dist/{chunk-QALDZ7WQ.js → chunk-6BUS7RMS.js} +21 -198
- package/dist/chunk-6BUS7RMS.js.map +1 -0
- package/dist/{chunk-BJZ2DKS5.cjs → chunk-6QIQCUYC.cjs} +11 -10
- package/dist/chunk-6QIQCUYC.cjs.map +1 -0
- package/dist/{chunk-H2Y6BSTL.cjs → chunk-7EUR3AKV.cjs} +1 -1
- package/dist/chunk-7EUR3AKV.cjs.map +1 -0
- package/dist/{chunk-VFJZQQZU.js → chunk-AMNY5TS3.js} +11 -10
- package/dist/chunk-AMNY5TS3.js.map +1 -0
- package/dist/{chunk-YJ6C3EKW.js → chunk-CLXLQCNQ.js} +52 -168
- package/dist/chunk-CLXLQCNQ.js.map +1 -0
- package/dist/{chunk-H2KQ3WSH.cjs → chunk-CVLD5RQK.cjs} +12 -14
- package/dist/chunk-CVLD5RQK.cjs.map +1 -0
- package/dist/chunk-EPD4ZEPY.cjs +344 -0
- package/dist/chunk-EPD4ZEPY.cjs.map +1 -0
- package/dist/chunk-FXYOSA4E.cjs +118 -0
- package/dist/chunk-FXYOSA4E.cjs.map +1 -0
- package/dist/{chunk-ECXBTUH6.cjs → chunk-GPHQGLR5.cjs} +27 -204
- package/dist/chunk-GPHQGLR5.cjs.map +1 -0
- package/dist/{chunk-Y26OHHMX.js → chunk-HHQ6J7B6.js} +513 -888
- package/dist/chunk-HHQ6J7B6.js.map +1 -0
- package/dist/chunk-JPUJWI7F.cjs +73 -0
- package/dist/chunk-JPUJWI7F.cjs.map +1 -0
- package/dist/{chunk-6UNG76Y2.js → chunk-K526GN7P.js} +2 -2
- package/dist/{chunk-SICKWUWB.js → chunk-KJHPOB3J.js} +1 -1
- package/dist/chunk-KJHPOB3J.js.map +1 -0
- package/dist/chunk-KXVFFEGD.js +60 -0
- package/dist/chunk-KXVFFEGD.js.map +1 -0
- package/dist/chunk-LQB7QLD3.js +288 -0
- package/dist/chunk-LQB7QLD3.js.map +1 -0
- package/dist/chunk-LUD52ZJF.cjs +726 -0
- package/dist/chunk-LUD52ZJF.cjs.map +1 -0
- package/dist/{chunk-7UZ5DETZ.js → chunk-MBAG654R.js} +4 -216
- package/dist/chunk-MBAG654R.js.map +1 -0
- package/dist/chunk-OMP6FAZ6.cjs +183 -0
- package/dist/chunk-OMP6FAZ6.cjs.map +1 -0
- package/dist/{chunk-WYH4TKS5.js → chunk-PBYRTNQ5.js} +6 -8
- package/dist/chunk-PBYRTNQ5.js.map +1 -0
- package/dist/chunk-PYREXCZK.js +679 -0
- package/dist/chunk-PYREXCZK.js.map +1 -0
- package/dist/{chunk-6D22TFLA.cjs → chunk-R3ZECV5P.cjs} +9 -4
- package/dist/chunk-R3ZECV5P.cjs.map +1 -0
- package/dist/{chunk-P5BOFE5A.js → chunk-RSLA2FJN.js} +28 -183
- package/dist/chunk-RSLA2FJN.js.map +1 -0
- package/dist/chunk-S46SKHMD.js +173 -0
- package/dist/chunk-S46SKHMD.js.map +1 -0
- package/dist/chunk-SFXTB7JL.js +190 -0
- package/dist/chunk-SFXTB7JL.js.map +1 -0
- package/dist/chunk-SGYXYMKZ.cjs +214 -0
- package/dist/chunk-SGYXYMKZ.cjs.map +1 -0
- package/dist/chunk-UGKYP6F3.cjs +296 -0
- package/dist/chunk-UGKYP6F3.cjs.map +1 -0
- package/dist/chunk-WB6XDNU7.js +115 -0
- package/dist/chunk-WB6XDNU7.js.map +1 -0
- package/dist/{chunk-LTPTW2US.cjs → chunk-WE4QIIVN.cjs} +592 -974
- package/dist/chunk-WE4QIIVN.cjs.map +1 -0
- package/dist/core/index.cjs +144 -626
- package/dist/core/index.css +178 -3567
- package/dist/core/index.css.map +1 -1
- package/dist/core/index.d.cts +940 -902
- package/dist/core/index.d.ts +940 -902
- package/dist/core/index.js +6 -12
- package/dist/i18n/index.cjs +54 -49
- package/dist/i18n/index.d.cts +46 -11
- package/dist/i18n/index.d.ts +46 -11
- package/dist/i18n/index.js +2 -1
- package/dist/index-BJ8rBqrO.d.cts +1100 -0
- package/dist/index-BxMqCbqE.d.ts +1100 -0
- package/dist/index.cjs +507 -1001
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +6057 -16713
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +306 -21
- package/dist/index.d.ts +306 -21
- package/dist/index.js +274 -39
- package/dist/index.js.map +1 -1
- package/dist/marketing/index.cjs +33 -76
- package/dist/marketing/index.css +1896 -3234
- package/dist/marketing/index.css.map +1 -1
- package/dist/marketing/index.d.cts +3 -1351
- package/dist/marketing/index.d.ts +3 -1351
- package/dist/marketing/index.js +5 -8
- package/dist/motion/index.cjs +3 -20
- package/dist/motion/index.css +0 -580
- package/dist/motion/index.css.map +1 -1
- package/dist/motion/index.d.cts +1 -37
- package/dist/motion/index.d.ts +1 -37
- package/dist/motion/index.js +1 -2
- package/dist/nav/index.cjs +10 -35
- package/dist/nav/index.css +28 -580
- package/dist/nav/index.css.map +1 -1
- package/dist/nav/index.d.cts +2 -60
- package/dist/nav/index.d.ts +2 -60
- package/dist/nav/index.js +1 -2
- package/dist/report/index.cjs +1166 -175
- package/dist/report/index.cjs.map +1 -1
- package/dist/report/index.d.cts +208 -5
- package/dist/report/index.d.ts +208 -5
- package/dist/report/index.js +1141 -3
- package/dist/report/index.js.map +1 -1
- package/dist/sections/index.cjs +8 -10
- package/dist/sections/index.cjs.map +1 -1
- package/dist/sections/index.css +0 -206
- package/dist/sections/index.css.map +1 -1
- package/dist/sections/index.js +2 -4
- package/dist/sections/index.js.map +1 -1
- package/dist/social-media/index.cjs +4 -0
- package/dist/social-media/index.cjs.map +1 -0
- package/dist/social-media/index.d.cts +2 -0
- package/dist/social-media/index.d.ts +2 -0
- package/dist/social-media/index.js +3 -0
- package/dist/social-media/index.js.map +1 -0
- package/dist/social-proof/index.cjs +4 -36
- package/dist/social-proof/index.css +3 -1106
- package/dist/social-proof/index.css.map +1 -1
- package/dist/social-proof/index.d.cts +26 -171
- package/dist/social-proof/index.d.ts +26 -171
- package/dist/social-proof/index.js +1 -5
- package/dist/styles/styles.css +657 -2990
- package/dist/theme/index.cjs +12 -16
- package/dist/theme/index.css +1 -245
- package/dist/theme/index.css.map +1 -1
- package/dist/theme/index.d.cts +4 -1
- package/dist/theme/index.d.ts +4 -1
- package/dist/theme/index.js +2 -2
- package/dist/web/client/index.cjs +10 -10
- package/dist/web/client/index.css +118 -0
- package/dist/web/client/index.css.map +1 -1
- package/dist/web/client/index.js +2 -2
- package/dist/web/index.cjs +10 -10
- package/dist/web/index.css +118 -0
- package/dist/web/index.css.map +1 -1
- package/dist/web/index.js +2 -2
- package/package.json +10 -4
- package/dist/AppearancePanel-UT57J69V.d.cts +0 -51
- package/dist/AppearancePanel-UT57J69V.d.ts +0 -51
- package/dist/ExportMenu-A2TLFiVv.d.cts +0 -311
- package/dist/ExportMenu-C8qck5AT.d.ts +0 -311
- package/dist/Select-BdZmK0Lt.d.cts +0 -66
- package/dist/Select-BdZmK0Lt.d.ts +0 -66
- package/dist/chart-types-BGVVO-zl.d.cts +0 -208
- package/dist/chart-types-BGVVO-zl.d.ts +0 -208
- package/dist/charts/index.css +0 -1167
- package/dist/charts/index.css.map +0 -1
- package/dist/chunk-3BAQDW3V.cjs +0 -1207
- package/dist/chunk-3BAQDW3V.cjs.map +0 -1
- package/dist/chunk-3NKRFUAR.js +0 -37
- package/dist/chunk-3NKRFUAR.js.map +0 -1
- package/dist/chunk-3TGSIILM.cjs +0 -201
- package/dist/chunk-3TGSIILM.cjs.map +0 -1
- package/dist/chunk-4GM5BGBN.cjs +0 -801
- package/dist/chunk-4GM5BGBN.cjs.map +0 -1
- package/dist/chunk-5LA3T22E.cjs +0 -562
- package/dist/chunk-5LA3T22E.cjs.map +0 -1
- package/dist/chunk-5SN66B2X.js +0 -2542
- package/dist/chunk-5SN66B2X.js.map +0 -1
- package/dist/chunk-6D22TFLA.cjs.map +0 -1
- package/dist/chunk-6H4DSTXR.js +0 -786
- package/dist/chunk-6H4DSTXR.js.map +0 -1
- package/dist/chunk-6HKQ5ILL.cjs +0 -1624
- package/dist/chunk-6HKQ5ILL.cjs.map +0 -1
- package/dist/chunk-7PX2AZ6Y.js +0 -39
- package/dist/chunk-7PX2AZ6Y.js.map +0 -1
- package/dist/chunk-7UZ5DETZ.js.map +0 -1
- package/dist/chunk-B6AVAX4F.js +0 -1415
- package/dist/chunk-B6AVAX4F.js.map +0 -1
- package/dist/chunk-BJZ2DKS5.cjs.map +0 -1
- package/dist/chunk-BUTQSDQH.js +0 -200
- package/dist/chunk-BUTQSDQH.js.map +0 -1
- package/dist/chunk-C2BCDNAV.js +0 -24
- package/dist/chunk-C2BCDNAV.js.map +0 -1
- package/dist/chunk-CJ2MKVAF.cjs +0 -46
- package/dist/chunk-CJ2MKVAF.cjs.map +0 -1
- package/dist/chunk-E7D6EKJ4.cjs +0 -44
- package/dist/chunk-E7D6EKJ4.cjs.map +0 -1
- package/dist/chunk-ECXBTUH6.cjs.map +0 -1
- package/dist/chunk-FAFAP4L5.js +0 -183
- package/dist/chunk-FAFAP4L5.js.map +0 -1
- package/dist/chunk-G2XGBO5V.cjs +0 -2565
- package/dist/chunk-G2XGBO5V.cjs.map +0 -1
- package/dist/chunk-GQELL2MF.cjs.map +0 -1
- package/dist/chunk-H2KQ3WSH.cjs.map +0 -1
- package/dist/chunk-H2Y6BSTL.cjs.map +0 -1
- package/dist/chunk-HCZW5AJN.cjs +0 -234
- package/dist/chunk-HCZW5AJN.cjs.map +0 -1
- package/dist/chunk-HDVAMYSG.js.map +0 -1
- package/dist/chunk-HN4PHABT.js +0 -126
- package/dist/chunk-HN4PHABT.js.map +0 -1
- package/dist/chunk-LTPTW2US.cjs.map +0 -1
- package/dist/chunk-MDB2WCRQ.cjs +0 -137
- package/dist/chunk-MDB2WCRQ.cjs.map +0 -1
- package/dist/chunk-MQRB634A.cjs +0 -34
- package/dist/chunk-MQRB634A.cjs.map +0 -1
- package/dist/chunk-NN3TUHIH.js +0 -28
- package/dist/chunk-NN3TUHIH.js.map +0 -1
- package/dist/chunk-OWS2KAXZ.js +0 -701
- package/dist/chunk-OWS2KAXZ.js.map +0 -1
- package/dist/chunk-P5BOFE5A.js.map +0 -1
- package/dist/chunk-PUPSK3DI.cjs +0 -216
- package/dist/chunk-PUPSK3DI.cjs.map +0 -1
- package/dist/chunk-Q2MFGYTE.cjs +0 -1449
- package/dist/chunk-Q2MFGYTE.cjs.map +0 -1
- package/dist/chunk-Q75DBVDY.cjs +0 -68
- package/dist/chunk-Q75DBVDY.cjs.map +0 -1
- package/dist/chunk-QALDZ7WQ.js.map +0 -1
- package/dist/chunk-QWE2RNCS.js +0 -1195
- package/dist/chunk-QWE2RNCS.js.map +0 -1
- package/dist/chunk-RQUFZAZ7.js +0 -1608
- package/dist/chunk-RQUFZAZ7.js.map +0 -1
- package/dist/chunk-SICKWUWB.js.map +0 -1
- package/dist/chunk-TCFC7XTB.js +0 -212
- package/dist/chunk-TCFC7XTB.js.map +0 -1
- package/dist/chunk-UTVXGAQP.cjs +0 -2437
- package/dist/chunk-UTVXGAQP.cjs.map +0 -1
- package/dist/chunk-UVEMY3FQ.cjs +0 -717
- package/dist/chunk-UVEMY3FQ.cjs.map +0 -1
- package/dist/chunk-VFJZQQZU.js.map +0 -1
- package/dist/chunk-WH7PYHZY.cjs +0 -35
- package/dist/chunk-WH7PYHZY.cjs.map +0 -1
- package/dist/chunk-WYH4TKS5.js.map +0 -1
- package/dist/chunk-XEX2AEZK.cjs.map +0 -1
- package/dist/chunk-XPTVHPCN.js +0 -2320
- package/dist/chunk-XPTVHPCN.js.map +0 -1
- package/dist/chunk-XWPDRMZG.js +0 -62
- package/dist/chunk-XWPDRMZG.js.map +0 -1
- package/dist/chunk-Y26OHHMX.js.map +0 -1
- package/dist/chunk-YJ6C3EKW.js.map +0 -1
- package/dist/motion-C651Ry6d.d.cts +0 -832
- package/dist/motion-C651Ry6d.d.ts +0 -832
- package/dist/report/index.css +0 -1239
- package/dist/report/index.css.map +0 -1
- /package/dist/{chunk-6UNG76Y2.js.map → chunk-2VVRZBUR.cjs.map} +0 -0
- /package/dist/{chunk-YTYDQBVY.cjs.map → chunk-K526GN7P.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/TextArea/TextArea.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Switch/Switch.tsx","../src/components/Label/Label.tsx","../src/components/Skeleton/Skeleton.tsx","../src/components/Separator/Separator.tsx","../src/components/Collapsible/Collapsible.tsx","../src/components/Select/Select.tsx","../src/tokens/motion.ts","../src/tokens/colors.ts","../src/tokens/spacing.ts","../src/tokens/typography.ts","../src/tokens/radius.ts","../src/tokens/shadows.ts","../src/tokens/z-index.ts","../src/tokens/breakpoints.ts"],"names":["clsx","jsx","jsxs","React"],"mappings":"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","sourcesContent":["import { TextareaHTMLAttributes, forwardRef, useId } from 'react';\nimport clsx from 'clsx';\nimport './TextArea.css';\n\nexport interface TextAreaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n label?: string;\n error?: boolean;\n helperText?: string;\n}\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n ({ className, label, error, helperText, id, ...props }, ref) => {\n const generatedId = useId();\n const inputId = id || generatedId;\n\n return (\n <div className={clsx('ds-textarea', className)}>\n {label && (\n <label htmlFor={inputId} className=\"ds-textarea__label\">\n {label}\n </label>\n )}\n <div className=\"ds-textarea__input-wrapper\">\n <textarea\n id={inputId}\n ref={ref}\n className={clsx('ds-textarea__input', error && 'ds-textarea__input--error')}\n {...props}\n />\n </div>\n {helperText && (\n <span className={clsx('ds-textarea__helper', error && 'ds-textarea__helper--error')}>\n {helperText}\n </span>\n )}\n </div>\n );\n },\n);\n\nTextArea.displayName = 'TextArea';\n","import React from 'react';\nimport { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';\nimport clsx from 'clsx';\nimport './Checkbox.css';\n\nexport interface CheckboxProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n required?: boolean;\n readOnly?: boolean;\n name?: string;\n value?: string;\n id?: string;\n label?: string;\n className?: string;\n}\n\nexport const Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n ({ className, label, id, ...props }, ref) => {\n const generatedId = React.useId();\n const checkboxId = id || generatedId;\n\n return (\n <div className={clsx('ds-checkbox-wrapper', className)}>\n <BaseCheckbox.Root id={checkboxId} ref={ref} className=\"ds-checkbox\" {...props}>\n <BaseCheckbox.Indicator className=\"ds-checkbox__indicator\">\n <svg\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"ds-checkbox__icon\"\n >\n <path\n d=\"M11.6666 3.5L5.24992 9.91667L2.33325 7\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </BaseCheckbox.Indicator>\n </BaseCheckbox.Root>\n {label && (\n <label htmlFor={checkboxId} className=\"ds-checkbox__label\">\n {label}\n </label>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = 'Checkbox';\n","import React from 'react';\nimport { Switch as BaseSwitch } from '@base-ui/react/switch';\nimport clsx from 'clsx';\nimport './Switch.css';\n\nexport interface SwitchProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n required?: boolean;\n readOnly?: boolean;\n name?: string;\n value?: string;\n id?: string;\n label?: string;\n className?: string;\n}\n\nexport const Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, label, id, ...props }, ref) => {\n const generatedId = React.useId();\n const switchId = id || generatedId;\n\n return (\n <div className={clsx('ds-switch-wrapper', className)}>\n <BaseSwitch.Root id={switchId} ref={ref} className=\"ds-switch\" {...props}>\n <BaseSwitch.Thumb className=\"ds-switch__thumb\" />\n </BaseSwitch.Root>\n {label && (\n <label htmlFor={switchId} className=\"ds-switch__label\">\n {label}\n </label>\n )}\n </div>\n );\n },\n);\n\nSwitch.displayName = 'Switch';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Label.css';\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n /** Whether the associated input is disabled. */\n disabled?: boolean;\n}\n\n/**\n * Accessible label component for form inputs.\n *\n * @example\n * <Label htmlFor=\"email\">Email address</Label>\n * <Label disabled>Disabled field</Label>\n */\nexport const Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, disabled, ...props }, ref) => {\n return (\n <label\n ref={ref}\n className={clsx('ds-label', disabled && 'ds-label--disabled', className)}\n data-disabled={disabled || undefined}\n {...props}\n />\n );\n },\n);\n\nLabel.displayName = 'Label';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Skeleton.css';\n\nexport type SkeletonProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Loading placeholder with a shimmer animation.\n *\n * Apply `width` and `height` via `style` or a wrapping className to control size.\n *\n * @example\n * <Skeleton style={{ width: 200, height: 16 }} />\n * <Skeleton style={{ width: 40, height: 40, borderRadius: '50%' }} />\n */\nexport const Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clsx('ds-skeleton', className)}\n {...props}\n />\n );\n },\n);\n\nSkeleton.displayName = 'Skeleton';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Separator.css';\n\nexport interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The orientation of the separator.\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n}\n\n/**\n * Visual divider to separate content sections.\n *\n * @example\n * <Separator />\n * <Separator orientation=\"vertical\" />\n */\nexport const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ className, orientation = 'horizontal', ...props }, ref) => {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n className={clsx(\n 'ds-separator',\n `ds-separator--${orientation}`,\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nSeparator.displayName = 'Separator';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Collapsible.css';\n\n/* ============================================================================\n COLLAPSIBLE — Compound component with context-driven open state\n ============================================================================ */\n\ninterface CollapsibleContextValue {\n open: boolean;\n toggle: () => void;\n}\n\nconst CollapsibleContext = React.createContext<CollapsibleContextValue | null>(null);\n\nfunction useCollapsibleContext() {\n const context = React.useContext(CollapsibleContext);\n if (!context) {\n throw new Error('Collapsible compound components must be used within <Collapsible>');\n }\n return context;\n}\n\n/* --------------------------------------------------------------------------\n Collapsible (Root)\n -------------------------------------------------------------------------- */\n\nexport interface CollapsibleProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Whether the collapsible is open (controlled). */\n open?: boolean;\n /** Callback fired when the open state changes. */\n onOpenChange?: (open: boolean) => void;\n}\n\nexport const Collapsible = React.forwardRef<HTMLDivElement, CollapsibleProps>(\n ({ className, open: controlledOpen, onOpenChange, children, ...props }, ref) => {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false);\n\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : uncontrolledOpen;\n\n const toggle = React.useCallback(() => {\n const next = !open;\n if (!isControlled) {\n setUncontrolledOpen(next);\n }\n onOpenChange?.(next);\n }, [open, isControlled, onOpenChange]);\n\n const contextValue = React.useMemo(\n () => ({ open, toggle }),\n [open, toggle],\n );\n\n return (\n <CollapsibleContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={clsx('ds-collapsible', className)}\n data-state={open ? 'open' : 'closed'}\n {...props}\n >\n {children}\n </div>\n </CollapsibleContext.Provider>\n );\n },\n);\n\nCollapsible.displayName = 'Collapsible';\n\n/* --------------------------------------------------------------------------\n CollapsibleTrigger\n -------------------------------------------------------------------------- */\n\nexport const CollapsibleTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, onClick, ...props }, ref) => {\n const { toggle } = useCollapsibleContext();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n toggle();\n onClick?.(e);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx('ds-collapsible__trigger', className)}\n onClick={handleClick}\n {...props}\n />\n );\n});\n\nCollapsibleTrigger.displayName = 'CollapsibleTrigger';\n\n/* --------------------------------------------------------------------------\n CollapsibleContent\n -------------------------------------------------------------------------- */\n\nexport const CollapsibleContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => {\n const { open } = useCollapsibleContext();\n const contentRef = React.useRef<HTMLDivElement>(null);\n const [maxHeight, setMaxHeight] = React.useState<number | undefined>(\n open ? undefined : 0,\n );\n\n React.useEffect(() => {\n const el = contentRef.current;\n if (!el) return;\n\n if (open) {\n const scrollHeight = el.scrollHeight;\n setMaxHeight(scrollHeight);\n const timer = setTimeout(() => setMaxHeight(undefined), 200);\n return () => clearTimeout(timer);\n } else {\n const scrollHeight = el.scrollHeight;\n setMaxHeight(scrollHeight);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n setMaxHeight(0);\n });\n });\n }\n }, [open]);\n\n return (\n <div\n ref={contentRef}\n className={clsx('ds-collapsible__content', className)}\n data-state={open ? 'open' : 'closed'}\n style={{\n maxHeight: maxHeight !== undefined ? `${maxHeight}px` : 'none',\n }}\n hidden={!open && maxHeight === 0}\n {...props}\n >\n <div ref={ref} className=\"ds-collapsible__content-inner\">\n {children}\n </div>\n </div>\n );\n});\n\nCollapsibleContent.displayName = 'CollapsibleContent';\n","import React from 'react';\nimport { Select as BaseSelect } from '@base-ui/react/select';\nimport clsx from 'clsx';\nimport './Select.css';\n\n/* ============================================================================\n SELECT ROOT\n ============================================================================ */\n\nexport interface SelectProps {\n /** Current selected value */\n value?: string;\n /** Default value for uncontrolled mode */\n defaultValue?: string;\n /** Callback when value changes */\n onValueChange?: (value: string | null) => void;\n /** Whether the select is disabled */\n disabled?: boolean;\n /** Whether the select is required */\n required?: boolean;\n /** Name for form submission */\n name?: string;\n /**\n * Item label map for Value display resolution.\n * When provided, Select.Value renders the label instead of the raw value.\n * Accepts a record (e.g. `{ en: \"English\", fr: \"French\" }`) or an array\n * of `{ value, label }` objects.\n */\n items?: Record<string, React.ReactNode> | ReadonlyArray<{ label: React.ReactNode; value: string }>;\n /** Children (SelectTrigger, SelectContent, etc.) */\n children: React.ReactNode;\n}\n\nexport function Select({\n value,\n defaultValue,\n onValueChange,\n disabled,\n required,\n name,\n items,\n children,\n}: SelectProps) {\n return (\n <BaseSelect.Root\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange ? (val) => onValueChange(val) : undefined}\n disabled={disabled}\n required={required}\n name={name}\n items={items}\n >\n {children}\n </BaseSelect.Root>\n );\n}\n\nSelect.displayName = 'Select';\n\n/* ============================================================================\n SELECT TRIGGER\n ============================================================================ */\n\nexport interface SelectTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Placeholder text when no value selected */\n placeholder?: string;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const SelectTrigger = React.forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, placeholder = 'Select...', size = 'md', ...props }, ref) => {\n return (\n <div className=\"ds-select__trigger-wrapper\">\n <BaseSelect.Trigger\n ref={ref}\n className={clsx('ds-select__trigger', `ds-select__trigger--${size}`, className)}\n aria-label={props['aria-label'] || (typeof placeholder === 'string' ? placeholder : 'Select')}\n {...props}\n >\n <BaseSelect.Value className=\"ds-select__value\" placeholder={placeholder} />\n <BaseSelect.Icon className=\"ds-select__icon\" aria-hidden>\n <ChevronDownIcon />\n </BaseSelect.Icon>\n </BaseSelect.Trigger>\n </div>\n );\n },\n);\n\nSelectTrigger.displayName = 'SelectTrigger';\n\n/* ============================================================================\n SELECT CONTENT\n ============================================================================ */\n\nexport interface SelectContentProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Positioning side */\n side?: 'top' | 'bottom';\n /** Side offset in pixels */\n sideOffset?: number;\n /** Alignment */\n align?: 'start' | 'center' | 'end';\n}\n\nexport const SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps>(\n ({ className, side = 'bottom', sideOffset = 4, align = 'start', children, ...props }, ref) => {\n return (\n <BaseSelect.Portal>\n <BaseSelect.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignItemWithTrigger={false}\n >\n <BaseSelect.Popup ref={ref} className={clsx('ds-select__content', className)} {...props}>\n <BaseSelect.List className=\"ds-select__list\">\n {children}\n </BaseSelect.List>\n </BaseSelect.Popup>\n </BaseSelect.Positioner>\n </BaseSelect.Portal>\n );\n },\n);\n\nSelectContent.displayName = 'SelectContent';\n\n/* ============================================================================\n SELECT ITEM\n ============================================================================ */\n\nexport interface SelectItemProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n /** Value for this option */\n value: string;\n /** Display text */\n children: React.ReactNode;\n /** Whether the item is disabled */\n disabled?: boolean;\n}\n\nexport const SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(\n ({ className, value, children, disabled, ...props }, ref) => {\n return (\n <BaseSelect.Item\n ref={ref}\n value={value}\n disabled={disabled}\n className={clsx('ds-select__item', className)}\n {...props}\n >\n <BaseSelect.ItemIndicator className=\"ds-select__item-indicator\">\n <CheckIcon />\n </BaseSelect.ItemIndicator>\n <BaseSelect.ItemText>{children}</BaseSelect.ItemText>\n </BaseSelect.Item>\n );\n },\n);\n\nSelectItem.displayName = 'SelectItem';\n\n/* ============================================================================\n SELECT GROUP\n ============================================================================ */\n\nexport interface SelectGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Group label */\n label?: string;\n}\n\nexport const SelectGroup = React.forwardRef<HTMLDivElement, SelectGroupProps>(\n ({ className, label, children, ...props }, ref) => {\n return (\n <BaseSelect.Group ref={ref} className={clsx('ds-select__group', className)} {...props}>\n {label && (\n <BaseSelect.GroupLabel className=\"ds-select__group-label\">{label}</BaseSelect.GroupLabel>\n )}\n {children}\n </BaseSelect.Group>\n );\n },\n);\n\nSelectGroup.displayName = 'SelectGroup';\n\n/* ============================================================================\n SELECT SEPARATOR\n ============================================================================ */\n\nexport const SelectSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return <div ref={ref} className={clsx('ds-select__separator', className)} {...props} />;\n});\n\nSelectSeparator.displayName = 'SelectSeparator';\n\n/* ============================================================================\n ICONS\n ============================================================================ */\n\nfunction ChevronDownIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n );\n}\n","/* ============================================================================\n MOTION TOKENS & FRAMER CONFIG\n ============================================================================ */\n\n/**\n * Duration tokens (seconds) for Framer Motion\n */\nexport const DURATION = {\n micro: 0.15, // 150ms\n short: 0.25, // 250ms\n medium: 0.5, // 500ms\n long: 1.0, // 1000ms\n} as const;\n\n/**\n * Easing definitions (cubic-bezier arrays) for Framer Motion\n */\nexport const EASING = {\n standard: [0.16, 1, 0.3, 1], // Smooth, premium feel\n emphasis: [0.34, 1.56, 0.64, 1], // Slight spring/overshoot\n exit: [0.4, 0, 0.2, 1], // Quick, decisive exit\n linear: [0, 0, 1, 1],\n} as const;\n\n/**\n * Standard transitions for Framer Motion\n */\nexport const TRANSITION = {\n standard: {\n duration: DURATION.medium,\n ease: EASING.standard,\n },\n emphasis: {\n duration: DURATION.medium,\n ease: EASING.emphasis,\n },\n quick: {\n duration: DURATION.short,\n ease: EASING.standard,\n },\n spring: {\n type: 'spring',\n stiffness: 200,\n damping: 20,\n },\n} as const;\n\n/**\n * Layout Tokens\n */\nexport const DISTANCE = {\n sm: 4,\n md: 12,\n lg: 24,\n xl: 48,\n} as const;\n\n/**\n * Reusable Variants for Framer Motion\n */\nexport const VARIANTS = {\n fadeIn: {\n hidden: { opacity: 0 },\n visible: { opacity: 1, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n fadeUp: {\n hidden: { opacity: 0, y: 12 },\n visible: { opacity: 1, y: 0, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n fadeDown: {\n hidden: { opacity: 0, y: -12 },\n visible: { opacity: 1, y: 0, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n scaleIn: {\n hidden: { opacity: 0, scale: 0.95 },\n visible: {\n opacity: 1,\n scale: 1,\n transition: { duration: DURATION.short, ease: EASING.emphasis },\n },\n },\n slideLeft: {\n hidden: { opacity: 0, x: DISTANCE.lg },\n visible: { opacity: 1, x: 0, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n slideRight: {\n hidden: { opacity: 0, x: -DISTANCE.lg },\n visible: { opacity: 1, x: 0, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n staggerContainer: {\n hidden: { opacity: 0 },\n visible: {\n opacity: 1,\n transition: {\n staggerChildren: 0.08,\n delayChildren: 0.1,\n },\n },\n },\n pulse: {\n hidden: { scale: 1 },\n visible: {\n scale: [1, 1.05, 1],\n transition: { duration: 1.5, repeat: Infinity, ease: 'easeInOut' },\n },\n },\n impact: {\n hidden: { scale: 1 },\n trigger: {\n scale: [1, 0.95, 1.05, 1],\n transition: { duration: 0.4, ease: 'backOut' },\n },\n },\n} as const;\n\n/** Stagger: eyebrow → title → subtitle → CTAs → media */\nexport const HERO_ENTRANCE = {\n container: {\n variants: {\n hidden: { opacity: 1 },\n visible: {\n opacity: 1,\n transition: {\n staggerChildren: 0.12,\n delayChildren: 0.05,\n },\n },\n },\n },\n child: {\n variants: VARIANTS.fadeUp,\n },\n delays: {\n eyebrow: 0,\n title: 0.05,\n subtitle: 0.17,\n cta: 0.29,\n media: 0.41,\n },\n} as const;\n\nexport const SECTION_REVEAL = {\n container: {\n variants: VARIANTS.staggerContainer,\n },\n content: {\n variants: VARIANTS.fadeUp,\n },\n viewportMargin: '-15%' as const,\n} as const;\n\nexport const CARD_HOVER = {\n rest: { y: 0, scale: 1 },\n hover: {\n y: -4,\n scale: 1.01,\n transition: { duration: DURATION.short, ease: EASING.standard },\n },\n} as const;\n\nexport const PANEL_CROSSFADE = {\n initial: { opacity: 0, y: 8 },\n animate: {\n opacity: 1,\n y: 0,\n transition: { duration: DURATION.short, ease: EASING.standard },\n },\n exit: {\n opacity: 0,\n y: -8,\n transition: { duration: DURATION.micro, ease: EASING.exit },\n },\n} as const;\n\nexport const TAB_SLIDE = {\n transition: TRANSITION.spring,\n layout: true as const,\n} as const;\n\nexport const PRESETS = {\n heroEntrance: HERO_ENTRANCE,\n sectionReveal: SECTION_REVEAL,\n cardHover: CARD_HOVER,\n panelCrossfade: PANEL_CROSSFADE,\n tabSlide: TAB_SLIDE,\n} as const;\n\nexport const REDUCED_VARIANTS = {\n fadeOnly: {\n hidden: { opacity: 0 },\n visible: { opacity: 1, transition: { duration: DURATION.short } },\n },\n none: {\n hidden: { opacity: 1 },\n visible: { opacity: 1 },\n },\n} as const;\n\nexport const REDUCED_PANEL_CROSSFADE = {\n initial: { opacity: 0 },\n animate: { opacity: 1, transition: { duration: DURATION.micro } },\n exit: { opacity: 0, transition: { duration: DURATION.micro } },\n} as const;\n\nexport type AnimationVariant = 'fadeIn' | 'fadeUp' | 'fadeDown' | 'scaleIn' | 'slideLeft' | 'slideRight';\n\nexport const VARIANT_MAP = {\n fadeIn: VARIANTS.fadeIn,\n fadeUp: VARIANTS.fadeUp,\n fadeDown: VARIANTS.fadeDown,\n scaleIn: VARIANTS.scaleIn,\n slideLeft: VARIANTS.slideLeft,\n slideRight: VARIANTS.slideRight,\n} satisfies Record<AnimationVariant, unknown>;\n\nexport const MOTION = {\n DURATION,\n EASING,\n TRANSITION,\n VARIANTS,\n DISTANCE,\n PRESETS,\n REDUCED_VARIANTS,\n} as const;\n","export const COLORS = {\n text: {\n primary: 'var(--text-primary)',\n secondary: 'var(--text-secondary)',\n tertiary: 'var(--text-tertiary)',\n disabled: 'var(--text-disabled)',\n },\n glass: {\n base: 'var(--glass-base)',\n baseHover: 'var(--glass-base-hover)',\n baseActive: 'var(--glass-base-active)',\n backdrop: 'var(--glass-backdrop)',\n },\n rim: {\n top: 'var(--rim-light-top)',\n bottom: 'var(--rim-light-bottom)',\n },\n brand: {\n pink: 'var(--brand-pink)',\n yellow: 'var(--brand-yellow)',\n pinkGlow: 'var(--brand-pink-glow)',\n },\n status: {\n success: 'var(--status-success)',\n warning: 'var(--status-warning)',\n error: 'var(--status-error)',\n info: 'var(--status-info)',\n },\n button: {\n primaryBg: 'var(--btn-primary-bg)',\n primaryBgHover: 'var(--btn-primary-bg-hover)',\n secondaryBg: 'var(--btn-secondary-bg)',\n secondaryBgHover: 'var(--btn-secondary-bg-hover)',\n },\n} as const;\n","export const SPACING = {\n 1: 'var(--space-1)',\n 2: 'var(--space-2)',\n 3: 'var(--space-3)',\n 4: 'var(--space-4)',\n 5: 'var(--space-5)',\n 6: 'var(--space-6)',\n 8: 'var(--space-8)',\n 10: 'var(--space-10)',\n 12: 'var(--space-12)',\n 16: 'var(--space-16)',\n 20: 'var(--space-20)',\n} as const;\n\nexport type SpacingToken = keyof typeof SPACING;\n","export const FONT_FAMILY = {\n sans: 'var(--font-family)',\n mono: 'var(--font-family-mono)',\n} as const;\n\nexport const FONT_SIZE = {\n xs: 'var(--font-size-xs)',\n sm: 'var(--font-size-sm)',\n base: 'var(--font-size-base)',\n lg: 'var(--font-size-lg)',\n xl: 'var(--font-size-xl)',\n '2xl': 'var(--font-size-2xl)',\n '3xl': 'var(--font-size-3xl)',\n} as const;\n\nexport const FONT_WEIGHT = {\n normal: 'var(--font-weight-normal)',\n medium: 'var(--font-weight-medium)',\n semibold: 'var(--font-weight-semibold)',\n bold: 'var(--font-weight-bold)',\n} as const;\n\nexport const LINE_HEIGHT = {\n tight: 'var(--line-height-tight)',\n normal: 'var(--line-height-normal)',\n relaxed: 'var(--line-height-relaxed)',\n} as const;\n","export const RADIUS = {\n panel: 'var(--radius-panel)',\n card: 'var(--radius-card)',\n button: 'var(--radius-button)',\n badge: 'var(--radius-badge)',\n pill: 'var(--radius-pill)',\n} as const;\n\nexport type RadiusToken = keyof typeof RADIUS;\n","export const SHADOWS = {\n glass: {\n outer: 'var(--glass-shadow-outer)',\n inner: 'var(--glass-shadow-inner)',\n combined: 'var(--glass-shadow-combined)',\n elevated: 'var(--glass-shadow-elevated)',\n elevatedCombined: 'var(--glass-shadow-elevated-combined)',\n },\n interactive: {\n rest: 'var(--shadow-interactive-rest)',\n restSubtle: 'var(--shadow-interactive-rest-subtle)',\n restLight: 'var(--shadow-interactive-rest-light)',\n hover: 'var(--shadow-interactive-hover)',\n hoverSubtle: 'var(--shadow-interactive-hover-subtle)',\n active: 'var(--shadow-interactive-active)',\n },\n} as const;\n","export const Z_INDEX = {\n void: 'var(--z-void)',\n glassPanel: 'var(--z-glass-panel)',\n ornament: 'var(--z-ornament)',\n dropdown: 'var(--z-dropdown)',\n modalBackdrop: 'var(--z-modal-backdrop)',\n modal: 'var(--z-modal)',\n tooltip: 'var(--z-tooltip)',\n} as const;\n\nexport type ZIndexToken = keyof typeof Z_INDEX;\n","/* ============================================================================\n BREAKPOINT TOKENS\n ============================================================================ */\n\nexport const BREAKPOINTS = {\n '3xs': 320,\n '2xs': 375,\n xs: 480,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n '3xl': 1920,\n '4xl': 2560,\n '5xl': 3840,\n} as const;\n\nexport type Breakpoint = keyof typeof BREAKPOINTS;\n\nexport const MEDIA_QUERIES = {\n '3xs': `(min-width: ${BREAKPOINTS['3xs']}px)`,\n '2xs': `(min-width: ${BREAKPOINTS['2xs']}px)`,\n xs: `(min-width: ${BREAKPOINTS.xs}px)`,\n sm: `(min-width: ${BREAKPOINTS.sm}px)`,\n md: `(min-width: ${BREAKPOINTS.md}px)`,\n lg: `(min-width: ${BREAKPOINTS.lg}px)`,\n xl: `(min-width: ${BREAKPOINTS.xl}px)`,\n '2xl': `(min-width: ${BREAKPOINTS['2xl']}px)`,\n '3xl': `(min-width: ${BREAKPOINTS['3xl']}px)`,\n '4xl': `(min-width: ${BREAKPOINTS['4xl']}px)`,\n '5xl': `(min-width: ${BREAKPOINTS['5xl']}px)`,\n} as const;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkEPD4ZEPY_cjs = require('./chunk-EPD4ZEPY.cjs');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var clsx2 = require('clsx');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -13,6 +13,11 @@ var clsx2__default = /*#__PURE__*/_interopDefault(clsx2);
|
|
|
13
13
|
|
|
14
14
|
var VoidBackground = React__default.default.forwardRef(
|
|
15
15
|
({ showGrid = true, showGrain = true, className, children }, ref) => {
|
|
16
|
+
if (process.env.NODE_ENV !== "production") {
|
|
17
|
+
console.warn(
|
|
18
|
+
"VoidBackground is deprecated since v2; use AuroraVoid from @salesmind-ai/design-system. Will be removed in v3."
|
|
19
|
+
);
|
|
20
|
+
}
|
|
16
21
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: clsx2__default.default("void", className), children: [
|
|
17
22
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "void__base", "aria-hidden": "true" }),
|
|
18
23
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "void__orbs", "aria-hidden": "true", children: [
|
|
@@ -27,7 +32,7 @@ var VoidBackground = React__default.default.forwardRef(
|
|
|
27
32
|
);
|
|
28
33
|
VoidBackground.displayName = "VoidBackground";
|
|
29
34
|
var ThemeSelector = ({ className, style }) => {
|
|
30
|
-
const { theme, setTheme } =
|
|
35
|
+
const { theme, setTheme } = chunkEPD4ZEPY_cjs.useAppearance();
|
|
31
36
|
const handleThemeChange = (newTheme) => {
|
|
32
37
|
setTheme(newTheme);
|
|
33
38
|
};
|
|
@@ -93,7 +98,7 @@ var BRAND_PRESETS = [
|
|
|
93
98
|
];
|
|
94
99
|
var ColorPicker = React__default.default.forwardRef(
|
|
95
100
|
({ className, style, hideCustom = false }, ref) => {
|
|
96
|
-
const { brand, setBrand, customColor, setCustomColor } =
|
|
101
|
+
const { brand, setBrand, customColor, setCustomColor } = chunkEPD4ZEPY_cjs.useAppearance();
|
|
97
102
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
98
103
|
"div",
|
|
99
104
|
{
|
|
@@ -163,4 +168,4 @@ exports.ColorPicker = ColorPicker;
|
|
|
163
168
|
exports.ThemeSelector = ThemeSelector;
|
|
164
169
|
exports.VoidBackground = VoidBackground;
|
|
165
170
|
//# sourceMappingURL=out.js.map
|
|
166
|
-
//# sourceMappingURL=chunk-
|
|
171
|
+
//# sourceMappingURL=chunk-R3ZECV5P.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/VoidBackground/VoidBackground.tsx","../src/components/ThemeSelector/ThemeSelector.tsx","../src/components/ColorPicker/ColorPicker.tsx"],"names":["clsx","jsx","jsxs","React"],"mappings":"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","sourcesContent":["import React from 'react';\nimport clsx from 'clsx';\nimport './VoidBackground.css';\n\nexport interface VoidBackgroundProps {\n /** Show the engineered grid overlay */\n showGrid?: boolean;\n /** Show the film grain texture */\n showGrain?: boolean;\n /** Custom class name */\n className?: string;\n /** Child content rendered above the void */\n children?: React.ReactNode;\n}\n\n/**\n * VoidBackground — The Void Signature Design System Level 0 Environment\n *\n * @deprecated since v2; use AuroraVoid from @salesmind-ai/design-system. Will be removed in v3.\n *\n * A four-layer atmospheric background system:\n * 1. Base Color — Deep purple-black (#08040a)\n * 2. Light Orbs — Radial gradients with mix-blend-mode: screen\n * 3. Engineered Grid — 80×80px with radial fade mask\n * 4. Film Grain — Static SVG noise for texture\n *\n * The Void is not decoration — it is the lighting engine for the UI.\n *\n * @see AuroraVoid\n */\nexport const VoidBackground = React.forwardRef<HTMLDivElement, VoidBackgroundProps>(\n ({ showGrid = true, showGrain = true, className, children }, ref) => {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(\n 'VoidBackground is deprecated since v2; use AuroraVoid from @salesmind-ai/design-system. Will be removed in v3.',\n );\n }\n return (\n <div ref={ref} className={clsx('void', className)}>\n {/* Layer 1: Base Color */}\n <div className=\"void__base\" aria-hidden=\"true\" />\n\n {/* Layer 2: Light Orbs (Infusion Engine) */}\n <div className=\"void__orbs\" aria-hidden=\"true\">\n <div className=\"void__orb void__orb--warm\" />\n <div className=\"void__orb void__orb--purple\" />\n </div>\n\n {/* Layer 3: Engineered Grid */}\n {showGrid && <div className=\"void__grid\" aria-hidden=\"true\" />}\n\n {/* Layer 4: Film Grain */}\n {showGrain && <div className=\"void__grain\" aria-hidden=\"true\" />}\n\n {/* Content Layer */}\n {children && <div className=\"void__content\">{children}</div>}\n </div>\n );\n },\n);\n\nVoidBackground.displayName = 'VoidBackground';\n","import React from 'react';\nimport { Sun, Moon } from 'lucide-react';\nimport clsx from 'clsx';\nimport { useAppearance, Theme } from '../../theme/AppearanceProvider';\nimport './ThemeSelector.css';\n\nexport interface ThemeSelectorProps {\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const ThemeSelector: React.FC<ThemeSelectorProps> = ({ className, style }) => {\n const { theme, setTheme } = useAppearance();\n\n const handleThemeChange = (newTheme: Theme) => {\n setTheme(newTheme);\n };\n\n return (\n <div className={clsx('ds-theme-selector', className)} style={style} role=\"group\" aria-label=\"Theme Selector\">\n <button\n type=\"button\"\n className={clsx('ds-theme-selector__btn', { 'ds-theme-selector__btn--active': theme === 'light' })}\n onClick={() => handleThemeChange('light')}\n aria-pressed={theme === 'light'}\n >\n <Sun className=\"ds-theme-selector__icon\" />\n <span className=\"ds-theme-selector__label\">Light</span>\n </button>\n\n <button\n type=\"button\"\n className={clsx('ds-theme-selector__btn', { 'ds-theme-selector__btn--active': theme === 'light-contrast' })}\n onClick={() => handleThemeChange('light-contrast')}\n aria-pressed={theme === 'light-contrast'}\n >\n <Sun className=\"ds-theme-selector__icon\" />\n <span className=\"ds-theme-selector__label\">Light HC</span>\n </button>\n\n <button\n type=\"button\"\n className={clsx('ds-theme-selector__btn', { 'ds-theme-selector__btn--active': theme === 'dark' })}\n onClick={() => handleThemeChange('dark')}\n aria-pressed={theme === 'dark'}\n >\n <Moon className=\"ds-theme-selector__icon\" />\n <span className=\"ds-theme-selector__label\">Dark</span>\n </button>\n\n <button\n type=\"button\"\n className={clsx('ds-theme-selector__btn', { 'ds-theme-selector__btn--active': theme === 'dark-contrast' })}\n onClick={() => handleThemeChange('dark-contrast')}\n aria-pressed={theme === 'dark-contrast'}\n >\n <Moon className=\"ds-theme-selector__icon\" />\n <span className=\"ds-theme-selector__label\">Dark HC</span>\n </button>\n </div>\n );\n};\n\nThemeSelector.displayName = 'ThemeSelector';\n","import React from 'react';\nimport clsx from 'clsx';\nimport { useAppearance, Brand } from '../../theme/AppearanceProvider';\nimport './ColorPicker.css';\n\n/** Pre-configured brand presets shown as swatches. */\nconst BRAND_PRESETS: { value: Brand; label: string; color: string }[] = [\n { value: 'default', label: 'Warm Intelligence', color: '#f97316' },\n { value: 'salesmind', label: 'SalesMind', color: '#ff005a' },\n];\n\nexport interface ColorPickerProps {\n /** Additional CSS class name. */\n className?: string;\n /** Inline styles. */\n style?: React.CSSProperties;\n /**\n * Hide the custom color swatch and native color input.\n * When `true`, only the curated brand presets are shown.\n * Use this on production surfaces (e.g., marketing website footer)\n * where arbitrary custom colors would undermine brand consistency.\n * @default false\n */\n hideCustom?: boolean;\n}\n\n/**\n * Compact brand/accent color picker.\n * Renders preset brand swatches and an optional custom color input.\n * Consumes the `useAppearance()` context for state.\n */\nexport const ColorPicker = React.forwardRef<HTMLDivElement, ColorPickerProps>(\n ({ className, style, hideCustom = false }, ref) => {\n const { brand, setBrand, customColor, setCustomColor } = useAppearance();\n\n return (\n <div\n ref={ref}\n className={clsx('ds-color-picker', className)}\n style={style}\n role=\"group\"\n aria-label=\"Brand Color\"\n >\n {BRAND_PRESETS.map(({ value, label, color }) => (\n <button\n key={value}\n type=\"button\"\n className={clsx('ds-color-picker__swatch', {\n 'ds-color-picker__swatch--active': brand === value,\n })}\n onClick={() => setBrand(value)}\n aria-label={`Switch to ${label} color scheme`}\n aria-pressed={brand === value}\n title={label}\n >\n <span\n className=\"ds-color-picker__dot\"\n style={{ '--swatch-color': color } as React.CSSProperties}\n />\n </button>\n ))}\n\n {/* Custom color — clicking the dot opens the native color picker */}\n {!hideCustom && (\n <label\n className={clsx('ds-color-picker__swatch', 'ds-color-picker__swatch--custom', {\n 'ds-color-picker__swatch--active': brand === 'custom',\n })}\n title={`Custom: ${customColor}`}\n >\n <span\n className=\"ds-color-picker__dot\"\n style={{ '--swatch-color': customColor } as React.CSSProperties}\n />\n <input\n type=\"color\"\n value={customColor}\n onChange={(e) => setCustomColor(e.target.value)}\n className=\"ds-color-picker__native-input\"\n aria-label=\"Pick a custom accent color\"\n />\n </label>\n )}\n </div>\n );\n },\n);\n\nColorPicker.displayName = 'ColorPicker';\n"]}
|
|
@@ -1,184 +1,6 @@
|
|
|
1
|
-
import { defineMessages
|
|
2
|
-
export { FormattedDate, FormattedMessage, FormattedNumber, defineMessages } from 'react-intl';
|
|
3
|
-
import { jsx } from 'react/jsx-runtime';
|
|
4
|
-
import { useCallback } from 'react';
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
5
2
|
|
|
6
|
-
// src/i18n/
|
|
7
|
-
var defaultMessages = {
|
|
8
|
-
// Common
|
|
9
|
-
"ds.common.loading": "Loading...",
|
|
10
|
-
"ds.common.error": "An error occurred",
|
|
11
|
-
"ds.common.retry": "Retry",
|
|
12
|
-
"ds.common.cancel": "Cancel",
|
|
13
|
-
"ds.common.confirm": "Confirm",
|
|
14
|
-
"ds.common.close": "Close",
|
|
15
|
-
"ds.common.save": "Save",
|
|
16
|
-
"ds.common.delete": "Delete",
|
|
17
|
-
"ds.common.edit": "Edit",
|
|
18
|
-
"ds.common.submit": "Submit",
|
|
19
|
-
"ds.common.required": "Required",
|
|
20
|
-
"ds.common.optional": "Optional",
|
|
21
|
-
// Alert
|
|
22
|
-
"ds.alert.dismissLabel": "Dismiss alert",
|
|
23
|
-
"ds.alert.successTitle": "Success",
|
|
24
|
-
"ds.alert.errorTitle": "Error",
|
|
25
|
-
"ds.alert.warningTitle": "Warning",
|
|
26
|
-
"ds.alert.infoTitle": "Information",
|
|
27
|
-
// Toast
|
|
28
|
-
"ds.toast.dismissLabel": "Dismiss notification",
|
|
29
|
-
// Dialog
|
|
30
|
-
"ds.dialog.closeLabel": "Close dialog",
|
|
31
|
-
// Form
|
|
32
|
-
"ds.form.showPassword": "Show password",
|
|
33
|
-
"ds.form.hidePassword": "Hide password",
|
|
34
|
-
"ds.form.clearInput": "Clear input",
|
|
35
|
-
"ds.form.invalidEmail": "Please enter a valid email address",
|
|
36
|
-
"ds.form.passwordRequired": "Password is required",
|
|
37
|
-
// Auth
|
|
38
|
-
"ds.auth.loginTitle": "Sign in to your account",
|
|
39
|
-
"ds.auth.signupTitle": "Create your account",
|
|
40
|
-
"ds.auth.forgotPasswordTitle": "Reset your password",
|
|
41
|
-
"ds.auth.emailLabel": "Email address",
|
|
42
|
-
"ds.auth.passwordLabel": "Password",
|
|
43
|
-
"ds.auth.rememberMe": "Remember me",
|
|
44
|
-
"ds.auth.forgotPassword": "Forgot your password?",
|
|
45
|
-
"ds.auth.signIn": "Sign in",
|
|
46
|
-
"ds.auth.signUp": "Sign up",
|
|
47
|
-
"ds.auth.sendResetLink": "Send reset link",
|
|
48
|
-
"ds.auth.backToLogin": "Back to login",
|
|
49
|
-
// Navigation
|
|
50
|
-
"ds.nav.menuLabel": "Navigation menu",
|
|
51
|
-
"ds.nav.toggleSidebar": "Toggle sidebar",
|
|
52
|
-
"ds.nav.expandSubmenu": "Expand submenu",
|
|
53
|
-
"ds.nav.collapseSubmenu": "Collapse submenu",
|
|
54
|
-
// Report
|
|
55
|
-
"ds.report.confidenceLabel": "Confidence score",
|
|
56
|
-
"ds.report.dataCoverageLabel": "Data coverage",
|
|
57
|
-
"ds.report.insufficientData": "Insufficient data",
|
|
58
|
-
"ds.report.exportPdf": "Export as PDF",
|
|
59
|
-
"ds.report.exportCsv": "Export as CSV",
|
|
60
|
-
"ds.report.exportPptx": "Export as PowerPoint",
|
|
61
|
-
// Appearance
|
|
62
|
-
"ds.appearance.themeLabel": "Theme",
|
|
63
|
-
"ds.appearance.darkTheme": "Dark",
|
|
64
|
-
"ds.appearance.lightTheme": "Light",
|
|
65
|
-
"ds.appearance.highContrastTheme": "High contrast",
|
|
66
|
-
"ds.appearance.densityLabel": "Density",
|
|
67
|
-
"ds.appearance.comfortableDensity": "Comfortable",
|
|
68
|
-
"ds.appearance.compactDensity": "Compact",
|
|
69
|
-
// Pagination
|
|
70
|
-
"ds.pagination.previous": "Previous",
|
|
71
|
-
"ds.pagination.next": "Next",
|
|
72
|
-
"ds.pagination.goToPreviousPage": "Go to previous page",
|
|
73
|
-
"ds.pagination.goToNextPage": "Go to next page",
|
|
74
|
-
// Calendar
|
|
75
|
-
"ds.calendar.previousMonth": "Previous month",
|
|
76
|
-
"ds.calendar.nextMonth": "Next month",
|
|
77
|
-
// Carousel
|
|
78
|
-
"ds.carousel.previousSlide": "Previous slide",
|
|
79
|
-
"ds.carousel.nextSlide": "Next slide",
|
|
80
|
-
// Methodology
|
|
81
|
-
"ds.methodology.title": "Methodology",
|
|
82
|
-
"ds.methodology.sampleSize": "Sample Size",
|
|
83
|
-
"ds.methodology.dataSources": "Data Sources",
|
|
84
|
-
"ds.methodology.calculation": "Calculation"
|
|
85
|
-
};
|
|
86
|
-
function DSIntlProvider({
|
|
87
|
-
locale = "en",
|
|
88
|
-
messages,
|
|
89
|
-
intlConfig,
|
|
90
|
-
children
|
|
91
|
-
}) {
|
|
92
|
-
const mergedMessages = {
|
|
93
|
-
...defaultMessages,
|
|
94
|
-
...messages
|
|
95
|
-
};
|
|
96
|
-
return /* @__PURE__ */ jsx(
|
|
97
|
-
IntlProvider,
|
|
98
|
-
{
|
|
99
|
-
locale,
|
|
100
|
-
messages: mergedMessages,
|
|
101
|
-
defaultLocale: "en",
|
|
102
|
-
onError: (err) => {
|
|
103
|
-
if (process.env.NODE_ENV === "development") {
|
|
104
|
-
if (err.code !== "MISSING_TRANSLATION") {
|
|
105
|
-
console.error(err);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
...intlConfig,
|
|
110
|
-
children
|
|
111
|
-
}
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
function useMessage() {
|
|
115
|
-
const intl = useIntl();
|
|
116
|
-
const formatMessage = useCallback(
|
|
117
|
-
(descriptor, values) => {
|
|
118
|
-
return intl.formatMessage(descriptor, values);
|
|
119
|
-
},
|
|
120
|
-
[intl]
|
|
121
|
-
);
|
|
122
|
-
return formatMessage;
|
|
123
|
-
}
|
|
124
|
-
function useLocale() {
|
|
125
|
-
const intl = useIntl();
|
|
126
|
-
return intl.locale;
|
|
127
|
-
}
|
|
128
|
-
function useIsRTL() {
|
|
129
|
-
const locale = useLocale();
|
|
130
|
-
const rtlLocales = [
|
|
131
|
-
"ar",
|
|
132
|
-
// Arabic
|
|
133
|
-
"he",
|
|
134
|
-
// Hebrew
|
|
135
|
-
"fa",
|
|
136
|
-
// Persian/Farsi
|
|
137
|
-
"ur",
|
|
138
|
-
// Urdu
|
|
139
|
-
"ps",
|
|
140
|
-
// Pashto
|
|
141
|
-
"sd",
|
|
142
|
-
// Sindhi
|
|
143
|
-
"yi"
|
|
144
|
-
// Yiddish
|
|
145
|
-
];
|
|
146
|
-
return rtlLocales.some((rtl) => locale === rtl || locale.startsWith(`${rtl}-`));
|
|
147
|
-
}
|
|
148
|
-
function useTextDirection() {
|
|
149
|
-
const isRTL = useIsRTL();
|
|
150
|
-
return isRTL ? "rtl" : "ltr";
|
|
151
|
-
}
|
|
152
|
-
function useNumberFormat() {
|
|
153
|
-
const intl = useIntl();
|
|
154
|
-
const formatNumber = useCallback(
|
|
155
|
-
(value, options) => {
|
|
156
|
-
return intl.formatNumber(value, options);
|
|
157
|
-
},
|
|
158
|
-
[intl]
|
|
159
|
-
);
|
|
160
|
-
return formatNumber;
|
|
161
|
-
}
|
|
162
|
-
function useDateFormat() {
|
|
163
|
-
const intl = useIntl();
|
|
164
|
-
const formatDate = useCallback(
|
|
165
|
-
(value, options) => {
|
|
166
|
-
return intl.formatDate(value, options);
|
|
167
|
-
},
|
|
168
|
-
[intl]
|
|
169
|
-
);
|
|
170
|
-
return formatDate;
|
|
171
|
-
}
|
|
172
|
-
function useRelativeTime() {
|
|
173
|
-
const intl = useIntl();
|
|
174
|
-
const formatRelativeTime = useCallback(
|
|
175
|
-
(value, unit, options) => {
|
|
176
|
-
return intl.formatRelativeTime(value, unit, options);
|
|
177
|
-
},
|
|
178
|
-
[intl]
|
|
179
|
-
);
|
|
180
|
-
return formatRelativeTime;
|
|
181
|
-
}
|
|
3
|
+
// src/i18n/messages.ts
|
|
182
4
|
var commonMessages = defineMessages({
|
|
183
5
|
loading: {
|
|
184
6
|
id: "ds.common.loading",
|
|
@@ -525,6 +347,28 @@ var methodologyMessages = defineMessages({
|
|
|
525
347
|
description: "Methodology calculation label"
|
|
526
348
|
}
|
|
527
349
|
});
|
|
350
|
+
var bookingEmbedMessages = defineMessages({
|
|
351
|
+
loading: {
|
|
352
|
+
id: "BookingEmbed.loading",
|
|
353
|
+
defaultMessage: "Loading calendar...",
|
|
354
|
+
description: "Skeleton loader text while booking widget loads"
|
|
355
|
+
},
|
|
356
|
+
errorTitle: {
|
|
357
|
+
id: "BookingEmbed.errorTitle",
|
|
358
|
+
defaultMessage: "Calendar unavailable",
|
|
359
|
+
description: "Error state title when booking widget fails"
|
|
360
|
+
},
|
|
361
|
+
errorDescription: {
|
|
362
|
+
id: "BookingEmbed.errorDescription",
|
|
363
|
+
defaultMessage: "We couldn't load the calendar. Please try again or open it in a new tab.",
|
|
364
|
+
description: "Error state body explaining the failure and recovery options"
|
|
365
|
+
},
|
|
366
|
+
openInNewTab: {
|
|
367
|
+
id: "BookingEmbed.openInNewTab",
|
|
368
|
+
defaultMessage: "Open in new tab",
|
|
369
|
+
description: "Fallback button to open booking calendar in new tab when retry exhausted"
|
|
370
|
+
}
|
|
371
|
+
});
|
|
528
372
|
var allMessages = {
|
|
529
373
|
...commonMessages,
|
|
530
374
|
...alertMessages,
|
|
@@ -538,9 +382,10 @@ var allMessages = {
|
|
|
538
382
|
...paginationMessages,
|
|
539
383
|
...calendarMessages,
|
|
540
384
|
...carouselMessages,
|
|
541
|
-
...methodologyMessages
|
|
385
|
+
...methodologyMessages,
|
|
386
|
+
...bookingEmbedMessages
|
|
542
387
|
};
|
|
543
388
|
|
|
544
|
-
export {
|
|
389
|
+
export { alertMessages, allMessages, appearanceMessages, authMessages, bookingEmbedMessages, calendarMessages, carouselMessages, commonMessages, dialogMessages, formMessages, methodologyMessages, navigationMessages, paginationMessages, reportMessages, toastMessages };
|
|
545
390
|
//# sourceMappingURL=out.js.map
|
|
546
|
-
//# sourceMappingURL=chunk-
|
|
391
|
+
//# sourceMappingURL=chunk-RSLA2FJN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/i18n/messages.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Design System Default Messages\n *\n * This file contains all user-facing strings used by design system components.\n * Components accept message props but fall back to these defaults.\n *\n * Format: react-intl MessageDescriptor\n * @see https://formatjs.io/docs/react-intl/api#message-descriptor\n */\n\nimport { defineMessages } from 'react-intl';\n\n/**\n * Common messages used across multiple components\n */\nexport const commonMessages = defineMessages({\n loading: {\n id: 'ds.common.loading',\n defaultMessage: 'Loading...',\n description: 'Generic loading state text',\n },\n error: {\n id: 'ds.common.error',\n defaultMessage: 'An error occurred',\n description: 'Generic error message',\n },\n retry: {\n id: 'ds.common.retry',\n defaultMessage: 'Retry',\n description: 'Retry action button text',\n },\n cancel: {\n id: 'ds.common.cancel',\n defaultMessage: 'Cancel',\n description: 'Cancel action button text',\n },\n confirm: {\n id: 'ds.common.confirm',\n defaultMessage: 'Confirm',\n description: 'Confirm action button text',\n },\n close: {\n id: 'ds.common.close',\n defaultMessage: 'Close',\n description: 'Close action button text',\n },\n save: {\n id: 'ds.common.save',\n defaultMessage: 'Save',\n description: 'Save action button text',\n },\n delete: {\n id: 'ds.common.delete',\n defaultMessage: 'Delete',\n description: 'Delete action button text',\n },\n edit: {\n id: 'ds.common.edit',\n defaultMessage: 'Edit',\n description: 'Edit action button text',\n },\n submit: {\n id: 'ds.common.submit',\n defaultMessage: 'Submit',\n description: 'Submit action button text',\n },\n required: {\n id: 'ds.common.required',\n defaultMessage: 'Required',\n description: 'Field required indicator',\n },\n optional: {\n id: 'ds.common.optional',\n defaultMessage: 'Optional',\n description: 'Field optional indicator',\n },\n});\n\n/**\n * Alert component messages\n */\nexport const alertMessages = defineMessages({\n dismissLabel: {\n id: 'ds.alert.dismissLabel',\n defaultMessage: 'Dismiss alert',\n description: 'Accessible label for alert dismiss button',\n },\n successTitle: {\n id: 'ds.alert.successTitle',\n defaultMessage: 'Success',\n description: 'Default title for success alerts',\n },\n errorTitle: {\n id: 'ds.alert.errorTitle',\n defaultMessage: 'Error',\n description: 'Default title for error alerts',\n },\n warningTitle: {\n id: 'ds.alert.warningTitle',\n defaultMessage: 'Warning',\n description: 'Default title for warning alerts',\n },\n infoTitle: {\n id: 'ds.alert.infoTitle',\n defaultMessage: 'Information',\n description: 'Default title for info alerts',\n },\n});\n\n/**\n * Toast notification messages\n */\nexport const toastMessages = defineMessages({\n dismissLabel: {\n id: 'ds.toast.dismissLabel',\n defaultMessage: 'Dismiss notification',\n description: 'Accessible label for toast dismiss button',\n },\n});\n\n/**\n * Dialog component messages\n */\nexport const dialogMessages = defineMessages({\n closeLabel: {\n id: 'ds.dialog.closeLabel',\n defaultMessage: 'Close dialog',\n description: 'Accessible label for dialog close button',\n },\n});\n\n/**\n * Form component messages\n */\nexport const formMessages = defineMessages({\n showPassword: {\n id: 'ds.form.showPassword',\n defaultMessage: 'Show password',\n description: 'Toggle to show password text',\n },\n hidePassword: {\n id: 'ds.form.hidePassword',\n defaultMessage: 'Hide password',\n description: 'Toggle to hide password text',\n },\n clearInput: {\n id: 'ds.form.clearInput',\n defaultMessage: 'Clear input',\n description: 'Clear input field button',\n },\n invalidEmail: {\n id: 'ds.form.invalidEmail',\n defaultMessage: 'Please enter a valid email address',\n description: 'Email validation error',\n },\n passwordRequired: {\n id: 'ds.form.passwordRequired',\n defaultMessage: 'Password is required',\n description: 'Password required validation error',\n },\n});\n\n/**\n * Auth component messages\n */\nexport const authMessages = defineMessages({\n loginTitle: {\n id: 'ds.auth.loginTitle',\n defaultMessage: 'Sign in to your account',\n description: 'Login page title',\n },\n signupTitle: {\n id: 'ds.auth.signupTitle',\n defaultMessage: 'Create your account',\n description: 'Signup page title',\n },\n forgotPasswordTitle: {\n id: 'ds.auth.forgotPasswordTitle',\n defaultMessage: 'Reset your password',\n description: 'Forgot password page title',\n },\n emailLabel: {\n id: 'ds.auth.emailLabel',\n defaultMessage: 'Email address',\n description: 'Email field label',\n },\n passwordLabel: {\n id: 'ds.auth.passwordLabel',\n defaultMessage: 'Password',\n description: 'Password field label',\n },\n rememberMe: {\n id: 'ds.auth.rememberMe',\n defaultMessage: 'Remember me',\n description: 'Remember me checkbox label',\n },\n forgotPassword: {\n id: 'ds.auth.forgotPassword',\n defaultMessage: 'Forgot your password?',\n description: 'Forgot password link text',\n },\n signIn: {\n id: 'ds.auth.signIn',\n defaultMessage: 'Sign in',\n description: 'Sign in button text',\n },\n signUp: {\n id: 'ds.auth.signUp',\n defaultMessage: 'Sign up',\n description: 'Sign up button text',\n },\n sendResetLink: {\n id: 'ds.auth.sendResetLink',\n defaultMessage: 'Send reset link',\n description: 'Send password reset link button',\n },\n backToLogin: {\n id: 'ds.auth.backToLogin',\n defaultMessage: 'Back to login',\n description: 'Back to login link text',\n },\n});\n\n/**\n * Navigation component messages\n */\nexport const navigationMessages = defineMessages({\n menuLabel: {\n id: 'ds.nav.menuLabel',\n defaultMessage: 'Navigation menu',\n description: 'Accessible label for navigation menu',\n },\n toggleSidebar: {\n id: 'ds.nav.toggleSidebar',\n defaultMessage: 'Toggle sidebar',\n description: 'Toggle sidebar button label',\n },\n expandSubmenu: {\n id: 'ds.nav.expandSubmenu',\n defaultMessage: 'Expand submenu',\n description: 'Expand submenu button label',\n },\n collapseSubmenu: {\n id: 'ds.nav.collapseSubmenu',\n defaultMessage: 'Collapse submenu',\n description: 'Collapse submenu button label',\n },\n});\n\n/**\n * Report Engine component messages\n */\nexport const reportMessages = defineMessages({\n confidenceLabel: {\n id: 'ds.report.confidenceLabel',\n defaultMessage: 'Confidence score',\n description: 'Label for confidence indicator',\n },\n dataCoverageLabel: {\n id: 'ds.report.dataCoverageLabel',\n defaultMessage: 'Data coverage',\n description: 'Label for data coverage badge',\n },\n insufficientData: {\n id: 'ds.report.insufficientData',\n defaultMessage: 'Insufficient data',\n description: 'Message when data is insufficient for analysis',\n },\n exportPdf: {\n id: 'ds.report.exportPdf',\n defaultMessage: 'Export as PDF',\n description: 'Export to PDF option',\n },\n exportCsv: {\n id: 'ds.report.exportCsv',\n defaultMessage: 'Export as CSV',\n description: 'Export to CSV option',\n },\n exportPptx: {\n id: 'ds.report.exportPptx',\n defaultMessage: 'Export as PowerPoint',\n description: 'Export to PowerPoint option',\n },\n});\n\n/**\n * Appearance/Theme component messages\n */\nexport const appearanceMessages = defineMessages({\n themeLabel: {\n id: 'ds.appearance.themeLabel',\n defaultMessage: 'Theme',\n description: 'Theme selector label',\n },\n darkTheme: {\n id: 'ds.appearance.darkTheme',\n defaultMessage: 'Dark',\n description: 'Dark theme option',\n },\n lightTheme: {\n id: 'ds.appearance.lightTheme',\n defaultMessage: 'Light',\n description: 'Light theme option',\n },\n highContrastTheme: {\n id: 'ds.appearance.highContrastTheme',\n defaultMessage: 'High contrast',\n description: 'High contrast theme option',\n },\n densityLabel: {\n id: 'ds.appearance.densityLabel',\n defaultMessage: 'Density',\n description: 'Density selector label',\n },\n comfortableDensity: {\n id: 'ds.appearance.comfortableDensity',\n defaultMessage: 'Comfortable',\n description: 'Comfortable density option',\n },\n compactDensity: {\n id: 'ds.appearance.compactDensity',\n defaultMessage: 'Compact',\n description: 'Compact density option',\n },\n});\n\n/**\n * Pagination component messages\n */\nexport const paginationMessages = defineMessages({\n previous: {\n id: 'ds.pagination.previous',\n defaultMessage: 'Previous',\n description: 'Pagination previous button label',\n },\n next: {\n id: 'ds.pagination.next',\n defaultMessage: 'Next',\n description: 'Pagination next button label',\n },\n goToPreviousPage: {\n id: 'ds.pagination.goToPreviousPage',\n defaultMessage: 'Go to previous page',\n description: 'Accessible label for previous page button',\n },\n goToNextPage: {\n id: 'ds.pagination.goToNextPage',\n defaultMessage: 'Go to next page',\n description: 'Accessible label for next page button',\n },\n});\n\n/**\n * Calendar component messages\n */\nexport const calendarMessages = defineMessages({\n previousMonth: {\n id: 'ds.calendar.previousMonth',\n defaultMessage: 'Previous month',\n description: 'Accessible label for previous month button',\n },\n nextMonth: {\n id: 'ds.calendar.nextMonth',\n defaultMessage: 'Next month',\n description: 'Accessible label for next month button',\n },\n});\n\n/**\n * Carousel component messages\n */\nexport const carouselMessages = defineMessages({\n previousSlide: {\n id: 'ds.carousel.previousSlide',\n defaultMessage: 'Previous slide',\n description: 'Accessible label for previous slide button',\n },\n nextSlide: {\n id: 'ds.carousel.nextSlide',\n defaultMessage: 'Next slide',\n description: 'Accessible label for next slide button',\n },\n});\n\n/**\n * Methodology component messages\n */\nexport const methodologyMessages = defineMessages({\n title: {\n id: 'ds.methodology.title',\n defaultMessage: 'Methodology',\n description: 'Methodology note title',\n },\n sampleSize: {\n id: 'ds.methodology.sampleSize',\n defaultMessage: 'Sample Size',\n description: 'Methodology sample size label',\n },\n dataSources: {\n id: 'ds.methodology.dataSources',\n defaultMessage: 'Data Sources',\n description: 'Methodology data sources label',\n },\n calculation: {\n id: 'ds.methodology.calculation',\n defaultMessage: 'Calculation',\n description: 'Methodology calculation label',\n },\n});\n\n/**\n * BookingEmbed component messages\n */\nexport const bookingEmbedMessages = defineMessages({\n loading: {\n id: 'BookingEmbed.loading',\n defaultMessage: 'Loading calendar...',\n description: 'Skeleton loader text while booking widget loads',\n },\n errorTitle: {\n id: 'BookingEmbed.errorTitle',\n defaultMessage: 'Calendar unavailable',\n description: 'Error state title when booking widget fails',\n },\n errorDescription: {\n id: 'BookingEmbed.errorDescription',\n defaultMessage: \"We couldn't load the calendar. Please try again or open it in a new tab.\",\n description: 'Error state body explaining the failure and recovery options',\n },\n openInNewTab: {\n id: 'BookingEmbed.openInNewTab',\n defaultMessage: 'Open in new tab',\n description: 'Fallback button to open booking calendar in new tab when retry exhausted',\n },\n});\n\n/**\n * All messages combined for easy export\n */\nexport const allMessages = {\n ...commonMessages,\n ...alertMessages,\n ...toastMessages,\n ...dialogMessages,\n ...formMessages,\n ...authMessages,\n ...navigationMessages,\n ...reportMessages,\n ...appearanceMessages,\n ...paginationMessages,\n ...calendarMessages,\n ...carouselMessages,\n ...methodologyMessages,\n ...bookingEmbedMessages,\n};\n"]}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
// src/components/Sidebar/Sidebar.tsx
|
|
6
|
+
var Sidebar = React.forwardRef(
|
|
7
|
+
({ position = "left", width = 280, collapsed = false, className, children }, ref) => {
|
|
8
|
+
const style = {
|
|
9
|
+
"--sidebar-width": typeof width === "number" ? `${width}px` : width
|
|
10
|
+
};
|
|
11
|
+
return /* @__PURE__ */ jsx(
|
|
12
|
+
"aside",
|
|
13
|
+
{
|
|
14
|
+
ref,
|
|
15
|
+
className: clsx(
|
|
16
|
+
"ds-sidebar",
|
|
17
|
+
`ds-sidebar--${position}`,
|
|
18
|
+
collapsed && "ds-sidebar--collapsed",
|
|
19
|
+
className
|
|
20
|
+
),
|
|
21
|
+
style,
|
|
22
|
+
children: /* @__PURE__ */ jsx("div", { className: "ds-sidebar__content", children })
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
);
|
|
27
|
+
Sidebar.displayName = "Sidebar";
|
|
28
|
+
var SidebarSection = React.forwardRef(
|
|
29
|
+
({ title, className, children }, ref) => {
|
|
30
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: clsx("ds-sidebar__section", className), children: [
|
|
31
|
+
title && /* @__PURE__ */ jsx("h3", { className: "ds-sidebar__section-title", children: title }),
|
|
32
|
+
children
|
|
33
|
+
] });
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
SidebarSection.displayName = "SidebarSection";
|
|
37
|
+
var SidebarItem = React.forwardRef(
|
|
38
|
+
({ active = false, icon, onClick, className, children }, ref) => {
|
|
39
|
+
return /* @__PURE__ */ jsxs(
|
|
40
|
+
"button",
|
|
41
|
+
{
|
|
42
|
+
ref,
|
|
43
|
+
className: clsx("ds-sidebar__item", active && "ds-sidebar__item--active", className),
|
|
44
|
+
onClick,
|
|
45
|
+
type: "button",
|
|
46
|
+
children: [
|
|
47
|
+
icon && /* @__PURE__ */ jsx("span", { className: "ds-sidebar__item-icon", children: icon }),
|
|
48
|
+
/* @__PURE__ */ jsx("span", { className: "ds-sidebar__item-label", children })
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
);
|
|
54
|
+
SidebarItem.displayName = "SidebarItem";
|
|
55
|
+
var HomeIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
|
|
56
|
+
/* @__PURE__ */ jsx("path", { d: "M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" }),
|
|
57
|
+
/* @__PURE__ */ jsx("polyline", { points: "9,22 9,12 15,12 15,22" })
|
|
58
|
+
] });
|
|
59
|
+
var ChartIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
|
|
60
|
+
/* @__PURE__ */ jsx("line", { x1: "18", y1: "20", x2: "18", y2: "10" }),
|
|
61
|
+
/* @__PURE__ */ jsx("line", { x1: "12", y1: "20", x2: "12", y2: "4" }),
|
|
62
|
+
/* @__PURE__ */ jsx("line", { x1: "6", y1: "20", x2: "6", y2: "14" })
|
|
63
|
+
] });
|
|
64
|
+
var UsersIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
|
|
65
|
+
/* @__PURE__ */ jsx("path", { d: "M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }),
|
|
66
|
+
/* @__PURE__ */ jsx("circle", { cx: "9", cy: "7", r: "4" }),
|
|
67
|
+
/* @__PURE__ */ jsx("path", { d: "M23 21v-2a4 4 0 0 0-3-3.87" }),
|
|
68
|
+
/* @__PURE__ */ jsx("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
|
|
69
|
+
] });
|
|
70
|
+
var SettingsIcon = () => /* @__PURE__ */ jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, children: [
|
|
71
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" }),
|
|
72
|
+
/* @__PURE__ */ jsx("path", { d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z" })
|
|
73
|
+
] });
|
|
74
|
+
var DEFAULT_NAV_ITEMS = [
|
|
75
|
+
{ key: "dashboard", label: "Dashboard", icon: /* @__PURE__ */ jsx(HomeIcon, {}) },
|
|
76
|
+
{ key: "analytics", label: "Analytics", icon: /* @__PURE__ */ jsx(ChartIcon, {}) },
|
|
77
|
+
{ key: "contacts", label: "Contacts", icon: /* @__PURE__ */ jsx(UsersIcon, {}) },
|
|
78
|
+
{ key: "settings", label: "Settings", icon: /* @__PURE__ */ jsx(SettingsIcon, {}) }
|
|
79
|
+
];
|
|
80
|
+
function getNavFromDocument() {
|
|
81
|
+
if (typeof document === "undefined") return "left";
|
|
82
|
+
const nav = document.documentElement.getAttribute("data-nav");
|
|
83
|
+
if (nav === "left" || nav === "right" || nav === "bottom") {
|
|
84
|
+
return nav;
|
|
85
|
+
}
|
|
86
|
+
return "left";
|
|
87
|
+
}
|
|
88
|
+
var Shell = React.forwardRef(
|
|
89
|
+
({
|
|
90
|
+
layout,
|
|
91
|
+
className,
|
|
92
|
+
children,
|
|
93
|
+
navItems = DEFAULT_NAV_ITEMS,
|
|
94
|
+
activeNav = "dashboard",
|
|
95
|
+
onNavChange,
|
|
96
|
+
systemSectionTitle = "System"
|
|
97
|
+
}, ref) => {
|
|
98
|
+
const [computedLayout, setComputedLayout] = useState(
|
|
99
|
+
layout || getNavFromDocument()
|
|
100
|
+
);
|
|
101
|
+
useEffect(() => {
|
|
102
|
+
if (layout) {
|
|
103
|
+
setComputedLayout(layout);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (typeof document === "undefined") return;
|
|
107
|
+
const observer = new MutationObserver((mutations) => {
|
|
108
|
+
mutations.forEach((mutation) => {
|
|
109
|
+
if (mutation.type === "attributes" && mutation.attributeName === "data-nav") {
|
|
110
|
+
setComputedLayout(getNavFromDocument());
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
observer.observe(document.documentElement, {
|
|
115
|
+
attributes: true,
|
|
116
|
+
attributeFilter: ["data-nav"]
|
|
117
|
+
});
|
|
118
|
+
setComputedLayout(getNavFromDocument());
|
|
119
|
+
return () => observer.disconnect();
|
|
120
|
+
}, [layout]);
|
|
121
|
+
const handleNavClick = (key) => {
|
|
122
|
+
onNavChange?.(key);
|
|
123
|
+
};
|
|
124
|
+
return /* @__PURE__ */ jsxs(
|
|
125
|
+
"div",
|
|
126
|
+
{
|
|
127
|
+
ref,
|
|
128
|
+
className: clsx("ds-shell", `ds-shell--${computedLayout}`, className),
|
|
129
|
+
"data-shell-layout": computedLayout,
|
|
130
|
+
children: [
|
|
131
|
+
(computedLayout === "left" || computedLayout === "right") && /* @__PURE__ */ jsxs(Sidebar, { position: computedLayout, children: [
|
|
132
|
+
/* @__PURE__ */ jsx(SidebarSection, { children: navItems.slice(0, 3).map((item) => /* @__PURE__ */ jsx(
|
|
133
|
+
SidebarItem,
|
|
134
|
+
{
|
|
135
|
+
icon: item.icon,
|
|
136
|
+
active: activeNav === item.key,
|
|
137
|
+
onClick: () => handleNavClick(item.key),
|
|
138
|
+
children: item.label
|
|
139
|
+
},
|
|
140
|
+
item.key
|
|
141
|
+
)) }),
|
|
142
|
+
navItems.length > 3 && /* @__PURE__ */ jsx(SidebarSection, { title: systemSectionTitle, children: navItems.slice(3).map((item) => /* @__PURE__ */ jsx(
|
|
143
|
+
SidebarItem,
|
|
144
|
+
{
|
|
145
|
+
icon: item.icon,
|
|
146
|
+
active: activeNav === item.key,
|
|
147
|
+
onClick: () => handleNavClick(item.key),
|
|
148
|
+
children: item.label
|
|
149
|
+
},
|
|
150
|
+
item.key
|
|
151
|
+
)) })
|
|
152
|
+
] }),
|
|
153
|
+
computedLayout === "bottom" && /* @__PURE__ */ jsx("nav", { className: "ds-shell__tab-bar", children: navItems.map((item) => /* @__PURE__ */ jsx(
|
|
154
|
+
"button",
|
|
155
|
+
{
|
|
156
|
+
className: clsx("ds-shell__tab-item", activeNav === item.key && "ds-shell__tab-item--active"),
|
|
157
|
+
onClick: () => handleNavClick(item.key),
|
|
158
|
+
"aria-label": item.label,
|
|
159
|
+
children: item.icon
|
|
160
|
+
},
|
|
161
|
+
item.key
|
|
162
|
+
)) }),
|
|
163
|
+
/* @__PURE__ */ jsx("main", { className: "ds-shell__content", children })
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
);
|
|
169
|
+
Shell.displayName = "Shell";
|
|
170
|
+
|
|
171
|
+
export { Shell, Sidebar, SidebarItem, SidebarSection };
|
|
172
|
+
//# sourceMappingURL=out.js.map
|
|
173
|
+
//# sourceMappingURL=chunk-S46SKHMD.js.map
|