@jarllyng/nostromo 3.2.0 → 3.3.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/dist/chunk-35I2BJC3.js +3 -0
- package/dist/chunk-35I2BJC3.js.map +1 -0
- package/dist/chunk-35RWQSO2.cjs +3 -0
- package/dist/chunk-35RWQSO2.cjs.map +1 -0
- package/dist/chunk-3QVQ2TNE.cjs +3 -0
- package/dist/chunk-3QVQ2TNE.cjs.map +1 -0
- package/dist/{chunk-ZC4HJSII.cjs → chunk-5Z3MYAVM.cjs} +2 -2
- package/dist/{chunk-ZC4HJSII.cjs.map → chunk-5Z3MYAVM.cjs.map} +1 -1
- package/dist/{chunk-ZQDFYSZB.cjs → chunk-AYEM2M4H.cjs} +2 -2
- package/dist/{chunk-ZQDFYSZB.cjs.map → chunk-AYEM2M4H.cjs.map} +1 -1
- package/dist/chunk-BL2TM4YT.js +3 -0
- package/dist/chunk-BL2TM4YT.js.map +1 -0
- package/dist/{chunk-BSUHBLZO.cjs → chunk-BZ5ZCZJX.cjs} +2 -2
- package/dist/{chunk-BSUHBLZO.cjs.map → chunk-BZ5ZCZJX.cjs.map} +1 -1
- package/dist/chunk-C7HZAQBX.cjs +3 -0
- package/dist/chunk-C7HZAQBX.cjs.map +1 -0
- package/dist/chunk-DNTPD3PJ.js +3 -0
- package/dist/chunk-DNTPD3PJ.js.map +1 -0
- package/dist/{chunk-TGPWW7FC.js → chunk-HRJXPCGF.js} +2 -2
- package/dist/{chunk-TGPWW7FC.js.map → chunk-HRJXPCGF.js.map} +1 -1
- package/dist/chunk-JCETHQ55.cjs +3 -0
- package/dist/chunk-JCETHQ55.cjs.map +1 -0
- package/dist/chunk-MDXW6IRM.cjs +3 -0
- package/dist/chunk-MDXW6IRM.cjs.map +1 -0
- package/dist/chunk-MOPCE5RA.js +3 -0
- package/dist/chunk-MOPCE5RA.js.map +1 -0
- package/dist/chunk-MY2KMTUS.js +3 -0
- package/dist/chunk-MY2KMTUS.js.map +1 -0
- package/dist/chunk-NBX6FKCA.cjs +3 -0
- package/dist/chunk-NBX6FKCA.cjs.map +1 -0
- package/dist/chunk-NC27D5Y3.cjs +3 -0
- package/dist/chunk-NC27D5Y3.cjs.map +1 -0
- package/dist/chunk-NPSIDFOF.cjs +3 -0
- package/dist/chunk-NPSIDFOF.cjs.map +1 -0
- package/dist/chunk-QKM5LPRW.js +3 -0
- package/dist/chunk-QKM5LPRW.js.map +1 -0
- package/dist/chunk-SVWQWRPZ.js +3 -0
- package/dist/chunk-SVWQWRPZ.js.map +1 -0
- package/dist/chunk-UIEGBT4T.js +3 -0
- package/dist/chunk-UIEGBT4T.js.map +1 -0
- package/dist/chunk-VNDL67OG.cjs +3 -0
- package/dist/chunk-VNDL67OG.cjs.map +1 -0
- package/dist/chunk-WK6LNC2E.cjs +3 -0
- package/dist/chunk-WK6LNC2E.cjs.map +1 -0
- package/dist/{chunk-M5IBD3KV.js → chunk-WO3KCAN6.js} +2 -2
- package/dist/{chunk-M5IBD3KV.js.map → chunk-WO3KCAN6.js.map} +1 -1
- package/dist/{chunk-7W456HZL.js → chunk-XJJJEWSU.js} +2 -2
- package/dist/{chunk-7W456HZL.js.map → chunk-XJJJEWSU.js.map} +1 -1
- package/dist/chunk-XLZJ6HBL.js +3 -0
- package/dist/chunk-XLZJ6HBL.js.map +1 -0
- package/dist/chunk-XRVHMGMD.js +3 -0
- package/dist/chunk-XRVHMGMD.js.map +1 -0
- package/dist/components/core/alert.d.cts +1 -1
- package/dist/components/core/alert.d.ts +1 -1
- package/dist/components/core/badge.d.cts +1 -1
- package/dist/components/core/badge.d.ts +1 -1
- package/dist/components/core/breadcrumb.cjs +1 -1
- package/dist/components/core/breadcrumb.d.cts +8 -2
- package/dist/components/core/breadcrumb.d.ts +8 -2
- package/dist/components/core/breadcrumb.js +1 -1
- package/dist/components/core/button.d.cts +2 -2
- package/dist/components/core/button.d.ts +2 -2
- package/dist/components/core/calendar.cjs +1 -1
- package/dist/components/core/calendar.js +1 -1
- package/dist/components/core/charts-lazy.cjs +1 -1
- package/dist/components/core/charts-lazy.js +1 -1
- package/dist/components/core/charts.cjs +1 -1
- package/dist/components/core/charts.js +1 -1
- package/dist/components/core/checkbox.cjs +1 -1
- package/dist/components/core/checkbox.d.cts +1 -1
- package/dist/components/core/checkbox.d.ts +1 -1
- package/dist/components/core/checkbox.js +1 -1
- package/dist/components/core/data-table.cjs +1 -1
- package/dist/components/core/data-table.js +1 -1
- package/dist/components/core/dialog.cjs +1 -1
- package/dist/components/core/dialog.d.cts +21 -3
- package/dist/components/core/dialog.d.ts +21 -3
- package/dist/components/core/dialog.js +1 -1
- package/dist/components/core/error-message.d.cts +1 -1
- package/dist/components/core/error-message.d.ts +1 -1
- package/dist/components/core/helper-text.d.cts +1 -1
- package/dist/components/core/helper-text.d.ts +1 -1
- package/dist/components/core/icon.cjs +1 -1
- package/dist/components/core/icon.d.cts +3 -3
- package/dist/components/core/icon.d.ts +3 -3
- package/dist/components/core/icon.js +1 -1
- package/dist/components/core/input.d.cts +1 -1
- package/dist/components/core/input.d.ts +1 -1
- package/dist/components/core/label.d.cts +1 -1
- package/dist/components/core/label.d.ts +1 -1
- package/dist/components/core/pagination.d.cts +1 -1
- package/dist/components/core/pagination.d.ts +1 -1
- package/dist/components/core/progress.d.cts +3 -3
- package/dist/components/core/progress.d.ts +3 -3
- package/dist/components/core/radio-group.d.cts +1 -1
- package/dist/components/core/radio-group.d.ts +1 -1
- package/dist/components/core/select.d.cts +3 -3
- package/dist/components/core/select.d.ts +3 -3
- package/dist/components/core/separator.cjs +1 -1
- package/dist/components/core/separator.js +1 -1
- package/dist/components/core/skeleton.cjs +1 -1
- package/dist/components/core/skeleton.d.cts +1 -1
- package/dist/components/core/skeleton.d.ts +1 -1
- package/dist/components/core/skeleton.js +1 -1
- package/dist/components/core/switch.d.cts +1 -1
- package/dist/components/core/switch.d.ts +1 -1
- package/dist/components/core/table.cjs +1 -1
- package/dist/components/core/table.d.cts +11 -1
- package/dist/components/core/table.d.ts +11 -1
- package/dist/components/core/table.js +1 -1
- package/dist/components/core/textarea.d.cts +1 -1
- package/dist/components/core/textarea.d.ts +1 -1
- package/dist/components/core/toast.cjs +1 -1
- package/dist/components/core/toast.d.cts +2 -2
- package/dist/components/core/toast.d.ts +2 -2
- package/dist/components/core/toast.js +1 -1
- package/dist/components/core/tooltip.cjs +1 -1
- package/dist/components/core/tooltip.d.cts +2 -2
- package/dist/components/core/tooltip.d.ts +2 -2
- package/dist/components/core/tooltip.js +1 -1
- package/dist/components/marketing/features.d.cts +2 -2
- package/dist/components/marketing/features.d.ts +2 -2
- package/dist/components/marketing/gallery.d.cts +1 -1
- package/dist/components/marketing/gallery.d.ts +1 -1
- package/dist/components/marketing/pricing.d.cts +1 -1
- package/dist/components/marketing/pricing.d.ts +1 -1
- package/dist/components/marketing/testimonials.d.cts +1 -1
- package/dist/components/marketing/testimonials.d.ts +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/chunk-4PN7OGLX.cjs +0 -3
- package/dist/chunk-4PN7OGLX.cjs.map +0 -1
- package/dist/chunk-4TYVEXRA.cjs +0 -3
- package/dist/chunk-4TYVEXRA.cjs.map +0 -1
- package/dist/chunk-B2BWBKZA.cjs +0 -3
- package/dist/chunk-B2BWBKZA.cjs.map +0 -1
- package/dist/chunk-CVOSWGQZ.js +0 -3
- package/dist/chunk-CVOSWGQZ.js.map +0 -1
- package/dist/chunk-EGQ2Q37R.cjs +0 -3
- package/dist/chunk-EGQ2Q37R.cjs.map +0 -1
- package/dist/chunk-EIXD3Y4R.js +0 -3
- package/dist/chunk-EIXD3Y4R.js.map +0 -1
- package/dist/chunk-G5ZSOVJY.cjs +0 -3
- package/dist/chunk-G5ZSOVJY.cjs.map +0 -1
- package/dist/chunk-G6TR5RGR.js +0 -3
- package/dist/chunk-G6TR5RGR.js.map +0 -1
- package/dist/chunk-GUJB555L.js +0 -3
- package/dist/chunk-GUJB555L.js.map +0 -1
- package/dist/chunk-JZROH43C.js +0 -3
- package/dist/chunk-JZROH43C.js.map +0 -1
- package/dist/chunk-MRZOLUSF.js +0 -3
- package/dist/chunk-MRZOLUSF.js.map +0 -1
- package/dist/chunk-OZ3RIKZO.cjs +0 -3
- package/dist/chunk-OZ3RIKZO.cjs.map +0 -1
- package/dist/chunk-PEYPRWZP.js +0 -3
- package/dist/chunk-PEYPRWZP.js.map +0 -1
- package/dist/chunk-PVHTEE5T.cjs +0 -3
- package/dist/chunk-PVHTEE5T.cjs.map +0 -1
- package/dist/chunk-QF5CRDZI.js +0 -3
- package/dist/chunk-QF5CRDZI.js.map +0 -1
- package/dist/chunk-RPRISB7O.cjs +0 -3
- package/dist/chunk-RPRISB7O.cjs.map +0 -1
- package/dist/chunk-SD4IIQ2I.cjs +0 -3
- package/dist/chunk-SD4IIQ2I.cjs.map +0 -1
- package/dist/chunk-TJFZAMBB.js +0 -3
- package/dist/chunk-TJFZAMBB.js.map +0 -1
- package/dist/chunk-VXMDVKAD.js +0 -3
- package/dist/chunk-VXMDVKAD.js.map +0 -1
- package/dist/chunk-ZYP2PDSX.cjs +0 -3
- package/dist/chunk-ZYP2PDSX.cjs.map +0 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/themes/utils.ts","../src/themes/index.ts"],"names":["themes","applyTheme","theme","getCurrentTheme","toggleDarkMode","newScheme","setDarkMode","isDark","getColorScheme","prefersDarkMode","onSystemColorSchemeChange","callback","mediaQuery","handler","
|
|
1
|
+
{"version":3,"sources":["../src/themes/utils.ts","../src/themes/index.ts"],"names":["themes","applyTheme","theme","getCurrentTheme","toggleDarkMode","newScheme","setDarkMode","isDark","getColorScheme","prefersDarkMode","onSystemColorSchemeChange","callback","mediaQuery","handler","initializeTheme","defaultTheme","themeInfo"],"mappings":"qgEAIO,IAAMA,EAAAA,CAAoC,CAC/C,QAAA,CAAU,UAAA,CACV,MAAA,CAAQ,SACR,QAAA,CAAU,QAAA,CACV,MAAA,CAAQ,QACV,EAKO,SAASC,GAAWC,CAAAA,CAAwB,CAC7C,OAAO,QAAA,CAAa,GAAA,EACtB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAA,CAAcA,CAAK,EAE7D,CAKO,SAASC,EAAAA,EAAoC,CAClD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,IAAA,CAE9B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAY,CAElE,CAKO,SAASC,EAAAA,EAAuB,CACrC,GAAI,OAAO,QAAA,CAAa,GAAA,CAAa,OAGrC,IAAMC,CAAAA,CADgB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAAA,GAC3C,MAAA,CAAS,OAAA,CAAU,MAAA,CACvD,SAAS,eAAA,CAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAS,EACtE,CAKO,SAASC,EAAAA,CAAYC,CAAAA,CAAuB,CAC7C,OAAO,QAAA,CAAa,GAAA,EAExB,QAAA,CAAS,gBAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAAA,CAAS,MAAA,CAAS,OAAO,EACtF,CAKO,SAASC,EAAAA,EAA0C,CACxD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,KAE7B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAE1E,CAKO,SAASC,EAAAA,EAA2B,CACzC,OAAI,OAAO,MAAA,CAAW,GAAA,CAAoB,KAAA,CAEnC,OAAO,UAAA,CAAW,8BAA8B,CAAA,CAAE,OAC3D,CAKO,SAASC,EAAAA,CAA0BC,CAAAA,CAAiD,CACzF,GAAI,OAAO,MAAA,CAAW,GAAA,CAAa,OAAO,IAAM,CAAC,CAAA,CAEjD,IAAMC,CAAAA,CAAa,MAAA,CAAO,UAAA,CAAW,8BAA8B,CAAA,CAE7DC,CAAAA,CAAW,CAAA,EAA2B,CAC1CF,CAAAA,CAAS,CAAA,CAAE,OAAO,EACpB,CAAA,CAEA,OAAAC,CAAAA,CAAW,gBAAA,CAAiB,QAAA,CAAUC,CAAO,CAAA,CAGtC,IAAM,CACXD,CAAAA,CAAW,mBAAA,CAAoB,QAAA,CAAUC,CAAO,EAClD,CACF,CAKO,SAASC,EAAAA,CAAgBC,CAAAA,CAA0B,UAAA,CAAkB,CACtE,OAAO,QAAA,CAAa,GAAA,GAGnBZ,EAAAA,EAAgB,EACnBF,EAAAA,CAAWc,CAAY,CAAA,CAIpBP,IAAe,EAClBF,EAAAA,CAAYG,EAAAA,EAAiB,CAAA,EAEjC,CC9FO,IAAMO,EAAAA,CAAY,CACvB,QAAA,CAAU,CACR,IAAA,CAAM,UAAA,CACN,WAAA,CAAa,gEACb,MAAA,CAAQ,CACN,OAAA,CAAS,aAAA,CACT,SAAA,CAAW,WAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,IAAA,CAAM,QAAA,CACN,YAAa,6DAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,gBAAA,CACT,SAAA,CAAW,gBAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,QAAA,CAAU,CACR,IAAA,CAAM,SACN,WAAA,CAAa,sDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,kBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,KAAM,QAAA,CACN,WAAA,CAAa,yDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,oBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CACF","file":"index.cjs","sourcesContent":["// Theme utilities and helpers\n\nexport type ThemeName = 'nostromo' | 'mother' | 'lv-426' | 'sulaco';\n\nexport const themes: Record<ThemeName, string> = {\n nostromo: 'nostromo',\n mother: 'mother',\n 'lv-426': 'lv-426',\n sulaco: 'sulaco',\n} as const;\n\n/**\n * Apply a theme to the document\n */\nexport function applyTheme(theme: ThemeName): void {\n if (typeof document !== 'undefined') {\n document.documentElement.setAttribute('data-theme', theme);\n }\n}\n\n/**\n * Get the current theme from the document\n */\nexport function getCurrentTheme(): ThemeName | null {\n if (typeof document === 'undefined') return null;\n \n const theme = document.documentElement.getAttribute('data-theme');\n return theme as ThemeName | null;\n}\n\n/**\n * Toggle between light and dark mode\n */\nexport function toggleDarkMode(): void {\n if (typeof document === 'undefined') return;\n \n const currentScheme = document.documentElement.getAttribute('data-color-scheme');\n const newScheme = currentScheme === 'dark' ? 'light' : 'dark';\n document.documentElement.setAttribute('data-color-scheme', newScheme);\n}\n\n/**\n * Set dark mode\n */\nexport function setDarkMode(isDark: boolean): void {\n if (typeof document === 'undefined') return;\n \n document.documentElement.setAttribute('data-color-scheme', isDark ? 'dark' : 'light');\n}\n\n/**\n * Get current color scheme\n */\nexport function getColorScheme(): 'light' | 'dark' | null {\n if (typeof document === 'undefined') return null;\n \n const scheme = document.documentElement.getAttribute('data-color-scheme');\n return scheme as 'light' | 'dark' | null;\n}\n\n/**\n * Check if system prefers dark mode\n */\nexport function prefersDarkMode(): boolean {\n if (typeof window === 'undefined') return false;\n \n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n\n/**\n * Listen for system color scheme changes\n */\nexport function onSystemColorSchemeChange(callback: (isDark: boolean) => void): () => void {\n if (typeof window === 'undefined') return () => {};\n \n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n \n const handler = (e: MediaQueryListEvent) => {\n callback(e.matches);\n };\n \n mediaQuery.addEventListener('change', handler);\n \n // Return cleanup function\n return () => {\n mediaQuery.removeEventListener('change', handler);\n };\n}\n\n/**\n * Initialize theme system\n */\nexport function initializeTheme(defaultTheme: ThemeName = 'nostromo'): void {\n if (typeof document === 'undefined') return;\n \n // Set default theme if none is set\n if (!getCurrentTheme()) {\n applyTheme(defaultTheme);\n }\n \n // Set initial color scheme based on system preference\n if (!getColorScheme()) {\n setDarkMode(prefersDarkMode());\n }\n}\n","// Theme exports\nexport * from './utils';\n\n// Theme CSS imports (for bundlers that support CSS imports)\nimport './nostromo.css';\nimport './mother.css';\nimport './lv-426.css';\nimport './sulaco.css';\n\n// Theme names and descriptions\nexport const themeInfo = {\n nostromo: {\n name: 'Nostromo',\n description: 'Classic space industrial theme inspired by the USCSS Nostromo',\n colors: {\n primary: 'Purple/Blue',\n secondary: 'Dark Gray',\n accent: 'Green'\n }\n },\n mother: {\n name: 'Mother',\n description: 'Cold, clinical AI aesthetic inspired by the ship\\'s computer',\n colors: {\n primary: 'Cold Blue/Cyan',\n secondary: 'Clinical White',\n accent: 'Green'\n }\n },\n 'lv-426': {\n name: 'LV-426',\n description: 'Warm, rusty atmosphere inspired by the planet LV-426',\n colors: {\n primary: 'Warm Orange/Rust',\n secondary: 'Earth Tones',\n accent: 'Green'\n }\n },\n sulaco: {\n name: 'Sulaco',\n description: 'Modern, military-inspired aesthetic from the USS Sulaco',\n colors: {\n primary: 'Military Blue/Gray',\n secondary: 'Steel Tones',\n accent: 'Green'\n }\n }\n} as const;\n\nexport type ThemeInfo = typeof themeInfo;\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { Button, ButtonProps, buttonVariants } from './components/core/button.cjs';
|
|
2
2
|
export { Input, InputProps } from './components/core/input.cjs';
|
|
3
3
|
export { Checkbox, CheckboxProps, checkboxVariants } from './components/core/checkbox.cjs';
|
|
4
|
-
export { RadioGroup, RadioGroupProps, RadioItem, RadioItemProps, radioGroupVariants, radioItemVariants } from './components/core/radio-group.cjs';
|
|
4
|
+
export { RadioGroup, RadioItem as RadioGroupItem, RadioGroupProps, RadioItem, RadioItemProps, radioGroupVariants, radioItemVariants } from './components/core/radio-group.cjs';
|
|
5
5
|
export { Switch, SwitchProps, switchThumbVariants, switchVariants } from './components/core/switch.cjs';
|
|
6
6
|
export { Textarea, TextareaProps, textareaVariants } from './components/core/textarea.cjs';
|
|
7
7
|
export { Alert, AlertDescription, AlertProps, AlertTitle, alertCloseVariants, alertDescriptionVariants, alertTitleVariants, alertVariants } from './components/core/alert.cjs';
|
|
@@ -11,7 +11,7 @@ export { Separator, SeparatorProps, separatorVariants } from './components/core/
|
|
|
11
11
|
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './components/core/card.cjs';
|
|
12
12
|
export { Badge, BadgeProps, badgeVariants } from './components/core/badge.cjs';
|
|
13
13
|
export { Avatar, AvatarFallback, AvatarImage, AvatarProps, avatarVariants } from './components/core/avatar.cjs';
|
|
14
|
-
export { Dialog, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogHeader, DialogHeaderProps, DialogProps, DialogTitle, DialogTitleProps } from './components/core/dialog.cjs';
|
|
14
|
+
export { Dialog, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogHeader, DialogHeaderProps, DialogProps, DialogTitle, DialogTitleProps, DialogTrigger, DialogTriggerProps } from './components/core/dialog.cjs';
|
|
15
15
|
export { ErrorMessage, ErrorMessageProps, errorMessageVariants } from './components/core/error-message.cjs';
|
|
16
16
|
export { HelperText, HelperTextProps, helperTextVariants } from './components/core/helper-text.cjs';
|
|
17
17
|
export { Label, LabelProps, labelVariants } from './components/core/label.cjs';
|
|
@@ -24,7 +24,7 @@ export { ColumnFilter, DataTable, DataTableProps, FilterType } from './component
|
|
|
24
24
|
export { Calendar, CalendarMode, CalendarProps, calendarDayVariants, calendarVariants } from './components/core/calendar.cjs';
|
|
25
25
|
export { Chart, ChartDataPoint, ChartProps, ChartType, chartContainerVariants } from './components/core/charts.cjs';
|
|
26
26
|
export { LazyChart, LazyChartProps } from './components/core/charts-lazy.cjs';
|
|
27
|
-
export { Toast, ToastContextType, ToastProps, ToastProvider, toastIconVariants, toastVariants, useToastNotification } from './components/core/toast.cjs';
|
|
27
|
+
export { Toast, ToastContextType, ToastProps, ToastProvider, toastIconVariants, toastVariants, useToast, useToastNotification } from './components/core/toast.cjs';
|
|
28
28
|
export { Tooltip, TooltipContent, TooltipContentProps, TooltipProps, TooltipProvider, TooltipProviderProps, TooltipTrigger, TooltipTriggerProps, arrowVariants, tooltipVariants } from './components/core/tooltip.cjs';
|
|
29
29
|
export { Accordion, AccordionContent, AccordionContentProps, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, AccordionTriggerProps, accordionChevronVariants, accordionContentVariants, accordionItemVariants, accordionTriggerVariants, accordionVariants } from './components/core/accordion.cjs';
|
|
30
30
|
export { Skeleton, SkeletonAvatar, SkeletonAvatarProps, SkeletonButton, SkeletonButtonProps, SkeletonCard, SkeletonCardProps, SkeletonList, SkeletonProps, SkeletonTable, SkeletonText, SkeletonTextProps, skeletonVariants } from './components/core/skeleton.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { Button, ButtonProps, buttonVariants } from './components/core/button.js';
|
|
2
2
|
export { Input, InputProps } from './components/core/input.js';
|
|
3
3
|
export { Checkbox, CheckboxProps, checkboxVariants } from './components/core/checkbox.js';
|
|
4
|
-
export { RadioGroup, RadioGroupProps, RadioItem, RadioItemProps, radioGroupVariants, radioItemVariants } from './components/core/radio-group.js';
|
|
4
|
+
export { RadioGroup, RadioItem as RadioGroupItem, RadioGroupProps, RadioItem, RadioItemProps, radioGroupVariants, radioItemVariants } from './components/core/radio-group.js';
|
|
5
5
|
export { Switch, SwitchProps, switchThumbVariants, switchVariants } from './components/core/switch.js';
|
|
6
6
|
export { Textarea, TextareaProps, textareaVariants } from './components/core/textarea.js';
|
|
7
7
|
export { Alert, AlertDescription, AlertProps, AlertTitle, alertCloseVariants, alertDescriptionVariants, alertTitleVariants, alertVariants } from './components/core/alert.js';
|
|
@@ -11,7 +11,7 @@ export { Separator, SeparatorProps, separatorVariants } from './components/core/
|
|
|
11
11
|
export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './components/core/card.js';
|
|
12
12
|
export { Badge, BadgeProps, badgeVariants } from './components/core/badge.js';
|
|
13
13
|
export { Avatar, AvatarFallback, AvatarImage, AvatarProps, avatarVariants } from './components/core/avatar.js';
|
|
14
|
-
export { Dialog, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogHeader, DialogHeaderProps, DialogProps, DialogTitle, DialogTitleProps } from './components/core/dialog.js';
|
|
14
|
+
export { Dialog, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogHeader, DialogHeaderProps, DialogProps, DialogTitle, DialogTitleProps, DialogTrigger, DialogTriggerProps } from './components/core/dialog.js';
|
|
15
15
|
export { ErrorMessage, ErrorMessageProps, errorMessageVariants } from './components/core/error-message.js';
|
|
16
16
|
export { HelperText, HelperTextProps, helperTextVariants } from './components/core/helper-text.js';
|
|
17
17
|
export { Label, LabelProps, labelVariants } from './components/core/label.js';
|
|
@@ -24,7 +24,7 @@ export { ColumnFilter, DataTable, DataTableProps, FilterType } from './component
|
|
|
24
24
|
export { Calendar, CalendarMode, CalendarProps, calendarDayVariants, calendarVariants } from './components/core/calendar.js';
|
|
25
25
|
export { Chart, ChartDataPoint, ChartProps, ChartType, chartContainerVariants } from './components/core/charts.js';
|
|
26
26
|
export { LazyChart, LazyChartProps } from './components/core/charts-lazy.js';
|
|
27
|
-
export { Toast, ToastContextType, ToastProps, ToastProvider, toastIconVariants, toastVariants, useToastNotification } from './components/core/toast.js';
|
|
27
|
+
export { Toast, ToastContextType, ToastProps, ToastProvider, toastIconVariants, toastVariants, useToast, useToastNotification } from './components/core/toast.js';
|
|
28
28
|
export { Tooltip, TooltipContent, TooltipContentProps, TooltipProps, TooltipProvider, TooltipProviderProps, TooltipTrigger, TooltipTriggerProps, arrowVariants, tooltipVariants } from './components/core/tooltip.js';
|
|
29
29
|
export { Accordion, AccordionContent, AccordionContentProps, AccordionItem, AccordionItemProps, AccordionProps, AccordionTrigger, AccordionTriggerProps, accordionChevronVariants, accordionContentVariants, accordionItemVariants, accordionTriggerVariants, accordionVariants } from './components/core/accordion.js';
|
|
30
30
|
export { Skeleton, SkeletonAvatar, SkeletonAvatarProps, SkeletonButton, SkeletonButtonProps, SkeletonCard, SkeletonCardProps, SkeletonList, SkeletonProps, SkeletonTable, SkeletonText, SkeletonTextProps, skeletonVariants } from './components/core/skeleton.js';
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{e as Toast,d as ToastProvider,b as toastIconVariants,a as toastVariants,f as useToastNotification}from'./chunk-
|
|
2
|
+
export{e as Toast,d as ToastProvider,b as toastIconVariants,a as toastVariants,c as useToast,f as useToastNotification}from'./chunk-WO3KCAN6.js';export{f as Tooltip,d as TooltipContent,e as TooltipProvider,c as TooltipTrigger,b as arrowVariants,a as tooltipVariants}from'./chunk-MOPCE5RA.js';export{a as Features}from'./chunk-CEMOHO3Z.js';export{a as Gallery}from'./chunk-2JQROMCM.js';export{a as Hero}from'./chunk-JEHIMQQZ.js';export{a as LogoWall}from'./chunk-RC2THAIA.js';export{a as Pricing}from'./chunk-44HISN45.js';export{a as Testimonials}from'./chunk-LR4VUFOQ.js';export{c as RadioGroup,d as RadioGroupItem,d as RadioItem,a as radioGroupVariants,b as radioItemVariants}from'./chunk-WW2DDHCI.js';export{d as Select,h as SelectContent,e as SelectGroup,j as SelectItem,i as SelectLabel,k as SelectSeparator,g as SelectTrigger,f as SelectValue,b as selectContentVariants,c as selectItemVariants,a as selectTriggerVariants}from'./chunk-BZF3ZOAN.js';export{b as Separator,a as separatorVariants}from'./chunk-XRVHMGMD.js';export{c as Switch,b as switchThumbVariants,a as switchVariants}from'./chunk-OUWOPYAX.js';export{d as Tabs,g as TabsContent,e as TabsList,f as TabsTrigger,c as tabsContentVariants,a as tabsListVariants,b as tabsTriggerVariants}from'./chunk-ZEJAFIOC.js';export{b as Textarea,a as textareaVariants}from'./chunk-2HYJSYQX.js';export{b as ErrorMessage,a as errorMessageVariants}from'./chunk-XQUZ7DUN.js';export{b as HelperText,a as helperTextVariants}from'./chunk-ABA7B5DE.js';export{a as Icon,b as iconNames}from'./chunk-BL2TM4YT.js';export{b as Label,a as labelVariants}from'./chunk-LYVCB45L.js';export{c as Pagination,d as PaginationContent,i as PaginationEllipsis,e as PaginationItem,f as PaginationLink,h as PaginationNext,g as PaginationPrevious,b as paginationItemVariants,a as paginationVariants}from'./chunk-Q6QMSAJR.js';export{e as CircularProgress,d as Progress,b as progressBarVariants,c as progressLabelVariants,a as progressVariants}from'./chunk-NLD4R74T.js';export{c as Calendar,b as calendarDayVariants,a as calendarVariants}from'./chunk-35I2BJC3.js';export{b as Button,a as buttonVariants}from'./chunk-AVTJE2O2.js';export{g as Card,e as CardContent,d as CardDescription,f as CardFooter,b as CardHeader,c as CardTitle}from'./chunk-VD6S2PE4.js';export{a as LazyChart}from'./chunk-HRJXPCGF.js';export{b as Skeleton,d as SkeletonAvatar,e as SkeletonButton,f as SkeletonCard,h as SkeletonList,g as SkeletonTable,c as SkeletonText,a as skeletonVariants}from'./chunk-QKM5LPRW.js';export{b as Chart,a as chartContainerVariants}from'./chunk-XLZJ6HBL.js';export{b as Checkbox,a as checkboxVariants}from'./chunk-DNTPD3PJ.js';export{a as DataTable}from'./chunk-XJJJEWSU.js';export{d as Table,f as TableBody,h as TableCell,i as TableHead,e as TableHeader,g as TableRow,c as tableCellVariants,b as tableHeaderVariants,a as tableVariants}from'./chunk-UIEGBT4T.js';export{b as Input}from'./chunk-HD3TMQPR.js';export{c as Dialog,e as DialogContent,h as DialogDescription,f as DialogHeader,g as DialogTitle,d as DialogTrigger}from'./chunk-MY2KMTUS.js';export{a as LazyComponent,d as LazyInView,c as useLazyLoading,b as withLazyLoading}from'./chunk-QBAURT3I.js';export{a as ErrorBoundary,b as useErrorHandler}from'./chunk-MVCGR7JQ.js';export{d as performanceUtils,c as useMemoryMonitor,a as usePerformanceMonitor,b as withPerformanceMonitoring}from'./chunk-3BNGK67W.js';export{f as Accordion,i as AccordionContent,g as AccordionItem,h as AccordionTrigger,e as accordionChevronVariants,d as accordionContentVariants,b as accordionItemVariants,c as accordionTriggerVariants,a as accordionVariants}from'./chunk-6QAYHUNV.js';export{g as Alert,f as AlertDescription,e as AlertTitle,d as alertCloseVariants,c as alertDescriptionVariants,b as alertTitleVariants,a as alertVariants}from'./chunk-AHRTNKXE.js';export{d as Avatar,c as AvatarFallback,b as AvatarImage,a as avatarVariants}from'./chunk-YNSODGYK.js';export{b as Badge,a as badgeVariants}from'./chunk-UL6MF7ES.js';import'./chunk-COXN6XBA.js';export{d as Breadcrumb,j as BreadcrumbEllipsis,f as BreadcrumbItem,g as BreadcrumbLink,e as BreadcrumbList,h as BreadcrumbPage,i as BreadcrumbSeparator,b as breadcrumbItemVariants,c as breadcrumbSeparatorVariants,a as breadcrumbVariants}from'./chunk-SVWQWRPZ.js';export{a as cn}from'./chunk-AC2JBXHQ.js';var rt={nostromo:"nostromo",mother:"mother","lv-426":"lv-426",sulaco:"sulaco"};function jr(o){typeof document<"u"&&document.documentElement.setAttribute("data-theme",o);}function Yr(){return typeof document>"u"?null:document.documentElement.getAttribute("data-theme")}function tt(){if(typeof document>"u")return;let r=document.documentElement.getAttribute("data-color-scheme")==="dark"?"light":"dark";document.documentElement.setAttribute("data-color-scheme",r);}function Zr(o){typeof document>"u"||document.documentElement.setAttribute("data-color-scheme",o?"dark":"light");}function Qr(){return typeof document>"u"?null:document.documentElement.getAttribute("data-color-scheme")}function Jr(){return typeof window>"u"?false:window.matchMedia("(prefers-color-scheme: dark)").matches}function nt(o){if(typeof window>"u")return ()=>{};let r=window.matchMedia("(prefers-color-scheme: dark)"),t=e=>{o(e.matches);};return r.addEventListener("change",t),()=>{r.removeEventListener("change",t);}}function et(o="nostromo"){typeof document>"u"||(Yr()||jr(o),Qr()||Zr(Jr()));}var bt={nostromo:{name:"Nostromo",description:"Classic space industrial theme inspired by the USCSS Nostromo",colors:{primary:"Purple/Blue",secondary:"Dark Gray",accent:"Green"}},mother:{name:"Mother",description:"Cold, clinical AI aesthetic inspired by the ship's computer",colors:{primary:"Cold Blue/Cyan",secondary:"Clinical White",accent:"Green"}},"lv-426":{name:"LV-426",description:"Warm, rusty atmosphere inspired by the planet LV-426",colors:{primary:"Warm Orange/Rust",secondary:"Earth Tones",accent:"Green"}},sulaco:{name:"Sulaco",description:"Modern, military-inspired aesthetic from the USS Sulaco",colors:{primary:"Military Blue/Gray",secondary:"Steel Tones",accent:"Green"}}};export{jr as applyTheme,Qr as getColorScheme,Yr as getCurrentTheme,et as initializeTheme,nt as onSystemColorSchemeChange,Jr as prefersDarkMode,Zr as setDarkMode,bt as themeInfo,rt as themes,tt as toggleDarkMode};//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/themes/utils.ts","../src/themes/index.ts"],"names":["themes","applyTheme","theme","getCurrentTheme","toggleDarkMode","newScheme","setDarkMode","isDark","getColorScheme","prefersDarkMode","onSystemColorSchemeChange","callback","mediaQuery","handler","
|
|
1
|
+
{"version":3,"sources":["../src/themes/utils.ts","../src/themes/index.ts"],"names":["themes","applyTheme","theme","getCurrentTheme","toggleDarkMode","newScheme","setDarkMode","isDark","getColorScheme","prefersDarkMode","onSystemColorSchemeChange","callback","mediaQuery","handler","initializeTheme","defaultTheme","themeInfo"],"mappings":"ytIAIO,IAAMA,EAAAA,CAAoC,CAC/C,QAAA,CAAU,UAAA,CACV,MAAA,CAAQ,SACR,QAAA,CAAU,QAAA,CACV,MAAA,CAAQ,QACV,EAKO,SAASC,GAAWC,CAAAA,CAAwB,CAC7C,OAAO,QAAA,CAAa,GAAA,EACtB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAA,CAAcA,CAAK,EAE7D,CAKO,SAASC,EAAAA,EAAoC,CAClD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,IAAA,CAE9B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,YAAY,CAElE,CAKO,SAASC,EAAAA,EAAuB,CACrC,GAAI,OAAO,QAAA,CAAa,GAAA,CAAa,OAGrC,IAAMC,CAAAA,CADgB,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAAA,GAC3C,MAAA,CAAS,OAAA,CAAU,MAAA,CACvD,SAAS,eAAA,CAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAS,EACtE,CAKO,SAASC,EAAAA,CAAYC,CAAAA,CAAuB,CAC7C,OAAO,QAAA,CAAa,GAAA,EAExB,QAAA,CAAS,gBAAgB,YAAA,CAAa,mBAAA,CAAqBA,CAAAA,CAAS,MAAA,CAAS,OAAO,EACtF,CAKO,SAASC,EAAAA,EAA0C,CACxD,OAAI,OAAO,QAAA,CAAa,GAAA,CAAoB,KAE7B,QAAA,CAAS,eAAA,CAAgB,YAAA,CAAa,mBAAmB,CAE1E,CAKO,SAASC,EAAAA,EAA2B,CACzC,OAAI,OAAO,MAAA,CAAW,GAAA,CAAoB,KAAA,CAEnC,OAAO,UAAA,CAAW,8BAA8B,CAAA,CAAE,OAC3D,CAKO,SAASC,EAAAA,CAA0BC,CAAAA,CAAiD,CACzF,GAAI,OAAO,MAAA,CAAW,GAAA,CAAa,OAAO,IAAM,CAAC,CAAA,CAEjD,IAAMC,CAAAA,CAAa,MAAA,CAAO,UAAA,CAAW,8BAA8B,CAAA,CAE7DC,CAAAA,CAAW,CAAA,EAA2B,CAC1CF,CAAAA,CAAS,CAAA,CAAE,OAAO,EACpB,CAAA,CAEA,OAAAC,CAAAA,CAAW,gBAAA,CAAiB,QAAA,CAAUC,CAAO,CAAA,CAGtC,IAAM,CACXD,CAAAA,CAAW,mBAAA,CAAoB,QAAA,CAAUC,CAAO,EAClD,CACF,CAKO,SAASC,EAAAA,CAAgBC,CAAAA,CAA0B,UAAA,CAAkB,CACtE,OAAO,QAAA,CAAa,GAAA,GAGnBZ,EAAAA,EAAgB,EACnBF,EAAAA,CAAWc,CAAY,CAAA,CAIpBP,IAAe,EAClBF,EAAAA,CAAYG,EAAAA,EAAiB,CAAA,EAEjC,CC9FO,IAAMO,EAAAA,CAAY,CACvB,QAAA,CAAU,CACR,IAAA,CAAM,UAAA,CACN,WAAA,CAAa,gEACb,MAAA,CAAQ,CACN,OAAA,CAAS,aAAA,CACT,SAAA,CAAW,WAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,IAAA,CAAM,QAAA,CACN,YAAa,6DAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,gBAAA,CACT,SAAA,CAAW,gBAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,QAAA,CAAU,CACR,IAAA,CAAM,SACN,WAAA,CAAa,sDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,kBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CAAA,CACA,MAAA,CAAQ,CACN,KAAM,QAAA,CACN,WAAA,CAAa,yDAAA,CACb,MAAA,CAAQ,CACN,OAAA,CAAS,oBAAA,CACT,SAAA,CAAW,aAAA,CACX,MAAA,CAAQ,OACV,CACF,CACF","file":"index.js","sourcesContent":["// Theme utilities and helpers\n\nexport type ThemeName = 'nostromo' | 'mother' | 'lv-426' | 'sulaco';\n\nexport const themes: Record<ThemeName, string> = {\n nostromo: 'nostromo',\n mother: 'mother',\n 'lv-426': 'lv-426',\n sulaco: 'sulaco',\n} as const;\n\n/**\n * Apply a theme to the document\n */\nexport function applyTheme(theme: ThemeName): void {\n if (typeof document !== 'undefined') {\n document.documentElement.setAttribute('data-theme', theme);\n }\n}\n\n/**\n * Get the current theme from the document\n */\nexport function getCurrentTheme(): ThemeName | null {\n if (typeof document === 'undefined') return null;\n \n const theme = document.documentElement.getAttribute('data-theme');\n return theme as ThemeName | null;\n}\n\n/**\n * Toggle between light and dark mode\n */\nexport function toggleDarkMode(): void {\n if (typeof document === 'undefined') return;\n \n const currentScheme = document.documentElement.getAttribute('data-color-scheme');\n const newScheme = currentScheme === 'dark' ? 'light' : 'dark';\n document.documentElement.setAttribute('data-color-scheme', newScheme);\n}\n\n/**\n * Set dark mode\n */\nexport function setDarkMode(isDark: boolean): void {\n if (typeof document === 'undefined') return;\n \n document.documentElement.setAttribute('data-color-scheme', isDark ? 'dark' : 'light');\n}\n\n/**\n * Get current color scheme\n */\nexport function getColorScheme(): 'light' | 'dark' | null {\n if (typeof document === 'undefined') return null;\n \n const scheme = document.documentElement.getAttribute('data-color-scheme');\n return scheme as 'light' | 'dark' | null;\n}\n\n/**\n * Check if system prefers dark mode\n */\nexport function prefersDarkMode(): boolean {\n if (typeof window === 'undefined') return false;\n \n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n}\n\n/**\n * Listen for system color scheme changes\n */\nexport function onSystemColorSchemeChange(callback: (isDark: boolean) => void): () => void {\n if (typeof window === 'undefined') return () => {};\n \n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n \n const handler = (e: MediaQueryListEvent) => {\n callback(e.matches);\n };\n \n mediaQuery.addEventListener('change', handler);\n \n // Return cleanup function\n return () => {\n mediaQuery.removeEventListener('change', handler);\n };\n}\n\n/**\n * Initialize theme system\n */\nexport function initializeTheme(defaultTheme: ThemeName = 'nostromo'): void {\n if (typeof document === 'undefined') return;\n \n // Set default theme if none is set\n if (!getCurrentTheme()) {\n applyTheme(defaultTheme);\n }\n \n // Set initial color scheme based on system preference\n if (!getColorScheme()) {\n setDarkMode(prefersDarkMode());\n }\n}\n","// Theme exports\nexport * from './utils';\n\n// Theme CSS imports (for bundlers that support CSS imports)\nimport './nostromo.css';\nimport './mother.css';\nimport './lv-426.css';\nimport './sulaco.css';\n\n// Theme names and descriptions\nexport const themeInfo = {\n nostromo: {\n name: 'Nostromo',\n description: 'Classic space industrial theme inspired by the USCSS Nostromo',\n colors: {\n primary: 'Purple/Blue',\n secondary: 'Dark Gray',\n accent: 'Green'\n }\n },\n mother: {\n name: 'Mother',\n description: 'Cold, clinical AI aesthetic inspired by the ship\\'s computer',\n colors: {\n primary: 'Cold Blue/Cyan',\n secondary: 'Clinical White',\n accent: 'Green'\n }\n },\n 'lv-426': {\n name: 'LV-426',\n description: 'Warm, rusty atmosphere inspired by the planet LV-426',\n colors: {\n primary: 'Warm Orange/Rust',\n secondary: 'Earth Tones',\n accent: 'Green'\n }\n },\n sulaco: {\n name: 'Sulaco',\n description: 'Modern, military-inspired aesthetic from the USS Sulaco',\n colors: {\n primary: 'Military Blue/Gray',\n secondary: 'Steel Tones',\n accent: 'Green'\n }\n }\n} as const;\n\nexport type ThemeInfo = typeof themeInfo;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jarllyng/nostromo",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "Accessible React component library with CSS-first Tailwind v4 theming",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -285,7 +285,7 @@
|
|
|
285
285
|
"@testing-library/react": "^16.3.2",
|
|
286
286
|
"@testing-library/user-event": "^14.6.1",
|
|
287
287
|
"@types/jest-axe": "^3.5.9",
|
|
288
|
-
"@types/node": "
|
|
288
|
+
"@types/node": "26.2.0",
|
|
289
289
|
"@types/react": "19.2.18",
|
|
290
290
|
"@types/react-dom": "19.2.4",
|
|
291
291
|
"@typescript-eslint/eslint-plugin": "^8.65.0",
|
package/dist/chunk-4PN7OGLX.cjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';var chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),e=require('react'),classVarianceAuthority=require('class-variance-authority'),phosphorReact=require('phosphor-react');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);var v=classVarianceAuthority.cva("flex items-center space-x-1 text-sm text-muted-foreground",{variants:{variant:{default:"text-muted-foreground",compact:"text-xs"},separator:{default:"",slash:"",arrow:"",dot:""}},defaultVariants:{variant:"default",separator:"default"}}),H=classVarianceAuthority.cva("flex items-center",{variants:{variant:{default:"",current:"text-foreground font-medium",link:"hover:text-foreground transition-colors"}},defaultVariants:{variant:"default"}}),b=classVarianceAuthority.cva("flex-shrink-0 text-muted-foreground",{variants:{variant:{default:"mx-1",compact:"mx-0.5"}},defaultVariants:{variant:"default"}}),y=e__namespace.forwardRef(({className:a,variant:r,separator:t="default",items:c,showHome:u=false,homeHref:h="/",onItemClick:f,...x},g)=>{let p=()=>{switch(t){case "slash":return "/";case "arrow":return "\u2192";case "dot":return "\u2022";default:return e__namespace.createElement(phosphorReact.CaretRight,{className:"h-4 w-4"})}},N=(n,o)=>{f&&f(n,o);},L=(n,o,i)=>{let l=n.current||i,m=e__namespace.createElement("span",{className:chunkITRGJNWL_cjs.a(H({variant:l?"current":n.href?"link":"default"}))},n.label);return n.href&&!l?e__namespace.createElement("a",{href:n.href,className:"hover:text-foreground transition-colors",onClick:()=>N(n,o)},m):n.href&&l?e__namespace.createElement("a",{href:n.href,"aria-current":"page","aria-disabled":"true",tabIndex:-1,className:"hover:text-foreground transition-colors pointer-events-none"},m):e__namespace.createElement("span",{"aria-current":l?"page":void 0,className:l?"text-foreground font-medium":""},m)};return e__namespace.createElement("nav",{ref:g,"aria-label":"Breadcrumb",className:chunkITRGJNWL_cjs.a(v({variant:r,separator:t}),a),...x},e__namespace.createElement("ol",{className:"flex items-center space-x-1"},u&&e__namespace.createElement(e__namespace.Fragment,null,e__namespace.createElement("li",null,e__namespace.createElement("a",{href:h,className:"hover:text-foreground transition-colors","aria-label":"Home"},e__namespace.createElement(phosphorReact.House,{className:"h-4 w-4"}))),e__namespace.createElement("li",null,e__namespace.createElement("span",{role:"presentation","aria-hidden":"true",className:chunkITRGJNWL_cjs.a(b({variant:r}))},p()))),c.map((n,o)=>{let i=o===c.length-1;return e__namespace.createElement("li",{key:o,className:"flex items-center"},L(n,o,i),!i&&e__namespace.createElement("span",{role:"presentation","aria-hidden":"true",className:chunkITRGJNWL_cjs.a(b({variant:r}))},p()))})))});y.displayName="Breadcrumb";var E=e__namespace.forwardRef(({className:a,...r},t)=>e__namespace.createElement("ol",{ref:t,className:chunkITRGJNWL_cjs.a("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",a),...r}));E.displayName="BreadcrumbList";var M=e__namespace.forwardRef(({className:a,...r},t)=>e__namespace.createElement("li",{ref:t,className:chunkITRGJNWL_cjs.a("inline-flex items-center gap-1.5",a),...r}));M.displayName="BreadcrumbItem";var w=e__namespace.forwardRef(({asChild:a,className:r,...t},c)=>e__namespace.createElement(a?e__namespace.Fragment:"a",{ref:c,className:chunkITRGJNWL_cjs.a("transition-colors hover:text-foreground",r),...t}));w.displayName="BreadcrumbLink";var T=e__namespace.forwardRef(({className:a,...r},t)=>e__namespace.createElement("span",{ref:t,role:"link","aria-disabled":"true","aria-current":"page",className:chunkITRGJNWL_cjs.a("font-normal text-foreground",a),...r}));T.displayName="BreadcrumbPage";var k=({children:a,className:r,...t})=>e__namespace.createElement("li",{role:"presentation","aria-hidden":"true",className:chunkITRGJNWL_cjs.a("[&>svg]:size-3.5",r),...t},a);k.displayName="BreadcrumbSeparator";var C=({className:a,...r})=>e__namespace.createElement("span",{role:"presentation","aria-hidden":"true",className:chunkITRGJNWL_cjs.a("flex h-9 w-9 items-center justify-center",a),...r},e__namespace.createElement("span",{className:"sr-only"},"More"),e__namespace.createElement("span",null,"\u22EF"));C.displayName="BreadcrumbEllipsis";exports.a=v;exports.b=H;exports.c=b;exports.d=y;exports.e=E;exports.f=M;exports.g=w;exports.h=T;exports.i=k;exports.j=C;//# sourceMappingURL=chunk-4PN7OGLX.cjs.map
|
|
3
|
-
//# sourceMappingURL=chunk-4PN7OGLX.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/breadcrumb.tsx"],"names":["breadcrumbVariants","cva","breadcrumbItemVariants","breadcrumbSeparatorVariants","Breadcrumb","e","className","variant","separator","items","showHome","homeHref","onItemClick","props","ref","getSeparator","CaretRight","handleItemClick","item","index","renderItem","isLast","isCurrent","itemContent","cn","House","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","asChild","BreadcrumbPage","BreadcrumbSeparator","children","BreadcrumbEllipsis"],"mappings":"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","file":"chunk-4PN7OGLX.cjs","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { CaretRight, House } from \"phosphor-react\";\n\nconst breadcrumbVariants = cva(\n \"flex items-center space-x-1 text-sm text-muted-foreground\",\n {\n variants: {\n variant: {\n default: \"text-muted-foreground\",\n compact: \"text-xs\",\n },\n separator: {\n default: \"\",\n slash: \"\",\n arrow: \"\",\n dot: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n separator: \"default\",\n },\n }\n);\n\nconst breadcrumbItemVariants = cva(\n \"flex items-center\",\n {\n variants: {\n variant: {\n default: \"\",\n current: \"text-foreground font-medium\",\n link: \"hover:text-foreground transition-colors\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst breadcrumbSeparatorVariants = cva(\n \"flex-shrink-0 text-muted-foreground\",\n {\n variants: {\n variant: {\n default: \"mx-1\",\n compact: \"mx-0.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface BreadcrumbEntry {\n label: string;\n href?: string;\n current?: boolean;\n}\n\nexport interface BreadcrumbProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof breadcrumbVariants> {\n items: BreadcrumbEntry[];\n separator?: \"default\" | \"slash\" | \"arrow\" | \"dot\";\n showHome?: boolean;\n homeHref?: string;\n onItemClick?: (item: BreadcrumbEntry, index: number) => void;\n}\n\nconst Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n (\n {\n className,\n variant,\n separator = \"default\",\n items,\n showHome = false,\n homeHref = \"/\",\n onItemClick,\n ...props\n },\n ref\n ) => {\n const getSeparator = () => {\n switch (separator) {\n case \"slash\":\n return \"/\";\n case \"arrow\":\n return \"→\";\n case \"dot\":\n return \"•\";\n default:\n return <CaretRight className=\"h-4 w-4\" />;\n }\n };\n\n const handleItemClick = (item: BreadcrumbEntry, index: number) => {\n if (onItemClick) {\n onItemClick(item, index);\n }\n };\n\n const renderItem = (item: BreadcrumbEntry, index: number, isLast: boolean) => {\n const isCurrent = item.current || isLast;\n const itemContent = (\n <span\n className={cn(\n breadcrumbItemVariants({\n variant: isCurrent ? \"current\" : item.href ? \"link\" : \"default\",\n })\n )}\n >\n {item.label}\n </span>\n );\n\n if (item.href && !isCurrent) {\n return (\n <a\n href={item.href}\n className=\"hover:text-foreground transition-colors\"\n onClick={() => handleItemClick(item, index)}\n >\n {itemContent}\n </a>\n );\n }\n\n if (item.href && isCurrent) {\n return (\n <a\n href={item.href}\n aria-current=\"page\"\n aria-disabled=\"true\"\n tabIndex={-1}\n className=\"hover:text-foreground transition-colors pointer-events-none\"\n >\n {itemContent}\n </a>\n );\n }\n\n return (\n <span\n aria-current={isCurrent ? \"page\" : undefined}\n className={isCurrent ? \"text-foreground font-medium\" : \"\"}\n >\n {itemContent}\n </span>\n );\n };\n\n return (\n <nav\n ref={ref}\n aria-label=\"Breadcrumb\"\n className={cn(breadcrumbVariants({ variant, separator }), className)}\n {...props}\n >\n <ol className=\"flex items-center space-x-1\">\n {showHome && (\n <>\n <li>\n <a\n href={homeHref}\n className=\"hover:text-foreground transition-colors\"\n aria-label=\"Home\"\n >\n <House className=\"h-4 w-4\" />\n </a>\n </li>\n <li>\n <span role=\"presentation\" aria-hidden=\"true\" className={cn(breadcrumbSeparatorVariants({ variant }))}>\n {getSeparator()}\n </span>\n </li>\n </>\n )}\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n return (\n <li key={index} className=\"flex items-center\">\n {renderItem(item, index, isLast)}\n {!isLast && (\n <span role=\"presentation\" aria-hidden=\"true\" className={cn(breadcrumbSeparatorVariants({ variant }))}>\n {getSeparator()}\n </span>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n }\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\n// Individual components for more flexibility\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.HTMLAttributes<HTMLOListElement>\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\", className)}\n {...props}\n />\n));\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.HTMLAttributes<HTMLLIElement>\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.AnchorHTMLAttributes<HTMLAnchorElement> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? React.Fragment : \"a\";\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <span className=\"sr-only\">More</span>\n <span>⋯</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n breadcrumbVariants,\n breadcrumbItemVariants,\n breadcrumbSeparatorVariants,\n};\n"]}
|
package/dist/chunk-4TYVEXRA.cjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';var chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),r=require('react'),classVarianceAuthority=require('class-variance-authority'),phosphorReact=require('phosphor-react');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var r__default=/*#__PURE__*/_interopDefault(r);var n={house:phosphorReact.House,user:phosphorReact.User,settings:phosphorReact.Gear,search:phosphorReact.MagnifyingGlass,menu:phosphorReact.List,x:phosphorReact.X,"chevron-left":phosphorReact.CaretLeft,"chevron-right":phosphorReact.CaretRight,"chevron-up":phosphorReact.CaretUp,"chevron-down":phosphorReact.CaretDown,"arrow-left":phosphorReact.ArrowLeft,"arrow-right":phosphorReact.ArrowRight,"arrow-up":phosphorReact.ArrowUp,"arrow-down":phosphorReact.ArrowDown,plus:phosphorReact.Plus,minus:phosphorReact.Minus,check:phosphorReact.Check,"x-icon":phosphorReact.X,trash:phosphorReact.Trash,edit:phosphorReact.PencilSimple,copy:phosphorReact.Copy,download:phosphorReact.Download,upload:phosphorReact.Upload,share:phosphorReact.Share,heart:phosphorReact.Heart,star:phosphorReact.Star,bookmark:phosphorReact.Bookmark,mail:phosphorReact.Envelope,phone:phosphorReact.Phone,"message-circle":phosphorReact.ChatCircle,bell:phosphorReact.Bell,"bell-slash":phosphorReact.BellSlash,play:phosphorReact.Play,pause:phosphorReact.Pause,stop:phosphorReact.Stop,"volume-high":phosphorReact.SpeakerHigh,"volume-low":phosphorReact.SpeakerLow,"volume-x":phosphorReact.SpeakerX,camera:phosphorReact.Camera,image:phosphorReact.Image,video:phosphorReact.VideoCamera,file:phosphorReact.File,folder:phosphorReact.Folder,"folder-open":phosphorReact.FolderOpen,"file-text":phosphorReact.FileText,"file-pdf":phosphorReact.FilePdf,"file-image":phosphorReact.FileImage,"check-circle":phosphorReact.CheckCircle,"x-circle":phosphorReact.XCircle,warning:phosphorReact.Warning,info:phosphorReact.Info,question:phosphorReact.Question,clock:phosphorReact.Clock,calendar:phosphorReact.Calendar,timer:phosphorReact.Timer,lock:phosphorReact.Lock,"lock-open":phosphorReact.LockOpen,eye:phosphorReact.Eye,"eye-slash":phosphorReact.EyeSlash,shield:phosphorReact.Shield,"shield-check":phosphorReact.ShieldCheck,wifi:phosphorReact.WifiHigh,"wifi-slash":phosphorReact.WifiX,"battery-warning":phosphorReact.BatteryWarning,cpu:phosphorReact.Cpu,"hard-drive":phosphorReact.HardDrive,sun:phosphorReact.Sun,moon:phosphorReact.Moon,cloud:phosphorReact.Cloud,"cloud-rain":phosphorReact.CloudRain,"cloud-snow":phosphorReact.CloudSnow,"cloud-lightning":phosphorReact.CloudLightning,github:phosphorReact.GithubLogo,twitter:phosphorReact.TwitterLogo,facebook:phosphorReact.FacebookLogo,instagram:phosphorReact.InstagramLogo,linkedin:phosphorReact.LinkedinLogo,youtube:phosphorReact.YoutubeLogo,"shopping-cart":phosphorReact.ShoppingCart,"shopping-bag":phosphorReact.ShoppingBag,"credit-card":phosphorReact.CreditCard,money:phosphorReact.Money,"heart-icon":phosphorReact.Heart,activity:phosphorReact.Activity,car:phosphorReact.Car,bus:phosphorReact.Bus,train:phosphorReact.Train,plane:phosphorReact.Airplane,ship:phosphorReact.Boat,bicycle:phosphorReact.Bicycle,coffee:phosphorReact.Coffee,pizza:phosphorReact.Pizza,hamburger:phosphorReact.Hamburger,basketball:phosphorReact.Basketball,football:phosphorReact.Football,soccer:phosphorReact.SoccerBall,tennis:phosphorReact.TennisBall,"music-note":phosphorReact.MusicNote,"play-circle":phosphorReact.PlayCircle,"pause-circle":phosphorReact.PauseCircle,"stop-circle":phosphorReact.StopCircle,book:phosphorReact.Book,"book-open":phosphorReact.BookOpen,"graduation-cap":phosphorReact.GraduationCap,lightbulb:phosphorReact.Lightbulb,briefcase:phosphorReact.Briefcase,building:phosphorReact.Buildings,"chart-line":phosphorReact.ChartLine,"chart-bar":phosphorReact.ChartBar,"chart-pie":phosphorReact.ChartPie,wrench:phosphorReact.Wrench,"paint-brush":phosphorReact.PaintBrush,tree:phosphorReact.Tree,flower:phosphorReact.Flower,leaf:phosphorReact.Leaf,mountain:phosphorReact.Mountains,rocket:phosphorReact.Rocket,planet:phosphorReact.Planet,"star-icon":phosphorReact.Star,"moon-icon":phosphorReact.Moon,"game-controller":phosphorReact.GameController,puzzle:phosphorReact.PuzzlePiece,gift:phosphorReact.Gift,key:phosphorReact.Key,"map-pin":phosphorReact.MapPin,compass:phosphorReact.Compass,flag:phosphorReact.Flag,trophy:phosphorReact.Trophy,medal:phosphorReact.Medal,crown:phosphorReact.Crown,sparkle:phosphorReact.Sparkle,zap:phosphorReact.Lightning,fire:phosphorReact.Fire,snowflake:phosphorReact.Snowflake,umbrella:phosphorReact.Umbrella,anchor:phosphorReact.Anchor,bug:phosphorReact.Bug,butterfly:phosphorReact.Butterfly,cat:phosphorReact.Cat,dog:phosphorReact.Dog,fish:phosphorReact.Fish,bird:phosphorReact.Bird,"paw-print":phosphorReact.PawPrint,alien:phosphorReact.Alien,spaceship:phosphorReact.Rocket,atom:phosphorReact.Atom,flask:phosphorReact.Flask,"test-tube":phosphorReact.TestTube,syringe:phosphorReact.Syringe,pill:phosphorReact.Pill,skull:phosphorReact.Skull,ghost:phosphorReact.Ghost,scroll:phosphorReact.Scroll,"bookmark-icon":phosphorReact.Bookmark,"compass-icon":phosphorReact.Compass,"flag-icon":phosphorReact.Flag,"trophy-icon":phosphorReact.Trophy,"medal-icon":phosphorReact.Medal,"crown-icon":phosphorReact.Crown,"sparkle-icon":phosphorReact.Sparkle,"zap-icon":phosphorReact.Lightning,"fire-icon":phosphorReact.Fire,"snowflake-icon":phosphorReact.Snowflake,"umbrella-icon":phosphorReact.Umbrella,"anchor-icon":phosphorReact.Anchor,"bug-icon":phosphorReact.Bug,"butterfly-icon":phosphorReact.Butterfly,"cat-icon":phosphorReact.Cat,"dog-icon":phosphorReact.Dog,"fish-icon":phosphorReact.Fish,"bird-icon":phosphorReact.Bird,"paw-print-icon":phosphorReact.PawPrint},Sa=classVarianceAuthority.cva("",{variants:{size:{xs:"w-3 h-3",sm:"w-4 h-4",md:"w-5 h-5",lg:"w-6 h-6",xl:"w-8 h-8","2xl":"w-10 h-10","3xl":"w-12 h-12"},weight:{thin:"",light:"",regular:"",bold:"",fill:"",duotone:""},color:{current:"text-current",primary:"text-blue-600",secondary:"text-gray-600",success:"text-green-600",warning:"text-yellow-600",error:"text-red-600",muted:"text-gray-400"}},defaultVariants:{size:"md",weight:"regular",color:"current"}}),Ba=r__default.default.forwardRef(({name:i,size:t,weight:e,color:l,className:c,...s},p)=>{let o=n[i];return o?r__default.default.createElement(o,{ref:p,weight:e,className:chunkITRGJNWL_cjs.a(Sa({size:t,weight:e,color:l}),c),...s}):null});Ba.displayName="Icon";var Ma=Object.keys(n);exports.a=Ba;exports.b=Ma;//# sourceMappingURL=chunk-4TYVEXRA.cjs.map
|
|
3
|
-
//# sourceMappingURL=chunk-4TYVEXRA.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/icon.tsx"],"names":["iconMap","House","User","Gear","MagnifyingGlass","List","X","CaretLeft","CaretRight","CaretUp","CaretDown","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Plus","Minus","Check","XIcon","Trash","PencilSimple","Copy","Download","Upload","Share","Heart","Star","Bookmark","Envelope","Phone","ChatCircle","Bell","BellSlash","Play","Pause","Stop","SpeakerHigh","SpeakerLow","SpeakerX","Camera","Image","VideoCamera","File","Folder","FolderOpen","FileText","FilePdf","FileImage","CheckCircle","XCircle","Warning","Info","Question","Clock","Calendar","Timer","Lock","LockOpen","Eye","EyeSlash","Shield","ShieldCheck","WifiHigh","WifiX","BatteryWarning","Cpu","HardDrive","Sun","Moon","Cloud","CloudRain","CloudSnow","CloudLightning","GithubLogo","TwitterLogo","FacebookLogo","InstagramLogo","LinkedinLogo","YoutubeLogo","ShoppingCart","ShoppingBag","CreditCard","Money","HeartIcon","Activity","Car","Bus","Train","Airplane","Boat","Bicycle","Coffee","Pizza","Hamburger","Basketball","Football","SoccerBall","TennisBall","MusicNote","PlayCircle","PauseCircle","StopCircle","Book","BookOpen","GraduationCap","Lightbulb","Briefcase","Buildings","ChartLine","ChartBar","ChartPie","Wrench","PaintBrush","Tree","Flower","Leaf","Mountains","Rocket","Planet","StarIcon","MoonIcon","GameController","PuzzlePiece","Gift","Key","MapPin","Compass","Flag","Trophy","Medal","Crown","Sparkle","Lightning","Fire","Snowflake","Umbrella","Anchor","Bug","Butterfly","Cat","Dog","Fish","Bird","PawPrint","Alien","Spaceship","Atom","Flask","TestTube","Syringe","Pill","Skull","Ghost","Scroll","BookmarkIcon","CompassIcon","FlagIcon","TrophyIcon","MedalIcon","CrownIcon","SparkleIcon","ZapIcon","FireIcon","SnowflakeIcon","UmbrellaIcon","AnchorIcon","BugIcon","ButterflyIcon","CatIcon","DogIcon","FishIcon","BirdIcon","PawPrintIcon","iconVariants","cva","Icon","React","name","size","weight","color","className","props","ref","IconComponent","cn","iconNames"],"mappings":"6SAsOMA,CAAAA,CAA6C,CAEjD,MAAOC,mBAAAA,CACP,IAAA,CAAMC,kBAAAA,CACN,QAAA,CAAUC,kBAAAA,CACV,MAAA,CAAQC,8BACR,IAAA,CAAMC,kBAAAA,CACN,EAAGC,eAAAA,CACH,cAAA,CAAgBC,wBAChB,eAAA,CAAiBC,wBAAAA,CACjB,YAAA,CAAcC,qBAAAA,CACd,cAAA,CAAgBC,uBAAAA,CAChB,aAAcC,uBAAAA,CACd,aAAA,CAAeC,yBACf,UAAA,CAAYC,qBAAAA,CACZ,aAAcC,uBAAAA,CAGd,IAAA,CAAMC,kBAAAA,CACN,KAAA,CAAOC,mBAAAA,CACP,KAAA,CAAOC,oBACP,QAAA,CAAUC,eAAAA,CACV,MAAOC,mBAAAA,CACP,IAAA,CAAMC,2BACN,IAAA,CAAMC,kBAAAA,CACN,QAAA,CAAUC,sBAAAA,CACV,MAAA,CAAQC,oBAAAA,CACR,MAAOC,mBAAAA,CACP,KAAA,CAAOC,oBACP,IAAA,CAAMC,kBAAAA,CACN,SAAUC,sBAAAA,CAGV,IAAA,CAAMC,sBAAAA,CACN,KAAA,CAAOC,mBAAAA,CACP,gBAAA,CAAkBC,yBAClB,IAAA,CAAMC,kBAAAA,CACN,aAAcC,uBAAAA,CAGd,IAAA,CAAMC,mBACN,KAAA,CAAOC,mBAAAA,CACP,IAAA,CAAMC,kBAAAA,CACN,aAAA,CAAeC,yBAAAA,CACf,aAAcC,wBAAAA,CACd,UAAA,CAAYC,uBACZ,MAAA,CAAQC,oBAAAA,CACR,MAAOC,mBAAAA,CACP,KAAA,CAAOC,yBAAAA,CAGP,IAAA,CAAMC,kBAAAA,CACN,MAAA,CAAQC,qBACR,aAAA,CAAeC,wBAAAA,CACf,YAAaC,sBAAAA,CACb,UAAA,CAAYC,sBACZ,YAAA,CAAcC,uBAAAA,CAGd,cAAA,CAAgBC,yBAAAA,CAChB,UAAA,CAAYC,qBAAAA,CACZ,QAASC,qBAAAA,CACT,IAAA,CAAMC,mBACN,QAAA,CAAUC,sBAAAA,CAGV,MAAOC,mBAAAA,CACP,QAAA,CAAUC,sBAAAA,CACV,KAAA,CAAOC,mBAAAA,CAGP,IAAA,CAAMC,mBACN,WAAA,CAAaC,sBAAAA,CACb,IAAKC,iBAAAA,CACL,WAAA,CAAaC,uBACb,MAAA,CAAQC,oBAAAA,CACR,cAAA,CAAgBC,yBAAAA,CAGhB,IAAA,CAAMC,sBAAAA,CACN,aAAcC,mBAAAA,CACd,iBAAA,CAAmBC,6BACnB,GAAA,CAAKC,iBAAAA,CACL,aAAcC,uBAAAA,CAGd,GAAA,CAAKC,iBAAAA,CACL,IAAA,CAAMC,kBAAAA,CACN,KAAA,CAAOC,oBACP,YAAA,CAAcC,uBAAAA,CACd,aAAcC,uBAAAA,CACd,iBAAA,CAAmBC,6BAGnB,MAAA,CAAQC,wBAAAA,CACR,OAAA,CAASC,yBAAAA,CACT,QAAA,CAAUC,0BAAAA,CACV,UAAWC,2BAAAA,CACX,QAAA,CAAUC,2BACV,OAAA,CAASC,yBAAAA,CAGT,gBAAiBC,0BAAAA,CACjB,cAAA,CAAgBC,yBAAAA,CAChB,aAAA,CAAeC,wBAAAA,CACf,KAAA,CAAOC,oBAGP,YAAA,CAAcC,mBAAAA,CACd,SAAUC,sBAAAA,CAGV,GAAA,CAAKC,kBACL,GAAA,CAAKC,iBAAAA,CACL,KAAA,CAAOC,mBAAAA,CACP,KAAA,CAAOC,sBAAAA,CACP,KAAMC,kBAAAA,CACN,OAAA,CAASC,sBAGT,MAAA,CAAQC,oBAAAA,CACR,MAAOC,mBAAAA,CACP,SAAA,CAAWC,uBAAAA,CAGX,UAAA,CAAYC,wBAAAA,CACZ,QAAA,CAAUC,uBACV,MAAA,CAAQC,wBAAAA,CACR,OAAQC,wBAAAA,CAGR,YAAA,CAAcC,wBACd,aAAA,CAAeC,wBAAAA,CACf,cAAA,CAAgBC,yBAAAA,CAChB,aAAA,CAAeC,wBAAAA,CAGf,KAAMC,kBAAAA,CACN,WAAA,CAAaC,uBACb,gBAAA,CAAkBC,2BAAAA,CAClB,UAAWC,uBAAAA,CAGX,SAAA,CAAWC,uBAAAA,CACX,QAAA,CAAUC,uBAAAA,CACV,YAAA,CAAcC,wBACd,WAAA,CAAaC,sBAAAA,CACb,YAAaC,sBAAAA,CAGb,MAAA,CAAQC,qBACR,aAAA,CAAeC,wBAAAA,CAGf,IAAA,CAAMC,kBAAAA,CACN,MAAA,CAAQC,oBAAAA,CACR,KAAMC,kBAAAA,CACN,QAAA,CAAUC,wBAGV,MAAA,CAAQC,oBAAAA,CACR,OAAQC,oBAAAA,CACR,WAAA,CAAaC,kBAAAA,CACb,WAAA,CAAaC,kBAAAA,CAGb,iBAAA,CAAmBC,6BACnB,MAAA,CAAQC,yBAAAA,CAGR,KAAMC,kBAAAA,CACN,GAAA,CAAKC,kBACL,SAAA,CAAWC,oBAAAA,CACX,OAAA,CAASC,qBAAAA,CACT,IAAA,CAAMC,kBAAAA,CACN,OAAQC,oBAAAA,CACR,KAAA,CAAOC,oBACP,KAAA,CAAOC,mBAAAA,CACP,QAASC,qBAAAA,CACT,GAAA,CAAKC,uBAAAA,CACL,IAAA,CAAMC,kBAAAA,CACN,SAAA,CAAWC,wBACX,QAAA,CAAUC,sBAAAA,CACV,OAAQC,oBAAAA,CACR,GAAA,CAAKC,kBACL,SAAA,CAAWC,uBAAAA,CACX,GAAA,CAAKC,iBAAAA,CACL,GAAA,CAAKC,iBAAAA,CACL,KAAMC,kBAAAA,CACN,IAAA,CAAMC,mBACN,WAAA,CAAaC,sBAAAA,CAGb,MAAOC,mBAAAA,CACP,SAAA,CAAWC,oBAAAA,CACX,IAAA,CAAMC,kBAAAA,CACN,KAAA,CAAOC,oBACP,WAAA,CAAaC,sBAAAA,CACb,QAASC,qBAAAA,CACT,IAAA,CAAMC,mBACN,KAAA,CAAOC,mBAAAA,CACP,KAAA,CAAOC,mBAAAA,CACP,MAAA,CAAQC,oBAAAA,CACR,gBAAiBC,sBAAAA,CACjB,cAAA,CAAgBC,sBAChB,WAAA,CAAaC,kBAAAA,CACb,cAAeC,oBAAAA,CACf,YAAA,CAAcC,mBAAAA,CACd,YAAA,CAAcC,mBAAAA,CACd,cAAA,CAAgBC,sBAChB,UAAA,CAAYC,uBAAAA,CACZ,YAAaC,kBAAAA,CACb,gBAAA,CAAkBC,wBAClB,eAAA,CAAiBC,sBAAAA,CACjB,aAAA,CAAeC,oBAAAA,CACf,UAAA,CAAYC,iBAAAA,CACZ,iBAAkBC,uBAAAA,CAClB,UAAA,CAAYC,kBACZ,UAAA,CAAYC,iBAAAA,CACZ,YAAaC,kBAAAA,CACb,WAAA,CAAaC,kBAAAA,CACb,gBAAA,CAAkBC,sBACpB,CAAA,CAIMC,GAAeC,0BAAAA,CAAI,EAAA,CAAI,CAC3B,QAAA,CAAU,CACR,KAAM,CACJ,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,UACJ,EAAA,CAAI,SAAA,CACJ,GAAI,SAAA,CACJ,KAAA,CAAO,YACP,KAAA,CAAO,WACT,CAAA,CACA,MAAA,CAAQ,CACN,IAAA,CAAM,GACN,KAAA,CAAO,EAAA,CACP,QAAS,EAAA,CACT,IAAA,CAAM,GACN,IAAA,CAAM,EAAA,CACN,OAAA,CAAS,EACX,CAAA,CACA,KAAA,CAAO,CACL,OAAA,CAAS,cAAA,CACT,QAAS,eAAA,CACT,SAAA,CAAW,gBACX,OAAA,CAAS,gBAAA,CACT,OAAA,CAAS,iBAAA,CACT,KAAA,CAAO,cAAA,CACP,MAAO,eACT,CACF,EACA,eAAA,CAAiB,CACf,KAAM,IAAA,CACN,MAAA,CAAQ,SAAA,CACR,KAAA,CAAO,SACT,CACF,CAAC,CAAA,CASYC,EAAAA,CAAOC,mBAAM,UAAA,CACxB,CAAC,CAAE,IAAA,CAAAC,CAAAA,CAAM,IAAA,CAAAC,CAAAA,CAAM,MAAA,CAAAC,CAAAA,CAAQ,MAAAC,CAAAA,CAAO,SAAA,CAAAC,EAAW,GAAGC,CAAM,EAAGC,CAAAA,GAAQ,CAC3D,IAAMC,CAAAA,CAAgBxL,CAAAA,CAAQiL,CAAI,EAElC,OAAKO,CAAAA,CAMHR,mBAAA,aAAA,CAACQ,CAAAA,CAAA,CACC,GAAA,CAAKD,CAAAA,CACL,MAAA,CAAQJ,CAAAA,CACR,SAAA,CAAWM,mBAAAA,CAAGZ,GAAa,CAAE,IAAA,CAAAK,EAAM,MAAA,CAAAC,CAAAA,CAAQ,MAAAC,CAAM,CAAC,CAAA,CAAGC,CAAS,CAAA,CAC7D,GAAGC,EACN,CAAA,CATO,IAWX,CACF,EAEAP,EAAAA,CAAK,WAAA,CAAc,OAGZ,IAAMW,EAAAA,CAAY,MAAA,CAAO,IAAA,CAAK1L,CAAO","file":"chunk-4TYVEXRA.cjs","sourcesContent":["import React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\n// Import commonly used Phosphor icons\nimport {\n // Navigation\n House,\n User,\n Gear,\n MagnifyingGlass,\n List,\n X,\n CaretLeft,\n CaretRight,\n CaretUp,\n CaretDown,\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n ArrowDown,\n \n // Actions\n Plus,\n Minus,\n Check,\n X as XIcon,\n Trash,\n PencilSimple,\n Copy,\n Download,\n Upload,\n Share,\n Heart,\n Star,\n Bookmark,\n \n // Communication\n Envelope,\n Phone,\n ChatCircle,\n Bell,\n BellSlash,\n \n // Media\n Play,\n Pause,\n Stop,\n SpeakerHigh,\n SpeakerLow,\n SpeakerX,\n Camera,\n Image,\n VideoCamera,\n \n // Files\n File,\n Folder,\n FolderOpen,\n FileText,\n FilePdf,\n FileImage,\n \n // Status\n CheckCircle,\n XCircle,\n Warning,\n Info,\n Question,\n \n // Time\n Clock,\n Calendar,\n Timer,\n \n // Security\n Lock,\n LockOpen,\n Eye,\n EyeSlash,\n Shield,\n ShieldCheck,\n \n // Technology\n WifiHigh,\n WifiX,\n BatteryWarning,\n Cpu,\n HardDrive,\n \n // Weather\n Sun,\n Moon,\n Cloud,\n CloudRain,\n CloudSnow,\n CloudLightning,\n \n // Social\n GithubLogo,\n TwitterLogo,\n FacebookLogo,\n InstagramLogo,\n LinkedinLogo,\n YoutubeLogo,\n \n // Shopping\n ShoppingCart,\n ShoppingBag,\n CreditCard,\n Money,\n \n // Health\n Heart as HeartIcon,\n Activity,\n \n // Transportation\n Car,\n Bus,\n Train,\n Airplane,\n Boat,\n Bicycle,\n \n // Food\n Coffee,\n Pizza,\n Hamburger,\n \n // Sports\n Basketball,\n Football,\n SoccerBall,\n TennisBall,\n \n // Music\n MusicNote,\n PlayCircle,\n PauseCircle,\n StopCircle,\n \n // Education\n Book,\n BookOpen,\n GraduationCap,\n Lightbulb,\n \n // Business\n Briefcase,\n Buildings,\n ChartLine,\n ChartBar,\n ChartPie,\n \n // Tools\n Wrench,\n PaintBrush,\n \n // Nature\n Tree,\n Flower,\n Leaf,\n Mountains,\n \n // Space\n Rocket,\n Planet,\n Star as StarIcon,\n Moon as MoonIcon,\n \n // Gaming\n GameController,\n PuzzlePiece,\n \n // Miscellaneous\n Gift,\n Key,\n MapPin,\n Compass,\n Flag,\n Trophy,\n Medal,\n Crown,\n Sparkle,\n Lightning,\n Fire,\n Snowflake,\n Umbrella,\n Anchor,\n Bug,\n Butterfly,\n Cat,\n Dog,\n Fish,\n Bird,\n PawPrint,\n \n // Nostromo themed\n Alien,\n Rocket as Spaceship,\n Atom,\n Flask,\n TestTube,\n Syringe,\n Pill,\n Skull,\n Ghost,\n Scroll,\n Bookmark as BookmarkIcon,\n Compass as CompassIcon,\n Flag as FlagIcon,\n Trophy as TrophyIcon,\n Medal as MedalIcon,\n Crown as CrownIcon,\n Sparkle as SparkleIcon,\n Lightning as ZapIcon,\n Fire as FireIcon,\n Snowflake as SnowflakeIcon,\n Umbrella as UmbrellaIcon,\n Anchor as AnchorIcon,\n Bug as BugIcon,\n Butterfly as ButterflyIcon,\n Cat as CatIcon,\n Dog as DogIcon,\n Fish as FishIcon,\n Bird as BirdIcon,\n PawPrint as PawPrintIcon,\n} from 'phosphor-react';\n\n// Create a mapping of icon names to components\nconst iconMap: Record<string, React.ElementType> = {\n // Navigation\n house: House,\n user: User,\n settings: Gear,\n search: MagnifyingGlass,\n menu: List,\n x: X,\n 'chevron-left': CaretLeft,\n 'chevron-right': CaretRight,\n 'chevron-up': CaretUp,\n 'chevron-down': CaretDown,\n 'arrow-left': ArrowLeft,\n 'arrow-right': ArrowRight,\n 'arrow-up': ArrowUp,\n 'arrow-down': ArrowDown,\n \n // Actions\n plus: Plus,\n minus: Minus,\n check: Check,\n 'x-icon': XIcon,\n trash: Trash,\n edit: PencilSimple,\n copy: Copy,\n download: Download,\n upload: Upload,\n share: Share,\n heart: Heart,\n star: Star,\n bookmark: Bookmark,\n \n // Communication\n mail: Envelope,\n phone: Phone,\n 'message-circle': ChatCircle,\n bell: Bell,\n 'bell-slash': BellSlash,\n \n // Media\n play: Play,\n pause: Pause,\n stop: Stop,\n 'volume-high': SpeakerHigh,\n 'volume-low': SpeakerLow,\n 'volume-x': SpeakerX,\n camera: Camera,\n image: Image,\n video: VideoCamera,\n \n // Files\n file: File,\n folder: Folder,\n 'folder-open': FolderOpen,\n 'file-text': FileText,\n 'file-pdf': FilePdf,\n 'file-image': FileImage,\n \n // Status\n 'check-circle': CheckCircle,\n 'x-circle': XCircle,\n warning: Warning,\n info: Info,\n question: Question,\n \n // Time\n clock: Clock,\n calendar: Calendar,\n timer: Timer,\n \n // Security\n lock: Lock,\n 'lock-open': LockOpen,\n eye: Eye,\n 'eye-slash': EyeSlash,\n shield: Shield,\n 'shield-check': ShieldCheck,\n \n // Technology\n wifi: WifiHigh,\n 'wifi-slash': WifiX,\n 'battery-warning': BatteryWarning,\n cpu: Cpu,\n 'hard-drive': HardDrive,\n \n // Weather\n sun: Sun,\n moon: Moon,\n cloud: Cloud,\n 'cloud-rain': CloudRain,\n 'cloud-snow': CloudSnow,\n 'cloud-lightning': CloudLightning,\n \n // Social\n github: GithubLogo,\n twitter: TwitterLogo,\n facebook: FacebookLogo,\n instagram: InstagramLogo,\n linkedin: LinkedinLogo,\n youtube: YoutubeLogo,\n \n // Shopping\n 'shopping-cart': ShoppingCart,\n 'shopping-bag': ShoppingBag,\n 'credit-card': CreditCard,\n money: Money,\n \n // Health\n 'heart-icon': HeartIcon,\n activity: Activity,\n \n // Transportation\n car: Car,\n bus: Bus,\n train: Train,\n plane: Airplane,\n ship: Boat,\n bicycle: Bicycle,\n \n // Food\n coffee: Coffee,\n pizza: Pizza,\n hamburger: Hamburger,\n \n // Sports\n basketball: Basketball,\n football: Football,\n soccer: SoccerBall,\n tennis: TennisBall,\n \n // Music\n 'music-note': MusicNote,\n 'play-circle': PlayCircle,\n 'pause-circle': PauseCircle,\n 'stop-circle': StopCircle,\n \n // Education\n book: Book,\n 'book-open': BookOpen,\n 'graduation-cap': GraduationCap,\n lightbulb: Lightbulb,\n \n // Business\n briefcase: Briefcase,\n building: Buildings,\n 'chart-line': ChartLine,\n 'chart-bar': ChartBar,\n 'chart-pie': ChartPie,\n \n // Tools\n wrench: Wrench,\n 'paint-brush': PaintBrush,\n \n // Nature\n tree: Tree,\n flower: Flower,\n leaf: Leaf,\n mountain: Mountains,\n \n // Space\n rocket: Rocket,\n planet: Planet,\n 'star-icon': StarIcon,\n 'moon-icon': MoonIcon,\n \n // Gaming\n 'game-controller': GameController,\n puzzle: PuzzlePiece,\n \n // Miscellaneous\n gift: Gift,\n key: Key,\n 'map-pin': MapPin,\n compass: Compass,\n flag: Flag,\n trophy: Trophy,\n medal: Medal,\n crown: Crown,\n sparkle: Sparkle,\n zap: Lightning,\n fire: Fire,\n snowflake: Snowflake,\n umbrella: Umbrella,\n anchor: Anchor,\n bug: Bug,\n butterfly: Butterfly,\n cat: Cat,\n dog: Dog,\n fish: Fish,\n bird: Bird,\n 'paw-print': PawPrint,\n \n // Nostromo themed\n alien: Alien,\n spaceship: Spaceship,\n atom: Atom,\n flask: Flask,\n 'test-tube': TestTube,\n syringe: Syringe,\n pill: Pill,\n skull: Skull,\n ghost: Ghost,\n scroll: Scroll,\n 'bookmark-icon': BookmarkIcon,\n 'compass-icon': CompassIcon,\n 'flag-icon': FlagIcon,\n 'trophy-icon': TrophyIcon,\n 'medal-icon': MedalIcon,\n 'crown-icon': CrownIcon,\n 'sparkle-icon': SparkleIcon,\n 'zap-icon': ZapIcon,\n 'fire-icon': FireIcon,\n 'snowflake-icon': SnowflakeIcon,\n 'umbrella-icon': UmbrellaIcon,\n 'anchor-icon': AnchorIcon,\n 'bug-icon': BugIcon,\n 'butterfly-icon': ButterflyIcon,\n 'cat-icon': CatIcon,\n 'dog-icon': DogIcon,\n 'fish-icon': FishIcon,\n 'bird-icon': BirdIcon,\n 'paw-print-icon': PawPrintIcon,\n} as const;\n\nexport type IconName = keyof typeof iconMap;\n\nconst iconVariants = cva('', {\n variants: {\n size: {\n xs: 'w-3 h-3',\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n xl: 'w-8 h-8',\n '2xl': 'w-10 h-10',\n '3xl': 'w-12 h-12',\n },\n weight: {\n thin: '',\n light: '',\n regular: '',\n bold: '',\n fill: '',\n duotone: '',\n },\n color: {\n current: 'text-current',\n primary: 'text-blue-600',\n secondary: 'text-gray-600',\n success: 'text-green-600',\n warning: 'text-yellow-600',\n error: 'text-red-600',\n muted: 'text-gray-400',\n },\n },\n defaultVariants: {\n size: 'md',\n weight: 'regular',\n color: 'current',\n },\n});\n\nexport interface IconProps\n extends Omit<React.HTMLAttributes<SVGSVGElement>, 'color'>,\n VariantProps<typeof iconVariants> {\n name: IconName;\n className?: string;\n}\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ name, size, weight, color, className, ...props }, ref) => {\n const IconComponent = iconMap[name];\n \n if (!IconComponent) {\n console.warn(`Icon \"${name}\" not found in iconMap`);\n return null;\n }\n\n return (\n <IconComponent\n ref={ref}\n weight={weight as 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone'}\n className={cn(iconVariants({ size, weight, color }), className)}\n {...props}\n />\n );\n }\n);\n\nIcon.displayName = 'Icon';\n\n// Export icon names for TypeScript autocomplete\nexport const iconNames = Object.keys(iconMap) as IconName[];\n\n// Note: For additional icons, import directly from 'phosphor-react' to avoid bundling unused icons\n// Example: import { CustomIcon } from 'phosphor-react'\n"]}
|
package/dist/chunk-B2BWBKZA.cjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';var chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),a=require('react'),classVarianceAuthority=require('class-variance-authority');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var a__namespace=/*#__PURE__*/_interopNamespace(a);var d=classVarianceAuthority.cva("shrink-0 bg-border",{variants:{orientation:{horizontal:"h-[1px] w-full",vertical:"h-full w-[1px]"},variant:{default:"bg-border",muted:"bg-muted",subtle:"bg-muted/50"},size:{default:"",sm:"h-px",lg:"h-0.5"}},defaultVariants:{orientation:"horizontal",variant:"default",size:"default"}}),f=a__namespace.forwardRef(({className:o,orientation:t="horizontal",variant:i="default",size:n="default",decorative:r=true,...l},s)=>a__namespace.createElement("div",{ref:s,role:r?"none":"separator",...r?{}:{"aria-orientation":t||void 0},className:chunkITRGJNWL_cjs.a(d({orientation:t,variant:i,size:n}),o),...l}));f.displayName="Separator";exports.a=d;exports.b=f;//# sourceMappingURL=chunk-B2BWBKZA.cjs.map
|
|
3
|
-
//# sourceMappingURL=chunk-B2BWBKZA.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/separator.tsx"],"names":["separatorVariants","cva","Separator","a","className","orientation","variant","size","decorative","props","ref","cn"],"mappings":"ufAIA,IAAMA,CAAAA,CAAoBC,0BAAAA,CACxB,oBAAA,CACA,CACE,QAAA,CAAU,CACR,WAAA,CAAa,CACX,UAAA,CAAY,gBAAA,CACZ,QAAA,CAAU,gBACZ,EACA,OAAA,CAAS,CACP,OAAA,CAAS,WAAA,CACT,KAAA,CAAO,UAAA,CACP,OAAQ,aACV,CAAA,CACA,IAAA,CAAM,CACJ,OAAA,CAAS,EAAA,CACT,GAAI,MAAA,CACJ,EAAA,CAAI,OACN,CACF,CAAA,CACA,eAAA,CAAiB,CACf,WAAA,CAAa,YAAA,CACb,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,CAAA,CASMC,CAAAA,CAAkBC,YAAA,CAAA,UAAA,CACtB,CACE,CACE,UAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CAAc,YAAA,CACd,OAAA,CAAAC,CAAAA,CAAU,UACV,IAAA,CAAAC,CAAAA,CAAO,SAAA,CACP,UAAA,CAAAC,CAAAA,CAAa,IAAA,CACb,GAAGC,CACL,CAAA,CACAC,CAAAA,GAGEP,YAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKO,EACL,IAAA,CAAMF,CAAAA,CAAa,MAAA,CAAS,WAAA,CAC3B,GAAIA,CAAAA,CAAa,EAAC,CAAI,CAAE,kBAAA,CAAoBH,CAAAA,EAAe,MAAU,CAAA,CACtE,UAAWM,mBAAAA,CAAGX,CAAAA,CAAkB,CAAE,WAAA,CAAAK,CAAAA,CAAa,OAAA,CAAAC,EAAS,IAAA,CAAAC,CAAK,CAAC,CAAA,CAAGH,CAAS,CAAA,CACzE,GAAGK,CAAAA,CACN,CAGN,EACAP,CAAAA,CAAU,WAAA,CAAc,WAAA","file":"chunk-B2BWBKZA.cjs","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst separatorVariants = cva(\n \"shrink-0 bg-border\",\n {\n variants: {\n orientation: {\n horizontal: \"h-[1px] w-full\",\n vertical: \"h-full w-[1px]\",\n },\n variant: {\n default: \"bg-border\",\n muted: \"bg-muted\",\n subtle: \"bg-muted/50\",\n },\n size: {\n default: \"\",\n sm: \"h-px\",\n lg: \"h-0.5\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nexport interface SeparatorProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"aria-orientation\">,\n VariantProps<typeof separatorVariants> {\n decorative?: boolean;\n \"aria-orientation\"?: \"horizontal\" | \"vertical\";\n}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n (\n {\n className,\n orientation = \"horizontal\",\n variant = \"default\",\n size = \"default\",\n decorative = true,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n role={decorative ? \"none\" : \"separator\"}\n {...(decorative ? {} : { \"aria-orientation\": orientation || undefined })}\n className={cn(separatorVariants({ orientation, variant, size }), className)}\n {...props}\n />\n );\n }\n);\nSeparator.displayName = \"Separator\";\n\nexport { Separator, separatorVariants };\n"]}
|
package/dist/chunk-CVOSWGQZ.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import {a as a$1}from'./chunk-AC2JBXHQ.js';import*as a from'react';import {cva}from'class-variance-authority';var d=cva("shrink-0 bg-border",{variants:{orientation:{horizontal:"h-[1px] w-full",vertical:"h-full w-[1px]"},variant:{default:"bg-border",muted:"bg-muted",subtle:"bg-muted/50"},size:{default:"",sm:"h-px",lg:"h-0.5"}},defaultVariants:{orientation:"horizontal",variant:"default",size:"default"}}),f=a.forwardRef(({className:o,orientation:t="horizontal",variant:i="default",size:n="default",decorative:r=true,...l},s)=>a.createElement("div",{ref:s,role:r?"none":"separator",...r?{}:{"aria-orientation":t||void 0},className:a$1(d({orientation:t,variant:i,size:n}),o),...l}));f.displayName="Separator";export{d as a,f as b};//# sourceMappingURL=chunk-CVOSWGQZ.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-CVOSWGQZ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/separator.tsx"],"names":["separatorVariants","cva","Separator","className","orientation","variant","size","decorative","props","ref","cn"],"mappings":"8GAIA,IAAMA,CAAAA,CAAoBC,GAAAA,CACxB,oBAAA,CACA,CACE,QAAA,CAAU,CACR,WAAA,CAAa,CACX,UAAA,CAAY,gBAAA,CACZ,QAAA,CAAU,gBACZ,EACA,OAAA,CAAS,CACP,OAAA,CAAS,WAAA,CACT,KAAA,CAAO,UAAA,CACP,OAAQ,aACV,CAAA,CACA,IAAA,CAAM,CACJ,OAAA,CAAS,EAAA,CACT,GAAI,MAAA,CACJ,EAAA,CAAI,OACN,CACF,CAAA,CACA,eAAA,CAAiB,CACf,WAAA,CAAa,YAAA,CACb,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,SACR,CACF,CACF,CAAA,CASMC,CAAAA,CAAkB,CAAA,CAAA,UAAA,CACtB,CACE,CACE,UAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CAAc,YAAA,CACd,OAAA,CAAAC,CAAAA,CAAU,UACV,IAAA,CAAAC,CAAAA,CAAO,SAAA,CACP,UAAA,CAAAC,CAAAA,CAAa,IAAA,CACb,GAAGC,CACL,CAAA,CACAC,CAAAA,GAGE,CAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKA,EACL,IAAA,CAAMF,CAAAA,CAAa,MAAA,CAAS,WAAA,CAC3B,GAAIA,CAAAA,CAAa,EAAC,CAAI,CAAE,kBAAA,CAAoBH,CAAAA,EAAe,MAAU,CAAA,CACtE,UAAWM,GAAAA,CAAGV,CAAAA,CAAkB,CAAE,WAAA,CAAAI,CAAAA,CAAa,OAAA,CAAAC,EAAS,IAAA,CAAAC,CAAK,CAAC,CAAA,CAAGH,CAAS,CAAA,CACzE,GAAGK,CAAAA,CACN,CAGN,EACAN,CAAAA,CAAU,WAAA,CAAc,WAAA","file":"chunk-CVOSWGQZ.js","sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst separatorVariants = cva(\n \"shrink-0 bg-border\",\n {\n variants: {\n orientation: {\n horizontal: \"h-[1px] w-full\",\n vertical: \"h-full w-[1px]\",\n },\n variant: {\n default: \"bg-border\",\n muted: \"bg-muted\",\n subtle: \"bg-muted/50\",\n },\n size: {\n default: \"\",\n sm: \"h-px\",\n lg: \"h-0.5\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nexport interface SeparatorProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"aria-orientation\">,\n VariantProps<typeof separatorVariants> {\n decorative?: boolean;\n \"aria-orientation\"?: \"horizontal\" | \"vertical\";\n}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n (\n {\n className,\n orientation = \"horizontal\",\n variant = \"default\",\n size = \"default\",\n decorative = true,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n role={decorative ? \"none\" : \"separator\"}\n {...(decorative ? {} : { \"aria-orientation\": orientation || undefined })}\n className={cn(separatorVariants({ orientation, variant, size }), className)}\n {...props}\n />\n );\n }\n);\nSeparator.displayName = \"Separator\";\n\nexport { Separator, separatorVariants };\n"]}
|
package/dist/chunk-EGQ2Q37R.cjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';var chunk5PVFLXPO_cjs=require('./chunk-5PVFLXPO.cjs'),chunkITRGJNWL_cjs=require('./chunk-ITRGJNWL.cjs'),a=require('react'),v=require('@radix-ui/react-popover'),classVarianceAuthority=require('class-variance-authority'),dateFns=require('date-fns');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var a__default=/*#__PURE__*/_interopDefault(a);var v__namespace=/*#__PURE__*/_interopNamespace(v);var ye=classVarianceAuthority.cva("inline-block rounded-lg border bg-background shadow-lg",{variants:{variant:{default:"border-border bg-card",outline:"border-2 border-border",ghost:"border-transparent bg-transparent shadow-none"},size:{sm:"p-2",md:"p-3",lg:"p-4"}},defaultVariants:{variant:"default",size:"md"}}),we=classVarianceAuthority.cva("flex items-center justify-center rounded-md font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"hover:bg-muted text-foreground",selected:"bg-primary text-primary-foreground hover:bg-primary/90 font-semibold",range:"bg-primary/10 text-primary hover:bg-primary/20 font-medium",today:"border-2 border-primary text-foreground font-semibold",outside:"text-muted-foreground",disabled:"text-muted-foreground/50 cursor-not-allowed"},size:{sm:"h-7 w-7 text-xs",md:"h-9 w-9 text-sm",lg:"h-11 w-11 text-base"}},defaultVariants:{variant:"default",size:"md"}}),W=n=>dateFns.getDaysInMonth(n),xe=(n,o)=>{let s=dateFns.getDay(dateFns.startOfMonth(n));return o===1?s===0?6:s-1:s},h=(n,o)=>!n||!o?false:dateFns.isSameDay(n,o),Ce=(n,o,s)=>!o&&!s?false:o&&s?dateFns.isWithinInterval(dateFns.startOfDay(n),{start:dateFns.startOfDay(o),end:dateFns.endOfDay(s)}):o?!dateFns.isBefore(dateFns.startOfDay(n),dateFns.startOfDay(o)):s?!dateFns.isAfter(dateFns.startOfDay(n),dateFns.endOfDay(s)):false,_=(n,o,s,V,N)=>!!(o&&dateFns.isBefore(dateFns.startOfDay(n),dateFns.startOfDay(o))||s&&dateFns.isAfter(dateFns.startOfDay(n),dateFns.endOfDay(s))||V?.some(Y=>h(Y,n))||N?.includes(dateFns.getDay(n))),C=(n,o="en-US")=>n?dateFns.format(n,"MMM d, yyyy"):"",ke=(n,o,s="en-US")=>!n&&!o?"":n&&o?`${C(n,s)} - ${C(o,s)}`:n?C(n,s):o?C(o,s):"",Fe=(n,o="en-US")=>n.length===0?"":n.length===1?C(n[0],o):`${n.length} dates selected`,Ne=a__default.default.forwardRef(({mode:n="single",value:o,defaultValue:s,onChange:V,minDate:N,maxDate:Y,disabledDates:A,disabledDays:H,locale:y="en-US",placeholder:X,label:I,error:L,helperText:U,className:Z,inputClassName:R,calendarClassName:ee,variant:te,size:K,showOutsideDays:k=true,firstDayOfWeek:P=1,...ne},re)=>{let[F,w]=a.useState(false),[i,D]=a.useState(new Date),[p,m]=a.useState(null),ae=a.useRef(null),$=a.useRef(new Map),[oe,se]=a.useState(s),j=o!==void 0,l=j?o:oe;a__default.default.useLayoutEffect(()=>{if(F&&!p){let e=new Date;e.setHours(0,0,0,0),m(e);}},[F,p]);let x=e=>{j||se(e),V?.(e);},z=e=>{if(!_(e,N,Y,A,H)){if(n==="single")x(e),w(false);else if(n==="range"){let r=l;if(!r?.from||r.from&&r.to)x({from:e});else {let t=r.from,d=e;d<t?x({from:d,to:t}):x({from:t,to:d}),w(false);}}else if(n==="multiple"){let r=l||[],t=r.findIndex(d=>h(d,e));t>=0?x(r.filter((d,u)=>u!==t)):x([...r,e]);}}},ie=a.useMemo(()=>{if(!l)return "";if(n==="single")return C(l,y);if(n==="range"){let e=l;return ke(e.from,e.to,y)}else return Fe(l,y)},[l,n,y]),le=a.useMemo(()=>{let e=[],r=new Date;r.setHours(0,0,0,0);let t=xe(i,P),d=W(i);if(k&&t>0){let u=new Date(i.getFullYear(),i.getMonth()-1),g=W(u);for(let c=g-t+1;c<=g;c++){let f=new Date(u.getFullYear(),u.getMonth(),c);e.push({date:f,isCurrentMonth:false,isToday:h(f,r)});}}for(let u=1;u<=d;u++){let g=new Date(i.getFullYear(),i.getMonth(),u);e.push({date:g,isCurrentMonth:true,isToday:h(g,r)});}if(k){let u=42-e.length,g=new Date(i.getFullYear(),i.getMonth()+1);for(let c=1;c<=u;c++){let f=new Date(g.getFullYear(),g.getMonth(),c);e.push({date:f,isCurrentMonth:false,isToday:h(f,r)});}}return e},[i,k,P]),ue=()=>{D(new Date(i.getFullYear(),i.getMonth()-1,1));},de=()=>{D(new Date(i.getFullYear(),i.getMonth()+1,1));},fe=()=>{let e=new Date;D(e),m(e);},ge=(e,r)=>{if(e.key==="Enter"||e.key===" "){e.preventDefault(),z(r);return}if(e.key==="ArrowRight"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()+1),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="ArrowLeft"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()-1),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="ArrowDown"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()+7),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="ArrowUp"){e.preventDefault();let t=new Date(r);t.setDate(t.getDate()-7),m(t),t.getMonth()!==i.getMonth()&&D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="Home"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth(),1);m(t);return}if(e.key==="End"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth()+1,0);m(t);return}if(e.key==="PageUp"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth()-1,r.getDate());m(t),D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="PageDown"){e.preventDefault();let t=new Date(r.getFullYear(),r.getMonth()+1,r.getDate());m(t),D(new Date(t.getFullYear(),t.getMonth(),1));return}if(e.key==="Escape"){e.preventDefault(),w(false);return}};a.useEffect(()=>{if(p&&F){let e=`${p.getFullYear()}-${p.getMonth()}-${p.getDate()}`,r=$.current.get(e);r&&r.focus();}},[p,F]);let De=a.useMemo(()=>{let e=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];return P===1?[...e.slice(1),e[0]]:e},[P]),me=i.toLocaleDateString(y,{month:"long",year:"numeric"});return a__default.default.createElement("div",{ref:re,className:chunkITRGJNWL_cjs.a("w-full",Z),...ne},a__default.default.createElement(v__namespace.Root,{open:F,onOpenChange:w},a__default.default.createElement("div",{className:"space-y-2"},I&&a__default.default.createElement("label",{className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"},I),a__default.default.createElement(v__namespace.Trigger,{asChild:true},a__default.default.createElement("button",{type:"button",className:chunkITRGJNWL_cjs.a("flex w-full rounded-md border bg-background px-3 py-2 text-sm ring-offset-background","placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200 text-left",L?"border-error-500 shadow-sm hover:border-error-600 focus-visible:ring-error-500/20 focus-visible:border-error-500":"border-border shadow-sm hover:border-primary focus-visible:ring-ring/20 focus-visible:border-primary","h-10",R),onClick:()=>w(true),onFocus:()=>w(true),"aria-label":I||"Open calendar","aria-invalid":L},ie||a__default.default.createElement("span",{className:"text-muted-foreground"},X||"Select date..."))),U&&a__default.default.createElement("p",{className:chunkITRGJNWL_cjs.a("text-sm text-muted-foreground",L&&"text-error-600")},U)),a__default.default.createElement(v__namespace.Portal,null,a__default.default.createElement(v__namespace.Content,{className:chunkITRGJNWL_cjs.a("z-50 w-auto rounded-lg border bg-popover p-4 shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2"),sideOffset:5,align:"start"},a__default.default.createElement("div",{ref:ae,className:chunkITRGJNWL_cjs.a(ye({variant:te,size:K}),ee),role:"application","aria-label":"Calendar"},a__default.default.createElement("div",{className:"flex items-center justify-between mb-4"},a__default.default.createElement("div",{className:"flex items-center gap-2"},a__default.default.createElement(chunk5PVFLXPO_cjs.b,{variant:"ghost",size:"sm",onClick:ue,"aria-label":"Previous month"},a__default.default.createElement("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},a__default.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"}))),a__default.default.createElement("h3",{className:"text-sm font-semibold text-popover-foreground","data-testid":"calendar-month-year"},me),a__default.default.createElement(chunk5PVFLXPO_cjs.b,{variant:"ghost",size:"sm",onClick:de,"aria-label":"Next month"},a__default.default.createElement("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},a__default.default.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})))),a__default.default.createElement(chunk5PVFLXPO_cjs.b,{variant:"ghost",size:"sm",onClick:fe,className:"text-xs"},"Today")),a__default.default.createElement("div",{className:"grid grid-cols-7 gap-1 mb-2"},De.map(e=>a__default.default.createElement("div",{key:e,className:"text-center text-xs font-medium text-muted-foreground"},e))),a__default.default.createElement("div",{className:"grid grid-cols-7 gap-1"},le.map((e,r)=>{let t=n==="single"?h(e.date,l):n==="range"?Ce(e.date,l?.from,l?.to):l?.some(f=>h(f,e.date)),d=_(e.date,N,Y,A,H),u=n==="range"&&l?.from&&!l?.to&&e.date>=l.from,g=`${e.date.getFullYear()}-${e.date.getMonth()}-${e.date.getDate()}`,c=p&&h(e.date,p);return a__default.default.createElement("button",{key:`${e.date.getTime()}-${r}`,ref:f=>{f?$.current.set(g,f):$.current.delete(g);},type:"button",onClick:()=>{k&&!e.isCurrentMonth?(D(new Date(e.date.getFullYear(),e.date.getMonth(),1)),setTimeout(()=>z(e.date),0)):z(e.date);},onKeyDown:f=>ge(f,e.date),disabled:d||(k?false:!e.isCurrentMonth),className:chunkITRGJNWL_cjs.a(we({variant:t?"selected":u?"range":e.isToday?"today":e.isCurrentMonth?d?"disabled":"default":"outside",size:K}),!e.isCurrentMonth&&"opacity-50",c&&"ring-2 ring-brand-500 ring-offset-2 z-10"),"aria-label":e.date.toLocaleDateString(y,{weekday:"long",year:"numeric",month:"long",day:"numeric"}),"aria-selected":t,"aria-disabled":d,tabIndex:c?0:-1},e.date.getDate())})),n==="range"&&l?.from&&!l?.to&&a__default.default.createElement("div",{className:"mt-4 pt-4 border-t border-border"},a__default.default.createElement("p",{className:"text-xs text-muted-foreground text-center"},"Select end date")))))))});Ne.displayName="Calendar";exports.a=ye;exports.b=we;exports.c=Ne;//# sourceMappingURL=chunk-EGQ2Q37R.cjs.map
|
|
3
|
-
//# sourceMappingURL=chunk-EGQ2Q37R.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/calendar.tsx"],"names":["calendarVariants","cva","calendarDayVariants","getDaysInMonth","date","dateFnsGetDaysInMonth","getFirstDayOfMonth","firstDayOfWeek","firstDay","getDay","startOfMonth","isSameDay","date1","date2","dateFnsIsSameDay","isDateInRange","from","to","isWithinInterval","startOfDay","endOfDay","isBefore","isAfter","isDateDisabled","minDate","maxDate","disabledDates","disabledDays","d","formatDate","_locale","dateFnsFormat","formatDateRange","locale","formatMultipleDates","dates","Calendar","React","mode","value","defaultValue","onChange","placeholder","label","error","helperText","className","inputClassName","calendarClassName","variant","size","showOutsideDays","props","ref","open","setOpen","useState","currentMonth","setCurrentMonth","focusedDate","setFocusedDate","calendarRef","useRef","dayButtonRefs","internalValue","setInternalValue","isControlled","calendarValue","today","handleValueChange","newValue","handleDateClick","rangeValue","multipleValue","dateIndex","_","i","displayValue","useMemo","range","calendarDays","days","daysInMonth","prevMonth","daysInPrevMonth","remainingDays","nextMonth","goToPreviousMonth","goToNextMonth","goToToday","handleKeyDown","nextDate","prevDate","lastDay","useEffect","dateKey","button","dayNames","names","monthYearDisplay","cn","v","Button","day","index","isSelected","isDisabled","isInRange","isFocused","el","e"],"mappings":"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","file":"chunk-EGQ2Q37R.cjs","sourcesContent":["import React, { useState, useMemo, useRef, useEffect } from \"react\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport {\n getDaysInMonth as dateFnsGetDaysInMonth,\n startOfMonth,\n getDay,\n isSameDay as dateFnsIsSameDay,\n isWithinInterval,\n isBefore,\n isAfter,\n format as dateFnsFormat,\n startOfDay,\n endOfDay,\n} from \"date-fns\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"./button\";\n\n// Calendar variants\nconst calendarVariants = cva(\n \"inline-block rounded-lg border bg-background shadow-lg\",\n {\n variants: {\n variant: {\n default: \"border-border bg-card\",\n outline: \"border-2 border-border\",\n ghost: \"border-transparent bg-transparent shadow-none\",\n },\n size: {\n sm: \"p-2\",\n md: \"p-3\",\n lg: \"p-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nconst calendarDayVariants = cva(\n \"flex items-center justify-center rounded-md font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"hover:bg-muted text-foreground\",\n selected:\n \"bg-primary text-primary-foreground hover:bg-primary/90 font-semibold\",\n range: \"bg-primary/10 text-primary hover:bg-primary/20 font-medium\",\n today: \"border-2 border-primary text-foreground font-semibold\",\n outside: \"text-muted-foreground\",\n disabled: \"text-muted-foreground/50 cursor-not-allowed\",\n },\n size: {\n sm: \"h-7 w-7 text-xs\",\n md: \"h-9 w-9 text-sm\",\n lg: \"h-11 w-11 text-base\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport type CalendarMode = \"single\" | \"range\" | \"multiple\";\n\nexport interface CalendarProps extends VariantProps<typeof calendarVariants> {\n mode?: CalendarMode;\n value?: Date | Date[] | { from?: Date; to?: Date };\n defaultValue?: Date | Date[] | { from?: Date; to?: Date };\n onChange?: (\n value: Date | Date[] | { from?: Date; to?: Date } | undefined,\n ) => void;\n minDate?: Date;\n maxDate?: Date;\n disabledDates?: Date[];\n disabledDays?: number[]; // 0 = Sunday, 1 = Monday, etc.\n locale?: string;\n placeholder?: string;\n label?: string;\n error?: boolean;\n helperText?: string;\n className?: string;\n inputClassName?: string;\n calendarClassName?: string;\n showOutsideDays?: boolean;\n firstDayOfWeek?: 0 | 1; // 0 = Sunday, 1 = Monday\n}\n\n// Helper functions using date-fns for robust date manipulation\nconst getDaysInMonth = (date: Date): number => {\n return dateFnsGetDaysInMonth(date);\n};\n\nconst getFirstDayOfMonth = (date: Date, firstDayOfWeek: 0 | 1): number => {\n // Use date-fns getDay for consistent day-of-week calculation\n const firstDay = getDay(startOfMonth(date));\n // Convert Sunday (0) to Monday-first (6) if needed\n // Sunday = 0, Monday = 1, ..., Saturday = 6\n // For Monday-first: Sunday becomes 6, Monday becomes 0, etc.\n return firstDayOfWeek === 1 ? (firstDay === 0 ? 6 : firstDay - 1) : firstDay;\n};\n\nconst isSameDay = (\n date1: Date | undefined,\n date2: Date | undefined,\n): boolean => {\n if (!date1 || !date2) return false;\n return dateFnsIsSameDay(date1, date2);\n};\n\nconst isDateInRange = (date: Date, from?: Date, to?: Date): boolean => {\n if (!from && !to) return false;\n if (from && to) {\n // Use date-fns isWithinInterval for proper date range checking\n return isWithinInterval(startOfDay(date), {\n start: startOfDay(from),\n end: endOfDay(to),\n });\n }\n if (from) return !isBefore(startOfDay(date), startOfDay(from));\n if (to) return !isAfter(startOfDay(date), endOfDay(to));\n return false;\n};\n\nconst isDateDisabled = (\n date: Date,\n minDate?: Date,\n maxDate?: Date,\n disabledDates?: Date[],\n disabledDays?: number[],\n): boolean => {\n if (minDate && isBefore(startOfDay(date), startOfDay(minDate))) return true;\n if (maxDate && isAfter(startOfDay(date), endOfDay(maxDate))) return true;\n if (disabledDates?.some((d) => isSameDay(d, date))) return true;\n if (disabledDays?.includes(getDay(date))) return true;\n return false;\n};\n\nconst formatDate = (\n date: Date | undefined,\n _locale: string = \"en-US\",\n): string => {\n if (!date) return \"\";\n // Use date-fns format for consistent formatting\n // Note: date-fns uses locale objects, but we'll use a simple format for now\n // For full locale support, import locale from 'date-fns/locale'\n // Locale parameter is kept for API compatibility but not yet used\n return dateFnsFormat(date, \"MMM d, yyyy\");\n};\n\nconst formatDateRange = (\n from?: Date,\n to?: Date,\n locale: string = \"en-US\",\n): string => {\n if (!from && !to) return \"\";\n if (from && to) {\n return `${formatDate(from, locale)} - ${formatDate(to, locale)}`;\n }\n if (from) return formatDate(from, locale);\n if (to) return formatDate(to, locale);\n return \"\";\n};\n\nconst formatMultipleDates = (\n dates: Date[],\n _locale: string = \"en-US\",\n): string => {\n if (dates.length === 0) return \"\";\n if (dates.length === 1) return formatDate(dates[0], _locale);\n return `${dates.length} dates selected`;\n};\n\nexport const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n mode = \"single\",\n value,\n defaultValue,\n onChange,\n minDate,\n maxDate,\n disabledDates,\n disabledDays,\n locale = \"en-US\",\n placeholder,\n label,\n error,\n helperText,\n className,\n inputClassName,\n calendarClassName,\n variant,\n size,\n showOutsideDays = true,\n firstDayOfWeek = 1,\n ...props\n },\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n const [currentMonth, setCurrentMonth] = useState(new Date());\n const [focusedDate, setFocusedDate] = useState<Date | null>(null);\n const calendarRef = useRef<HTMLDivElement>(null);\n const dayButtonRefs = useRef<Map<string, HTMLButtonElement>>(new Map());\n\n // Controlled vs uncontrolled\n const [internalValue, setInternalValue] = useState<\n Date | Date[] | { from?: Date; to?: Date } | undefined\n >(defaultValue);\n\n const isControlled = value !== undefined;\n const calendarValue = isControlled ? value : internalValue;\n\n // Set focused date when calendar opens\n React.useLayoutEffect(() => {\n if (open && !focusedDate) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n setFocusedDate(today);\n }\n }, [open, focusedDate]);\n\n // Handle value changes\n const handleValueChange = (\n newValue: Date | Date[] | { from?: Date; to?: Date } | undefined,\n ) => {\n if (!isControlled) {\n setInternalValue(newValue);\n }\n onChange?.(newValue);\n };\n\n // Handle date selection\n const handleDateClick = (date: Date) => {\n if (isDateDisabled(date, minDate, maxDate, disabledDates, disabledDays)) {\n return;\n }\n\n if (mode === \"single\") {\n handleValueChange(date);\n setOpen(false);\n } else if (mode === \"range\") {\n const rangeValue = calendarValue as\n | { from?: Date; to?: Date }\n | undefined;\n if (!rangeValue?.from || (rangeValue.from && rangeValue.to)) {\n // Start new range\n handleValueChange({ from: date });\n } else {\n // Complete range\n const from = rangeValue.from;\n const to = date;\n if (to < from) {\n handleValueChange({ from: to, to: from });\n } else {\n handleValueChange({ from, to });\n }\n setOpen(false);\n }\n } else if (mode === \"multiple\") {\n const multipleValue = (calendarValue as Date[]) || [];\n const dateIndex = multipleValue.findIndex((d) => isSameDay(d, date));\n if (dateIndex >= 0) {\n // Remove date\n handleValueChange(multipleValue.filter((_, i) => i !== dateIndex));\n } else {\n // Add date\n handleValueChange([...multipleValue, date]);\n }\n }\n };\n\n // Get display value\n const displayValue = useMemo(() => {\n if (!calendarValue) return \"\";\n\n if (mode === \"single\") {\n return formatDate(calendarValue as Date, locale);\n } else if (mode === \"range\") {\n const range = calendarValue as { from?: Date; to?: Date };\n return formatDateRange(range.from, range.to, locale);\n } else {\n return formatMultipleDates(calendarValue as Date[], locale);\n }\n }, [calendarValue, mode, locale]);\n\n // Generate calendar days\n const calendarDays = useMemo(() => {\n const days: Array<{\n date: Date;\n isCurrentMonth: boolean;\n isToday: boolean;\n }> = [];\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n\n const firstDay = getFirstDayOfMonth(currentMonth, firstDayOfWeek);\n const daysInMonth = getDaysInMonth(currentMonth);\n\n // Previous month days\n if (showOutsideDays && firstDay > 0) {\n const prevMonth = new Date(\n currentMonth.getFullYear(),\n currentMonth.getMonth() - 1,\n );\n const daysInPrevMonth = getDaysInMonth(prevMonth);\n for (\n let i = daysInPrevMonth - firstDay + 1;\n i <= daysInPrevMonth;\n i++\n ) {\n const date = new Date(\n prevMonth.getFullYear(),\n prevMonth.getMonth(),\n i,\n );\n days.push({\n date,\n isCurrentMonth: false,\n isToday: isSameDay(date, today),\n });\n }\n }\n\n // Current month days\n for (let i = 1; i <= daysInMonth; i++) {\n const date = new Date(\n currentMonth.getFullYear(),\n currentMonth.getMonth(),\n i,\n );\n days.push({\n date,\n isCurrentMonth: true,\n isToday: isSameDay(date, today),\n });\n }\n\n // Next month days\n if (showOutsideDays) {\n const remainingDays = 42 - days.length; // 6 weeks * 7 days\n const nextMonth = new Date(\n currentMonth.getFullYear(),\n currentMonth.getMonth() + 1,\n );\n for (let i = 1; i <= remainingDays; i++) {\n const date = new Date(\n nextMonth.getFullYear(),\n nextMonth.getMonth(),\n i,\n );\n days.push({\n date,\n isCurrentMonth: false,\n isToday: isSameDay(date, today),\n });\n }\n }\n\n return days;\n }, [currentMonth, showOutsideDays, firstDayOfWeek]);\n\n // Navigate months\n const goToPreviousMonth = () => {\n setCurrentMonth(\n new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1, 1),\n );\n };\n\n const goToNextMonth = () => {\n setCurrentMonth(\n new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 1),\n );\n };\n\n const goToToday = () => {\n const today = new Date();\n setCurrentMonth(today);\n setFocusedDate(today);\n };\n\n // Keyboard navigation\n const handleKeyDown = (e: React.KeyboardEvent, date: Date) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleDateClick(date);\n return;\n }\n\n if (e.key === \"ArrowRight\") {\n e.preventDefault();\n const nextDate = new Date(date);\n nextDate.setDate(nextDate.getDate() + 1);\n setFocusedDate(nextDate);\n // Update month if needed\n if (nextDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(nextDate.getFullYear(), nextDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n const prevDate = new Date(date);\n prevDate.setDate(prevDate.getDate() - 1);\n setFocusedDate(prevDate);\n // Update month if needed\n if (prevDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(prevDate.getFullYear(), prevDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const nextDate = new Date(date);\n nextDate.setDate(nextDate.getDate() + 7);\n setFocusedDate(nextDate);\n // Update month if needed\n if (nextDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(nextDate.getFullYear(), nextDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const prevDate = new Date(date);\n prevDate.setDate(prevDate.getDate() - 7);\n setFocusedDate(prevDate);\n // Update month if needed\n if (prevDate.getMonth() !== currentMonth.getMonth()) {\n setCurrentMonth(\n new Date(prevDate.getFullYear(), prevDate.getMonth(), 1),\n );\n }\n return;\n }\n\n if (e.key === \"Home\") {\n e.preventDefault();\n const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\n setFocusedDate(firstDay);\n return;\n }\n\n if (e.key === \"End\") {\n e.preventDefault();\n const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n setFocusedDate(lastDay);\n return;\n }\n\n if (e.key === \"PageUp\") {\n e.preventDefault();\n const prevMonth = new Date(\n date.getFullYear(),\n date.getMonth() - 1,\n date.getDate(),\n );\n setFocusedDate(prevMonth);\n setCurrentMonth(\n new Date(prevMonth.getFullYear(), prevMonth.getMonth(), 1),\n );\n return;\n }\n\n if (e.key === \"PageDown\") {\n e.preventDefault();\n const nextMonth = new Date(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n );\n setFocusedDate(nextMonth);\n setCurrentMonth(\n new Date(nextMonth.getFullYear(), nextMonth.getMonth(), 1),\n );\n return;\n }\n\n if (e.key === \"Escape\") {\n e.preventDefault();\n setOpen(false);\n return;\n }\n };\n\n // Focus management\n useEffect(() => {\n if (focusedDate && open) {\n const dateKey = `${focusedDate.getFullYear()}-${focusedDate.getMonth()}-${focusedDate.getDate()}`;\n const button = dayButtonRefs.current.get(dateKey);\n if (button) {\n button.focus();\n }\n }\n }, [focusedDate, open]);\n\n // Day names\n const dayNames = useMemo(() => {\n const names = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n if (firstDayOfWeek === 1) {\n return [...names.slice(1), names[0]];\n }\n return names;\n }, [firstDayOfWeek]);\n\n // Month/year display\n const monthYearDisplay = currentMonth.toLocaleDateString(locale, {\n month: \"long\",\n year: \"numeric\",\n });\n\n return (\n <div ref={ref} className={cn(\"w-full\", className)} {...props}>\n <Popover.Root open={open} onOpenChange={setOpen}>\n <div className=\"space-y-2\">\n {label && (\n <label className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n {label}\n </label>\n )}\n <Popover.Trigger asChild>\n <button\n type=\"button\"\n className={cn(\n \"flex w-full rounded-md border bg-background px-3 py-2 text-sm ring-offset-background\",\n \"placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200 text-left\",\n error\n ? \"border-error-500 shadow-sm hover:border-error-600 focus-visible:ring-error-500/20 focus-visible:border-error-500\"\n : \"border-border shadow-sm hover:border-primary focus-visible:ring-ring/20 focus-visible:border-primary\",\n \"h-10\",\n inputClassName,\n )}\n onClick={() => setOpen(true)}\n onFocus={() => setOpen(true)}\n aria-label={label || \"Open calendar\"}\n aria-invalid={error}\n >\n {displayValue || (\n <span className=\"text-muted-foreground\">\n {placeholder || \"Select date...\"}\n </span>\n )}\n </button>\n </Popover.Trigger>\n {helperText && (\n <p\n className={cn(\n \"text-sm text-muted-foreground\",\n error && \"text-error-600\",\n )}\n >\n {helperText}\n </p>\n )}\n </div>\n\n <Popover.Portal>\n <Popover.Content\n className={cn(\n \"z-50 w-auto rounded-lg border bg-popover p-4 shadow-lg\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n )}\n sideOffset={5}\n align=\"start\"\n >\n <div\n ref={calendarRef}\n className={cn(\n calendarVariants({ variant, size }),\n calendarClassName,\n )}\n role=\"application\"\n aria-label=\"Calendar\"\n >\n {/* Header */}\n <div className=\"flex items-center justify-between mb-4\">\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToPreviousMonth}\n aria-label=\"Previous month\"\n >\n <svg\n className=\"h-4 w-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </Button>\n\n <h3\n className=\"text-sm font-semibold text-popover-foreground\"\n data-testid=\"calendar-month-year\"\n >\n {monthYearDisplay}\n </h3>\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToNextMonth}\n aria-label=\"Next month\"\n >\n <svg\n className=\"h-4 w-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </Button>\n </div>\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToToday}\n className=\"text-xs\"\n >\n Today\n </Button>\n </div>\n\n {/* Day names */}\n <div className=\"grid grid-cols-7 gap-1 mb-2\">\n {dayNames.map((day) => (\n <div\n key={day}\n className=\"text-center text-xs font-medium text-muted-foreground\"\n >\n {day}\n </div>\n ))}\n </div>\n\n {/* Calendar grid */}\n <div className=\"grid grid-cols-7 gap-1\">\n {calendarDays.map((day, index) => {\n const isSelected =\n mode === \"single\"\n ? isSameDay(day.date, calendarValue as Date | undefined)\n : mode === \"range\"\n ? isDateInRange(\n day.date,\n (calendarValue as { from?: Date; to?: Date })\n ?.from,\n (calendarValue as { from?: Date; to?: Date })?.to,\n )\n : (calendarValue as Date[])?.some((d) =>\n isSameDay(d, day.date),\n );\n\n const isDisabled = isDateDisabled(\n day.date,\n minDate,\n maxDate,\n disabledDates,\n disabledDays,\n );\n\n const isInRange =\n mode === \"range\" &&\n (calendarValue as { from?: Date; to?: Date })?.from &&\n !(calendarValue as { from?: Date; to?: Date })?.to &&\n day.date >=\n (calendarValue as { from?: Date; to?: Date }).from!;\n\n const dateKey = `${day.date.getFullYear()}-${day.date.getMonth()}-${day.date.getDate()}`;\n const isFocused =\n focusedDate && isSameDay(day.date, focusedDate);\n\n return (\n <button\n key={`${day.date.getTime()}-${index}`}\n ref={(el) => {\n if (el) {\n dayButtonRefs.current.set(dateKey, el);\n } else {\n dayButtonRefs.current.delete(dateKey);\n }\n }}\n type=\"button\"\n onClick={() => {\n if (showOutsideDays && !day.isCurrentMonth) {\n // Navigate to the month of the clicked date\n setCurrentMonth(\n new Date(\n day.date.getFullYear(),\n day.date.getMonth(),\n 1,\n ),\n );\n // Then select the date\n setTimeout(() => handleDateClick(day.date), 0);\n } else {\n handleDateClick(day.date);\n }\n }}\n onKeyDown={(e) => handleKeyDown(e, day.date)}\n disabled={\n isDisabled ||\n (showOutsideDays ? false : !day.isCurrentMonth)\n }\n className={cn(\n calendarDayVariants({\n variant: isSelected\n ? \"selected\"\n : isInRange\n ? \"range\"\n : day.isToday\n ? \"today\"\n : !day.isCurrentMonth\n ? \"outside\"\n : isDisabled\n ? \"disabled\"\n : \"default\",\n size,\n }),\n !day.isCurrentMonth && \"opacity-50\",\n isFocused &&\n \"ring-2 ring-brand-500 ring-offset-2 z-10\",\n )}\n aria-label={day.date.toLocaleDateString(locale, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n })}\n aria-selected={isSelected}\n aria-disabled={isDisabled}\n tabIndex={isFocused ? 0 : -1}\n >\n {day.date.getDate()}\n </button>\n );\n })}\n </div>\n\n {/* Footer for range mode */}\n {mode === \"range\" &&\n (calendarValue as { from?: Date; to?: Date })?.from &&\n !(calendarValue as { from?: Date; to?: Date })?.to && (\n <div className=\"mt-4 pt-4 border-t border-border\">\n <p className=\"text-xs text-muted-foreground text-center\">\n Select end date\n </p>\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n </div>\n );\n },\n);\n\nCalendar.displayName = \"Calendar\";\n\nexport { calendarVariants, calendarDayVariants };\n"]}
|
package/dist/chunk-EIXD3Y4R.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import {a as a$1}from'./chunk-COXN6XBA.js';import {a}from'./chunk-AC2JBXHQ.js';import e from'react';import {cva}from'class-variance-authority';var c=cva("animate-pulse rounded-md bg-muted",{variants:{variant:{default:"bg-muted",light:"bg-muted/50",dark:"bg-muted",primary:"bg-primary/10",success:"bg-success-200",warning:"bg-warning-200",error:"bg-error-200"},size:{xs:"h-2",sm:"h-3",md:"h-4",lg:"h-6",xl:"h-8","2xl":"h-12","3xl":"h-16"},shape:{rectangle:"rounded-md",circle:"rounded-full",square:"rounded-lg",pill:"rounded-full"},animation:{pulse:"animate-pulse",wave:"animate-wave",none:"animate-none"}},defaultVariants:{variant:"default",size:"md",shape:"rectangle",animation:"pulse"}}),N=e.forwardRef(({className:n,children:s,width:a$1,height:r,variant:t="default",size:o="md",shape:i="rectangle",animation:d="pulse",loading:u=true,...f},h)=>{if(!u&&s)return e.createElement(e.Fragment,null,s);let p={width:a$1||void 0,height:r||void 0};return e.createElement("div",{ref:h,className:a(c({variant:t,size:o,shape:i,animation:d}),n),style:p,"aria-label":"Loading content",role:"status",...f})});N.displayName="Skeleton";var l=a$1(N),k=e.forwardRef(({className:n,lines:s=3,lastLineWidth:a$1="75%",spacing:r="md",variant:t="default",animation:o="pulse",loading:i=true,...d},u)=>i?e.createElement("div",{ref:u,className:a("space-y-2",{none:"space-y-0",sm:"space-y-1",md:"space-y-2",lg:"space-y-3"}[r],n),"aria-label":"Loading text content",role:"status",...d},Array.from({length:s},(h,p)=>e.createElement("div",{key:p,className:a(c({variant:t,animation:o}),"h-4 rounded-md",p===s-1&&"w-3/4"),style:{width:p===s-1?a$1:"100%"}}))):null);k.displayName="SkeletonText";var v=e.forwardRef(({className:n,size:s="md",variant:a$1="default",animation:r="pulse",loading:t=true,...o},i)=>{if(!t)return null;let d={xs:"h-6 w-6",sm:"h-8 w-8",md:"h-10 w-10",lg:"h-12 w-12",xl:"h-16 w-16","2xl":"h-20 w-20"};return e.createElement("div",{ref:i,className:a(c({variant:a$1,animation:r}),"rounded-full",d[s],n),"aria-label":"Loading avatar",role:"status",...o})});v.displayName="SkeletonAvatar";var g=e.forwardRef(({className:n,size:s="md",variant:a$1="default",animation:r="pulse",loading:t=true,...o},i)=>{if(!t)return null;let d={sm:"h-8 px-3",md:"h-10 px-4",lg:"h-12 px-6"},u={default:"bg-muted",primary:"bg-primary/10",secondary:"bg-secondary",outline:"bg-muted/50 border border-border",ghost:"bg-muted/50"},f=a$1||"default";return e.createElement("div",{ref:i,className:a(c({animation:r}),"rounded-md",d[s],u[f],n),"aria-label":"Loading button",role:"status",...o})});g.displayName="SkeletonButton";var y=e.forwardRef(({className:n,showAvatar:s=true,showActions:a$1=true,variant:r="default",animation:t="pulse",loading:o=true,...i},d)=>o?e.createElement("div",{ref:d,className:a("p-6 border border-border rounded-lg bg-card",n),"aria-label":"Loading card content",role:"status",...i},e.createElement("div",{className:"space-y-4"},e.createElement("div",{className:"flex items-center space-x-3"},s&&e.createElement(v,{size:"md",variant:r,animation:t}),e.createElement("div",{className:"flex-1 space-y-2"},e.createElement(l,{className:"h-4 w-3/4",variant:r,animation:t}),e.createElement(l,{className:"h-3 w-1/2",variant:r,animation:t}))),e.createElement("div",{className:"space-y-2"},e.createElement(l,{className:"h-4 w-full",variant:r,animation:t}),e.createElement(l,{className:"h-4 w-5/6",variant:r,animation:t}),e.createElement(l,{className:"h-4 w-4/5",variant:r,animation:t})),a$1&&e.createElement("div",{className:"flex space-x-2 pt-4"},e.createElement(g,{size:"sm",animation:t}),e.createElement(g,{size:"sm",animation:t})))):null);y.displayName="SkeletonCard";var S=e.forwardRef(({className:n,variant:s="default",animation:a$1="pulse",loading:r=true,...t},o)=>r?e.createElement("div",{ref:o,className:a("space-y-3",n),"aria-label":"Loading table content",role:"status",...t},e.createElement("div",{className:"grid grid-cols-4 gap-4"},e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1})),Array.from({length:5},(i,d)=>e.createElement("div",{key:d,className:"grid grid-cols-4 gap-4"},e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1}),e.createElement(l,{className:"h-4",variant:s,animation:a$1})))):null);S.displayName="SkeletonTable";var w=e.forwardRef(({className:n,items:s=5,variant:a$1="default",animation:r="pulse",loading:t=true,...o},i)=>t?e.createElement("div",{ref:i,className:a("space-y-3",n),"aria-label":"Loading list content",role:"status",...o},Array.from({length:s},(d,u)=>e.createElement("div",{key:u,className:"flex items-center space-x-3"},e.createElement(v,{size:"sm",variant:a$1,animation:r}),e.createElement("div",{className:"flex-1 space-y-2"},e.createElement(l,{className:"h-4 w-3/4",variant:a$1,animation:r}),e.createElement(l,{className:"h-3 w-1/2",variant:a$1,animation:r}))))):null);w.displayName="SkeletonList";export{c as a,l as b,k as c,v as d,g as e,y as f,S as g,w as h};//# sourceMappingURL=chunk-EIXD3Y4R.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-EIXD3Y4R.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/core/skeleton.tsx"],"names":["skeletonVariants","cva","SkeletonComponent","React","className","children","width","height","variant","size","shape","animation","loading","props","ref","style","cn","Skeleton","memo","SkeletonText","lines","lastLineWidth","spacing","_","index","SkeletonAvatar","sizeClasses","SkeletonButton","variantClasses","finalVariant","SkeletonCard","showAvatar","showActions","SkeletonTable","SkeletonList","items"],"mappings":"+IAMA,IAAMA,CAAAA,CAAmBC,GAAAA,CAAI,mCAAA,CAAqC,CAChE,SAAU,CACR,OAAA,CAAS,CACP,OAAA,CAAS,UAAA,CACT,KAAA,CAAO,cACP,IAAA,CAAM,UAAA,CACN,OAAA,CAAS,eAAA,CACT,OAAA,CAAS,gBAAA,CACT,QAAS,gBAAA,CACT,KAAA,CAAO,cACT,CAAA,CACA,IAAA,CAAM,CACJ,GAAI,KAAA,CACJ,EAAA,CAAI,KAAA,CACJ,EAAA,CAAI,KAAA,CACJ,EAAA,CAAI,MACJ,EAAA,CAAI,KAAA,CACJ,KAAA,CAAO,MAAA,CACP,KAAA,CAAO,MACT,EACA,KAAA,CAAO,CACL,SAAA,CAAW,YAAA,CACX,MAAA,CAAQ,cAAA,CACR,OAAQ,YAAA,CACR,IAAA,CAAM,cACR,CAAA,CACA,SAAA,CAAW,CACT,KAAA,CAAO,eAAA,CACP,IAAA,CAAM,cAAA,CACN,IAAA,CAAM,cACR,CACF,CAAA,CACA,eAAA,CAAiB,CACf,OAAA,CAAS,SAAA,CACT,IAAA,CAAM,KACN,KAAA,CAAO,WAAA,CACP,SAAA,CAAW,OACb,CACF,CAAC,EA6CKC,CAAAA,CAAoBC,CAAAA,CAAM,UAAA,CAC9B,CACE,CACE,SAAA,CAAAC,EACA,QAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,GAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,QAAAC,CAAAA,CAAU,SAAA,CACV,IAAA,CAAAC,CAAAA,CAAO,IAAA,CACP,KAAA,CAAAC,EAAQ,WAAA,CACR,SAAA,CAAAC,CAAAA,CAAY,OAAA,CACZ,OAAA,CAAAC,CAAAA,CAAU,KACV,GAAGC,CACL,EACAC,CAAAA,GACG,CACH,GAAI,CAACF,CAAAA,EAAWP,CAAAA,CACd,OAAOF,CAAAA,CAAA,aAAA,CAAAA,EAAA,QAAA,CAAA,IAAA,CAAGE,CAAS,CAAA,CAGrB,IAAMU,CAAAA,CAAQ,CACZ,MAAOT,GAAAA,EAAS,MAAA,CAChB,MAAA,CAAQC,CAAAA,EAAU,MACpB,CAAA,CAEA,OACEJ,CAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKW,CAAAA,CACL,SAAA,CAAWE,EACThB,CAAAA,CAAiB,CAAE,OAAA,CAAAQ,CAAAA,CAAS,IAAA,CAAAC,CAAAA,CAAM,MAAAC,CAAAA,CAAO,SAAA,CAAAC,CAAU,CAAC,CAAA,CACpDP,CACF,EACA,KAAA,CAAOW,CAAAA,CACP,YAAA,CAAW,iBAAA,CACX,IAAA,CAAK,QAAA,CACJ,GAAGF,CAAAA,CACN,CAEJ,CACF,EAEAX,CAAAA,CAAkB,YAAc,UAAA,CAGzB,IAAMe,CAAAA,CAAWC,GAAAA,CAAKhB,CAAiB,CAAA,CAGjCiB,EAAehB,CAAAA,CAAM,UAAA,CAChC,CACE,CACE,SAAA,CAAAC,CAAAA,CACA,MAAAgB,CAAAA,CAAQ,CAAA,CACR,aAAA,CAAAC,GAAAA,CAAgB,KAAA,CAChB,OAAA,CAAAC,EAAU,IAAA,CACV,OAAA,CAAAd,CAAAA,CAAU,SAAA,CACV,SAAA,CAAAG,CAAAA,CAAY,QACZ,OAAA,CAAAC,CAAAA,CAAU,IAAA,CACV,GAAGC,CACL,CAAA,CACAC,IAEKF,CAAAA,CAYHT,CAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKW,CAAAA,CACL,UAAWE,CAAAA,CAAG,WAAA,CAVK,CACrB,IAAA,CAAM,WAAA,CACN,EAAA,CAAI,YACJ,EAAA,CAAI,WAAA,CACJ,GAAI,WACN,CAAA,CAK8CM,CAAO,CAAA,CAAGlB,CAAS,CAAA,CAC7D,YAAA,CAAW,sBAAA,CACX,IAAA,CAAK,SACJ,GAAGS,CAAAA,CAAAA,CAEH,KAAA,CAAM,IAAA,CAAK,CAAE,MAAA,CAAQO,CAAM,CAAA,CAAG,CAACG,CAAAA,CAAGC,CAAAA,GACjCrB,CAAAA,CAAA,aAAA,CAAC,OACC,GAAA,CAAKqB,CAAAA,CACL,SAAA,CAAWR,CAAAA,CACThB,CAAAA,CAAiB,CAAE,QAAAQ,CAAAA,CAAS,SAAA,CAAAG,CAAU,CAAC,CAAA,CACvC,gBAAA,CACAa,IAAUJ,CAAAA,CAAQ,CAAA,EAAK,OACzB,CAAA,CACA,KAAA,CAAO,CACL,MAAOI,CAAAA,GAAUJ,CAAAA,CAAQ,CAAA,CAAIC,GAAAA,CAAgB,MAC/C,CAAA,CACF,CACD,CACH,CAAA,CA/BO,IAkCb,EAEAF,CAAAA,CAAa,YAAc,cAAA,CAGpB,IAAMM,CAAAA,CAAiBtB,CAAAA,CAAM,UAAA,CAIlC,CACE,CACE,SAAA,CAAAC,CAAAA,CACA,IAAA,CAAAK,CAAAA,CAAO,IAAA,CACP,OAAA,CAAAD,IAAU,SAAA,CACV,SAAA,CAAAG,CAAAA,CAAY,OAAA,CACZ,OAAA,CAAAC,CAAAA,CAAU,KACV,GAAGC,CACL,CAAA,CACAC,CAAAA,GACG,CACH,GAAI,CAACF,CAAAA,CACH,OAAO,IAAA,CAGT,IAAMc,CAAAA,CAAc,CAClB,GAAI,SAAA,CACJ,EAAA,CAAI,SAAA,CACJ,EAAA,CAAI,WAAA,CACJ,EAAA,CAAI,YACJ,EAAA,CAAI,WAAA,CACJ,KAAA,CAAO,WACT,CAAA,CAEA,OACEvB,EAAA,aAAA,CAAC,KAAA,CAAA,CACC,IAAKW,CAAAA,CACL,SAAA,CAAWE,EACThB,CAAAA,CAAiB,CAAE,OAAA,CAAAQ,GAAAA,CAAS,SAAA,CAAAG,CAAU,CAAC,CAAA,CACvC,cAAA,CACAe,CAAAA,CAAYjB,CAAI,CAAA,CAChBL,CACF,EACA,YAAA,CAAW,gBAAA,CACX,IAAA,CAAK,QAAA,CACJ,GAAGS,CAAAA,CACN,CAEJ,CACF,EAEAY,CAAAA,CAAe,WAAA,CAAc,gBAAA,CAGtB,IAAME,EAAiBxB,CAAAA,CAAM,UAAA,CAIlC,CACE,CACE,SAAA,CAAAC,CAAAA,CACA,KAAAK,CAAAA,CAAO,IAAA,CACP,OAAA,CAAAD,GAAAA,CAAU,SAAA,CACV,SAAA,CAAAG,EAAY,OAAA,CACZ,OAAA,CAAAC,CAAAA,CAAU,IAAA,CACV,GAAGC,CACL,EACAC,CAAAA,GACG,CACH,GAAI,CAACF,CAAAA,CACH,OAAO,IAAA,CAGT,IAAMc,CAAAA,CAAc,CAClB,EAAA,CAAI,UAAA,CACJ,GAAI,WAAA,CACJ,EAAA,CAAI,WACN,CAAA,CAEME,CAAAA,CAAiB,CACrB,QAAS,UAAA,CACT,OAAA,CAAS,eAAA,CACT,SAAA,CAAW,cAAA,CACX,OAAA,CAAS,mCACT,KAAA,CAAO,aACT,CAAA,CAEMC,CAAAA,CAAerB,GAAAA,EAAW,SAAA,CAEhC,OACEL,CAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKW,CAAAA,CACL,SAAA,CAAWE,EACThB,CAAAA,CAAiB,CAAE,SAAA,CAAAW,CAAU,CAAC,CAAA,CAC9B,aACAe,CAAAA,CAAYjB,CAAI,CAAA,CAChBmB,CAAAA,CAAeC,CAAY,CAAA,CAC3BzB,CACF,CAAA,CACA,YAAA,CAAW,iBACX,IAAA,CAAK,QAAA,CACJ,GAAGS,CAAAA,CACN,CAEJ,CACF,EAEAc,CAAAA,CAAe,WAAA,CAAc,iBAGtB,IAAMG,CAAAA,CAAe3B,CAAAA,CAAM,UAAA,CAChC,CACE,CACE,UAAAC,CAAAA,CACA,UAAA,CAAA2B,CAAAA,CAAa,IAAA,CACb,WAAA,CAAAC,GAAAA,CAAc,KACd,OAAA,CAAAxB,CAAAA,CAAU,SAAA,CACV,SAAA,CAAAG,CAAAA,CAAY,OAAA,CACZ,QAAAC,CAAAA,CAAU,IAAA,CACV,GAAGC,CACL,CAAA,CACAC,CAAAA,GAEKF,EAKHT,CAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKW,CAAAA,CACL,SAAA,CAAWE,EAAG,6CAAA,CAA+CZ,CAAS,CAAA,CACtE,YAAA,CAAW,sBAAA,CACX,IAAA,CAAK,SACJ,GAAGS,CAAAA,CAAAA,CAEJV,EAAA,aAAA,CAAC,KAAA,CAAA,CAAI,UAAU,WAAA,CAAA,CAEbA,CAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,6BAAA,CAAA,CACZ4B,GACC5B,CAAAA,CAAA,aAAA,CAACsB,CAAAA,CAAA,CACC,IAAA,CAAK,IAAA,CACL,QAASjB,CAAAA,CACT,SAAA,CAAWG,CAAAA,CACb,CAAA,CAEFR,CAAAA,CAAA,aAAA,CAAC,OAAI,SAAA,CAAU,kBAAA,CAAA,CACbA,CAAAA,CAAA,aAAA,CAACc,CAAAA,CAAA,CACC,UAAU,WAAA,CACV,OAAA,CAAST,CAAAA,CACT,SAAA,CAAWG,CAAAA,CACb,CAAA,CACAR,EAAA,aAAA,CAACc,CAAAA,CAAA,CACC,SAAA,CAAU,WAAA,CACV,OAAA,CAAST,EACT,SAAA,CAAWG,CAAAA,CACb,CACF,CACF,CAAA,CAGAR,CAAAA,CAAA,cAAC,KAAA,CAAA,CAAI,SAAA,CAAU,aACbA,CAAAA,CAAA,aAAA,CAACc,EAAA,CACC,SAAA,CAAU,YAAA,CACV,OAAA,CAAST,CAAAA,CACT,SAAA,CAAWG,EACb,CAAA,CACAR,CAAAA,CAAA,aAAA,CAACc,CAAAA,CAAA,CACC,SAAA,CAAU,YACV,OAAA,CAAST,CAAAA,CACT,SAAA,CAAWG,CAAAA,CACb,CAAA,CACAR,CAAAA,CAAA,cAACc,CAAAA,CAAA,CACC,SAAA,CAAU,WAAA,CACV,OAAA,CAAST,CAAAA,CACT,UAAWG,CAAAA,CACb,CACF,CAAA,CAGCqB,GAAAA,EACC7B,CAAAA,CAAA,aAAA,CAAC,OAAI,SAAA,CAAU,qBAAA,CAAA,CACbA,CAAAA,CAAA,aAAA,CAACwB,CAAAA,CAAA,CAAe,KAAK,IAAA,CAAK,SAAA,CAAWhB,CAAAA,CAAW,CAAA,CAChDR,CAAAA,CAAA,aAAA,CAACwB,EAAA,CAAe,IAAA,CAAK,KAAK,SAAA,CAAWhB,CAAAA,CAAW,CAClD,CAEJ,CACF,CAAA,CA9DO,IAiEb,EAEAmB,CAAAA,CAAa,YAAc,cAAA,CAGpB,IAAMG,CAAAA,CAAgB9B,CAAAA,CAAM,UAAA,CACjC,CACE,CACE,SAAA,CAAAC,CAAAA,CACA,OAAA,CAAAI,CAAAA,CAAU,SAAA,CACV,SAAA,CAAAG,IAAY,OAAA,CACZ,OAAA,CAAAC,CAAAA,CAAU,IAAA,CACV,GAAGC,CACL,EACAC,CAAAA,GAEKF,CAAAA,CAKHT,CAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKW,EACL,SAAA,CAAWE,CAAAA,CAAG,WAAA,CAAaZ,CAAS,CAAA,CACpC,YAAA,CAAW,wBACX,IAAA,CAAK,QAAA,CACJ,GAAGS,CAAAA,CAAAA,CAGJV,CAAAA,CAAA,aAAA,CAAC,OAAI,SAAA,CAAU,wBAAA,CAAA,CACbA,EAAA,aAAA,CAACc,CAAAA,CAAA,CAAS,SAAA,CAAU,KAAA,CAAM,OAAA,CAAST,CAAAA,CAAS,SAAA,CAAWG,GAAAA,CAAW,EAClER,CAAAA,CAAA,aAAA,CAACc,CAAAA,CAAA,CAAS,SAAA,CAAU,KAAA,CAAM,QAAST,CAAAA,CAAS,SAAA,CAAWG,GAAAA,CAAW,CAAA,CAClER,CAAAA,CAAA,aAAA,CAACc,EAAA,CAAS,SAAA,CAAU,KAAA,CAAM,OAAA,CAAST,CAAAA,CAAS,SAAA,CAAWG,IAAW,CAAA,CAClER,CAAAA,CAAA,aAAA,CAACc,CAAAA,CAAA,CAAS,SAAA,CAAU,MAAM,OAAA,CAAST,CAAAA,CAAS,SAAA,CAAWG,GAAAA,CAAW,CACpE,CAAA,CAGC,MAAM,IAAA,CAAK,CAAE,MAAA,CAAQ,CAAE,CAAA,CAAG,CAACY,EAAGC,CAAAA,GAC7BrB,CAAAA,CAAA,cAAC,KAAA,CAAA,CAAI,GAAA,CAAKqB,EAAO,SAAA,CAAU,wBAAA,CAAA,CACzBrB,CAAAA,CAAA,aAAA,CAACc,CAAAA,CAAA,CAAS,UAAU,KAAA,CAAM,OAAA,CAAST,CAAAA,CAAS,SAAA,CAAWG,GAAAA,CAAW,CAAA,CAClER,EAAA,aAAA,CAACc,CAAAA,CAAA,CAAS,SAAA,CAAU,KAAA,CAAM,OAAA,CAAST,EAAS,SAAA,CAAWG,GAAAA,CAAW,CAAA,CAClER,CAAAA,CAAA,aAAA,CAACc,CAAAA,CAAA,CAAS,SAAA,CAAU,KAAA,CAAM,OAAA,CAAST,CAAAA,CAAS,SAAA,CAAWG,GAAAA,CAAW,EAClER,CAAAA,CAAA,aAAA,CAACc,CAAAA,CAAA,CAAS,SAAA,CAAU,KAAA,CAAM,QAAST,CAAAA,CAAS,SAAA,CAAWG,GAAAA,CAAW,CACpE,CACD,CACH,EA5BO,IA+Bb,EAEAsB,EAAc,WAAA,CAAc,eAAA,KAGfC,CAAAA,CAAe/B,CAAAA,CAAM,UAAA,CAIhC,CACE,CACE,SAAA,CAAAC,EACA,KAAA,CAAA+B,CAAAA,CAAQ,CAAA,CACR,OAAA,CAAA3B,GAAAA,CAAU,SAAA,CACV,UAAAG,CAAAA,CAAY,OAAA,CACZ,OAAA,CAAAC,CAAAA,CAAU,IAAA,CACV,GAAGC,CACL,CAAA,CACAC,CAAAA,GAEKF,CAAAA,CAKHT,CAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,IAAKW,CAAAA,CACL,SAAA,CAAWE,CAAAA,CAAG,WAAA,CAAaZ,CAAS,CAAA,CACpC,aAAW,sBAAA,CACX,IAAA,CAAK,QAAA,CACJ,GAAGS,CAAAA,CAAAA,CAEH,KAAA,CAAM,KAAK,CAAE,MAAA,CAAQsB,CAAM,CAAA,CAAG,CAACZ,CAAAA,CAAGC,IACjCrB,CAAAA,CAAA,aAAA,CAAC,OAAI,GAAA,CAAKqB,CAAAA,CAAO,UAAU,6BAAA,CAAA,CACzBrB,CAAAA,CAAA,aAAA,CAACsB,CAAAA,CAAA,CAAe,IAAA,CAAK,KAAK,OAAA,CAASjB,GAAAA,CAAS,SAAA,CAAWG,CAAAA,CAAW,CAAA,CAClER,CAAAA,CAAA,cAAC,KAAA,CAAA,CAAI,SAAA,CAAU,kBAAA,CAAA,CACbA,CAAAA,CAAA,aAAA,CAACc,CAAAA,CAAA,CACC,SAAA,CAAU,WAAA,CACV,OAAA,CAAST,GAAAA,CACT,SAAA,CAAWG,CAAAA,CACb,EACAR,CAAAA,CAAA,aAAA,CAACc,CAAAA,CAAA,CACC,SAAA,CAAU,WAAA,CACV,QAAST,GAAAA,CACT,SAAA,CAAWG,CAAAA,CACb,CACF,CACF,CACD,CACH,CAAA,CA5BO,IA+Bb,EAEAuB,CAAAA,CAAa,WAAA,CAAc,cAAA","file":"chunk-EIXD3Y4R.js","sourcesContent":["import React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\nimport { memo } from \"../../lib/memo\";\n\n// Skeleton variants\nconst skeletonVariants = cva(\"animate-pulse rounded-md bg-muted\", {\n variants: {\n variant: {\n default: \"bg-muted\",\n light: \"bg-muted/50\",\n dark: \"bg-muted\",\n primary: \"bg-primary/10\",\n success: \"bg-success-200\",\n warning: \"bg-warning-200\",\n error: \"bg-error-200\",\n },\n size: {\n xs: \"h-2\",\n sm: \"h-3\",\n md: \"h-4\",\n lg: \"h-6\",\n xl: \"h-8\",\n \"2xl\": \"h-12\",\n \"3xl\": \"h-16\",\n },\n shape: {\n rectangle: \"rounded-md\",\n circle: \"rounded-full\",\n square: \"rounded-lg\",\n pill: \"rounded-full\",\n },\n animation: {\n pulse: \"animate-pulse\",\n wave: \"animate-wave\",\n none: \"animate-none\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n shape: \"rectangle\",\n animation: \"pulse\",\n },\n});\n\n// Types\nexport interface SkeletonProps extends VariantProps<typeof skeletonVariants> {\n className?: string;\n children?: React.ReactNode;\n width?: string | number;\n height?: string | number;\n lines?: number;\n spacing?: \"none\" | \"sm\" | \"md\" | \"lg\";\n loading?: boolean;\n}\n\nexport interface SkeletonTextProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\"\n> {\n lines?: number;\n lastLineWidth?: string | number;\n}\n\nexport interface SkeletonAvatarProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\"\n> {\n size?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n}\n\nexport interface SkeletonButtonProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\" | \"variant\"\n> {\n size?: \"sm\" | \"md\" | \"lg\";\n variant?: \"default\" | \"primary\" | \"secondary\" | \"outline\" | \"ghost\";\n}\n\nexport interface SkeletonCardProps extends Omit<\n SkeletonProps,\n \"shape\" | \"size\"\n> {\n showAvatar?: boolean;\n showActions?: boolean;\n}\n\n// Main Skeleton Component\nconst SkeletonComponent = React.forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n className,\n children,\n width,\n height,\n variant = \"default\",\n size = \"md\",\n shape = \"rectangle\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading && children) {\n return <>{children}</>;\n }\n\n const style = {\n width: width || undefined,\n height: height || undefined,\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n skeletonVariants({ variant, size, shape, animation }),\n className,\n )}\n style={style}\n aria-label=\"Loading content\"\n role=\"status\"\n {...props}\n />\n );\n },\n);\n\nSkeletonComponent.displayName = \"Skeleton\";\n\n// Memoize Skeleton for performance optimization\nexport const Skeleton = memo(SkeletonComponent) as typeof SkeletonComponent;\n\n// Skeleton Text Component\nexport const SkeletonText = React.forwardRef<HTMLDivElement, SkeletonTextProps>(\n (\n {\n className,\n lines = 3,\n lastLineWidth = \"75%\",\n spacing = \"md\",\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n const spacingClasses = {\n none: \"space-y-0\",\n sm: \"space-y-1\",\n md: \"space-y-2\",\n lg: \"space-y-3\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(\"space-y-2\", spacingClasses[spacing], className)}\n aria-label=\"Loading text content\"\n role=\"status\"\n {...props}\n >\n {Array.from({ length: lines }, (_, index) => (\n <div\n key={index}\n className={cn(\n skeletonVariants({ variant, animation }),\n \"h-4 rounded-md\",\n index === lines - 1 && \"w-3/4\",\n )}\n style={{\n width: index === lines - 1 ? lastLineWidth : \"100%\",\n }}\n />\n ))}\n </div>\n );\n },\n);\n\nSkeletonText.displayName = \"SkeletonText\";\n\n// Skeleton Avatar Component\nexport const SkeletonAvatar = React.forwardRef<\n HTMLDivElement,\n SkeletonAvatarProps\n>(\n (\n {\n className,\n size = \"md\",\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n const sizeClasses = {\n xs: \"h-6 w-6\",\n sm: \"h-8 w-8\",\n md: \"h-10 w-10\",\n lg: \"h-12 w-12\",\n xl: \"h-16 w-16\",\n \"2xl\": \"h-20 w-20\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n skeletonVariants({ variant, animation }),\n \"rounded-full\",\n sizeClasses[size],\n className,\n )}\n aria-label=\"Loading avatar\"\n role=\"status\"\n {...props}\n />\n );\n },\n);\n\nSkeletonAvatar.displayName = \"SkeletonAvatar\";\n\n// Skeleton Button Component\nexport const SkeletonButton = React.forwardRef<\n HTMLDivElement,\n SkeletonButtonProps\n>(\n (\n {\n className,\n size = \"md\",\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n const sizeClasses = {\n sm: \"h-8 px-3\",\n md: \"h-10 px-4\",\n lg: \"h-12 px-6\",\n };\n\n const variantClasses = {\n default: \"bg-muted\",\n primary: \"bg-primary/10\",\n secondary: \"bg-secondary\",\n outline: \"bg-muted/50 border border-border\",\n ghost: \"bg-muted/50\",\n };\n\n const finalVariant = variant || \"default\";\n\n return (\n <div\n ref={ref}\n className={cn(\n skeletonVariants({ animation }),\n \"rounded-md\",\n sizeClasses[size],\n variantClasses[finalVariant],\n className,\n )}\n aria-label=\"Loading button\"\n role=\"status\"\n {...props}\n />\n );\n },\n);\n\nSkeletonButton.displayName = \"SkeletonButton\";\n\n// Skeleton Card Component\nexport const SkeletonCard = React.forwardRef<HTMLDivElement, SkeletonCardProps>(\n (\n {\n className,\n showAvatar = true,\n showActions = true,\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"p-6 border border-border rounded-lg bg-card\", className)}\n aria-label=\"Loading card content\"\n role=\"status\"\n {...props}\n >\n <div className=\"space-y-4\">\n {/* Header with avatar and title */}\n <div className=\"flex items-center space-x-3\">\n {showAvatar && (\n <SkeletonAvatar\n size=\"md\"\n variant={variant}\n animation={animation}\n />\n )}\n <div className=\"flex-1 space-y-2\">\n <Skeleton\n className=\"h-4 w-3/4\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-3 w-1/2\"\n variant={variant}\n animation={animation}\n />\n </div>\n </div>\n\n {/* Content */}\n <div className=\"space-y-2\">\n <Skeleton\n className=\"h-4 w-full\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-4 w-5/6\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-4 w-4/5\"\n variant={variant}\n animation={animation}\n />\n </div>\n\n {/* Actions */}\n {showActions && (\n <div className=\"flex space-x-2 pt-4\">\n <SkeletonButton size=\"sm\" animation={animation} />\n <SkeletonButton size=\"sm\" animation={animation} />\n </div>\n )}\n </div>\n </div>\n );\n },\n);\n\nSkeletonCard.displayName = \"SkeletonCard\";\n\n// Skeleton Table Component\nexport const SkeletonTable = React.forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n className,\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"space-y-3\", className)}\n aria-label=\"Loading table content\"\n role=\"status\"\n {...props}\n >\n {/* Header */}\n <div className=\"grid grid-cols-4 gap-4\">\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n </div>\n\n {/* Rows */}\n {Array.from({ length: 5 }, (_, index) => (\n <div key={index} className=\"grid grid-cols-4 gap-4\">\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n <Skeleton className=\"h-4\" variant={variant} animation={animation} />\n </div>\n ))}\n </div>\n );\n },\n);\n\nSkeletonTable.displayName = \"SkeletonTable\";\n\n// Skeleton List Component\nexport const SkeletonList = React.forwardRef<\n HTMLDivElement,\n SkeletonProps & { items?: number }\n>(\n (\n {\n className,\n items = 5,\n variant = \"default\",\n animation = \"pulse\",\n loading = true,\n ...props\n },\n ref,\n ) => {\n if (!loading) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"space-y-3\", className)}\n aria-label=\"Loading list content\"\n role=\"status\"\n {...props}\n >\n {Array.from({ length: items }, (_, index) => (\n <div key={index} className=\"flex items-center space-x-3\">\n <SkeletonAvatar size=\"sm\" variant={variant} animation={animation} />\n <div className=\"flex-1 space-y-2\">\n <Skeleton\n className=\"h-4 w-3/4\"\n variant={variant}\n animation={animation}\n />\n <Skeleton\n className=\"h-3 w-1/2\"\n variant={variant}\n animation={animation}\n />\n </div>\n </div>\n ))}\n </div>\n );\n },\n);\n\nSkeletonList.displayName = \"SkeletonList\";\n\n// Export variants for external use\nexport { skeletonVariants };\n"]}
|