@fayz-ai/ui 0.8.3 → 0.8.5

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.
Files changed (88) hide show
  1. package/dist/ChartWidgetInner-GDE5PBTR.js +46 -0
  2. package/dist/ChartWidgetInner-GDE5PBTR.js.map +1 -0
  3. package/dist/{chunk-BVF2KPTT.js → chunk-G6OKZ7WL.js} +30 -3
  4. package/dist/chunk-G6OKZ7WL.js.map +1 -0
  5. package/dist/{chunk-ID2HQK2Q.js → chunk-KV3MHB6N.js} +116 -213
  6. package/dist/chunk-KV3MHB6N.js.map +1 -0
  7. package/dist/{chunk-A7O7KGNL.js → chunk-OUPJDGKE.js} +27 -43
  8. package/dist/chunk-OUPJDGKE.js.map +1 -0
  9. package/dist/chunk-PVIB724L.js +161 -0
  10. package/dist/chunk-PVIB724L.js.map +1 -0
  11. package/dist/{chunk-O5F4LLSL.js → chunk-VDAYIQX4.js} +208 -8
  12. package/dist/chunk-VDAYIQX4.js.map +1 -0
  13. package/dist/{chunk-2GDQUARM.js → chunk-YLQGUJAQ.js} +24 -42
  14. package/dist/chunk-YLQGUJAQ.js.map +1 -0
  15. package/dist/dashboard/ChartWidget.d.ts.map +1 -1
  16. package/dist/dashboard/ChartWidgetInner.d.ts +11 -0
  17. package/dist/dashboard/ChartWidgetInner.d.ts.map +1 -0
  18. package/dist/dashboard/OnboardingWidget.d.ts.map +1 -1
  19. package/dist/dashboard/index.js +3 -2
  20. package/dist/icons.d.ts +8 -0
  21. package/dist/icons.d.ts.map +1 -0
  22. package/dist/icons.js +3 -0
  23. package/dist/icons.js.map +1 -0
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +6 -6
  27. package/dist/layout/Sidebar.d.ts +5 -2
  28. package/dist/layout/Sidebar.d.ts.map +1 -1
  29. package/dist/layout/index.js +2 -1
  30. package/dist/preset.cjs +201 -11
  31. package/dist/preset.cjs.map +1 -1
  32. package/dist/preset.js +201 -1
  33. package/dist/preset.js.map +1 -1
  34. package/dist/primitives/date-picker.d.ts +7 -1
  35. package/dist/primitives/date-picker.d.ts.map +1 -1
  36. package/dist/primitives/index.js +2 -2
  37. package/dist/primitives/search-select.d.ts +3 -1
  38. package/dist/primitives/search-select.d.ts.map +1 -1
  39. package/dist/tailwind.cjs +199 -2
  40. package/dist/tailwind.cjs.map +1 -1
  41. package/dist/tailwind.js +198 -1
  42. package/dist/tailwind.js.map +1 -1
  43. package/dist/theme/index.d.ts.map +1 -1
  44. package/dist/theme/index.js +1 -2
  45. package/package.json +24 -22
  46. package/src/dashboard/ChartWidget.tsx +8 -65
  47. package/src/dashboard/ChartWidgetInner.tsx +83 -0
  48. package/src/dashboard/OnboardingWidget.tsx +32 -1
  49. package/src/dashboard/icon.ts +2 -2
  50. package/src/icons.ts +66 -0
  51. package/src/index.ts +4 -0
  52. package/src/layout/Sidebar.tsx +70 -136
  53. package/src/primitives/date-picker.tsx +30 -4
  54. package/src/primitives/search-select.tsx +12 -4
  55. package/src/theme/index.ts +9 -6
  56. package/dist/chunk-2GDQUARM.js.map +0 -1
  57. package/dist/chunk-2P7T6QQK.cjs +0 -206
  58. package/dist/chunk-2P7T6QQK.cjs.map +0 -1
  59. package/dist/chunk-A7O7KGNL.js.map +0 -1
  60. package/dist/chunk-BVF2KPTT.js.map +0 -1
  61. package/dist/chunk-H6OULCHF.cjs +0 -81
  62. package/dist/chunk-H6OULCHF.cjs.map +0 -1
  63. package/dist/chunk-ID2HQK2Q.js.map +0 -1
  64. package/dist/chunk-IWBXYV4U.js +0 -203
  65. package/dist/chunk-IWBXYV4U.js.map +0 -1
  66. package/dist/chunk-MI6FOB4O.cjs +0 -351
  67. package/dist/chunk-MI6FOB4O.cjs.map +0 -1
  68. package/dist/chunk-O5F4LLSL.js.map +0 -1
  69. package/dist/chunk-OW73RZOU.cjs +0 -313
  70. package/dist/chunk-OW73RZOU.cjs.map +0 -1
  71. package/dist/chunk-SVVKUMSL.cjs +0 -1733
  72. package/dist/chunk-SVVKUMSL.cjs.map +0 -1
  73. package/dist/chunk-TDGSY5W6.cjs +0 -474
  74. package/dist/chunk-TDGSY5W6.cjs.map +0 -1
  75. package/dist/chunk-WF3STNDX.cjs +0 -682
  76. package/dist/chunk-WF3STNDX.cjs.map +0 -1
  77. package/dist/chunk-XIRJGVDK.cjs +0 -1826
  78. package/dist/chunk-XIRJGVDK.cjs.map +0 -1
  79. package/dist/dashboard/index.cjs +0 -106
  80. package/dist/dashboard/index.cjs.map +0 -1
  81. package/dist/index.cjs +0 -650
  82. package/dist/index.cjs.map +0 -1
  83. package/dist/layout/index.cjs +0 -98
  84. package/dist/layout/index.cjs.map +0 -1
  85. package/dist/primitives/index.cjs +0 -363
  86. package/dist/primitives/index.cjs.map +0 -1
  87. package/dist/theme/index.cjs +0 -41
  88. package/dist/theme/index.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/stores/theme.store.ts","../src/theme/preset.ts","../src/theme/presets.ts","../src/theme/index.ts"],"names":[],"mappings":"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","file":"chunk-VDAYIQX4.js","sourcesContent":["import { create, type StoreApi, type UseBoundStore } from 'zustand'\n\n// ---------------------------------------------------------------------------\n// Theme token types\n// ---------------------------------------------------------------------------\n\nexport interface SemanticColors {\n primary: string\n primaryForeground: string\n secondary: string\n secondaryForeground: string\n accent: string\n accentForeground: string\n background: string\n foreground: string\n card: string\n cardForeground: string\n muted: string\n mutedForeground: string\n border: string\n input: string\n ring: string\n popover: string\n popoverForeground: string\n destructive: string\n destructiveForeground: string\n success: string\n successForeground: string\n warning: string\n warningForeground: string\n // Layout surface colors\n sidebar: string\n sidebarForeground: string\n sidebarBorder: string\n sidebarAccent: string\n sidebarAccentForeground: string\n sidebarMuted: string\n content: string\n}\n\nexport interface UIPerceptionTokens {\n buttonRadius: string\n cardRadius: string\n inputRadius: string\n modalRadius: string\n fontFamily: string\n fontFamilyMono: string\n shadowSm: string\n shadowMd: string\n shadowLg: string\n shadowButton?: string\n shadowButtonPrimary?: string\n shadowButtonInset?: string\n surfaceBackdropFilter?: string\n modalBackground?: string\n modalBorder?: string\n modalOverlayBackground?: string\n modalOverlayBackdropFilter?: string\n modalShadow?: string\n glassEdgeGradient?: string\n glassPrimaryEdgeGradient?: string\n glassInnerHighlight?: string\n fieldBackground?: string\n fieldBorder?: string\n fieldShadow?: string\n buttonBackground?: string\n buttonBackgroundHover?: string\n buttonBorder?: string\n buttonPrimaryBackground?: string\n buttonPrimaryBackgroundHover?: string\n buttonPrimaryBorder?: string\n buttonBackdropFilter?: string\n}\n\nexport interface ThemeTokens {\n name: string\n colors: SemanticColors\n perception: UIPerceptionTokens\n}\n\nexport interface CreateThemeOptions {\n name?: string\n colors?: Partial<SemanticColors>\n /** Dark mode color overrides — applied instead of `colors` when in dark mode */\n darkColors?: Partial<SemanticColors>\n perception?: Partial<UIPerceptionTokens>\n /** Shorthand: single HSL value that auto-derives primary, ring, and accent */\n brand?: string\n}\n\n// ---------------------------------------------------------------------------\n// Built-in themes\n// ---------------------------------------------------------------------------\n\nexport const lightTheme: ThemeTokens = {\n name: 'light',\n colors: {\n primary: '0 0% 18.8%',\n primaryForeground: '0 0% 100%',\n secondary: '0 0% 96.9%',\n secondaryForeground: '0 0% 18.8%',\n accent: '0 0% 94.5%',\n accentForeground: '0 0% 18.8%',\n background: '0 0% 94.5%',\n foreground: '0 0% 18.8%',\n card: '0 0% 100%',\n cardForeground: '0 0% 18.8%',\n muted: '0 0% 96.9%',\n mutedForeground: '0 0% 38%',\n border: '0 0% 89%',\n input: '0 0% 54.1%',\n ring: '214 100% 41.4%',\n popover: '0 0% 100%',\n popoverForeground: '0 0% 18.8%',\n destructive: '354 92% 41%',\n destructiveForeground: '0 0% 100%',\n success: '167 95% 25.1%',\n successForeground: '0 0% 100%',\n warning: '43 100% 50%',\n warningForeground: '0 0% 18.8%',\n sidebar: '0 0% 92.2%',\n sidebarForeground: '0 0% 18.8%',\n sidebarBorder: '0 0% 86.3%',\n sidebarAccent: '0 0% 100%',\n sidebarAccentForeground: '0 0% 18.8%',\n sidebarMuted: '0 0% 38%',\n content: '0 0% 94.5%',\n },\n perception: {\n buttonRadius: '0.5rem',\n cardRadius: '0.5rem',\n inputRadius: '0.5rem',\n modalRadius: '1rem',\n fontFamily: 'Inter, ui-sans-serif, system-ui, -apple-system, sans-serif',\n fontFamilyMono: 'JetBrains Mono, ui-monospace, SFMono-Regular, monospace',\n shadowSm: '0 1px 0 rgba(0, 0, 0, 0.05), 0 1px 3px 0 rgba(26, 26, 26, 0.06), 0 1px 2px -1px rgba(26, 26, 26, 0.06)',\n shadowMd: '0 1px 1px -1px rgba(26, 26, 26, 0.07), 0 4px 8px -2px rgba(26, 26, 26, 0.10)',\n shadowLg: '0 4px 12px -2px rgba(26, 26, 26, 0.15), 0 1px 3px rgba(26, 26, 26, 0.08)',\n shadowButton:\n 'inset 0 -1px 0 rgba(0,0,0,0.10), inset 0 1px 0 rgba(255,255,255,0.50), 0 1px 0 rgba(0,0,0,0.05)',\n shadowButtonPrimary:\n 'inset 0 -1px 0 rgba(0,0,0,0.20), inset 0 1px 0 rgba(255,255,255,0.20), 0 1px 1.5px rgba(0,0,0,0.20)',\n shadowButtonInset:\n 'inset 0 2px 1px -1px rgba(0,0,0,0.20), inset 0 0 0 1px rgba(0,0,0,0.05)',\n surfaceBackdropFilter: 'none',\n buttonBackground: 'hsl(var(--card))',\n buttonBackgroundHover: 'hsl(var(--muted))',\n buttonBorder: 'hsl(var(--border))',\n buttonPrimaryBackground: 'hsl(var(--primary))',\n buttonPrimaryBackgroundHover: 'hsl(var(--primary) / 0.9)',\n buttonPrimaryBorder: 'hsl(var(--primary))',\n buttonBackdropFilter: 'none',\n },\n}\n\nexport const darkTheme: ThemeTokens = {\n name: 'dark',\n colors: {\n primary: '0 0% 100%',\n primaryForeground: '0 0% 10.2%',\n secondary: '0 0% 18.8%',\n secondaryForeground: '0 0% 89%',\n accent: '0 0% 22.7%',\n accentForeground: '0 0% 100%',\n background: '0 0% 10.2%',\n foreground: '0 0% 89%',\n card: '0 0% 14.9%',\n cardForeground: '0 0% 89%',\n muted: '0 0% 18.8%',\n mutedForeground: '0 0% 64.7%',\n border: '0 0% 22.7%',\n input: '0 0% 32.2%',\n ring: '217 100% 68.4%',\n popover: '0 0% 18.8%',\n popoverForeground: '0 0% 89%',\n destructive: '7 100% 44.9%',\n destructiveForeground: '0 0% 100%',\n success: '156 71% 42.5%',\n successForeground: '0 0% 0%',\n warning: '41 100% 65.1%',\n warningForeground: '0 0% 10.2%',\n sidebar: '0 0% 10.2%',\n sidebarForeground: '0 0% 89%',\n sidebarBorder: '0 0% 16.5%',\n sidebarAccent: '0 0% 18.8%',\n sidebarAccentForeground: '0 0% 100%',\n sidebarMuted: '0 0% 64.7%',\n content: '0 0% 10.2%',\n },\n perception: {\n buttonRadius: '0.5rem',\n cardRadius: '0.5rem',\n inputRadius: '0.5rem',\n modalRadius: '1rem',\n fontFamily: 'Inter, ui-sans-serif, system-ui, -apple-system, sans-serif',\n fontFamilyMono: 'JetBrains Mono, ui-monospace, SFMono-Regular, monospace',\n shadowSm: '0 1px 0 rgba(0, 0, 0, 0.4), 0 1px 3px 0 rgba(0, 0, 0, 0.35), 0 1px 2px -1px rgba(0, 0, 0, 0.35)',\n shadowMd: '0 1px 1px -1px rgba(0, 0, 0, 0.5), 0 4px 8px -2px rgba(0, 0, 0, 0.6)',\n shadowLg: '0 4px 12px -2px rgba(0, 0, 0, 0.6), 0 1px 3px rgba(0, 0, 0, 0.4)',\n shadowButton:\n 'inset 0 -1px 0 rgba(0,0,0,0.40), inset 0 1px 0 rgba(255,255,255,0.08), 0 1px 0 rgba(0,0,0,0.30)',\n shadowButtonPrimary:\n 'inset 0 -1px 0 rgba(0,0,0,0.20), inset 0 1px 0 rgba(255,255,255,0.40), 0 1px 1.5px rgba(0,0,0,0.40)',\n shadowButtonInset:\n 'inset 0 2px 1px -1px rgba(0,0,0,0.50), inset 0 0 0 1px rgba(0,0,0,0.20)',\n surfaceBackdropFilter: 'none',\n buttonBackground: 'hsl(var(--card))',\n buttonBackgroundHover: 'hsl(var(--muted))',\n buttonBorder: 'hsl(var(--border))',\n buttonPrimaryBackground: 'hsl(var(--primary))',\n buttonPrimaryBackgroundHover: 'hsl(var(--primary) / 0.9)',\n buttonPrimaryBorder: 'hsl(var(--primary))',\n buttonBackdropFilter: 'none',\n },\n}\n\n// ---------------------------------------------------------------------------\n// CSS variable maps\n// ---------------------------------------------------------------------------\n\nconst colorVarMap: Record<string, string> = {\n primary: '--primary',\n primaryForeground: '--primary-foreground',\n secondary: '--secondary',\n secondaryForeground: '--secondary-foreground',\n accent: '--accent',\n accentForeground: '--accent-foreground',\n background: '--background',\n foreground: '--foreground',\n card: '--card',\n cardForeground: '--card-foreground',\n muted: '--muted',\n mutedForeground: '--muted-foreground',\n border: '--border',\n input: '--input',\n ring: '--ring',\n popover: '--popover',\n popoverForeground: '--popover-foreground',\n destructive: '--destructive',\n destructiveForeground: '--destructive-foreground',\n success: '--success',\n successForeground: '--success-foreground',\n warning: '--warning',\n warningForeground: '--warning-foreground',\n sidebar: '--sidebar',\n sidebarForeground: '--sidebar-foreground',\n sidebarBorder: '--sidebar-border',\n sidebarAccent: '--sidebar-accent',\n sidebarAccentForeground: '--sidebar-accent-foreground',\n sidebarMuted: '--sidebar-muted',\n content: '--content',\n}\n\nconst perceptionVarMap: Record<string, string> = {\n buttonRadius: '--button-radius',\n cardRadius: '--card-radius',\n inputRadius: '--input-radius',\n modalRadius: '--modal-radius',\n fontFamily: '--font-family',\n fontFamilyMono: '--font-family-mono',\n shadowSm: '--shadow-sm',\n shadowMd: '--shadow-md',\n shadowLg: '--shadow-lg',\n shadowButton: '--shadow-button',\n shadowButtonPrimary: '--shadow-button-primary',\n shadowButtonInset: '--shadow-button-inset',\n surfaceBackdropFilter: '--surface-backdrop-filter',\n modalBackground: '--modal-bg',\n modalBorder: '--modal-border',\n modalOverlayBackground: '--modal-overlay-bg',\n modalOverlayBackdropFilter: '--modal-overlay-backdrop-filter',\n modalShadow: '--modal-shadow',\n glassEdgeGradient: '--glass-edge-gradient',\n glassPrimaryEdgeGradient: '--glass-primary-edge-gradient',\n glassInnerHighlight: '--glass-inner-highlight',\n fieldBackground: '--field-bg',\n fieldBorder: '--field-border',\n fieldShadow: '--field-shadow',\n buttonBackground: '--button-bg',\n buttonBackgroundHover: '--button-hover-bg',\n buttonBorder: '--button-border',\n buttonPrimaryBackground: '--button-primary-bg',\n buttonPrimaryBackgroundHover: '--button-primary-hover-bg',\n buttonPrimaryBorder: '--button-primary-border',\n buttonBackdropFilter: '--button-backdrop-filter',\n}\n\nfunction applyTheme(theme: ThemeTokens, element?: HTMLElement): void {\n const target = element ?? document.documentElement\n\n for (const [key, cssVar] of Object.entries(colorVarMap)) {\n const value = theme.colors[key as keyof typeof theme.colors]\n if (value) {\n target.style.setProperty(cssVar, value)\n }\n }\n\n for (const [key, cssVar] of Object.entries(perceptionVarMap)) {\n const value = theme.perception[key as keyof typeof theme.perception]\n if (value) {\n target.style.setProperty(cssVar, value)\n }\n }\n}\n\n// ---------------------------------------------------------------------------\n// Store\n// ---------------------------------------------------------------------------\n\ntype ThemeMode = 'light' | 'dark' | 'system'\n\nconst STORAGE_KEY = 'fayz-ui:theme-mode'\n\ninterface ThemeState {\n mode: ThemeMode\n resolvedMode: 'light' | 'dark'\n /** Only the user's partial overrides — NOT a full theme */\n overrides: CreateThemeOptions | null\n setMode: (mode: ThemeMode) => void\n setOverrides: (overrides: CreateThemeOptions | null) => void\n initialize: () => void\n // Keep old API name working\n setCustomTheme: (theme: ThemeTokens | null) => void\n}\n\nfunction getSystemPreference(): 'light' | 'dark' {\n if (typeof window === 'undefined') return 'light'\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n}\n\nfunction getSavedMode(): ThemeMode {\n if (typeof window === 'undefined') return 'light'\n const saved = localStorage.getItem(STORAGE_KEY)\n if (saved === 'light' || saved === 'dark' || saved === 'system') return saved\n return 'light'\n}\n\nfunction resolveMode(mode: ThemeMode): 'light' | 'dark' {\n return mode === 'system' ? getSystemPreference() : mode\n}\n\n/** Merge base theme (light or dark) with user's partial overrides */\nfunction buildTheme(base: ThemeTokens, overrides: CreateThemeOptions | null): ThemeTokens {\n if (!overrides) return base\n\n const isDark = base.name === 'dark'\n const colors = { ...base.colors }\n\n // Brand shorthand: derive primary, ring, accent from single HSL\n if (overrides.brand) {\n colors.primary = overrides.brand\n colors.primaryForeground = '0 0% 100%'\n colors.ring = overrides.brand\n const parts = overrides.brand.split(' ')\n if (parts.length >= 3) {\n const hue = (parseFloat(parts[0]) - 50 + 360) % 360\n colors.accent = `${hue} ${parts[1]} ${parts[2]}`\n colors.accentForeground = '0 0% 100%'\n }\n }\n\n // Apply explicit color overrides.\n const colorOverrides = isDark && overrides.darkColors\n ? overrides.darkColors\n : overrides.colors\n\n if (colorOverrides) {\n for (const [key, value] of Object.entries(colorOverrides)) {\n if (value !== undefined) {\n (colors as any)[key] = value\n }\n }\n }\n\n return {\n name: overrides.name ?? base.name,\n colors,\n perception: {\n ...base.perception,\n ...(overrides.perception ?? {}),\n },\n }\n}\n\nconst STORE_KEY = '__fayz_ui_theme_store__'\n\nfunction createThemeStore(): UseBoundStore<StoreApi<ThemeState>> {\n // Window-level singleton to survive linked-package dual-module loading\n if (typeof window !== 'undefined' && (window as any)[STORE_KEY]) {\n return (window as any)[STORE_KEY]\n }\n\n const store = create<ThemeState>((set, get) => ({\n mode: getSavedMode(),\n resolvedMode: 'light',\n overrides: null,\n\n setMode: (mode) => {\n const resolved = resolveMode(mode)\n set({ mode, resolvedMode: resolved })\n\n if (typeof window !== 'undefined') {\n localStorage.setItem(STORAGE_KEY, mode)\n }\n\n const { overrides } = get()\n const baseTheme = resolved === 'dark' ? darkTheme : lightTheme\n const theme = buildTheme(baseTheme, overrides)\n\n if (typeof document !== 'undefined') {\n document.documentElement.classList.add('theme-transitioning')\n applyTheme(theme)\n document.documentElement.classList.toggle('dark', resolved === 'dark')\n setTimeout(() => {\n document.documentElement.classList.remove('theme-transitioning')\n }, 450)\n } else {\n applyTheme(theme)\n }\n },\n\n setOverrides: (overrides) => {\n set({ overrides })\n const { resolvedMode } = get()\n const baseTheme = resolvedMode === 'dark' ? darkTheme : lightTheme\n const theme = buildTheme(baseTheme, overrides)\n applyTheme(theme)\n },\n\n // Legacy compat\n setCustomTheme: (_theme) => {\n // Ignore — callers should use setOverrides now\n },\n\n initialize: () => {\n const { mode, setMode } = get()\n setMode(mode)\n\n if (typeof window !== 'undefined') {\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {\n const current = get()\n if (current.mode === 'system') {\n current.setMode('system')\n }\n })\n }\n },\n }))\n\n if (typeof window !== 'undefined') {\n (window as any)[STORE_KEY] = store\n }\n\n return store\n}\n\nexport const useThemeStore = createThemeStore()\n","import type { Config } from 'tailwindcss'\n\n/**\n * Tailwind CSS preset for @fayz-ai/ui.\n * Include this in your tailwind.config.ts:\n *\n * import { fayzUiPreset } from '@fayz-ai/ui/theme'\n * export default { presets: [fayzUiPreset], ... }\n */\nconst fayzUiPreset: Partial<Config> = {\n darkMode: 'class',\n theme: {\n extend: {\n colors: {\n border: 'hsl(var(--border))',\n input: 'hsl(var(--input))',\n ring: 'hsl(var(--ring))',\n background: 'hsl(var(--background))',\n foreground: 'hsl(var(--foreground))',\n primary: {\n DEFAULT: 'hsl(var(--primary))',\n foreground: 'hsl(var(--primary-foreground))',\n },\n secondary: {\n DEFAULT: 'hsl(var(--secondary))',\n foreground: 'hsl(var(--secondary-foreground))',\n },\n destructive: {\n DEFAULT: 'hsl(var(--destructive))',\n foreground: 'hsl(var(--destructive-foreground))',\n },\n success: {\n DEFAULT: 'hsl(var(--success))',\n foreground: 'hsl(var(--success-foreground))',\n },\n warning: {\n DEFAULT: 'hsl(var(--warning))',\n foreground: 'hsl(var(--warning-foreground))',\n },\n info: {\n DEFAULT: 'hsl(var(--info))',\n foreground: 'hsl(var(--info-foreground))',\n },\n magic: {\n DEFAULT: 'hsl(var(--magic))',\n foreground: 'hsl(var(--magic-foreground))',\n },\n 'info-soft': {\n DEFAULT: 'hsl(var(--info-soft))',\n foreground: 'hsl(var(--info-soft-foreground))',\n },\n 'success-soft': {\n DEFAULT: 'hsl(var(--success-soft))',\n foreground: 'hsl(var(--success-soft-foreground))',\n },\n 'warning-soft': {\n DEFAULT: 'hsl(var(--warning-soft))',\n foreground: 'hsl(var(--warning-soft-foreground))',\n },\n 'destructive-soft': {\n DEFAULT: 'hsl(var(--destructive-soft))',\n foreground: 'hsl(var(--destructive-soft-foreground))',\n },\n 'magic-soft': {\n DEFAULT: 'hsl(var(--magic-soft))',\n foreground: 'hsl(var(--magic-soft-foreground))',\n },\n muted: {\n DEFAULT: 'hsl(var(--muted))',\n foreground: 'hsl(var(--muted-foreground))',\n },\n accent: {\n DEFAULT: 'hsl(var(--accent))',\n foreground: 'hsl(var(--accent-foreground))',\n },\n card: {\n DEFAULT: 'hsl(var(--card))',\n foreground: 'hsl(var(--card-foreground))',\n },\n popover: {\n DEFAULT: 'hsl(var(--popover))',\n foreground: 'hsl(var(--popover-foreground))',\n },\n // Layout surface tokens\n sidebar: {\n DEFAULT: 'hsl(var(--sidebar))',\n foreground: 'hsl(var(--sidebar-foreground))',\n border: 'hsl(var(--sidebar-border))',\n accent: 'hsl(var(--sidebar-accent))',\n 'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',\n muted: 'hsl(var(--sidebar-muted))',\n },\n content: 'hsl(var(--content))',\n },\n borderRadius: {\n button: 'var(--button-radius)',\n card: 'var(--card-radius)',\n input: 'var(--input-radius)',\n modal: 'var(--modal-radius)',\n },\n fontFamily: {\n sans: ['var(--font-family)'],\n mono: ['var(--font-family-mono)'],\n },\n boxShadow: {\n sm: 'var(--shadow-sm)',\n md: 'var(--shadow-md)',\n lg: 'var(--shadow-lg)',\n button: 'var(--shadow-button)',\n 'button-primary': 'var(--shadow-button-primary)',\n 'button-inset': 'var(--shadow-button-inset)',\n },\n keyframes: {\n 'fade-in': {\n from: { opacity: '0' },\n to: { opacity: '1' },\n },\n 'fade-out': {\n from: { opacity: '1' },\n to: { opacity: '0' },\n },\n 'zoom-in': {\n from: { transform: 'scale(0.95)', opacity: '0' },\n to: { transform: 'scale(1)', opacity: '1' },\n },\n 'zoom-out': {\n from: { transform: 'scale(1)', opacity: '1' },\n to: { transform: 'scale(0.95)', opacity: '0' },\n },\n 'slide-in-from-top': {\n from: { transform: 'translateY(-4px)', opacity: '0' },\n to: { transform: 'translateY(0)', opacity: '1' },\n },\n 'slide-in-from-bottom': {\n from: { transform: 'translateY(4px)', opacity: '0' },\n to: { transform: 'translateY(0)', opacity: '1' },\n },\n 'slide-out-to-top': {\n from: { transform: 'translateY(0)', opacity: '1' },\n to: { transform: 'translateY(-4px)', opacity: '0' },\n },\n 'page-in': {\n from: { opacity: '0', transform: 'translateY(6px)' },\n to: { opacity: '1', transform: 'translateY(0)' },\n },\n 'slide-in-from-right': {\n from: { transform: 'translateX(100%)' },\n to: { transform: 'translateX(0)' },\n },\n 'slide-out-to-right': {\n from: { transform: 'translateX(0)' },\n to: { transform: 'translateX(100%)' },\n },\n 'fade-up': {\n from: { opacity: '0', transform: 'translateY(18px)' },\n to: { opacity: '1', transform: 'translateY(0)' },\n },\n kenburns: {\n from: { transform: 'scale(1)' },\n to: { transform: 'scale(1.07)' },\n },\n 'badge-pop': {\n '0%': { transform: 'scale(0.6)' },\n '60%': { transform: 'scale(1.25)' },\n '100%': { transform: 'scale(1)' },\n },\n 'draw-check': {\n from: { 'stroke-dashoffset': '48' },\n to: { 'stroke-dashoffset': '0' },\n },\n 'pop-in': {\n '0%': { transform: 'scale(0)', opacity: '0' },\n '70%': { transform: 'scale(1.15)', opacity: '1' },\n '100%': { transform: 'scale(1)', opacity: '1' },\n },\n 'confetti-fall': {\n '0%': { transform: 'translateY(-10px) rotate(0deg)', opacity: '1' },\n '100%': { transform: 'translateY(140px) rotate(540deg)', opacity: '0' },\n },\n 'pulse-soft': {\n '0%, 100%': { opacity: '1' },\n '50%': { opacity: '0.55' },\n },\n },\n animation: {\n 'fade-in': 'fade-in 200ms ease-out',\n 'fade-out': 'fade-out 150ms ease-in',\n 'zoom-in': 'zoom-in 200ms ease-out',\n 'zoom-out': 'zoom-out 150ms ease-in',\n 'slide-in-from-top': 'slide-in-from-top 200ms ease-out',\n 'slide-in-from-bottom': 'slide-in-from-bottom 200ms ease-out',\n 'slide-out-to-top': 'slide-out-to-top 150ms ease-in',\n 'slide-in-from-right': 'slide-in-from-right 250ms cubic-bezier(0.16, 1, 0.3, 1)',\n 'slide-out-to-right': 'slide-out-to-right 200ms ease-in',\n 'page-in': 'page-in 250ms ease-out',\n 'fade-up': 'fade-up 600ms cubic-bezier(0.16, 1, 0.3, 1) both',\n kenburns: 'kenburns 9s ease-out both',\n 'badge-pop': 'badge-pop 350ms cubic-bezier(0.34, 1.56, 0.64, 1)',\n 'draw-check': 'draw-check 600ms ease-out 250ms both',\n 'pop-in': 'pop-in 450ms cubic-bezier(0.34, 1.56, 0.64, 1) both',\n 'confetti-fall': 'confetti-fall 1100ms ease-in both',\n 'pulse-soft': 'pulse-soft 1.6s ease-in-out infinite',\n },\n },\n },\n}\n\nexport default fayzUiPreset\nexport { fayzUiPreset }\n","import { darkTheme, lightTheme, type CreateThemeOptions } from '../stores/theme.store'\n\nexport type FayzThemePresetId = 'classic_admin' | 'liquid_glass'\n\nfunction mergeThemeOptions(base: CreateThemeOptions, overrides: CreateThemeOptions = {}): CreateThemeOptions {\n return {\n ...base,\n ...overrides,\n colors: {\n ...(base.colors ?? {}),\n ...(overrides.colors ?? {}),\n },\n darkColors: {\n ...(base.darkColors ?? {}),\n ...(overrides.darkColors ?? {}),\n },\n perception: {\n ...(base.perception ?? {}),\n ...(overrides.perception ?? {}),\n },\n }\n}\n\nexport const fayzThemePresets: Record<FayzThemePresetId, CreateThemeOptions> = {\n classic_admin: {\n name: 'classic_admin',\n colors: lightTheme.colors,\n darkColors: darkTheme.colors,\n perception: lightTheme.perception,\n },\n liquid_glass: {\n name: 'liquid_glass',\n colors: {\n background: '260 38% 96%',\n content: '260 36% 96.5%',\n card: '0 0% 100% / 0.84',\n popover: '0 0% 100% / 0.96',\n secondary: '260 34% 93% / 0.82',\n muted: '260 30% 91% / 0.78',\n border: '260 26% 76% / 0.58',\n input: '260 24% 68% / 0.62',\n },\n darkColors: {\n background: '260 28% 9%',\n content: '260 28% 10%',\n card: '260 24% 16% / 0.72',\n popover: '260 24% 14% / 0.9',\n secondary: '260 20% 22% / 0.72',\n muted: '260 18% 20% / 0.68',\n border: '260 20% 35% / 0.58',\n input: '260 20% 38% / 0.68',\n },\n perception: {\n buttonRadius: '9999px',\n cardRadius: '1.25rem',\n inputRadius: '1rem',\n modalRadius: '1.5rem',\n surfaceBackdropFilter: 'blur(16px) saturate(1.24) brightness(1.03)',\n modalBackground:\n 'linear-gradient(145deg, rgb(255 255 255 / 0.82), rgb(249 247 255 / 0.72) 48%, rgb(255 255 255 / 0.64))',\n modalBorder: 'rgb(255 255 255 / 0.74)',\n modalOverlayBackground: 'rgb(26 20 38 / 0.22)',\n modalOverlayBackdropFilter: 'blur(5px) saturate(1.08)',\n modalShadow:\n '0 32px 82px -46px rgb(31 18 61 / 0.38), 0 1px 4px rgb(31 18 61 / 0.08), inset 0 1px 0 rgb(255 255 255 / 0.78), inset 0 0 0 1px rgb(255 255 255 / 0.28)',\n glassEdgeGradient:\n 'linear-gradient(145deg, rgb(255 255 255 / 0.96) 0%, rgb(255 255 255 / 0.44) 24%, rgb(171 151 211 / 0.34) 48%, rgb(45 35 76 / 0.22) 62%, rgb(255 255 255 / 0.7) 100%)',\n glassPrimaryEdgeGradient:\n 'linear-gradient(145deg, rgb(255 255 255 / 0.74) 0%, rgb(255 255 255 / 0.2) 28%, rgb(45 35 76 / 0.34) 58%, rgb(255 255 255 / 0.5) 100%)',\n glassInnerHighlight:\n 'inset 0 1px 0 rgb(255 255 255 / 0.72), inset 1px 0 0 rgb(255 255 255 / 0.28), inset 0 -1px 0 rgb(45 35 76 / 0.1)',\n fieldBackground:\n 'linear-gradient(135deg, rgb(255 255 255 / 0.9) 0%, rgb(250 248 255 / 0.82) 46%, rgb(242 238 252 / 0.74) 100%)',\n fieldBorder: 'rgb(174 158 205 / 0.58)',\n fieldShadow:\n 'inset 0 1px 0 rgb(255 255 255 / 0.8), inset 0 -1px 0 rgb(45 35 76 / 0.08), 0 12px 28px -24px rgb(31 18 61 / 0.28)',\n shadowSm: '0 10px 28px -20px rgb(31 18 61 / 0.34), inset 0 1px 0 rgb(255 255 255 / 0.54)',\n shadowMd: '0 22px 54px -32px rgb(31 18 61 / 0.42), inset 0 1px 0 rgb(255 255 255 / 0.58)',\n shadowLg: '0 34px 88px -42px rgb(31 18 61 / 0.48), inset 0 1px 0 rgb(255 255 255 / 0.62)',\n shadowButton:\n 'inset 0 1px 0 rgb(255 255 255 / 0.82), inset 0 -1px 0 rgb(31 18 61 / 0.08), 0 14px 30px -18px rgb(31 18 61 / 0.56)',\n shadowButtonPrimary:\n 'inset 0 1px 0 rgb(255 255 255 / 0.5), inset 0 -1px 0 rgb(31 18 61 / 0.26), 0 18px 36px -18px rgb(31 18 61 / 0.86)',\n shadowButtonInset:\n 'inset 0 2px 4px rgb(31 18 61 / 0.22), inset 0 0 0 1px rgb(255 255 255 / 0.24)',\n buttonBackground:\n 'linear-gradient(135deg, rgb(255 255 255 / 0.92) 0%, rgb(247 242 255 / 0.74) 48%, rgb(229 220 248 / 0.64) 100%)',\n buttonBackgroundHover:\n 'linear-gradient(135deg, rgb(255 255 255 / 0.98) 0%, rgb(249 244 255 / 0.86) 46%, rgb(231 222 250 / 0.78) 100%)',\n buttonBorder: 'rgb(194 178 221 / 0.86)',\n buttonPrimaryBackground:\n 'linear-gradient(135deg, rgb(255 255 255 / 0.28) 0%, hsl(var(--primary) / 0.94) 36%, hsl(278 42% 58% / 0.88) 100%)',\n buttonPrimaryBackgroundHover:\n 'linear-gradient(135deg, rgb(255 255 255 / 0.36) 0%, hsl(var(--primary) / 1) 34%, hsl(278 52% 62% / 0.94) 100%)',\n buttonPrimaryBorder: 'rgb(255 255 255 / 0.38)',\n buttonBackdropFilter: 'blur(18px) saturate(1.45)',\n },\n },\n}\n\nexport function createFayzTheme(\n preset: FayzThemePresetId = 'classic_admin',\n overrides: CreateThemeOptions = {},\n): CreateThemeOptions {\n return mergeThemeOptions(fayzThemePresets[preset] ?? fayzThemePresets.classic_admin, overrides)\n}\n","import * as React from 'react'\nimport { useThemeStore, type CreateThemeOptions, type ThemeTokens, lightTheme, darkTheme } from '../stores/theme.store'\n\n// ---------------------------------------------------------------------------\n// ThemeProvider\n// ---------------------------------------------------------------------------\n\nexport interface ThemeProviderProps {\n children: React.ReactNode\n /** Initial theme overrides to apply on mount */\n overrides?: CreateThemeOptions | null\n /** Default mode. Defaults to 'light'. */\n defaultMode?: 'light' | 'dark' | 'system'\n}\n\nexport function ThemeProvider({ children, overrides, defaultMode }: ThemeProviderProps) {\n const initialize = useThemeStore((s) => s.initialize)\n const setMode = useThemeStore((s) => s.setMode)\n const setOverrides = useThemeStore((s) => s.setOverrides)\n\n React.useEffect(() => {\n if (defaultMode) {\n setMode(defaultMode)\n }\n if (overrides !== undefined) {\n setOverrides(overrides)\n }\n initialize()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return children as React.ReactElement\n}\n\n// ---------------------------------------------------------------------------\n// useTheme\n// ---------------------------------------------------------------------------\n\nexport function useTheme() {\n const mode = useThemeStore((s) => s.mode)\n const resolvedMode = useThemeStore((s) => s.resolvedMode)\n const overrides = useThemeStore((s) => s.overrides)\n const setMode = useThemeStore((s) => s.setMode)\n const setOverrides = useThemeStore((s) => s.setOverrides)\n\n return {\n mode,\n resolvedMode,\n isDark: resolvedMode === 'dark',\n overrides,\n setMode,\n setOverrides,\n }\n}\n\n// ---------------------------------------------------------------------------\n// createTheme — build a ThemeTokens object from partial overrides\n// ---------------------------------------------------------------------------\n\nexport function createTheme(overrides: CreateThemeOptions): ThemeTokens {\n const colors = { ...lightTheme.colors, ...overrides.colors }\n\n // Brand shorthand: auto-derive primary, ring, accent from single HSL.\n // Explicit `colors.*` overrides win — the shorthand is a default, not a\n // mandate, so an app can pin any one of these without dropping the rest.\n if (overrides.brand) {\n const given = overrides.colors ?? {}\n if (given.primary == null) colors.primary = overrides.brand\n if (given.primaryForeground == null) colors.primaryForeground = '0 0% 100%'\n if (given.ring == null) colors.ring = overrides.brand\n const parts = overrides.brand.split(' ')\n if (parts.length >= 3) {\n const hue = (parseFloat(parts[0]) - 50 + 360) % 360\n if (given.accent == null) colors.accent = `${hue} ${parts[1]} ${parts[2]}`\n if (given.accentForeground == null) colors.accentForeground = '0 0% 100%'\n }\n }\n\n return {\n name: overrides.name ?? lightTheme.name,\n colors,\n perception: {\n ...lightTheme.perception,\n ...overrides.perception,\n },\n }\n}\n\n// Re-export types for convenience\nexport type { CreateThemeOptions, ThemeTokens }\nexport { lightTheme, darkTheme }\nexport { fayzUiPreset } from './preset'\nexport { createFayzTheme, fayzThemePresets } from './presets'\nexport type { FayzThemePresetId } from './presets'\n"]}
@@ -1,5 +1,5 @@
1
1
  import { useSaveBarVisible, useCrossModuleBack, useBackHandler } from './chunk-75EFDLST.js';
2
- import { DataTable, SegmentedControl } from './chunk-BVF2KPTT.js';
2
+ import { DataTable, SegmentedControl } from './chunk-G6OKZ7WL.js';
3
3
  import { cn, Button } from './chunk-YRVE4FOD.js';
4
4
  import * as React10 from 'react';
5
5
  import { useState, useRef, useEffect, useMemo, useCallback } from 'react';
@@ -550,33 +550,6 @@ function TimePicker({ value, onChange, interval = 15, min = "00:00", max = "23:4
550
550
  )
551
551
  ] });
552
552
  }
553
- function Skeleton({
554
- className,
555
- ...props
556
- }) {
557
- return /* @__PURE__ */ jsx(
558
- "div",
559
- {
560
- className: cn("animate-pulse rounded-md bg-muted", className),
561
- ...props
562
- }
563
- );
564
- }
565
- function TableSkeleton({ columns = 4, rows = 2 }) {
566
- return /* @__PURE__ */ jsxs("div", { className: "rounded-lg border overflow-hidden", children: [
567
- /* @__PURE__ */ jsx("div", { className: "border-b bg-muted/30 flex gap-4 px-4 py-2.5", children: Array.from({ length: columns }).map((_, i) => /* @__PURE__ */ jsx(Skeleton, { className: "h-3 flex-1 rounded bg-muted-foreground/10" }, i)) }),
568
- /* @__PURE__ */ jsx("div", { className: "divide-y", children: Array.from({ length: rows }).map((_, r) => /* @__PURE__ */ jsx("div", { className: "flex items-center gap-4 px-4 py-3.5", children: Array.from({ length: columns }).map((_2, c) => /* @__PURE__ */ jsx(
569
- Skeleton,
570
- {
571
- className: cn(
572
- "h-3 rounded",
573
- c === 0 ? "flex-[2]" : "flex-1"
574
- )
575
- },
576
- c
577
- )) }, r)) })
578
- ] });
579
- }
580
553
  function ListView({
581
554
  columns,
582
555
  data,
@@ -735,6 +708,14 @@ function isToday(d) {
735
708
  function formatDate(date, locale) {
736
709
  return date.toLocaleDateString(toDateLocale(locale), { month: "short", day: "numeric", year: "numeric" });
737
710
  }
711
+ function formatDateCompact(date, locale) {
712
+ const sameYear = date.getFullYear() === (/* @__PURE__ */ new Date()).getFullYear();
713
+ return date.toLocaleDateString(toDateLocale(locale), {
714
+ month: "short",
715
+ day: "numeric",
716
+ ...sameYear ? {} : { year: "numeric" }
717
+ });
718
+ }
738
719
  function toDateStr(d) {
739
720
  return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`;
740
721
  }
@@ -742,7 +723,11 @@ function parseDate(s) {
742
723
  const [y, m, d] = s.split("-").map(Number);
743
724
  return new Date(y, m - 1, d);
744
725
  }
745
- function DatePicker({ value, onChange, className, defaultOpen, onOpenChange }) {
726
+ var TRIGGER_VARIANT = {
727
+ input: "rounded-input border border-input bg-card shadow-[inset_0_1px_0_rgb(0_0_0_/0.06)] px-3 py-2 text-sm w-full",
728
+ toolbar: "h-[26px] rounded-button border border-border bg-card shadow-button px-2.5 text-xs font-medium"
729
+ };
730
+ function DatePicker({ value, onChange, className, variant = "input", defaultOpen, onOpenChange }) {
746
731
  const t = useTranslation();
747
732
  const locale = getCurrentLocale();
748
733
  const [open, setOpen] = useState(defaultOpen ?? false);
@@ -814,10 +799,10 @@ function DatePicker({ value, onChange, className, defaultOpen, onOpenChange }) {
814
799
  ref: triggerRef,
815
800
  type: "button",
816
801
  onClick: () => setOpen((p) => !p),
817
- className: "flex items-center gap-2 rounded-input border border-input bg-card shadow-[inset_0_1px_0_rgb(0_0_0_/0.06)] px-3 py-2 text-sm hover:bg-muted/30 transition-colors w-full text-left",
802
+ className: `flex items-center gap-2 text-left transition-colors hover:bg-muted/30 ${TRIGGER_VARIANT[variant]}`,
818
803
  children: [
819
- /* @__PURE__ */ jsx(Calendar, { className: "h-3.5 w-3.5 text-muted-foreground shrink-0" }),
820
- /* @__PURE__ */ jsx("span", { children: value ? formatDate(selectedDate, locale) : t("common.selectDate") })
804
+ /* @__PURE__ */ jsx(Calendar, { className: `shrink-0 text-muted-foreground ${variant === "toolbar" ? "h-3 w-3" : "h-3.5 w-3.5"}` }),
805
+ /* @__PURE__ */ jsx("span", { className: "whitespace-nowrap", children: value ? (variant === "toolbar" ? formatDateCompact : formatDate)(selectedDate, locale) : t("common.selectDate") })
821
806
  ]
822
807
  }
823
808
  ),
@@ -900,7 +885,7 @@ function SearchSelect({
900
885
  createLabel = "Add",
901
886
  onCreate,
902
887
  renderOption,
903
- loadOnOpen,
888
+ loadOnOpen = true,
904
889
  className,
905
890
  disabled
906
891
  }) {
@@ -980,6 +965,7 @@ function SearchSelect({
980
965
  if (disabled || creating) return;
981
966
  setOpen(true);
982
967
  setQuery("");
968
+ setResults([]);
983
969
  setTimeout(() => inputRef.current?.focus(), 0);
984
970
  }
985
971
  const groups = React10.useMemo(() => {
@@ -992,7 +978,7 @@ function SearchSelect({
992
978
  return map;
993
979
  }, [results]);
994
980
  const hasValue = !!value && !!selectedLabel;
995
- const showDropdown = open && query.length >= minChars;
981
+ const showDropdown = open && (query.length >= minChars || loadOnOpen);
996
982
  return /* @__PURE__ */ jsxs("div", { ref: containerRef, className: cn("relative", className), children: [
997
983
  label && /* @__PURE__ */ jsxs("label", { className: "text-xs font-medium text-muted-foreground", children: [
998
984
  label,
@@ -1043,11 +1029,7 @@ function SearchSelect({
1043
1029
  /* @__PURE__ */ jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" }),
1044
1030
  " Searching..."
1045
1031
  ] }) : results.length === 0 ? /* @__PURE__ */ jsxs("div", { className: "px-4 py-4 text-center", children: [
1046
- /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground", children: [
1047
- 'No results for "',
1048
- query,
1049
- '"'
1050
- ] }),
1032
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: query ? `No results for "${query}"` : "No results" }),
1051
1033
  allowCreate && onCreate && /* @__PURE__ */ jsxs(
1052
1034
  "button",
1053
1035
  {
@@ -1648,6 +1630,6 @@ function SearchCombobox({
1648
1630
  ] });
1649
1631
  }
1650
1632
 
1651
- export { Badge, Breadcrumb, Checkbox, ConfirmDialog, CurrencyInput, DatePicker, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, Popover, PopoverContent, PopoverTrigger, SearchCombobox, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, Skeleton, TableSkeleton, Tabs, TabsContent, TabsList, TabsTrigger, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, renderMarkdown };
1652
- //# sourceMappingURL=chunk-2GDQUARM.js.map
1653
- //# sourceMappingURL=chunk-2GDQUARM.js.map
1633
+ export { Badge, Breadcrumb, Checkbox, ConfirmDialog, CurrencyInput, DatePicker, Input, ListView, Markdown, MarkdownEditor, Modal, ModalBody, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, Popover, PopoverContent, PopoverTrigger, SearchCombobox, SearchSelect, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator2 as Separator, Tabs, TabsContent, TabsList, TabsTrigger, TimePicker, ToastProvider, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, renderMarkdown };
1634
+ //# sourceMappingURL=chunk-YLQGUJAQ.js.map
1635
+ //# sourceMappingURL=chunk-YLQGUJAQ.js.map