@spacesync/client 0.1.9 → 0.1.11
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/analog-clock-picker.js +3 -11
- package/dist/analog-clock-picker.js.map +1 -1
- package/dist/booking-schedule-calendars.d.ts +1 -29
- package/dist/booking-schedule-calendars.js +6 -92
- package/dist/booking-schedule-calendars.js.map +1 -1
- package/dist/booking-schedule.d.ts +71 -0
- package/dist/booking-schedule.js +3 -0
- package/dist/booking-schedule.js.map +1 -0
- package/dist/booking-space-layout-picker.js +8 -11
- package/dist/booking-space-layout-picker.js.map +1 -1
- package/dist/button-Iem7kbk0.d.ts +16 -0
- package/dist/chat-stick-to-bottom.js +0 -10
- package/dist/chat-stick-to-bottom.js.map +1 -1
- package/dist/chunk-2IZODKTR.js +116 -0
- package/dist/chunk-2IZODKTR.js.map +1 -0
- package/dist/chunk-2TT2ZGMT.js +21 -0
- package/dist/chunk-2TT2ZGMT.js.map +1 -0
- package/dist/chunk-3MAGTCCN.js +192 -0
- package/dist/chunk-3MAGTCCN.js.map +1 -0
- package/dist/chunk-56H7UFAW.js +237 -0
- package/dist/chunk-56H7UFAW.js.map +1 -0
- package/dist/chunk-5HOK5JHR.js +60 -0
- package/dist/chunk-5HOK5JHR.js.map +1 -0
- package/dist/{chunk-H7EX6B6N.js → chunk-5NOKULX2.js} +5 -4
- package/dist/chunk-5NOKULX2.js.map +1 -0
- package/dist/chunk-6VJQIBC3.js +715 -0
- package/dist/chunk-6VJQIBC3.js.map +1 -0
- package/dist/chunk-BQVMO33N.js +133 -0
- package/dist/chunk-BQVMO33N.js.map +1 -0
- package/dist/chunk-CXXOKCLJ.js +37 -0
- package/dist/chunk-CXXOKCLJ.js.map +1 -0
- package/dist/chunk-FN4BWFDX.js +43 -0
- package/dist/chunk-FN4BWFDX.js.map +1 -0
- package/dist/chunk-HRHDOLWU.js +62 -0
- package/dist/chunk-HRHDOLWU.js.map +1 -0
- package/dist/chunk-HZB2EHEH.js +216 -0
- package/dist/chunk-HZB2EHEH.js.map +1 -0
- package/dist/chunk-IBGGQXTH.js +21 -0
- package/dist/chunk-IBGGQXTH.js.map +1 -0
- package/dist/chunk-JCEOU7BU.js +128 -0
- package/dist/chunk-JCEOU7BU.js.map +1 -0
- package/dist/{chunk-RV5PMZYZ.js → chunk-MBZAYH5D.js} +4 -18
- package/dist/chunk-MBZAYH5D.js.map +1 -0
- package/dist/chunk-NWVNYKND.js +153 -0
- package/dist/chunk-NWVNYKND.js.map +1 -0
- package/dist/chunk-OTSA5ROL.js +209 -0
- package/dist/chunk-OTSA5ROL.js.map +1 -0
- package/dist/chunk-OV5ODANJ.js +224 -0
- package/dist/chunk-OV5ODANJ.js.map +1 -0
- package/dist/chunk-PPMJZVR4.js +37 -0
- package/dist/chunk-PPMJZVR4.js.map +1 -0
- package/dist/{chunk-CKCXQBHQ.js → chunk-RC5SWZPB.js} +5 -4
- package/dist/chunk-RC5SWZPB.js.map +1 -0
- package/dist/chunk-SHMKDGFF.js +75 -0
- package/dist/chunk-SHMKDGFF.js.map +1 -0
- package/dist/chunk-T3SOBIYA.js +61 -0
- package/dist/chunk-T3SOBIYA.js.map +1 -0
- package/dist/chunk-TH5RASJS.js +97 -0
- package/dist/chunk-TH5RASJS.js.map +1 -0
- package/dist/{chunk-LUB7QWGU.js → chunk-VIJ2HWPZ.js} +5 -159
- package/dist/chunk-VIJ2HWPZ.js.map +1 -0
- package/dist/chunk-VQ63T7CJ.js +22 -0
- package/dist/chunk-VQ63T7CJ.js.map +1 -0
- package/dist/chunk-XDVGFHK4.js +50 -0
- package/dist/chunk-XDVGFHK4.js.map +1 -0
- package/dist/chunk-XI4BQY5T.js +188 -0
- package/dist/chunk-XI4BQY5T.js.map +1 -0
- package/dist/detail-page-header.js +1 -1
- package/dist/file-viewer-dialog.js +3 -9
- package/dist/file-viewer-dialog.js.map +1 -1
- package/dist/floor-switcher.js +5 -9
- package/dist/floor-switcher.js.map +1 -1
- package/dist/layout-canvas-view.js +8 -11
- package/dist/page-list-chrome.js +5 -3
- package/dist/page-list-loading.js +5 -3
- package/dist/page-list-loading.js.map +1 -1
- package/dist/platform-support-message-composer.js +2 -10
- package/dist/platform-support-message-composer.js.map +1 -1
- package/dist/sidebar-Dzvrjr69.d.ts +85 -0
- package/dist/styles/theme.css +52 -2
- package/dist/styles/theme.css.map +1 -1
- package/dist/theme-appearance-control.js +2 -1
- package/dist/theme-appearance-control.js.map +1 -1
- package/dist/ui/accordion.d.ts +9 -0
- package/dist/ui/accordion.js +4 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/calendar.d.ts +6 -0
- package/dist/ui/calendar.js +4 -0
- package/dist/ui/calendar.js.map +1 -0
- package/dist/ui/carousel.d.ts +22 -0
- package/dist/ui/carousel.js +5 -0
- package/dist/ui/carousel.js.map +1 -0
- package/dist/ui/chart.d.ts +42 -0
- package/dist/ui/chart.js +229 -0
- package/dist/ui/chart.js.map +1 -0
- package/dist/ui/command.d.ts +19 -0
- package/dist/ui/command.js +5 -0
- package/dist/ui/command.js.map +1 -0
- package/dist/ui/context-menu.d.ts +27 -0
- package/dist/ui/context-menu.js +4 -0
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/form.d.ts +27 -0
- package/dist/ui/form.js +5 -0
- package/dist/ui/form.js.map +1 -0
- package/dist/ui/input-otp.d.ts +13 -0
- package/dist/ui/input-otp.js +4 -0
- package/dist/ui/input-otp.js.map +1 -0
- package/dist/ui/menubar.d.ts +28 -0
- package/dist/ui/menubar.js +4 -0
- package/dist/ui/menubar.js.map +1 -0
- package/dist/ui/navigation-menu.d.ts +17 -0
- package/dist/ui/navigation-menu.js +4 -0
- package/dist/ui/navigation-menu.js.map +1 -0
- package/dist/ui/resizable.d.ts +10 -0
- package/dist/ui/resizable.js +4 -0
- package/dist/ui/resizable.js.map +1 -0
- package/dist/ui/sidebar.d.ts +7 -0
- package/dist/ui/sidebar.js +9 -0
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui.d.ts +28 -272
- package/dist/ui.js +2427 -6
- package/dist/ui.js.map +1 -1
- package/package.json +9 -1
- package/dist/chunk-CKCXQBHQ.js.map +0 -1
- package/dist/chunk-F7MU5T46.js +0 -5146
- package/dist/chunk-F7MU5T46.js.map +0 -1
- package/dist/chunk-H7EX6B6N.js.map +0 -1
- package/dist/chunk-LUB7QWGU.js.map +0 -1
- package/dist/chunk-RV5PMZYZ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/styles/theme.css"],"sourcesContent":["@import \"@fontsource-variable/inter\";\n\n@custom-variant dark (&:is(.dark *));\n\n:root {\n --font-size: 16px;\n --background: #ffffff;\n --foreground: oklch(0.145 0 0);\n --card: #ffffff;\n --card-foreground: oklch(0.145 0 0);\n --popover: #030213;\n --popover-foreground: oklch(0.985 0 0);\n --primary: #030213;\n --primary-foreground: oklch(1 0 0);\n --secondary: oklch(0.95 0.0058 264.53);\n --secondary-foreground: #030213;\n --muted: #f5f5f7;\n --muted-foreground: #8a8a9a;\n --accent: #f1f2f4;\n --accent-foreground: #030213;\n --destructive: #d4183d;\n --destructive-foreground: #ffffff;\n --border: #eceef2;\n --input: #eceef2;\n --input-background: #f7f7f8;\n --switch-background: #cbced4;\n --font-weight-medium: 500;\n --font-weight-normal: 400;\n --ring: oklch(0.708 0 0);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --radius: 0.625rem;\n --sidebar: #f5f5f7;\n --sidebar-foreground: #13131a;\n --sidebar-primary: #13131a;\n --sidebar-primary-foreground: #f5f5f7;\n --sidebar-accent: #eceef2;\n --sidebar-accent-foreground: #13131a;\n --sidebar-border: #e0e0e5;\n --sidebar-ring: oklch(0.708 0 0);\n --scrollbar-thumb: oklch(0.55 0 0 / 0.28);\n --scrollbar-thumb-hover: oklch(0.45 0 0 / 0.4);\n}\n\n:root[data-shell-theme=\"light\"],\n:root:not([data-shell-theme]) {\n --sidebar: #f5f5f7;\n --sidebar-foreground: #13131a;\n --sidebar-primary: #13131a;\n --sidebar-primary-foreground: #f5f5f7;\n --sidebar-accent: #eceef2;\n --sidebar-accent-foreground: #13131a;\n --sidebar-border: #e0e0e5;\n --sidebar-ring: oklch(0.708 0 0);\n}\n\n:root[data-shell-theme=\"dark\"] {\n --sidebar: #13131a;\n --sidebar-foreground: oklch(0.93 0 0);\n --sidebar-primary: oklch(0.93 0 0);\n --sidebar-primary-foreground: #13131a;\n --sidebar-accent: oklch(0.24 0.01 264);\n --sidebar-accent-foreground: oklch(0.95 0 0);\n --sidebar-border: oklch(0.3 0.01 264);\n --sidebar-ring: oklch(0.55 0 0);\n}\n\n.dark {\n --background: oklch(0.145 0 0);\n --foreground: oklch(0.985 0 0);\n --card: oklch(0.145 0 0);\n --card-foreground: oklch(0.985 0 0);\n --popover: oklch(0.145 0 0);\n --popover-foreground: oklch(0.985 0 0);\n --primary: oklch(0.985 0 0);\n --primary-foreground: oklch(0.205 0 0);\n --secondary: oklch(0.269 0 0);\n --secondary-foreground: oklch(0.985 0 0);\n --muted: oklch(0.269 0 0);\n --muted-foreground: oklch(0.708 0 0);\n --accent: oklch(0.269 0 0);\n --accent-foreground: oklch(0.985 0 0);\n --destructive: oklch(0.396 0.141 25.723);\n --destructive-foreground: oklch(0.637 0.237 25.331);\n --border: oklch(0.269 0 0);\n --input: oklch(0.269 0 0);\n --ring: oklch(0.439 0 0);\n --font-weight-medium: 500;\n --font-weight-normal: 400;\n --chart-1: oklch(0.488 0.243 264.376);\n --chart-2: oklch(0.696 0.17 162.48);\n --chart-3: oklch(0.769 0.188 70.08);\n --chart-4: oklch(0.627 0.265 303.9);\n --chart-5: oklch(0.645 0.246 16.439);\n --scrollbar-thumb: oklch(0.985 0 0 / 0.22);\n --scrollbar-thumb-hover: oklch(0.985 0 0 / 0.35);\n}\n\n.dark[data-shell-theme=\"light\"] {\n --sidebar: #f5f5f7;\n --sidebar-foreground: #13131a;\n --sidebar-primary: #13131a;\n --sidebar-primary-foreground: #f5f5f7;\n --sidebar-accent: #eceef2;\n --sidebar-accent-foreground: #13131a;\n --sidebar-border: #e0e0e5;\n --sidebar-ring: oklch(0.708 0 0);\n}\n\n.dark[data-shell-theme=\"dark\"] {\n --sidebar: oklch(0.205 0 0);\n --sidebar-foreground: oklch(0.985 0 0);\n --sidebar-primary: oklch(0.488 0.243 264.376);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.269 0 0);\n --sidebar-accent-foreground: oklch(0.985 0 0);\n --sidebar-border: oklch(0.269 0 0);\n --sidebar-ring: oklch(0.439 0 0);\n}\n\n@theme inline {\n --font-sans:\n \"Inter Variable\", \"Inter\", ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-destructive-foreground: var(--destructive-foreground);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-input-background: var(--input-background);\n --color-switch-background: var(--switch-background);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n}\n\n@layer base {\n * {\n @apply border-border outline-ring/50;\n }\n\n body {\n @apply bg-background text-foreground font-sans;\n }\n\n /**\n * Default typography styles for HTML elements (h1-h4, p, label, button, input).\n * These are in @layer base, so Tailwind utility classes (like text-sm, text-lg) automatically override them.\n */\n\n html {\n font-size: var(--font-size);\n }\n\n h1 {\n font-size: var(--text-2xl);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n }\n\n h2 {\n font-size: var(--text-xl);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n }\n\n h3 {\n font-size: var(--text-lg);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n }\n\n h4 {\n font-size: var(--text-base);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n }\n\n label {\n font-size: var(--text-base);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n }\n\n button {\n font-size: var(--text-base);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n cursor: pointer;\n }\n\n button:disabled {\n cursor: not-allowed;\n }\n\n input {\n font-size: var(--text-base);\n font-weight: var(--font-weight-normal);\n line-height: 1.5;\n }\n}\n\n@layer components {\n /* Dark shell top bar — remap light page chrome utilities inside title/actions */\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-title\"] .text-foreground,\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"] .text-foreground {\n color: var(--sidebar-foreground) !important;\n }\n\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-title\"] .text-muted-foreground,\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"] .text-muted-foreground {\n color: color-mix(in oklch, var(--sidebar-foreground) 62%, transparent) !important;\n }\n\n /* shadcn Button outline/ghost hover utilities use accent tokens (light on dark shell) */\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]):hover,\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]):active {\n color: var(--sidebar-foreground) !important;\n }\n\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]).border-sidebar-border:hover,\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]).border-sidebar-border:active {\n background-color: color-mix(\n in oklch,\n var(--sidebar-foreground) 12%,\n var(--sidebar-accent)\n ) !important;\n border-color: color-mix(\n in oklch,\n var(--sidebar-foreground) 25%,\n var(--sidebar-border)\n ) !important;\n }\n\n /* Light shell top bar — keep shadcn outline buttons from using page accent hover on shell */\n :root[data-shell-theme=\"light\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]).border-sidebar-border:hover,\n :root[data-shell-theme=\"light\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]).border-sidebar-border:active {\n background-color: color-mix(\n in oklch,\n var(--sidebar-foreground) 6%,\n var(--sidebar-accent)\n ) !important;\n border-color: color-mix(\n in oklch,\n var(--sidebar-foreground) 14%,\n var(--sidebar-border)\n ) !important;\n color: var(--sidebar-foreground) !important;\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n ),\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n :is(.overflow-y-auto, .overflow-x-auto, .overflow-auto) {\n scrollbar-width: thin;\n scrollbar-color: var(--scrollbar-thumb) transparent;\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )::-webkit-scrollbar,\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n :is(.overflow-y-auto, .overflow-x-auto, .overflow-auto)::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )::-webkit-scrollbar-track,\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n :is(.overflow-y-auto, .overflow-x-auto, .overflow-auto)::-webkit-scrollbar-track {\n background: transparent;\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )::-webkit-scrollbar-thumb,\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n :is(.overflow-y-auto, .overflow-x-auto, .overflow-auto)::-webkit-scrollbar-thumb {\n background-color: var(--scrollbar-thumb);\n border-radius: 9999px;\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )::-webkit-scrollbar-thumb:hover,\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n :is(.overflow-y-auto, .overflow-x-auto, .overflow-auto)::-webkit-scrollbar-thumb:hover {\n background-color: var(--scrollbar-thumb-hover);\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n [data-slot=\"scroll-area-thumb\"] {\n background-color: var(--scrollbar-thumb);\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n [data-slot=\"scroll-area-thumb\"]:hover {\n background-color: var(--scrollbar-thumb-hover);\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/styles/theme.css"],"sourcesContent":["@font-face {\n font-family: \"Inter Variable\";\n font-style: normal;\n font-display: swap;\n font-weight: 100 900;\n src: url(\"@fontsource-variable/inter/files/inter-latin-wght-normal.woff2\") format(\"woff2-variations\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304,\n U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n\n@font-face {\n font-family: \"Inter Variable\";\n font-style: normal;\n font-display: swap;\n font-weight: 100 900;\n src: url(\"@fontsource-variable/inter/files/inter-latin-ext-wght-normal.woff2\") format(\"woff2-variations\");\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308,\n U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113,\n U+2C60-2C7F, U+A720-A7FF;\n}\n\n@custom-variant dark (&:is(.dark *));\n\n:root {\n --font-size: 16px;\n --background: #ffffff;\n --foreground: oklch(0.145 0 0);\n --card: #ffffff;\n --card-foreground: oklch(0.145 0 0);\n --popover: #030213;\n --popover-foreground: oklch(0.985 0 0);\n --primary: #030213;\n --primary-foreground: oklch(1 0 0);\n --secondary: oklch(0.95 0.0058 264.53);\n --secondary-foreground: #030213;\n --muted: #f5f5f7;\n --muted-foreground: #8a8a9a;\n --accent: #f1f2f4;\n --accent-foreground: #030213;\n --destructive: #d4183d;\n --destructive-foreground: #ffffff;\n --border: #eceef2;\n --input: #eceef2;\n --input-background: #f7f7f8;\n --switch-background: #cbced4;\n --font-weight-medium: 500;\n --font-weight-normal: 400;\n --ring: oklch(0.708 0 0);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --radius: 0.625rem;\n --sidebar: #f5f5f7;\n --sidebar-foreground: #13131a;\n --sidebar-primary: #13131a;\n --sidebar-primary-foreground: #f5f5f7;\n --sidebar-accent: #eceef2;\n --sidebar-accent-foreground: #13131a;\n --sidebar-border: #e0e0e5;\n --sidebar-ring: oklch(0.708 0 0);\n --scrollbar-thumb: oklch(0.55 0 0 / 0.28);\n --scrollbar-thumb-hover: oklch(0.45 0 0 / 0.4);\n}\n\n:root[data-shell-theme=\"light\"],\n:root:not([data-shell-theme]) {\n --sidebar: #f5f5f7;\n --sidebar-foreground: #13131a;\n --sidebar-primary: #13131a;\n --sidebar-primary-foreground: #f5f5f7;\n --sidebar-accent: #eceef2;\n --sidebar-accent-foreground: #13131a;\n --sidebar-border: #e0e0e5;\n --sidebar-ring: oklch(0.708 0 0);\n}\n\n:root[data-shell-theme=\"dark\"] {\n --sidebar: #13131a;\n --sidebar-foreground: oklch(0.93 0 0);\n --sidebar-primary: oklch(0.93 0 0);\n --sidebar-primary-foreground: #13131a;\n --sidebar-accent: oklch(0.24 0.01 264);\n --sidebar-accent-foreground: oklch(0.95 0 0);\n --sidebar-border: oklch(0.3 0.01 264);\n --sidebar-ring: oklch(0.55 0 0);\n}\n\n.dark {\n --background: oklch(0.145 0 0);\n --foreground: oklch(0.985 0 0);\n --card: oklch(0.145 0 0);\n --card-foreground: oklch(0.985 0 0);\n --popover: oklch(0.145 0 0);\n --popover-foreground: oklch(0.985 0 0);\n --primary: oklch(0.985 0 0);\n --primary-foreground: oklch(0.205 0 0);\n --secondary: oklch(0.269 0 0);\n --secondary-foreground: oklch(0.985 0 0);\n --muted: oklch(0.269 0 0);\n --muted-foreground: oklch(0.708 0 0);\n --accent: oklch(0.269 0 0);\n --accent-foreground: oklch(0.985 0 0);\n --destructive: oklch(0.396 0.141 25.723);\n --destructive-foreground: oklch(0.637 0.237 25.331);\n --border: oklch(0.269 0 0);\n --input: oklch(0.269 0 0);\n --ring: oklch(0.439 0 0);\n --font-weight-medium: 500;\n --font-weight-normal: 400;\n --chart-1: oklch(0.488 0.243 264.376);\n --chart-2: oklch(0.696 0.17 162.48);\n --chart-3: oklch(0.769 0.188 70.08);\n --chart-4: oklch(0.627 0.265 303.9);\n --chart-5: oklch(0.645 0.246 16.439);\n --scrollbar-thumb: oklch(0.985 0 0 / 0.22);\n --scrollbar-thumb-hover: oklch(0.985 0 0 / 0.35);\n}\n\n.dark[data-shell-theme=\"light\"] {\n --sidebar: #f5f5f7;\n --sidebar-foreground: #13131a;\n --sidebar-primary: #13131a;\n --sidebar-primary-foreground: #f5f5f7;\n --sidebar-accent: #eceef2;\n --sidebar-accent-foreground: #13131a;\n --sidebar-border: #e0e0e5;\n --sidebar-ring: oklch(0.708 0 0);\n}\n\n.dark[data-shell-theme=\"dark\"] {\n --sidebar: oklch(0.205 0 0);\n --sidebar-foreground: oklch(0.985 0 0);\n --sidebar-primary: oklch(0.488 0.243 264.376);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.269 0 0);\n --sidebar-accent-foreground: oklch(0.985 0 0);\n --sidebar-border: oklch(0.269 0 0);\n --sidebar-ring: oklch(0.439 0 0);\n}\n\n@theme inline {\n --font-sans:\n \"Inter Variable\", \"Inter\", ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-destructive-foreground: var(--destructive-foreground);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-input-background: var(--input-background);\n --color-switch-background: var(--switch-background);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n}\n\n@layer base {\n * {\n @apply border-border outline-ring/50;\n }\n\n body {\n @apply bg-background text-foreground font-sans;\n }\n\n /**\n * Default typography styles for HTML elements (h1-h4, p, label, button, input).\n * These are in @layer base, so Tailwind utility classes (like text-sm, text-lg) automatically override them.\n */\n\n html {\n font-size: var(--font-size);\n }\n\n h1 {\n font-size: var(--text-2xl);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n }\n\n h2 {\n font-size: var(--text-xl);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n }\n\n h3 {\n font-size: var(--text-lg);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n }\n\n h4 {\n font-size: var(--text-base);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n }\n\n label {\n font-size: var(--text-base);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n }\n\n button {\n font-size: var(--text-base);\n font-weight: var(--font-weight-medium);\n line-height: 1.5;\n cursor: pointer;\n }\n\n button:disabled {\n cursor: not-allowed;\n }\n\n input {\n font-size: var(--text-base);\n font-weight: var(--font-weight-normal);\n line-height: 1.5;\n }\n}\n\n@layer components {\n /* Dark shell top bar — remap light page chrome utilities inside title/actions */\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-title\"] .text-foreground,\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"] .text-foreground {\n color: var(--sidebar-foreground) !important;\n }\n\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-title\"] .text-muted-foreground,\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"] .text-muted-foreground {\n color: color-mix(in oklch, var(--sidebar-foreground) 62%, transparent) !important;\n }\n\n /* shadcn Button outline/ghost hover utilities use accent tokens (light on dark shell) */\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]):hover,\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]):active {\n color: var(--sidebar-foreground) !important;\n }\n\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]).border-sidebar-border:hover,\n :root[data-shell-theme=\"dark\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]).border-sidebar-border:active {\n background-color: color-mix(\n in oklch,\n var(--sidebar-foreground) 12%,\n var(--sidebar-accent)\n ) !important;\n border-color: color-mix(\n in oklch,\n var(--sidebar-foreground) 25%,\n var(--sidebar-border)\n ) !important;\n }\n\n /* Light shell top bar — keep shadcn outline buttons from using page accent hover on shell */\n :root[data-shell-theme=\"light\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]).border-sidebar-border:hover,\n :root[data-shell-theme=\"light\"] [data-slot=\"shell-top-bar-actions\"]\n :is([data-slot=\"button\"], [data-shell-top-bar-action]).border-sidebar-border:active {\n background-color: color-mix(\n in oklch,\n var(--sidebar-foreground) 6%,\n var(--sidebar-accent)\n ) !important;\n border-color: color-mix(\n in oklch,\n var(--sidebar-foreground) 14%,\n var(--sidebar-border)\n ) !important;\n color: var(--sidebar-foreground) !important;\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n ),\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n :is(.overflow-y-auto, .overflow-x-auto, .overflow-auto) {\n scrollbar-width: thin;\n scrollbar-color: var(--scrollbar-thumb) transparent;\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )::-webkit-scrollbar,\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n :is(.overflow-y-auto, .overflow-x-auto, .overflow-auto)::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )::-webkit-scrollbar-track,\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n :is(.overflow-y-auto, .overflow-x-auto, .overflow-auto)::-webkit-scrollbar-track {\n background: transparent;\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )::-webkit-scrollbar-thumb,\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n :is(.overflow-y-auto, .overflow-x-auto, .overflow-auto)::-webkit-scrollbar-thumb {\n background-color: var(--scrollbar-thumb);\n border-radius: 9999px;\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )::-webkit-scrollbar-thumb:hover,\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n :is(.overflow-y-auto, .overflow-x-auto, .overflow-auto)::-webkit-scrollbar-thumb:hover {\n background-color: var(--scrollbar-thumb-hover);\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n [data-slot=\"scroll-area-thumb\"] {\n background-color: var(--scrollbar-thumb);\n }\n\n :is(\n [data-slot=\"popover-content\"],\n [data-slot=\"hover-card-content\"],\n [data-slot=\"dropdown-menu-content\"],\n [data-slot=\"dropdown-menu-sub-content\"],\n [data-slot=\"select-content\"],\n [data-slot=\"context-menu-content\"],\n [data-slot=\"context-menu-sub-content\"],\n [data-slot=\"menubar-content\"],\n [data-slot=\"menubar-sub-content\"]\n )\n [data-slot=\"scroll-area-thumb\"]:hover {\n background-color: var(--scrollbar-thumb-hover);\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useTheme } from './chunk-XU3EFSQX.js';
|
|
2
2
|
import './chunk-4Y5DBM6Z.js';
|
|
3
|
-
import {
|
|
3
|
+
import { RadioGroup, RadioGroupItem } from './chunk-MBZAYH5D.js';
|
|
4
|
+
import { Label } from './chunk-IBGGQXTH.js';
|
|
4
5
|
import './chunk-DMPSQ22Q.js';
|
|
5
6
|
import { Monitor, Sun, Moon } from 'lucide-react';
|
|
6
7
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme/theme-appearance-control.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/theme/theme-appearance-control.tsx"],"names":[],"mappings":";;;;;;;;AAMA,IAAM,OAAA,GAKD;AAAA,EACH;AAAA,IACE,KAAA,EAAO,QAAA;AAAA,IACP,KAAA,EAAO,QAAA;AAAA,IACP,WAAA,EAAa,+BAAA;AAAA,IACb,IAAA,EAAM;AAAA,GACR;AAAA,EACA,EAAE,OAAO,OAAA,EAAS,KAAA,EAAO,mBAAmB,WAAA,EAAa,uBAAA,EAAyB,MAAM,GAAA,EAAI;AAAA,EAC5F,EAAE,OAAO,MAAA,EAAQ,KAAA,EAAO,QAAQ,WAAA,EAAa,sBAAA,EAAwB,MAAM,IAAA;AAC7E,CAAA;AAEO,SAAS,sBAAA,GAAyB;AACvC,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAS,GAAI,QAAA,EAAS;AACrC,EAAA,MAAM,QAAS,KAAA,IAAS,OAAA;AAExB,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAM,SAAA,EAAU,qCAAA,EAAsC,QAAA,EAAA,YAAA,EAAU,CAAA;AAAA,oBACjE,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,aAAA,EAAe,CAAC,IAAA,KAAS,QAAA,CAAS,IAAoB,CAAA;AAAA,QACtD,SAAA,EAAU,qBAAA;AAAA,QAET,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,GAAA,KAAQ;AACpB,UAAA,MAAM,OAAO,GAAA,CAAI,IAAA;AACjB,UAAA,uBACE,IAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cAEC,OAAA,EAAS,CAAA,MAAA,EAAS,GAAA,CAAI,KAAK,CAAA,CAAA;AAAA,cAC3B,SAAA,EAAU,8LAAA;AAAA,cAEV,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,cAAA,EAAA,EAAe,EAAA,EAAI,CAAA,MAAA,EAAS,GAAA,CAAI,KAAK,IAAI,KAAA,EAAO,GAAA,CAAI,KAAA,EAAO,SAAA,EAAU,QAAA,EAAS,CAAA;AAAA,oCAC9E,IAAA,EAAA,EAAK,IAAA,EAAM,IAAI,SAAA,EAAU,uCAAA,EAAwC,aAAa,IAAA,EAAM,CAAA;AAAA,gCACrF,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EACd,QAAA,EAAA;AAAA,kCAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2CAAA,EAA6C,QAAA,EAAA,GAAA,CAAI,KAAA,EAAM,CAAA;AAAA,kCACvE,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qCAAA,EAAuC,cAAI,WAAA,EAAY;AAAA,iBAAA,EACzE;AAAA;AAAA,aAAA;AAAA,YATK,GAAA,CAAI;AAAA,WAUX;AAAA,QAEJ,CAAC;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ","file":"theme-appearance-control.js","sourcesContent":["import { Monitor, Moon, Sun } from \"lucide-react\";\nimport { Label } from \"../ui/label\";\nimport { RadioGroup, RadioGroupItem } from \"../ui/radio-group\";\nimport { useTheme } from \"./theme-provider\";\nimport type { WebThemeMode } from \"./constants\";\n\nconst OPTIONS: ReadonlyArray<{\n value: WebThemeMode;\n label: string;\n description: string;\n icon: typeof Sun;\n}> = [\n {\n value: \"system\",\n label: \"System\",\n description: \"Follow your device appearance\",\n icon: Monitor,\n },\n { value: \"light\", label: \"Light (default)\", description: \"Always use light mode\", icon: Sun },\n { value: \"dark\", label: \"Dark\", description: \"Always use dark mode\", icon: Moon },\n];\n\nexport function ThemeAppearanceControl() {\n const { theme, setTheme } = useTheme();\n const value = (theme ?? \"light\") as WebThemeMode;\n\n return (\n <div className=\"space-y-3\">\n <Label className=\"text-sm font-medium text-foreground\">Appearance</Label>\n <RadioGroup\n value={value}\n onValueChange={(next) => setTheme(next as WebThemeMode)}\n className=\"flex flex-col gap-2\"\n >\n {OPTIONS.map((opt) => {\n const Icon = opt.icon;\n return (\n <label\n key={opt.value}\n htmlFor={`theme-${opt.value}`}\n className=\"flex cursor-pointer items-start gap-3 rounded-lg border border-border bg-card px-3 py-2.5 transition-colors has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring/50 hover:bg-accent/50\"\n >\n <RadioGroupItem id={`theme-${opt.value}`} value={opt.value} className=\"mt-0.5\" />\n <Icon size={16} className=\"mt-0.5 shrink-0 text-muted-foreground\" strokeWidth={1.75} />\n <span className=\"min-w-0 flex-1\">\n <span className=\"block text-sm font-medium text-foreground\">{opt.label}</span>\n <span className=\"block text-xs text-muted-foreground\">{opt.description}</span>\n </span>\n </label>\n );\n })}\n </RadioGroup>\n </div>\n );\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
3
|
+
|
|
4
|
+
declare function Accordion({ ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): React.JSX.Element;
|
|
5
|
+
declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): React.JSX.Element;
|
|
6
|
+
declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): React.JSX.Element;
|
|
7
|
+
declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): React.JSX.Element;
|
|
8
|
+
|
|
9
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"accordion.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"calendar.js"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { B as Button } from '../button-Iem7kbk0.js';
|
|
3
|
+
import 'class-variance-authority/types';
|
|
4
|
+
import 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
type CarouselApi = {
|
|
7
|
+
scrollPrev: () => void;
|
|
8
|
+
scrollNext: () => void;
|
|
9
|
+
canScrollPrev: boolean;
|
|
10
|
+
canScrollNext: boolean;
|
|
11
|
+
};
|
|
12
|
+
type CarouselProps = {
|
|
13
|
+
orientation?: "horizontal" | "vertical";
|
|
14
|
+
setApi?: (api: CarouselApi) => void;
|
|
15
|
+
};
|
|
16
|
+
declare function Carousel({ orientation, setApi, className, children, ...props }: React.ComponentProps<"div"> & CarouselProps): React.JSX.Element;
|
|
17
|
+
declare function CarouselContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
18
|
+
declare function CarouselItem({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
19
|
+
declare function CarouselPrevious({ className, variant, size, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
|
|
20
|
+
declare function CarouselNext({ className, variant, size, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
|
|
21
|
+
|
|
22
|
+
export { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"carousel.js"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ResponsiveContainer, Legend, LegendProps, Tooltip } from 'recharts';
|
|
3
|
+
|
|
4
|
+
declare const THEMES: {
|
|
5
|
+
readonly light: "";
|
|
6
|
+
readonly dark: ".dark";
|
|
7
|
+
};
|
|
8
|
+
type ChartConfig = {
|
|
9
|
+
[k in string]: {
|
|
10
|
+
label?: React.ReactNode;
|
|
11
|
+
icon?: React.ComponentType;
|
|
12
|
+
} & ({
|
|
13
|
+
color?: string;
|
|
14
|
+
theme?: never;
|
|
15
|
+
} | {
|
|
16
|
+
color?: never;
|
|
17
|
+
theme: Record<keyof typeof THEMES, string>;
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
declare function ChartContainer({ id, className, children, config, ...props }: React.ComponentProps<"div"> & {
|
|
21
|
+
config: ChartConfig;
|
|
22
|
+
children: React.ComponentProps<typeof ResponsiveContainer>["children"];
|
|
23
|
+
}): React.JSX.Element;
|
|
24
|
+
declare const ChartStyle: ({ id, config }: {
|
|
25
|
+
id: string;
|
|
26
|
+
config: ChartConfig;
|
|
27
|
+
}) => React.JSX.Element | null;
|
|
28
|
+
declare const ChartTooltip: typeof Tooltip;
|
|
29
|
+
declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: React.ComponentProps<typeof Tooltip> & React.ComponentProps<"div"> & {
|
|
30
|
+
hideLabel?: boolean;
|
|
31
|
+
hideIndicator?: boolean;
|
|
32
|
+
indicator?: "line" | "dot" | "dashed";
|
|
33
|
+
nameKey?: string;
|
|
34
|
+
labelKey?: string;
|
|
35
|
+
}): React.JSX.Element | null;
|
|
36
|
+
declare const ChartLegend: typeof Legend;
|
|
37
|
+
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React.ComponentProps<"div"> & Pick<LegendProps, "payload" | "verticalAlign"> & {
|
|
38
|
+
hideIcon?: boolean;
|
|
39
|
+
nameKey?: string;
|
|
40
|
+
}): React.JSX.Element | null;
|
|
41
|
+
|
|
42
|
+
export { type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
|
package/dist/ui/chart.js
ADDED
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { cn } from '../chunk-DMPSQ22Q.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Legend, Tooltip, ResponsiveContainer } from 'recharts';
|
|
4
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var THEMES = { light: "", dark: ".dark" };
|
|
7
|
+
var ChartContext = React.createContext(null);
|
|
8
|
+
function useChart() {
|
|
9
|
+
const context = React.useContext(ChartContext);
|
|
10
|
+
if (!context) {
|
|
11
|
+
throw new Error("useChart must be used within a <ChartContainer />");
|
|
12
|
+
}
|
|
13
|
+
return context;
|
|
14
|
+
}
|
|
15
|
+
function ChartContainer({
|
|
16
|
+
id,
|
|
17
|
+
className,
|
|
18
|
+
children,
|
|
19
|
+
config,
|
|
20
|
+
...props
|
|
21
|
+
}) {
|
|
22
|
+
const uniqueId = React.useId();
|
|
23
|
+
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
24
|
+
return /* @__PURE__ */ jsx(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs(
|
|
25
|
+
"div",
|
|
26
|
+
{
|
|
27
|
+
"data-slot": "chart",
|
|
28
|
+
"data-chart": chartId,
|
|
29
|
+
className: cn(
|
|
30
|
+
"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
|
|
31
|
+
className
|
|
32
|
+
),
|
|
33
|
+
...props,
|
|
34
|
+
children: [
|
|
35
|
+
/* @__PURE__ */ jsx(ChartStyle, { id: chartId, config }),
|
|
36
|
+
/* @__PURE__ */ jsx(ResponsiveContainer, { children })
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
) });
|
|
40
|
+
}
|
|
41
|
+
var ChartStyle = ({ id, config }) => {
|
|
42
|
+
const colorConfig = Object.entries(config).filter(([, config2]) => config2.theme || config2.color);
|
|
43
|
+
if (!colorConfig.length) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return /* @__PURE__ */ jsx(
|
|
47
|
+
"style",
|
|
48
|
+
{
|
|
49
|
+
dangerouslySetInnerHTML: {
|
|
50
|
+
__html: Object.entries(THEMES).map(
|
|
51
|
+
([theme, prefix]) => `
|
|
52
|
+
${prefix} [data-chart=${id}] {
|
|
53
|
+
${colorConfig.map(([key, itemConfig]) => {
|
|
54
|
+
const color = itemConfig.theme?.[theme] || itemConfig.color;
|
|
55
|
+
return color ? ` --color-${key}: ${color};` : null;
|
|
56
|
+
}).join("\n")}
|
|
57
|
+
}
|
|
58
|
+
`
|
|
59
|
+
).join("\n")
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
};
|
|
64
|
+
var ChartTooltip = Tooltip;
|
|
65
|
+
function ChartTooltipContent({
|
|
66
|
+
active,
|
|
67
|
+
payload,
|
|
68
|
+
className,
|
|
69
|
+
indicator = "dot",
|
|
70
|
+
hideLabel = false,
|
|
71
|
+
hideIndicator = false,
|
|
72
|
+
label,
|
|
73
|
+
labelFormatter,
|
|
74
|
+
labelClassName,
|
|
75
|
+
formatter,
|
|
76
|
+
color,
|
|
77
|
+
nameKey,
|
|
78
|
+
labelKey
|
|
79
|
+
}) {
|
|
80
|
+
const { config } = useChart();
|
|
81
|
+
const tooltipLabel = React.useMemo(() => {
|
|
82
|
+
if (hideLabel || !payload?.length) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
const [item] = payload;
|
|
86
|
+
const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
|
|
87
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
88
|
+
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
89
|
+
if (labelFormatter) {
|
|
90
|
+
return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
91
|
+
}
|
|
92
|
+
if (!value) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: value });
|
|
96
|
+
}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
|
|
97
|
+
if (!active || !payload?.length) {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
101
|
+
return /* @__PURE__ */ jsxs(
|
|
102
|
+
"div",
|
|
103
|
+
{
|
|
104
|
+
className: cn(
|
|
105
|
+
"border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",
|
|
106
|
+
className
|
|
107
|
+
),
|
|
108
|
+
children: [
|
|
109
|
+
!nestLabel ? tooltipLabel : null,
|
|
110
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
|
|
111
|
+
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
112
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
113
|
+
const indicatorColor = color || item.payload.fill || item.color;
|
|
114
|
+
return /* @__PURE__ */ jsx(
|
|
115
|
+
"div",
|
|
116
|
+
{
|
|
117
|
+
className: cn(
|
|
118
|
+
"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5",
|
|
119
|
+
indicator === "dot" && "items-center"
|
|
120
|
+
),
|
|
121
|
+
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
122
|
+
itemConfig?.icon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx(
|
|
123
|
+
"div",
|
|
124
|
+
{
|
|
125
|
+
className: cn(
|
|
126
|
+
"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
|
|
127
|
+
{
|
|
128
|
+
"h-2.5 w-2.5": indicator === "dot",
|
|
129
|
+
"w-1": indicator === "line",
|
|
130
|
+
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
131
|
+
"my-0.5": nestLabel && indicator === "dashed"
|
|
132
|
+
}
|
|
133
|
+
),
|
|
134
|
+
style: {
|
|
135
|
+
"--color-bg": indicatorColor,
|
|
136
|
+
"--color-border": indicatorColor
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
),
|
|
140
|
+
/* @__PURE__ */ jsxs(
|
|
141
|
+
"div",
|
|
142
|
+
{
|
|
143
|
+
className: cn(
|
|
144
|
+
"flex flex-1 justify-between leading-none",
|
|
145
|
+
nestLabel ? "items-end" : "items-center"
|
|
146
|
+
),
|
|
147
|
+
children: [
|
|
148
|
+
/* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
|
|
149
|
+
nestLabel ? tooltipLabel : null,
|
|
150
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
151
|
+
] }),
|
|
152
|
+
item.value && /* @__PURE__ */ jsx("span", { className: "text-foreground font-mono font-medium tabular-nums", children: item.value.toLocaleString() })
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
)
|
|
156
|
+
] })
|
|
157
|
+
},
|
|
158
|
+
item.dataKey
|
|
159
|
+
);
|
|
160
|
+
}) })
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
var ChartLegend = Legend;
|
|
166
|
+
function ChartLegendContent({
|
|
167
|
+
className,
|
|
168
|
+
hideIcon = false,
|
|
169
|
+
payload,
|
|
170
|
+
verticalAlign = "bottom",
|
|
171
|
+
nameKey
|
|
172
|
+
}) {
|
|
173
|
+
const { config } = useChart();
|
|
174
|
+
if (!payload?.length) {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
return /* @__PURE__ */ jsx(
|
|
178
|
+
"div",
|
|
179
|
+
{
|
|
180
|
+
className: cn(
|
|
181
|
+
"flex items-center justify-center gap-4",
|
|
182
|
+
verticalAlign === "top" ? "pb-3" : "pt-3",
|
|
183
|
+
className
|
|
184
|
+
),
|
|
185
|
+
children: payload.map((item) => {
|
|
186
|
+
const key = `${nameKey || item.dataKey || "value"}`;
|
|
187
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
188
|
+
return /* @__PURE__ */ jsxs(
|
|
189
|
+
"div",
|
|
190
|
+
{
|
|
191
|
+
className: cn(
|
|
192
|
+
"[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3"
|
|
193
|
+
),
|
|
194
|
+
children: [
|
|
195
|
+
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx(
|
|
196
|
+
"div",
|
|
197
|
+
{
|
|
198
|
+
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
199
|
+
style: {
|
|
200
|
+
backgroundColor: item.color
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
),
|
|
204
|
+
itemConfig?.label
|
|
205
|
+
]
|
|
206
|
+
},
|
|
207
|
+
item.value
|
|
208
|
+
);
|
|
209
|
+
})
|
|
210
|
+
}
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
function getPayloadConfigFromPayload(config, payload, key) {
|
|
214
|
+
if (typeof payload !== "object" || payload === null) {
|
|
215
|
+
return void 0;
|
|
216
|
+
}
|
|
217
|
+
const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
|
|
218
|
+
let configLabelKey = key;
|
|
219
|
+
if (key in payload && typeof payload[key] === "string") {
|
|
220
|
+
configLabelKey = payload[key];
|
|
221
|
+
} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
|
|
222
|
+
configLabelKey = payloadPayload[key];
|
|
223
|
+
}
|
|
224
|
+
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
|
|
228
|
+
//# sourceMappingURL=chart.js.map
|
|
229
|
+
//# sourceMappingURL=chart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ui/chart.tsx"],"names":["config"],"mappings":"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","file":"chart.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n Legend,\n ResponsiveContainer,\n Tooltip,\n type LegendProps,\n} from \"recharts\";\n\nimport { cn } from \"./utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ...props\n}: React.ComponentProps<\"div\"> & {\n config: ChartConfig;\n children: React.ComponentProps<typeof ResponsiveContainer>[\"children\"];\n}) {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <ResponsiveContainer>{children}</ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([, config]) => config.theme || config.color);\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\nconst ChartTooltip = Tooltip;\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<typeof Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: \"line\" | \"dot\" | \"dashed\";\n nameKey?: string;\n labelKey?: string;\n }) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>{labelFormatter(value, payload)}</div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div\n className={cn(\n \"border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl\",\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5\",\n indicator === \"dot\" && \"items-center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n },\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\",\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"text-foreground font-mono font-medium tabular-nums\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nconst ChartLegend = Legend;\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n}: React.ComponentProps<\"div\"> &\n Pick<LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean;\n nameKey?: string;\n }) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className,\n )}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n \"[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3\",\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload && typeof payload.payload === \"object\" && payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (key in payload && typeof payload[key as keyof typeof payload] === \"string\") {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Command as Command$1 } from 'cmdk';
|
|
3
|
+
import { c as Dialog } from '../dialog-CPkbi5N3.js';
|
|
4
|
+
import '@radix-ui/react-dialog';
|
|
5
|
+
|
|
6
|
+
declare function Command({ className, ...props }: React.ComponentProps<typeof Command$1>): React.JSX.Element;
|
|
7
|
+
declare function CommandDialog({ title, description, children, ...props }: React.ComponentProps<typeof Dialog> & {
|
|
8
|
+
title?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
}): React.JSX.Element;
|
|
11
|
+
declare function CommandInput({ className, ...props }: React.ComponentProps<typeof Command$1.Input>): React.JSX.Element;
|
|
12
|
+
declare function CommandList({ className, ...props }: React.ComponentProps<typeof Command$1.List>): React.JSX.Element;
|
|
13
|
+
declare function CommandEmpty({ ...props }: React.ComponentProps<typeof Command$1.Empty>): React.JSX.Element;
|
|
14
|
+
declare function CommandGroup({ className, ...props }: React.ComponentProps<typeof Command$1.Group>): React.JSX.Element;
|
|
15
|
+
declare function CommandSeparator({ className, ...props }: React.ComponentProps<typeof Command$1.Separator>): React.JSX.Element;
|
|
16
|
+
declare function CommandItem({ className, ...props }: React.ComponentProps<typeof Command$1.Item>): React.JSX.Element;
|
|
17
|
+
declare function CommandShortcut({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
|
|
18
|
+
|
|
19
|
+
export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from '../chunk-JCEOU7BU.js';
|
|
2
|
+
import '../chunk-7YCAAP43.js';
|
|
3
|
+
import '../chunk-DMPSQ22Q.js';
|
|
4
|
+
//# sourceMappingURL=command.js.map
|
|
5
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"command.js"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
|
|
3
|
+
|
|
4
|
+
declare function ContextMenu({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Root>): React.JSX.Element;
|
|
5
|
+
declare function ContextMenuTrigger({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>): React.JSX.Element;
|
|
6
|
+
declare function ContextMenuGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Group>): React.JSX.Element;
|
|
7
|
+
declare function ContextMenuPortal({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Portal>): React.JSX.Element;
|
|
8
|
+
declare function ContextMenuSub({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Sub>): React.JSX.Element;
|
|
9
|
+
declare function ContextMenuRadioGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>): React.JSX.Element;
|
|
10
|
+
declare function ContextMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {
|
|
11
|
+
inset?: boolean;
|
|
12
|
+
}): React.JSX.Element;
|
|
13
|
+
declare function ContextMenuSubContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>): React.JSX.Element;
|
|
14
|
+
declare function ContextMenuContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Content>): React.JSX.Element;
|
|
15
|
+
declare function ContextMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {
|
|
16
|
+
inset?: boolean;
|
|
17
|
+
variant?: "default" | "destructive";
|
|
18
|
+
}): React.JSX.Element;
|
|
19
|
+
declare function ContextMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>): React.JSX.Element;
|
|
20
|
+
declare function ContextMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>): React.JSX.Element;
|
|
21
|
+
declare function ContextMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {
|
|
22
|
+
inset?: boolean;
|
|
23
|
+
}): React.JSX.Element;
|
|
24
|
+
declare function ContextMenuSeparator({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Separator>): React.JSX.Element;
|
|
25
|
+
declare function ContextMenuShortcut({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
|
|
26
|
+
|
|
27
|
+
export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from '../chunk-XI4BQY5T.js';
|
|
2
|
+
import '../chunk-DMPSQ22Q.js';
|
|
3
|
+
//# sourceMappingURL=context-menu.js.map
|
|
4
|
+
//# sourceMappingURL=context-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"context-menu.js"}
|