@acronis-platform/shadcn-uikit 0.32.4 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/base.css +1 -1
  2. package/dist/components/icons/dynamic-icons.js +15 -0
  3. package/dist/components/icons/dynamic-icons.js.map +1 -0
  4. package/dist/components/mode-toggle.js +14 -10
  5. package/dist/components/mode-toggle.js.map +1 -1
  6. package/dist/components/ui/accordion.js +4 -3
  7. package/dist/components/ui/accordion.js.map +1 -1
  8. package/dist/components/ui/badge.d.ts +1 -1
  9. package/dist/components/ui/badge.js +8 -6
  10. package/dist/components/ui/badge.js.map +1 -1
  11. package/dist/components/ui/breadcrumb.js +5 -4
  12. package/dist/components/ui/breadcrumb.js.map +1 -1
  13. package/dist/components/ui/calendar.js +11 -10
  14. package/dist/components/ui/calendar.js.map +1 -1
  15. package/dist/components/ui/carousel.js +14 -13
  16. package/dist/components/ui/carousel.js.map +1 -1
  17. package/dist/components/ui/checkbox.js +2 -1
  18. package/dist/components/ui/checkbox.js.map +1 -1
  19. package/dist/components/ui/chip.js +5 -4
  20. package/dist/components/ui/chip.js.map +1 -1
  21. package/dist/components/ui/combobox.js +10 -9
  22. package/dist/components/ui/combobox.js.map +1 -1
  23. package/dist/components/ui/command.d.ts +2 -2
  24. package/dist/components/ui/command.js +7 -6
  25. package/dist/components/ui/command.js.map +1 -1
  26. package/dist/components/ui/data-table/data-table-column-header.js +14 -13
  27. package/dist/components/ui/data-table/data-table-column-header.js.map +1 -1
  28. package/dist/components/ui/data-table/data-table-pagination.js +23 -22
  29. package/dist/components/ui/data-table/data-table-pagination.js.map +1 -1
  30. package/dist/components/ui/data-table/data-table-toolbar.js +13 -12
  31. package/dist/components/ui/data-table/data-table-toolbar.js.map +1 -1
  32. package/dist/components/ui/data-table/data-table-view-options.js +4 -3
  33. package/dist/components/ui/data-table/data-table-view-options.js.map +1 -1
  34. package/dist/components/ui/dialog.js +16 -15
  35. package/dist/components/ui/dialog.js.map +1 -1
  36. package/dist/components/ui/dropdown-menu.js +9 -8
  37. package/dist/components/ui/dropdown-menu.js.map +1 -1
  38. package/dist/components/ui/empty.js +1 -1
  39. package/dist/components/ui/empty.js.map +1 -1
  40. package/dist/components/ui/filter.js +5 -4
  41. package/dist/components/ui/filter.js.map +1 -1
  42. package/dist/components/ui/navigation-menu.js +11 -10
  43. package/dist/components/ui/navigation-menu.js.map +1 -1
  44. package/dist/components/ui/pagination.js +14 -13
  45. package/dist/components/ui/pagination.js.map +1 -1
  46. package/dist/components/ui/radio-group.js +12 -11
  47. package/dist/components/ui/radio-group.js.map +1 -1
  48. package/dist/components/ui/resizable.js +5 -4
  49. package/dist/components/ui/resizable.js.map +1 -1
  50. package/dist/components/ui/select.js +9 -8
  51. package/dist/components/ui/select.js.map +1 -1
  52. package/dist/components/ui/sheet.js +12 -11
  53. package/dist/components/ui/sheet.js.map +1 -1
  54. package/dist/components/ui/sidebar.js +7 -6
  55. package/dist/components/ui/sidebar.js.map +1 -1
  56. package/dist/components/ui/stack.d.ts +2 -2
  57. package/dist/components/ui/tree.js +31 -30
  58. package/dist/components/ui/tree.js.map +1 -1
  59. package/dist/components.css +1 -1
  60. package/dist/shadcn-uikit-full.css +1 -1
  61. package/dist/shadcn-uikit.css +1 -1
  62. package/dist/utilities.css +1 -1
  63. package/package.json +1 -2
package/dist/base.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--av-font-sans,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"),system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:hsl(var(--av-border))}body{background-color:hsl(var(--av-background));font-family:var(--av-font-sans),system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--av-font-size-base,16px);line-height:var(--tw-leading,var(--av-line-height-base,1.5));color:hsl(var(--av-foreground));letter-spacing:var(--av-letter-spacing-base,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--color-brand-primary:213 65% 46%;--color-brand-secondary:211 100% 45%;--color-brand-lightest:213 65% 97%;--color-brand-light:213 65% 96%;--color-text-inverse:0 0% 100%;--color-text-primary:215 26% 20%;--color-text-secondary:215 26% 46%;--color-text-tertiary:215 14% 39%;--color-surface-primary:0 0% 100%;--color-surface-secondary:210 100% 15%;--color-surface-overlay:215 26% 20%;--color-surface-elevated:0 0% 100%;--color-status-success:73 68% 45%;--color-status-success-light:84 67% 93%;--color-status-success-dark:84 98% 21%;--color-status-info:211 82% 60%;--color-status-info-light:214 78% 95%;--color-status-info-dark:214 68% 38%;--color-status-warning:45 100% 52%;--color-status-warning-light:45 100% 95%;--color-status-warning-dark:30 50% 37%;--color-status-danger:0 77% 57%;--color-status-danger-light:0 100% 96%;--color-status-danger-dark:0 72% 45%;--color-status-critical:25 100% 52%;--color-status-critical-light:27 95% 92%;--color-status-critical-dark:11 73% 41%;--color-neutral:220 11% 62%;--color-neutral-light:220 11% 92%;--color-neutral-dark:215 14% 39%;--color-ai:263deg 77% 57%;--color-ai-light:273deg 85% 97%;--color-ai-dark:263deg 77% 57%;--opacity-10:.1;--opacity-20:.2;--opacity-30:.3;--opacity-40:.4;--opacity-50:.5;--opacity-70:.7;--opacity-90:.9;--av-background:var(--color-surface-primary);--av-elevated:var(--color-surface-elevated);--av-card:var(--av-elevated);--av-muted:var(--color-brand-lightest);--av-primary:var(--color-brand-primary);--av-accent:var(--color-brand-primary);--av-secondary:var(--color-surface-elevated);--av-destructive:var(--color-status-danger);--av-destructive-foreground:var(--color-text-inverse);--av-danger:var(--color-status-danger);--av-success:var(--color-status-success);--av-warning:var(--color-status-warning);--av-info:var(--color-status-info);--av-critical:var(--color-status-critical);--av-neutral:var(--color-status-neutral);--av-popover:var(--av-elevated);--av-tooltip:var(--color-surface-overlay);--av-foreground:var(--color-text-primary);--av-text-primary:var(--color-text-primary);--av-card-foreground:var(--color-text-primary);--av-popover-foreground:var(--color-text-primary);--av-primary-foreground:var(--color-text-inverse);--av-muted-foreground:var(--color-text-secondary);--av-secondary-foreground:var(--color-text-secondary);--av-tertiary-foreground:var(--color-text-tertiary);--av-accent-foreground:var(--color-text-inverse);--av-text-inverse:var(--color-surface-primary);--av-brand-foreground:var(--color-brand-primary);--av-border:213 65% 85%;--av-separator:213 65% 85%;--av-input:213 65% 85%;--av-border-strong:var(--color-brand-primary);--av-border-subtle:213 65% 92%;--av-interactive-default:var(--color-brand-primary);--av-interactive-hover:var(--color-brand-light);--av-interactive-active:var(--color-brand-primary);--av-interactive-disabled:var(--color-text-tertiary);--av-ring:var(--color-brand-primary);--av-focus:var(--color-brand-primary);--av-status-success:var(--color-status-success);--av-status-success-bg:var(--color-status-success-light);--av-status-success-text:var(--color-status-success-dark);--av-status-info:var(--color-status-info);--av-status-info-bg:var(--color-status-info-light);--av-status-info-text:var(--color-status-info-dark);--av-status-warning:var(--color-status-warning);--av-status-warning-bg:var(--color-status-warning-light);--av-status-warning-text:var(--color-status-warning-dark);--av-status-danger:var(--color-status-danger);--av-status-danger-bg:var(--color-status-danger-light);--av-status-danger-text:var(--color-status-danger-dark);--av-status-critical:var(--color-status-critical);--av-status-critical-bg:var(--color-status-critical-light);--av-status-critical-text:var(--color-status-critical-dark);--av-status-neutral:var(--color-neutral);--av-status-neutral-bg:var(--color-neutral-light);--av-status-neutral-text:var(--color-neutral-dark);--av-status-ai:var(--color-ai);--av-status-ai-bg:var(--color-ai-light);--av-status-ai-text:var(--color-ai-dark);--av-nav-bg:var(--color-surface-secondary);--av-nav-text:var(--color-surface-primary);--av-nav-active:var(--color-brand-secondary);--av-radius:.25rem;--av-chart-1:oklch(64.6% .222 41.116);--av-chart-2:oklch(60% .118 184.704);--av-chart-3:oklch(39.8% .07 227.392);--av-chart-4:oklch(82.8% .189 84.429);--av-chart-5:oklch(76.9% .188 70.08);--av-chart-blue:oklch(52.7% .16 257.94);--av-chart-brown:oklch(60.6% .105 62.98);--av-chart-critical:oklch(73.4% .184 52.786);--av-chart-danger:oklch(61.7% .21 26.1);--av-chart-green:oklch(65.4% .11 189);--av-chart-grey:oklch(68.4% .01 257.94);--av-chart-info:var(--av-brand-secondary);--av-chart-light-blue:oklch(80.9% .09 240);--av-chart-neutral:oklch(90.6% 0 257.94);--av-chart-purple:oklch(71.4% .19 314.82);--av-chart-red:oklch(66.9% .184 23.483);--av-chart-success:oklch(75.9% .177 123.498);--av-chart-transparent:oklch(80.9% .09 240/.5);--av-chart-turquoise:oklch(70.5% .13 230);--av-chart-violet:oklch(51.5% .09 299);--av-chart-warning:oklch(84.4% .17 84.9);--av-chart-yellow:oklch(84% .14 95)}.dark{--av-background:var(--color-text-primary);--av-elevated:215 26% 23%;--av-muted:215 26% 30%;--av-tooltip:215 26% 25%;--av-foreground:var(--color-surface-primary);--av-text-primary:var(--color-surface-primary);--av-card-foreground:var(--color-surface-primary);--av-popover-foreground:var(--color-surface-primary);--av-secondary-foreground:0 0% 70%;--av-tertiary-foreground:0 0% 60%;--av-text-inverse:var(--color-text-primary);--av-brand-foreground:var(--color-brand-primary);--av-border:215 26% 35%;--av-border-strong:215 26% 40%;--av-border-subtle:215 26% 25%;--av-interactive-default:var(--color-brand-primary);--av-interactive-hover:213 65% 56%;--av-interactive-active:var(--color-brand-primary);--av-interactive-disabled:215 26% 40%;--av-focus:var(--color-brand-primary);--av-status-success-bg:73 68% 20%;--av-status-success-text:var(--color-status-success-light);--av-status-info-bg:211 82% 20%;--av-status-info-text:var(--color-status-info-light);--av-status-warning-bg:45 100% 20%;--av-status-warning-text:var(--color-status-warning-light);--av-status-danger-bg:0 77% 20%;--av-status-danger-text:var(--color-status-danger-light);--av-status-critical-bg:25 100% 20%;--av-status-critical-text:var(--color-status-critical-light);--av-status-neutral-bg:220 11% 25%;--av-status-neutral-text:var(--color-neutral-light);--av-chart-1:oklch(48.8% .243 264.376);--av-chart-2:oklch(69.6% .17 162.48);--av-chart-3:oklch(76.9% .188 70.08);--av-chart-4:oklch(62.7% .265 303.9);--av-chart-5:oklch(64.5% .246 16.439)}.theme-acronis-default{--color-brand-primary:213 65% 46%;--color-brand-secondary:211 100% 45%;--color-brand-lightest:213 65% 97%;--color-brand-light:213 65% 96%;--color-text-inverse:0 0% 100%;--color-text-primary:215 26% 20%;--color-text-secondary:215 26% 46%;--color-text-tertiary:215 14% 39%;--color-surface-primary:0 0% 100%;--color-surface-secondary:210 100% 15%;--color-surface-overlay:215 26% 20%;--color-surface-elevated:0 0% 100%;--color-status-success:73 68% 45%;--color-status-success-light:84 67% 93%;--color-status-success-dark:84 98% 21%;--color-status-info:211 82% 60%;--color-status-info-light:214 78% 95%;--color-status-info-dark:214 68% 38%;--color-status-warning:45 100% 52%;--color-status-warning-light:45 100% 95%;--color-status-warning-dark:30 50% 37%;--color-status-danger:0 77% 57%;--color-status-danger-light:0 100% 96%;--color-status-danger-dark:0 72% 45%;--color-status-critical:25 100% 52%;--color-status-critical-light:27 95% 92%;--color-status-critical-dark:11 73% 41%;--color-neutral:220 11% 62%;--color-neutral-light:220 11% 92%;--color-neutral-dark:215 14% 39%;--color-ai:263deg 77% 57%;--color-ai-light:273deg 85% 97%;--color-ai-dark:263deg 77% 57%;--opacity-10:.1;--opacity-20:.2;--opacity-30:.3;--opacity-40:.4;--opacity-50:.5;--opacity-70:.7;--opacity-90:.9;--av-background:var(--color-surface-primary);--av-elevated:var(--color-surface-elevated);--av-card:var(--av-elevated);--av-muted:var(--color-brand-lightest);--av-primary:var(--color-brand-primary);--av-accent:var(--color-brand-primary);--av-secondary:var(--color-surface-elevated);--av-destructive:var(--color-status-danger);--av-destructive-foreground:var(--color-text-inverse);--av-danger:var(--color-status-danger);--av-success:var(--color-status-success);--av-warning:var(--color-status-warning);--av-info:var(--color-status-info);--av-critical:var(--color-status-critical);--av-neutral:var(--color-status-neutral);--av-popover:var(--av-elevated);--av-tooltip:var(--color-surface-overlay);--av-foreground:var(--color-text-primary);--av-text-primary:var(--color-text-primary);--av-card-foreground:var(--color-text-primary);--av-popover-foreground:var(--color-text-primary);--av-primary-foreground:var(--color-text-inverse);--av-muted-foreground:var(--color-text-secondary);--av-secondary-foreground:var(--color-text-secondary);--av-tertiary-foreground:var(--color-text-tertiary);--av-accent-foreground:var(--color-text-inverse);--av-text-inverse:var(--color-surface-primary);--av-brand-foreground:var(--color-brand-primary);--av-border:213 65% 85%;--av-separator:213 65% 85%;--av-input:213 65% 85%;--av-border-strong:var(--color-brand-primary);--av-border-subtle:213 65% 92%;--av-interactive-default:var(--color-brand-primary);--av-interactive-hover:var(--color-brand-light);--av-interactive-active:var(--color-brand-primary);--av-interactive-disabled:var(--color-text-tertiary);--av-ring:var(--color-brand-primary);--av-focus:var(--color-brand-primary);--av-status-success:var(--color-status-success);--av-status-success-bg:var(--color-status-success-light);--av-status-success-text:var(--color-status-success-dark);--av-status-info:var(--color-status-info);--av-status-info-bg:var(--color-status-info-light);--av-status-info-text:var(--color-status-info-dark);--av-status-warning:var(--color-status-warning);--av-status-warning-bg:var(--color-status-warning-light);--av-status-warning-text:var(--color-status-warning-dark);--av-status-danger:var(--color-status-danger);--av-status-danger-bg:var(--color-status-danger-light);--av-status-danger-text:var(--color-status-danger-dark);--av-status-critical:var(--color-status-critical);--av-status-critical-bg:var(--color-status-critical-light);--av-status-critical-text:var(--color-status-critical-dark);--av-status-neutral:var(--color-neutral);--av-status-neutral-bg:var(--color-neutral-light);--av-status-neutral-text:var(--color-neutral-dark);--av-status-ai:var(--color-ai);--av-status-ai-bg:var(--color-ai-light);--av-status-ai-text:var(--color-ai-dark);--av-nav-bg:var(--color-surface-secondary);--av-nav-text:var(--color-surface-primary);--av-nav-active:var(--color-brand-secondary);--av-radius:.25rem;--av-chart-1:oklch(64.6% .222 41.116);--av-chart-2:oklch(60% .118 184.704);--av-chart-3:oklch(39.8% .07 227.392);--av-chart-4:oklch(82.8% .189 84.429);--av-chart-5:oklch(76.9% .188 70.08);--av-chart-blue:oklch(52.7% .16 257.94);--av-chart-brown:oklch(60.6% .105 62.98);--av-chart-critical:oklch(73.4% .184 52.786);--av-chart-danger:oklch(61.7% .21 26.1);--av-chart-green:oklch(65.4% .11 189);--av-chart-grey:oklch(68.4% .01 257.94);--av-chart-info:var(--av-brand-secondary);--av-chart-light-blue:oklch(80.9% .09 240);--av-chart-neutral:oklch(90.6% 0 257.94);--av-chart-purple:oklch(71.4% .19 314.82);--av-chart-red:oklch(66.9% .184 23.483);--av-chart-success:oklch(75.9% .177 123.498);--av-chart-transparent:oklch(80.9% .09 240/.5);--av-chart-turquoise:oklch(70.5% .13 230);--av-chart-violet:oklch(51.5% .09 299);--av-chart-warning:oklch(84.4% .17 84.9);--av-chart-yellow:oklch(84% .14 95)}.theme-acronis-default.dark{--av-background:var(--color-text-primary);--av-elevated:215 26% 23%;--av-muted:215 26% 30%;--av-tooltip:215 26% 25%;--av-foreground:var(--color-surface-primary);--av-text-primary:var(--color-surface-primary);--av-card-foreground:var(--color-surface-primary);--av-popover-foreground:var(--color-surface-primary);--av-secondary-foreground:0 0% 70%;--av-tertiary-foreground:0 0% 60%;--av-text-inverse:var(--color-text-primary);--av-brand-foreground:var(--color-brand-primary);--av-border:215 26% 35%;--av-border-strong:215 26% 40%;--av-border-subtle:215 26% 25%;--av-interactive-default:var(--color-brand-primary);--av-interactive-hover:213 65% 56%;--av-interactive-active:var(--color-brand-primary);--av-interactive-disabled:215 26% 40%;--av-focus:var(--color-brand-primary);--av-status-success-bg:73 68% 20%;--av-status-success-text:var(--color-status-success-light);--av-status-info-bg:211 82% 20%;--av-status-info-text:var(--color-status-info-light);--av-status-warning-bg:45 100% 20%;--av-status-warning-text:var(--color-status-warning-light);--av-status-danger-bg:0 77% 20%;--av-status-danger-text:var(--color-status-danger-light);--av-status-critical-bg:25 100% 20%;--av-status-critical-text:var(--color-status-critical-light);--av-status-neutral-bg:220 11% 25%;--av-status-neutral-text:var(--color-neutral-light);--av-chart-1:oklch(48.8% .243 264.376);--av-chart-2:oklch(69.6% .17 162.48);--av-chart-3:oklch(76.9% .188 70.08);--av-chart-4:oklch(62.7% .265 303.9);--av-chart-5:oklch(64.5% .246 16.439)}:root{--av-font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--av-font-size-base:16px;--av-line-height-base:1.5;--av-letter-spacing-base:0}
1
+ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--av-font-sans,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"),system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:hsl(var(--av-border))}body{background-color:hsl(var(--av-background));font-family:var(--av-font-sans),system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--av-font-size-base,16px);line-height:var(--tw-leading,var(--av-line-height-base,1.5));color:hsl(var(--av-foreground));letter-spacing:var(--av-letter-spacing-base,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--color-brand-primary:213 65% 46%;--color-brand-secondary:211 100% 45%;--color-brand-lightest:213 65% 97%;--color-brand-light:213 65% 96%;--color-text-inverse:0 0% 100%;--color-text-primary:215 26% 20%;--color-text-secondary:215 26% 46%;--color-text-tertiary:215 14% 39%;--color-surface-primary:0 0% 100%;--color-surface-secondary:210 100% 15%;--color-surface-overlay:215 26% 20%;--color-surface-elevated:0 0% 100%;--color-status-success:73 68% 45%;--color-status-success-light:84 67% 93%;--color-status-success-dark:84 98% 21%;--color-status-info:211 82% 60%;--color-status-info-light:214 78% 95%;--color-status-info-dark:214 68% 38%;--color-status-warning:45 100% 52%;--color-status-warning-light:45 100% 95%;--color-status-warning-dark:30 50% 37%;--color-status-danger:0 77% 57%;--color-status-danger-light:0 100% 96%;--color-status-danger-dark:0 72% 45%;--color-status-critical:25 100% 52%;--color-status-critical-light:27 95% 92%;--color-status-critical-dark:11 73% 41%;--color-neutral:220 11% 62%;--color-neutral-light:220 11% 92%;--color-neutral-dark:215 14% 39%;--color-ai:263deg 77% 57%;--color-ai-light:273deg 85% 97%;--color-ai-dark:263deg 77% 57%;--opacity-10:.1;--opacity-20:.2;--opacity-30:.3;--opacity-40:.4;--opacity-50:.5;--opacity-70:.7;--opacity-90:.9;--av-background:var(--color-surface-primary);--av-elevated:var(--color-surface-elevated);--av-card:var(--av-elevated);--av-muted:var(--color-brand-lightest);--av-primary:var(--color-brand-primary);--av-accent:var(--color-brand-primary);--av-secondary:var(--color-surface-elevated);--av-destructive:var(--color-status-danger);--av-destructive-foreground:var(--color-text-inverse);--av-danger:var(--color-status-danger);--av-success:var(--color-status-success);--av-warning:var(--color-status-warning);--av-info:var(--color-status-info);--av-critical:var(--color-status-critical);--av-neutral:var(--color-status-neutral);--av-popover:var(--av-elevated);--av-tooltip:var(--color-surface-overlay);--av-foreground:var(--color-text-primary);--av-text-primary:var(--color-text-primary);--av-card-foreground:var(--color-text-primary);--av-popover-foreground:var(--color-text-primary);--av-primary-foreground:var(--color-text-inverse);--av-muted-foreground:var(--color-text-secondary);--av-secondary-foreground:var(--color-text-secondary);--av-tertiary-foreground:var(--color-text-tertiary);--av-accent-foreground:var(--color-text-inverse);--av-text-inverse:var(--color-surface-primary);--av-brand-foreground:var(--color-brand-primary);--av-border:213 65% 85%;--av-separator:213 65% 85%;--av-input:213 65% 85%;--av-border-strong:var(--color-brand-primary);--av-border-subtle:213 65% 92%;--av-interactive-default:var(--color-brand-primary);--av-interactive-hover:var(--color-brand-light);--av-interactive-active:var(--color-brand-primary);--av-interactive-disabled:var(--color-text-tertiary);--av-ring:var(--color-brand-primary);--av-focus:var(--color-brand-primary);--av-status-success:var(--color-status-success);--av-status-success-bg:var(--color-status-success-light);--av-status-success-text:var(--color-status-success-dark);--av-status-info:var(--color-status-info);--av-status-info-bg:var(--color-status-info-light);--av-status-info-text:var(--color-status-info-dark);--av-status-warning:var(--color-status-warning);--av-status-warning-bg:var(--color-status-warning-light);--av-status-warning-text:var(--color-status-warning-dark);--av-status-danger:var(--color-status-danger);--av-status-danger-bg:var(--color-status-danger-light);--av-status-danger-text:var(--color-status-danger-dark);--av-status-critical:var(--color-status-critical);--av-status-critical-bg:var(--color-status-critical-light);--av-status-critical-text:var(--color-status-critical-dark);--av-status-neutral:var(--color-neutral);--av-status-neutral-bg:var(--color-neutral-light);--av-status-neutral-text:var(--color-neutral-dark);--av-status-ai:var(--color-ai);--av-status-ai-bg:var(--color-ai-light);--av-status-ai-text:var(--color-ai-dark);--av-nav-bg:var(--color-surface-secondary);--av-nav-text:var(--color-surface-primary);--av-nav-active:var(--color-brand-secondary);--av-radius:.25rem;--av-chart-1:oklch(64.6% .222 41.116);--av-chart-2:oklch(60% .118 184.704);--av-chart-3:oklch(39.8% .07 227.392);--av-chart-4:oklch(82.8% .189 84.429);--av-chart-5:oklch(76.9% .188 70.08);--av-chart-blue:oklch(52.7% .16 257.94);--av-chart-brown:oklch(60.6% .105 62.98);--av-chart-critical:oklch(73.4% .184 52.786);--av-chart-danger:oklch(61.7% .21 26.1);--av-chart-green:oklch(65.4% .11 189);--av-chart-grey:oklch(68.4% .01 257.94);--av-chart-info:var(--av-brand-secondary);--av-chart-light-blue:oklch(80.9% .09 240);--av-chart-neutral:oklch(90.6% 0 257.94);--av-chart-purple:oklch(71.4% .19 314.82);--av-chart-red:oklch(66.9% .184 23.483);--av-chart-success:oklch(75.9% .177 123.498);--av-chart-transparent:oklch(80.9% .09 240/.5);--av-chart-turquoise:oklch(70.5% .13 230);--av-chart-violet:oklch(51.5% .09 299);--av-chart-warning:oklch(84.4% .17 84.9);--av-chart-yellow:oklch(84% .14 95)}.dark{--av-background:var(--color-text-primary);--av-elevated:215 26% 23%;--av-muted:215 26% 30%;--av-tooltip:215 26% 25%;--av-foreground:var(--color-surface-primary);--av-text-primary:var(--color-surface-primary);--av-card-foreground:var(--color-surface-primary);--av-popover-foreground:var(--color-surface-primary);--av-secondary-foreground:0 0% 70%;--av-tertiary-foreground:0 0% 60%;--av-text-inverse:var(--color-text-primary);--av-brand-foreground:var(--color-brand-primary);--av-border:215 26% 35%;--av-border-strong:215 26% 40%;--av-border-subtle:215 26% 25%;--av-interactive-default:var(--color-brand-primary);--av-interactive-hover:213 65% 56%;--av-interactive-active:var(--color-brand-primary);--av-interactive-disabled:215 26% 40%;--av-focus:var(--color-brand-primary);--av-status-success-bg:73 68% 20%;--av-status-success-text:var(--color-status-success-light);--av-status-info-bg:211 82% 20%;--av-status-info-text:var(--color-status-info-light);--av-status-warning-bg:45 100% 20%;--av-status-warning-text:var(--color-status-warning-light);--av-status-danger-bg:0 77% 20%;--av-status-danger-text:var(--color-status-danger-light);--av-status-critical-bg:25 100% 20%;--av-status-critical-text:var(--color-status-critical-light);--av-status-neutral-bg:220 11% 25%;--av-status-neutral-text:var(--color-neutral-light);--av-chart-1:oklch(48.8% .243 264.376);--av-chart-2:oklch(69.6% .17 162.48);--av-chart-3:oklch(76.9% .188 70.08);--av-chart-4:oklch(62.7% .265 303.9);--av-chart-5:oklch(64.5% .246 16.439)}.theme-acronis-default{--color-brand-primary:213 65% 46%;--color-brand-secondary:211 100% 45%;--color-brand-lightest:213 65% 97%;--color-brand-light:213 65% 96%;--color-text-inverse:0 0% 100%;--color-text-primary:215 26% 20%;--color-text-secondary:215 26% 46%;--color-text-tertiary:215 14% 39%;--color-surface-primary:0 0% 100%;--color-surface-secondary:210 100% 15%;--color-surface-overlay:215 26% 20%;--color-surface-elevated:0 0% 100%;--color-status-success:73 68% 45%;--color-status-success-light:84 67% 93%;--color-status-success-dark:84 98% 21%;--color-status-info:211 82% 60%;--color-status-info-light:214 78% 95%;--color-status-info-dark:214 68% 38%;--color-status-warning:45 100% 52%;--color-status-warning-light:45 100% 95%;--color-status-warning-dark:30 50% 37%;--color-status-danger:0 77% 57%;--color-status-danger-light:0 100% 96%;--color-status-danger-dark:0 72% 45%;--color-status-critical:25 100% 52%;--color-status-critical-light:27 95% 92%;--color-status-critical-dark:11 73% 41%;--color-neutral:220 11% 62%;--color-neutral-light:220 11% 92%;--color-neutral-dark:215 14% 39%;--color-ai:263deg 77% 57%;--color-ai-light:273deg 85% 97%;--color-ai-dark:263deg 77% 57%;--opacity-10:.1;--opacity-20:.2;--opacity-30:.3;--opacity-40:.4;--opacity-50:.5;--opacity-70:.7;--opacity-90:.9;--av-background:var(--color-surface-primary);--av-elevated:var(--color-surface-elevated);--av-card:var(--av-elevated);--av-muted:var(--color-brand-lightest);--av-primary:var(--color-brand-primary);--av-accent:var(--color-brand-primary);--av-secondary:var(--color-surface-elevated);--av-destructive:var(--color-status-danger);--av-destructive-foreground:var(--color-text-inverse);--av-danger:var(--color-status-danger);--av-success:var(--color-status-success);--av-warning:var(--color-status-warning);--av-info:var(--color-status-info);--av-critical:var(--color-status-critical);--av-neutral:var(--color-status-neutral);--av-popover:var(--av-elevated);--av-tooltip:var(--color-surface-overlay);--av-foreground:var(--color-text-primary);--av-text-primary:var(--color-text-primary);--av-card-foreground:var(--color-text-primary);--av-popover-foreground:var(--color-text-primary);--av-primary-foreground:var(--color-text-inverse);--av-muted-foreground:var(--color-text-secondary);--av-secondary-foreground:var(--color-text-secondary);--av-tertiary-foreground:var(--color-text-tertiary);--av-accent-foreground:var(--color-text-inverse);--av-text-inverse:var(--color-surface-primary);--av-brand-foreground:var(--color-brand-primary);--av-border:213 65% 85%;--av-separator:213 65% 85%;--av-input:213 65% 85%;--av-border-strong:var(--color-brand-primary);--av-border-subtle:213 65% 92%;--av-interactive-default:var(--color-brand-primary);--av-interactive-hover:var(--color-brand-light);--av-interactive-active:var(--color-brand-primary);--av-interactive-disabled:var(--color-text-tertiary);--av-ring:var(--color-brand-primary);--av-focus:var(--color-brand-primary);--av-status-success:var(--color-status-success);--av-status-success-bg:var(--color-status-success-light);--av-status-success-text:var(--color-status-success-dark);--av-status-info:var(--color-status-info);--av-status-info-bg:var(--color-status-info-light);--av-status-info-text:var(--color-status-info-dark);--av-status-warning:var(--color-status-warning);--av-status-warning-bg:var(--color-status-warning-light);--av-status-warning-text:var(--color-status-warning-dark);--av-status-danger:var(--color-status-danger);--av-status-danger-bg:var(--color-status-danger-light);--av-status-danger-text:var(--color-status-danger-dark);--av-status-critical:var(--color-status-critical);--av-status-critical-bg:var(--color-status-critical-light);--av-status-critical-text:var(--color-status-critical-dark);--av-status-neutral:var(--color-neutral);--av-status-neutral-bg:var(--color-neutral-light);--av-status-neutral-text:var(--color-neutral-dark);--av-status-ai:var(--color-ai);--av-status-ai-bg:var(--color-ai-light);--av-status-ai-text:var(--color-ai-dark);--av-nav-bg:var(--color-surface-secondary);--av-nav-text:var(--color-surface-primary);--av-nav-active:var(--color-brand-secondary);--av-radius:.25rem;--av-chart-1:oklch(64.6% .222 41.116);--av-chart-2:oklch(60% .118 184.704);--av-chart-3:oklch(39.8% .07 227.392);--av-chart-4:oklch(82.8% .189 84.429);--av-chart-5:oklch(76.9% .188 70.08);--av-chart-blue:oklch(52.7% .16 257.94);--av-chart-brown:oklch(60.6% .105 62.98);--av-chart-critical:oklch(73.4% .184 52.786);--av-chart-danger:oklch(61.7% .21 26.1);--av-chart-green:oklch(65.4% .11 189);--av-chart-grey:oklch(68.4% .01 257.94);--av-chart-info:var(--av-brand-secondary);--av-chart-light-blue:oklch(80.9% .09 240);--av-chart-neutral:oklch(90.6% 0 257.94);--av-chart-purple:oklch(71.4% .19 314.82);--av-chart-red:oklch(66.9% .184 23.483);--av-chart-success:oklch(75.9% .177 123.498);--av-chart-transparent:oklch(80.9% .09 240/.5);--av-chart-turquoise:oklch(70.5% .13 230);--av-chart-violet:oklch(51.5% .09 299);--av-chart-warning:oklch(84.4% .17 84.9);--av-chart-yellow:oklch(84% .14 95)}.theme-acronis-default.dark{--av-background:var(--color-text-primary);--av-elevated:215 26% 23%;--av-muted:215 26% 30%;--av-tooltip:215 26% 25%;--av-foreground:var(--color-surface-primary);--av-text-primary:var(--color-surface-primary);--av-card-foreground:var(--color-surface-primary);--av-popover-foreground:var(--color-surface-primary);--av-secondary-foreground:0 0% 70%;--av-tertiary-foreground:0 0% 60%;--av-text-inverse:var(--color-text-primary);--av-brand-foreground:var(--color-brand-primary);--av-border:215 26% 35%;--av-border-strong:215 26% 40%;--av-border-subtle:215 26% 25%;--av-interactive-default:var(--color-brand-primary);--av-interactive-hover:213 65% 56%;--av-interactive-active:var(--color-brand-primary);--av-interactive-disabled:215 26% 40%;--av-focus:var(--color-brand-primary);--av-status-success-bg:73 68% 20%;--av-status-success-text:var(--color-status-success-light);--av-status-info-bg:211 82% 20%;--av-status-info-text:var(--color-status-info-light);--av-status-warning-bg:45 100% 20%;--av-status-warning-text:var(--color-status-warning-light);--av-status-danger-bg:0 77% 20%;--av-status-danger-text:var(--color-status-danger-light);--av-status-critical-bg:25 100% 20%;--av-status-critical-text:var(--color-status-critical-light);--av-status-neutral-bg:220 11% 25%;--av-status-neutral-text:var(--color-neutral-light);--av-chart-1:oklch(48.8% .243 264.376);--av-chart-2:oklch(69.6% .17 162.48);--av-chart-3:oklch(76.9% .188 70.08);--av-chart-4:oklch(62.7% .265 303.9);--av-chart-5:oklch(64.5% .246 16.439)}:root{--av-font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--av-font-size-base:16px;--av-line-height-base:1.5;--av-letter-spacing-base:0}@layer components{.badge-ai-gradient{background:linear-gradient(hsl(var(--av-status-ai-bg)),hsl(var(--av-status-ai-bg))) padding-box,linear-gradient(135deg,hsl(var(--av-status-ai)),hsl(var(--av-status-ai-gradient-stop,300deg 65% 60%))) border-box;border-color:#0000}.badge-ai-solid{background:linear-gradient(135deg,hsl(var(--av-status-ai)),hsl(var(--av-status-ai-gradient-stop,300deg 65% 60%)));border-color:#0000}}
@@ -0,0 +1,15 @@
1
+ import "react/jsx-runtime";
2
+ import "react";
3
+ const o = /* @__PURE__ */ Object.assign({});
4
+ Object.entries(o).reduce(
5
+ (t, [s, c]) => {
6
+ const e = s.match(/\.\/svg\/(.+)\.svg\?react/);
7
+ if (e) {
8
+ const n = e[1];
9
+ t[n] = c.default;
10
+ }
11
+ return t;
12
+ },
13
+ {}
14
+ );
15
+ //# sourceMappingURL=dynamic-icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-icons.js","sources":["../../../src/components/icons/dynamic-icons.tsx"],"sourcesContent":["import React from 'react'\n\n/**\n * Dynamic icon loader using Vite's import.meta.glob\n * Automatically imports all SVG files from the svg directory\n */\n\n// Eager import - loads all icons immediately\nconst iconModules = import.meta.glob<{\n default: React.ComponentType<React.SVGProps<SVGSVGElement>>\n}>('./svg/*.svg?react', { eager: true })\n\n// Lazy import - loads icons on demand (better for large icon sets)\nconst lazyIconModules = import.meta.glob<{\n default: React.ComponentType<React.SVGProps<SVGSVGElement>>\n}>('./svg/*.svg?react')\n\n/**\n * Get icon component by name\n * @example\n * const InfoIcon = getIcon('info')\n * <InfoIcon className=\"size-4\" />\n */\nexport function getIcon(name: string): React.ComponentType<React.SVGProps<SVGSVGElement>> | null {\n const path = `./svg/${name}.svg?react`\n const module = iconModules[path]\n return module?.default || null\n}\n\n/**\n * Get all available icon names\n */\nexport function getIconNames(): string[] {\n return Object.keys(iconModules)\n .map((path) => {\n const match = path.match(/\\.\\/svg\\/(.+)\\.svg\\?react/)\n return match ? match[1] : ''\n })\n .filter(Boolean)\n}\n\n/**\n * Dynamic Icon component that loads icons by name\n */\ninterface DynamicIconProps extends React.SVGProps<SVGSVGElement> {\n name: string\n className?: string\n}\n\nexport function DynamicIcon({ name, className = 'size-4', ...props }: DynamicIconProps) {\n const IconComponent = getIcon(name)\n\n if (!IconComponent) {\n console.warn(`Icon \"${name}\" not found`)\n return null\n }\n\n return <IconComponent className={className} {...props} />\n}\n\n/**\n * Lazy loading icon component\n */\nexport function LazyIcon({ name, className = 'size-4', ...props }: DynamicIconProps) {\n const [IconComponent, setIconComponent] = React.useState<React.ComponentType<\n React.SVGProps<SVGSVGElement>\n > | null>(null)\n\n React.useEffect(() => {\n const path = `./svg/${name}.svg?react`\n const loader = lazyIconModules[path]\n\n if (loader) {\n loader().then((module) => {\n setIconComponent(() => module.default)\n })\n }\n }, [name])\n\n if (!IconComponent) {\n return <div className={className} /> // Placeholder\n }\n\n return <IconComponent className={className} {...props} />\n}\n\n/**\n * Export all icons as a map for easy access\n */\nexport const Icons = Object.entries(iconModules).reduce(\n (acc, [path, module]) => {\n const match = path.match(/\\.\\/svg\\/(.+)\\.svg\\?react/)\n if (match) {\n const name = match[1]\n acc[name] = module.default\n }\n return acc\n },\n {} as Record<string, React.ComponentType<React.SVGProps<SVGSVGElement>>>\n)\n"],"names":["iconModules","acc","path","module","match","name"],"mappings":";;AAQA,MAAMA,IAAc,uBAAA,OAAA,EAAA;AAiFC,OAAO,QAAQA,CAAW,EAAE;AAAA,EAC/C,CAACC,GAAK,CAACC,GAAMC,CAAM,MAAM;AACvB,UAAMC,IAAQF,EAAK,MAAM,2BAA2B;AACpD,QAAIE,GAAO;AACT,YAAMC,IAAOD,EAAM,CAAC;AACpB,MAAAH,EAAII,CAAI,IAAIF,EAAO;AAAA,IACrB;AACA,WAAOF;AAAA,EACT;AAAA,EACA,CAAA;AACF;"}
@@ -1,17 +1,21 @@
1
1
  import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
- import { Sun as t, Moon as a } from "lucide-react";
3
- import { Button as i } from "./ui/button.js";
4
- import { DropdownMenu as l, DropdownMenuTrigger as s, DropdownMenuContent as m, DropdownMenuItem as n } from "./ui/dropdown-menu.js";
2
+ import { cn as l } from "../lib/utils.js";
3
+ import { Button as t } from "./ui/button.js";
4
+ import { DropdownMenu as s, DropdownMenuTrigger as i, DropdownMenuContent as a, DropdownMenuItem as n } from "./ui/dropdown-menu.js";
5
5
  import { useTheme as c } from "./theme-provider.js";
6
- function k() {
6
+ const m = ({ className: r }) => /* @__PURE__ */ e("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", fill: "currentColor", className: l("size-4 shrink-0", r), children: /* @__PURE__ */ e("path", { d: "M14.5 10.29A7.5 7.5 0 0 1 5.71 1.5 6 6 0 1 0 14.5 10.29z" }) }), h = ({ className: r }) => /* @__PURE__ */ o("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 16 16", fill: "currentColor", className: l("size-4 shrink-0", r), children: [
7
+ /* @__PURE__ */ e("circle", { cx: "8", cy: "8", r: "3" }),
8
+ /* @__PURE__ */ e("path", { d: "M8 1v2M8 13v2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M1 8h2M13 8h2M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41" })
9
+ ] });
10
+ function u() {
7
11
  const { setTheme: r } = c();
8
- return /* @__PURE__ */ o(l, { children: [
9
- /* @__PURE__ */ o(s, { render: /* @__PURE__ */ e(i, { variant: "outline", size: "icon" }), children: [
10
- /* @__PURE__ */ e(t, { className: "h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" }),
11
- /* @__PURE__ */ e(a, { className: "absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" }),
12
+ return /* @__PURE__ */ o(s, { children: [
13
+ /* @__PURE__ */ o(i, { render: /* @__PURE__ */ e(t, { variant: "outline", size: "icon" }), children: [
14
+ /* @__PURE__ */ e(h, { className: "h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" }),
15
+ /* @__PURE__ */ e(m, { className: "absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" }),
12
16
  /* @__PURE__ */ e("span", { className: "sr-only", children: "Toggle theme" })
13
17
  ] }),
14
- /* @__PURE__ */ o(m, { align: "end", children: [
18
+ /* @__PURE__ */ o(a, { align: "end", children: [
15
19
  /* @__PURE__ */ e(n, { onClick: () => r("light"), children: "Light" }),
16
20
  /* @__PURE__ */ e(n, { onClick: () => r("dark"), children: "Dark" }),
17
21
  /* @__PURE__ */ e(n, { onClick: () => r("system"), children: "System" })
@@ -19,6 +23,6 @@ function k() {
19
23
  ] });
20
24
  }
21
25
  export {
22
- k as ModeToggle
26
+ u as ModeToggle
23
27
  };
24
28
  //# sourceMappingURL=mode-toggle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mode-toggle.js","sources":["../../src/components/mode-toggle.tsx"],"sourcesContent":["import { Moon, Sun } from 'lucide-react'\n\nimport { Button } from '@/components/ui/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu'\nimport { useTheme } from '@/components/theme-provider'\n\nexport function ModeToggle() {\n const { setTheme } = useTheme()\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger render={<Button variant=\"outline\" size=\"icon\" />}>\n <Sun className=\"h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90\" />\n <Moon className=\"absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0\" />\n <span className=\"sr-only\">Toggle theme</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={() => setTheme('light')}>Light</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme('dark')}>Dark</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme('system')}>System</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n"],"names":["ModeToggle","setTheme","useTheme","DropdownMenu","jsxs","DropdownMenuTrigger","jsx","Button","Sun","Moon","DropdownMenuContent","DropdownMenuItem"],"mappings":";;;;;AAWO,SAASA,IAAa;AAC3B,QAAM,EAAE,UAAAC,EAAA,IAAaC,EAAA;AAErB,2BACGC,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAoB,QAAQ,gBAAAC,EAACC,GAAA,EAAO,SAAQ,WAAU,MAAK,QAAO,GACjE,UAAA;AAAA,MAAA,gBAAAD,EAACE,GAAA,EAAI,WAAU,uFAAA,CAAuF;AAAA,MACtG,gBAAAF,EAACG,GAAA,EAAK,WAAU,+FAAA,CAA+F;AAAA,MAC/G,gBAAAH,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,eAAA,CAAY;AAAA,IAAA,GACxC;AAAA,IACA,gBAAAF,EAACM,GAAA,EAAoB,OAAM,OACzB,UAAA;AAAA,MAAA,gBAAAJ,EAACK,KAAiB,SAAS,MAAMV,EAAS,OAAO,GAAG,UAAA,SAAK;AAAA,wBACxDU,GAAA,EAAiB,SAAS,MAAMV,EAAS,MAAM,GAAG,UAAA,QAAI;AAAA,wBACtDU,GAAA,EAAiB,SAAS,MAAMV,EAAS,QAAQ,GAAG,UAAA,SAAA,CAAM;AAAA,IAAA,EAAA,CAC7D;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"mode-toggle.js","sources":["../../src/components/mode-toggle.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu'\nimport { useTheme } from '@/components/theme-provider'\n\n// TODO: Replace with MoonIcon from @/components/icons once moon--16.svg is added to the catalog\nconst MoonIcon = ({ className }: { className?: string }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" className={cn('size-4 shrink-0', className)}>\n <path d=\"M14.5 10.29A7.5 7.5 0 0 1 5.71 1.5 6 6 0 1 0 14.5 10.29z\" />\n </svg>\n)\n\n// TODO: Replace with SunIcon from @/components/icons once sun--16.svg is added to the catalog\nconst SunIcon = ({ className }: { className?: string }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" fill=\"currentColor\" className={cn('size-4 shrink-0', className)}>\n <circle cx=\"8\" cy=\"8\" r=\"3\" />\n <path d=\"M8 1v2M8 13v2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M1 8h2M13 8h2M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41\" />\n </svg>\n)\n\nexport function ModeToggle() {\n const { setTheme } = useTheme()\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger render={<Button variant=\"outline\" size=\"icon\" />}>\n <SunIcon className=\"h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90\" />\n <MoonIcon className=\"absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0\" />\n <span className=\"sr-only\">Toggle theme</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuItem onClick={() => setTheme('light')}>Light</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme('dark')}>Dark</DropdownMenuItem>\n <DropdownMenuItem onClick={() => setTheme('system')}>System</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n"],"names":["MoonIcon","className","jsx","cn","SunIcon","ModeToggle","setTheme","useTheme","DropdownMenu","jsxs","DropdownMenuTrigger","Button","DropdownMenuContent","DropdownMenuItem"],"mappings":";;;;;AAWA,MAAMA,IAAW,CAAC,EAAE,WAAAC,EAAA,MAClB,gBAAAC,EAAC,OAAA,EAAI,OAAM,8BAA6B,SAAQ,aAAY,MAAK,gBAAe,WAAWC,EAAG,mBAAmBF,CAAS,GACxH,UAAA,gBAAAC,EAAC,QAAA,EAAK,GAAE,2DAAA,CAA2D,EAAA,CACrE,GAIIE,IAAU,CAAC,EAAE,WAAAH,EAAA,wBAChB,OAAA,EAAI,OAAM,8BAA6B,SAAQ,aAAY,MAAK,gBAAe,WAAWE,EAAG,mBAAmBF,CAAS,GACxH,UAAA;AAAA,EAAA,gBAAAC,EAAC,YAAO,IAAG,KAAI,IAAG,KAAI,GAAE,KAAI;AAAA,EAC5B,gBAAAA,EAAC,QAAA,EAAK,GAAE,iHAAA,CAAiH;AAAA,GAC3H;AAGK,SAASG,IAAa;AAC3B,QAAM,EAAE,UAAAC,EAAA,IAAaC,EAAA;AAErB,2BACGC,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAoB,QAAQ,gBAAAR,EAACS,GAAA,EAAO,SAAQ,WAAU,MAAK,QAAO,GACjE,UAAA;AAAA,MAAA,gBAAAT,EAACE,GAAA,EAAQ,WAAU,uFAAA,CAAuF;AAAA,MAC1G,gBAAAF,EAACF,GAAA,EAAS,WAAU,+FAAA,CAA+F;AAAA,MACnH,gBAAAE,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,eAAA,CAAY;AAAA,IAAA,GACxC;AAAA,IACA,gBAAAO,EAACG,GAAA,EAAoB,OAAM,OACzB,UAAA;AAAA,MAAA,gBAAAV,EAACW,KAAiB,SAAS,MAAMP,EAAS,OAAO,GAAG,UAAA,SAAK;AAAA,wBACxDO,GAAA,EAAiB,SAAS,MAAMP,EAAS,MAAM,GAAG,UAAA,QAAI;AAAA,wBACtDO,GAAA,EAAiB,SAAS,MAAMP,EAAS,QAAQ,GAAG,UAAA,SAAA,CAAM;AAAA,IAAA,EAAA,CAC7D;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,13 +1,14 @@
1
1
  import { jsx as t, jsxs as a } from "react/jsx-runtime";
2
2
  import * as n from "react";
3
- import { ChevronDown as s } from "lucide-react";
4
3
  import { cn as c } from "../../lib/utils.js";
4
+ import "../icons/dynamic-icons.js";
5
+ import { ChevronDownIcon as s } from "../icons/auto-generated.js";
5
6
  import { AccordionItem as d } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/accordion/item/AccordionItem.js";
6
7
  import { AccordionHeader as m } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/accordion/header/AccordionHeader.js";
7
8
  import { AccordionTrigger as f } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/accordion/trigger/AccordionTrigger.js";
8
9
  import { AccordionPanel as l } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/accordion/panel/AccordionPanel.js";
9
10
  import { AccordionRoot as p } from "../../node_modules/.pnpm/@base-ui_react@1.1.0_@types_react@18.3.27_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@base-ui/react/esm/accordion/root/AccordionRoot.js";
10
- const I = p, A = n.forwardRef(({ className: o, ...r }, e) => /* @__PURE__ */ t(d, { ref: e, className: c("border-b", o), ...r }));
11
+ const T = p, A = n.forwardRef(({ className: o, ...r }, e) => /* @__PURE__ */ t(d, { ref: e, className: c("border-b", o), ...r }));
11
12
  A.displayName = "AccordionItem";
12
13
  const g = n.forwardRef(({ className: o, children: r, ...e }, i) => (
13
14
  // Header is required by Base UI — it provides the accessible heading role
@@ -43,7 +44,7 @@ const h = n.forwardRef(({ className: o, children: r, ...e }, i) => (
43
44
  ));
44
45
  h.displayName = "AccordionContent";
45
46
  export {
46
- I as Accordion,
47
+ T as Accordion,
47
48
  h as AccordionContent,
48
49
  A as AccordionItem,
49
50
  g as AccordionTrigger
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { Accordion } from '@base-ui/react'\nimport { ChevronDown } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nconst AccordionRoot = Accordion.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof Accordion.Item>,\n React.ComponentPropsWithoutRef<typeof Accordion.Item>\n>(({ className, ...props }, ref) => (\n <Accordion.Item ref={ref} className={cn('border-b', className)} {...props} />\n))\nAccordionItem.displayName = 'AccordionItem'\n\nconst AccordionTrigger = React.forwardRef<\n // Base UI Trigger forwards ref to HTMLElement; button is the concrete element\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof Accordion.Trigger>\n>(({ className, children, ...props }, ref) => (\n // Header is required by Base UI — it provides the accessible heading role\n <Accordion.Header className=\"flex\">\n <Accordion.Trigger\n ref={ref as React.Ref<HTMLElement>}\n className={cn(\n // data-open replaces data-[state=open] in Base UI\n 'flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-open]>svg]:rotate-180',\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n </Accordion.Trigger>\n </Accordion.Header>\n))\nAccordionTrigger.displayName = 'AccordionTrigger'\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof Accordion.Panel>,\n React.ComponentPropsWithoutRef<typeof Accordion.Panel>\n>(({ className, children, ...props }, ref) => (\n // Accordion.Panel replaces Accordion.Content; data-open/data-closed replace data-[state=open/closed]\n <Accordion.Panel\n ref={ref}\n className=\"overflow-hidden text-sm data-[starting-style]:h-0 data-[ending-style]:h-0 transition-[height] duration-200 ease-out\"\n {...props}\n >\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\n </Accordion.Panel>\n))\nAccordionContent.displayName = 'AccordionContent'\n\nexport { AccordionRoot as Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["AccordionRoot","Accordion.Root","AccordionItem","React","className","props","ref","jsx","Accordion.Item","cn","AccordionTrigger","children","Accordion.Header","jsxs","Accordion.Trigger","ChevronDown","AccordionContent","Accordion.Panel"],"mappings":";;;;;;;;;AAQA,MAAMA,IAAgBC,GAEhBC,IAAgBC,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC,EAACC,GAAA,EAAe,KAAAF,GAAU,WAAWG,EAAG,YAAYL,CAAS,GAAI,GAAGC,GAAO,CAC5E;AACDH,EAAc,cAAc;AAE5B,MAAMQ,IAAmBP,EAAM,WAI7B,CAAC,EAAE,WAAAC,GAAW,UAAAO,GAAU,GAAGN,EAAA,GAASC;AAAA;AAAA,EAEpC,gBAAAC,EAACK,GAAA,EAAiB,WAAU,QAC1B,UAAA,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAR;AAAA,MACA,WAAWG;AAAA;AAAA,QAET;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAM;AAAA,QACD,gBAAAJ,EAACQ,GAAA,EAAY,WAAU,qDAAA,CAAqD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,EAC9E,CACF;AAAA,CACD;AACDL,EAAiB,cAAc;AAE/B,MAAMM,IAAmBb,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,UAAAO,GAAU,GAAGN,EAAA,GAASC;AAAA;AAAA,EAEpC,gBAAAC;AAAA,IAACU;AAAAA,IAAA;AAAA,MACC,KAAAX;AAAA,MACA,WAAU;AAAA,MACT,GAAGD;AAAA,MAEJ,4BAAC,OAAA,EAAI,WAAWI,EAAG,aAAaL,CAAS,GAAI,UAAAO,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAAA,CAEzD;AACDK,EAAiB,cAAc;"}
1
+ {"version":3,"file":"accordion.js","sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { Accordion } from '@base-ui/react'\nimport { ChevronDownIcon } from '@/components/icons'\n\nimport { cn } from '@/lib/utils'\n\nconst AccordionRoot = Accordion.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof Accordion.Item>,\n React.ComponentPropsWithoutRef<typeof Accordion.Item>\n>(({ className, ...props }, ref) => (\n <Accordion.Item ref={ref} className={cn('border-b', className)} {...props} />\n))\nAccordionItem.displayName = 'AccordionItem'\n\nconst AccordionTrigger = React.forwardRef<\n // Base UI Trigger forwards ref to HTMLElement; button is the concrete element\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof Accordion.Trigger>\n>(({ className, children, ...props }, ref) => (\n // Header is required by Base UI — it provides the accessible heading role\n <Accordion.Header className=\"flex\">\n <Accordion.Trigger\n ref={ref as React.Ref<HTMLElement>}\n className={cn(\n // data-open replaces data-[state=open] in Base UI\n 'flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-open]>svg]:rotate-180',\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n </Accordion.Trigger>\n </Accordion.Header>\n))\nAccordionTrigger.displayName = 'AccordionTrigger'\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof Accordion.Panel>,\n React.ComponentPropsWithoutRef<typeof Accordion.Panel>\n>(({ className, children, ...props }, ref) => (\n // Accordion.Panel replaces Accordion.Content; data-open/data-closed replace data-[state=open/closed]\n <Accordion.Panel\n ref={ref}\n className=\"overflow-hidden text-sm data-[starting-style]:h-0 data-[ending-style]:h-0 transition-[height] duration-200 ease-out\"\n {...props}\n >\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\n </Accordion.Panel>\n))\nAccordionContent.displayName = 'AccordionContent'\n\nexport { AccordionRoot as Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"names":["AccordionRoot","Accordion.Root","AccordionItem","React","className","props","ref","jsx","Accordion.Item","cn","AccordionTrigger","children","Accordion.Header","jsxs","Accordion.Trigger","ChevronDownIcon","AccordionContent","Accordion.Panel"],"mappings":";;;;;;;;;;AAQA,MAAMA,IAAgBC,GAEhBC,IAAgBC,EAAM,WAG1B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAC1B,gBAAAC,EAACC,GAAA,EAAe,KAAAF,GAAU,WAAWG,EAAG,YAAYL,CAAS,GAAI,GAAGC,GAAO,CAC5E;AACDH,EAAc,cAAc;AAE5B,MAAMQ,IAAmBP,EAAM,WAI7B,CAAC,EAAE,WAAAC,GAAW,UAAAO,GAAU,GAAGN,EAAA,GAASC;AAAA;AAAA,EAEpC,gBAAAC,EAACK,GAAA,EAAiB,WAAU,QAC1B,UAAA,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAR;AAAA,MACA,WAAWG;AAAA;AAAA,QAET;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAM;AAAA,QACD,gBAAAJ,EAACQ,GAAA,EAAgB,WAAU,qDAAA,CAAqD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,EAClF,CACF;AAAA,CACD;AACDL,EAAiB,cAAc;AAE/B,MAAMM,IAAmBb,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,UAAAO,GAAU,GAAGN,EAAA,GAASC;AAAA;AAAA,EAEpC,gBAAAC;AAAA,IAACU;AAAAA,IAAA;AAAA,MACC,KAAAX;AAAA,MACA,WAAU;AAAA,MACT,GAAGD;AAAA,MAEJ,4BAAC,OAAA,EAAI,WAAWI,EAAG,aAAaL,CAAS,GAAI,UAAAO,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA;AAAA,CAEzD;AACDK,EAAiB,cAAc;"}
@@ -1,7 +1,7 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from 'react';
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "default" | "info" | "success" | "warning" | "critical" | "destructive" | "neutral" | "outline" | "secondary" | "danger" | null | undefined;
4
+ variant?: "default" | "info" | "success" | "warning" | "critical" | "destructive" | "ai" | "neutral" | "outline" | "secondary" | "danger" | "ai-solid" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
6
  export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
2
  import { cva as o } from "../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js";
3
3
  import { cn as a } from "../../lib/utils.js";
4
- const c = o(
4
+ const i = o(
5
5
  "inline-flex items-center rounded-xl border px-2 py-1 text-[11px] font-bold uppercase tracking-wide transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
6
6
  {
7
7
  variants: {
@@ -15,7 +15,9 @@ const c = o(
15
15
  warning: "bg-warning border-warning-accent text-warning-foreground",
16
16
  critical: "bg-critical border-critical-accent text-critical-foreground",
17
17
  danger: "bg-destructive border-destructive-accent text-destructive-foreground",
18
- neutral: "bg-neutral border-neutral-accent text-neutral-foreground"
18
+ neutral: "bg-neutral border-neutral-accent text-neutral-foreground",
19
+ ai: "bg-ai badge-ai-gradient text-ai-foreground",
20
+ "ai-solid": "badge-ai-solid text-white"
19
21
  }
20
22
  },
21
23
  defaultVariants: {
@@ -23,11 +25,11 @@ const c = o(
23
25
  }
24
26
  }
25
27
  );
26
- function u({ className: r, variant: e, ...t }) {
27
- return /* @__PURE__ */ n("div", { className: a(c({ variant: e }), r), ...t });
28
+ function g({ className: r, variant: e, ...t }) {
29
+ return /* @__PURE__ */ n("div", { className: a(i({ variant: e }), r), ...t });
28
30
  }
29
31
  export {
30
- u as Badge,
31
- c as badgeVariants
32
+ g as Badge,
33
+ i as badgeVariants
32
34
  };
33
35
  //# sourceMappingURL=badge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"badge.js","sources":["../../../src/components/ui/badge.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-xl border px-2 py-1 text-[11px] font-bold uppercase tracking-wide transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\n outline: 'text-foreground',\n success: 'bg-success border-success-accent text-success-foreground',\n info: 'bg-info border-info-accent text-info-foreground',\n warning: 'bg-warning border-warning-accent text-warning-foreground',\n critical: 'bg-critical border-critical-accent text-critical-foreground',\n danger: 'bg-destructive border-destructive-accent text-destructive-foreground',\n neutral: 'bg-neutral border-neutral-accent text-neutral-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />\n}\n\nexport { Badge, badgeVariants }\n"],"names":["badgeVariants","cva","Badge","className","variant","props","jsx","cn"],"mappings":";;;AAKA,MAAMA,IAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WACE;AAAA,QACF,aACE;AAAA,QACF,SAAS;AAAA,QACT,SAAS;AAAA,QACT,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAKA,SAASC,EAAM,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,KAAqB;AAC3D,SAAO,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAGP,EAAc,EAAE,SAAAI,EAAA,CAAS,GAAGD,CAAS,GAAI,GAAGE,EAAA,CAAO;AAC/E;"}
1
+ {"version":3,"file":"badge.js","sources":["../../../src/components/ui/badge.tsx"],"sourcesContent":["import * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-xl border px-2 py-1 text-[11px] font-bold uppercase tracking-wide transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\n outline: 'text-foreground',\n success: 'bg-success border-success-accent text-success-foreground',\n info: 'bg-info border-info-accent text-info-foreground',\n warning: 'bg-warning border-warning-accent text-warning-foreground',\n critical: 'bg-critical border-critical-accent text-critical-foreground',\n danger: 'bg-destructive border-destructive-accent text-destructive-foreground',\n neutral: 'bg-neutral border-neutral-accent text-neutral-foreground',\n ai: 'bg-ai badge-ai-gradient text-ai-foreground',\n 'ai-solid': 'badge-ai-solid text-white',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />\n}\n\nexport { Badge, badgeVariants }\n"],"names":["badgeVariants","cva","Badge","className","variant","props","jsx","cn"],"mappings":";;;AAKA,MAAMA,IAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WACE;AAAA,QACF,aACE;AAAA,QACF,SAAS;AAAA,QACT,SAAS;AAAA,QACT,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,YAAY;AAAA,MAAA;AAAA,IACd;AAAA,IAEF,iBAAiB;AAAA,MACf,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;AAKA,SAASC,EAAM,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,KAAqB;AAC3D,SAAO,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAGP,EAAc,EAAE,SAAAI,EAAA,CAAS,GAAGD,CAAS,GAAI,GAAGE,EAAA,CAAO;AAC/E;"}
@@ -1,8 +1,9 @@
1
1
  import { jsx as s, jsxs as o } from "react/jsx-runtime";
2
2
  import * as i from "react";
3
- import { Slot as l } from "@radix-ui/react-slot";
4
- import { ChevronRight as c, MoreHorizontal as n } from "lucide-react";
3
+ import { Slot as c } from "@radix-ui/react-slot";
5
4
  import { cn as t } from "../../lib/utils.js";
5
+ import "../icons/dynamic-icons.js";
6
+ import { ChevronRightIcon as l, EllipsisHIcon as n } from "../icons/auto-generated.js";
6
7
  const d = i.forwardRef(({ ...e }, r) => /* @__PURE__ */ s("nav", { ref: r, "aria-label": "breadcrumb", ...e }));
7
8
  d.displayName = "Breadcrumb";
8
9
  const p = i.forwardRef(
@@ -14,7 +15,7 @@ const f = i.forwardRef(
14
15
  );
15
16
  f.displayName = "BreadcrumbItem";
16
17
  const u = i.forwardRef(({ asChild: e, className: r, ...a }, m) => /* @__PURE__ */ s(
17
- e ? l : "a",
18
+ e ? c : "a",
18
19
  {
19
20
  ref: m,
20
21
  className: t(
@@ -46,7 +47,7 @@ const N = ({ children: e, className: r, ...a }) => /* @__PURE__ */ s(
46
47
  "aria-hidden": "true",
47
48
  className: t("[&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-[#2668C5]", r),
48
49
  ...a,
49
- children: e ?? /* @__PURE__ */ s(c, {})
50
+ children: e ?? /* @__PURE__ */ s(l, {})
50
51
  }
51
52
  );
52
53
  N.displayName = "BreadcrumbSeparator";
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb.js","sources":["../../../src/components/ui/breadcrumb.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { ChevronRight, MoreHorizontal } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumb.displayName = 'Breadcrumb'\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol ref={ref} className={cn('flex flex-wrap items-center gap-4', className)} {...props} />\n )\n)\nBreadcrumbList.displayName = 'BreadcrumbList'\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-2 h-8', className)} {...props} />\n )\n)\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n asChild?: boolean\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n return (\n <Comp\n ref={ref}\n className={cn(\n 'text-[#2668C5] font-semibold text-sm leading-6 transition-colors hover:opacity-80',\n className\n )}\n {...props}\n />\n )\n})\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-semibold text-sm leading-6 text-[#243143]', className)}\n {...props}\n />\n )\n)\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'li'>) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-[#2668C5]', className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n)\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = 'BreadcrumbElipssis'\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n"],"names":["Breadcrumb","React","props","ref","jsx","BreadcrumbList","className","cn","BreadcrumbItem","BreadcrumbLink","asChild","Slot","BreadcrumbPage","BreadcrumbSeparator","children","ChevronRight","BreadcrumbEllipsis","jsxs","MoreHorizontal"],"mappings":";;;;;AAMA,MAAMA,IAAaC,EAAM,WAKvB,CAAC,EAAE,GAAGC,EAAA,GAASC,MAAQ,gBAAAC,EAAC,SAAI,KAAAD,GAAU,cAAW,cAAc,GAAGD,GAAO,CAAE;AAC7EF,EAAW,cAAc;AAEzB,MAAMK,IAAiBJ,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC,EAAC,MAAA,EAAG,KAAAD,GAAU,WAAWI,EAAG,qCAAqCD,CAAS,GAAI,GAAGJ,EAAA,CAAO;AAE5F;AACAG,EAAe,cAAc;AAE7B,MAAMG,IAAiBP,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC,EAAC,MAAA,EAAG,KAAAD,GAAU,WAAWI,EAAG,sCAAsCD,CAAS,GAAI,GAAGJ,EAAA,CAAO;AAE7F;AACAM,EAAe,cAAc;AAE7B,MAAMC,IAAiBR,EAAM,WAK3B,CAAC,EAAE,SAAAS,GAAS,WAAAJ,GAAW,GAAGJ,EAAA,GAASC,MAIjC,gBAAAC;AAAA,EAHWM,IAAUC,IAAO;AAAA,EAG3B;AAAA,IACC,KAAAR;AAAA,IACA,WAAWI;AAAA,MACT;AAAA,MACAD;AAAA,IAAA;AAAA,IAED,GAAGJ;AAAA,EAAA;AAAA,CAGT;AACDO,EAAe,cAAc;AAE7B,MAAMG,IAAiBX,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,MAAK;AAAA,MACL,iBAAc;AAAA,MACd,gBAAa;AAAA,MACb,WAAWI,EAAG,kDAAkDD,CAAS;AAAA,MACxE,GAAGJ;AAAA,IAAA;AAAA,EAAA;AAGV;AACAU,EAAe,cAAc;AAE7B,MAAMC,IAAsB,CAAC,EAAE,UAAAC,GAAU,WAAAR,GAAW,GAAGJ,QACrD,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,eAAY;AAAA,IACZ,WAAWG,EAAG,kDAAkDD,CAAS;AAAA,IACxE,GAAGJ;AAAA,IAEH,UAAAY,uBAAaC,GAAA,CAAA,CAAa;AAAA,EAAA;AAC7B;AAEFF,EAAoB,cAAc;AAElC,MAAMG,IAAqB,CAAC,EAAE,WAAAV,GAAW,GAAGJ,QAC1C,gBAAAe;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,eAAY;AAAA,IACZ,WAAWV,EAAG,4CAA4CD,CAAS;AAAA,IAClE,GAAGJ;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE,EAACc,GAAA,EAAe,WAAU,UAAA,CAAU;AAAA,MACpC,gBAAAd,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,OAAA,CAAI;AAAA,IAAA;AAAA,EAAA;AAChC;AAEFY,EAAmB,cAAc;"}
1
+ {"version":3,"file":"breadcrumb.js","sources":["../../../src/components/ui/breadcrumb.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { ChevronRightIcon, EllipsisHIcon } from '@/components/icons'\n\nimport { cn } from '@/lib/utils'\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumb.displayName = 'Breadcrumb'\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol ref={ref} className={cn('flex flex-wrap items-center gap-4', className)} {...props} />\n )\n)\nBreadcrumbList.displayName = 'BreadcrumbList'\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-2 h-8', className)} {...props} />\n )\n)\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n asChild?: boolean\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n return (\n <Comp\n ref={ref}\n className={cn(\n 'text-[#2668C5] font-semibold text-sm leading-6 transition-colors hover:opacity-80',\n className\n )}\n {...props}\n />\n )\n})\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<'span'>>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('font-semibold text-sm leading-6 text-[#243143]', className)}\n {...props}\n />\n )\n)\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'li'>) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:w-4 [&>svg]:h-4 [&>svg]:text-[#2668C5]', className)}\n {...props}\n >\n {children ?? <ChevronRightIcon />}\n </li>\n)\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <EllipsisHIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = 'BreadcrumbElipssis'\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n"],"names":["Breadcrumb","React","props","ref","jsx","BreadcrumbList","className","cn","BreadcrumbItem","BreadcrumbLink","asChild","Slot","BreadcrumbPage","BreadcrumbSeparator","children","ChevronRightIcon","BreadcrumbEllipsis","jsxs","EllipsisHIcon"],"mappings":";;;;;;AAMA,MAAMA,IAAaC,EAAM,WAKvB,CAAC,EAAE,GAAGC,EAAA,GAASC,MAAQ,gBAAAC,EAAC,SAAI,KAAAD,GAAU,cAAW,cAAc,GAAGD,GAAO,CAAE;AAC7EF,EAAW,cAAc;AAEzB,MAAMK,IAAiBJ,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC,EAAC,MAAA,EAAG,KAAAD,GAAU,WAAWI,EAAG,qCAAqCD,CAAS,GAAI,GAAGJ,EAAA,CAAO;AAE5F;AACAG,EAAe,cAAc;AAE7B,MAAMG,IAAiBP,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC,EAAC,MAAA,EAAG,KAAAD,GAAU,WAAWI,EAAG,sCAAsCD,CAAS,GAAI,GAAGJ,EAAA,CAAO;AAE7F;AACAM,EAAe,cAAc;AAE7B,MAAMC,IAAiBR,EAAM,WAK3B,CAAC,EAAE,SAAAS,GAAS,WAAAJ,GAAW,GAAGJ,EAAA,GAASC,MAIjC,gBAAAC;AAAA,EAHWM,IAAUC,IAAO;AAAA,EAG3B;AAAA,IACC,KAAAR;AAAA,IACA,WAAWI;AAAA,MACT;AAAA,MACAD;AAAA,IAAA;AAAA,IAED,GAAGJ;AAAA,EAAA;AAAA,CAGT;AACDO,EAAe,cAAc;AAE7B,MAAMG,IAAiBX,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAAK,GAAW,GAAGJ,EAAA,GAASC,MACxB,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,MAAK;AAAA,MACL,iBAAc;AAAA,MACd,gBAAa;AAAA,MACb,WAAWI,EAAG,kDAAkDD,CAAS;AAAA,MACxE,GAAGJ;AAAA,IAAA;AAAA,EAAA;AAGV;AACAU,EAAe,cAAc;AAE7B,MAAMC,IAAsB,CAAC,EAAE,UAAAC,GAAU,WAAAR,GAAW,GAAGJ,QACrD,gBAAAE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,eAAY;AAAA,IACZ,WAAWG,EAAG,kDAAkDD,CAAS;AAAA,IACxE,GAAGJ;AAAA,IAEH,UAAAY,uBAAaC,GAAA,CAAA,CAAiB;AAAA,EAAA;AACjC;AAEFF,EAAoB,cAAc;AAElC,MAAMG,IAAqB,CAAC,EAAE,WAAAV,GAAW,GAAGJ,QAC1C,gBAAAe;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,eAAY;AAAA,IACZ,WAAWV,EAAG,4CAA4CD,CAAS;AAAA,IAClE,GAAGJ;AAAA,IAEJ,UAAA;AAAA,MAAA,gBAAAE,EAACc,GAAA,EAAc,WAAU,UAAA,CAAU;AAAA,MACnC,gBAAAd,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,OAAA,CAAI;AAAA,IAAA;AAAA,EAAA;AAChC;AAEFY,EAAmB,cAAc;"}
@@ -1,13 +1,14 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import * as m from "react";
3
- import { ChevronLeftIcon as b, ChevronRightIcon as w, ChevronDownIcon as h } from "lucide-react";
2
+ import * as g from "react";
4
3
  import { cn as e } from "../../lib/utils.js";
4
+ import "../icons/dynamic-icons.js";
5
+ import { ChevronLeftIcon as b, ChevronRightIcon as w, ChevronDownIcon as h } from "../icons/auto-generated.js";
5
6
  import { buttonVariants as f, Button as v } from "./button.js";
6
7
  import { getDefaultClassNames as p } from "../../node_modules/.pnpm/react-day-picker@9.13.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/getDefaultClassNames.js";
7
8
  import { DayPicker as _ } from "../../node_modules/.pnpm/react-day-picker@9.13.0_react@18.3.1/node_modules/react-day-picker/dist/esm/DayPicker.js";
8
- function R({
9
+ function S({
9
10
  className: i,
10
- classNames: g,
11
+ classNames: m,
11
12
  showOutsideDays: a = !0,
12
13
  captionLayout: l = "label",
13
14
  buttonVariant: s = "ghost",
@@ -96,7 +97,7 @@ function R({
96
97
  ),
97
98
  disabled: e("text-muted-foreground opacity-50", t.disabled),
98
99
  hidden: e("invisible", t.hidden),
99
- ...g
100
+ ...m
100
101
  },
101
102
  components: {
102
103
  Root: ({ className: r, rootRef: d, ...o }) => /* @__PURE__ */ n("div", { "data-slot": "calendar", ref: d, className: e(r), ...o }),
@@ -111,12 +112,12 @@ function R({
111
112
  }
112
113
  function y({
113
114
  className: i,
114
- day: g,
115
+ day: m,
115
116
  modifiers: a,
116
117
  ...l
117
118
  }) {
118
- const s = p(), u = m.useRef(null);
119
- return m.useEffect(() => {
119
+ const s = p(), u = g.useRef(null);
120
+ return g.useEffect(() => {
120
121
  var c;
121
122
  a.focused && ((c = u.current) == null || c.focus());
122
123
  }, [a.focused]), /* @__PURE__ */ n(
@@ -125,7 +126,7 @@ function y({
125
126
  ref: u,
126
127
  variant: "ghost",
127
128
  size: "icon",
128
- "data-day": g.date.toLocaleDateString(),
129
+ "data-day": m.date.toLocaleDateString(),
129
130
  "data-selected-single": a.selected && !a.range_start && !a.range_end && !a.range_middle,
130
131
  "data-range-start": a.range_start,
131
132
  "data-range-end": a.range_end,
@@ -140,7 +141,7 @@ function y({
140
141
  );
141
142
  }
142
143
  export {
143
- R as Calendar,
144
+ S as Calendar,
144
145
  y as CalendarDayButton
145
146
  };
146
147
  //# sourceMappingURL=calendar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","sources":["../../../src/components/ui/calendar.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from 'lucide-react'\nimport { DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker'\n\nimport { cn } from '@/lib/utils'\nimport { Button, buttonVariants } from '@/components/ui/button'\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>['variant']\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn('w-fit', defaultClassNames.root),\n months: cn('relative flex flex-col gap-4 md:flex-row', defaultClassNames.months),\n month: cn('flex w-full flex-col gap-4', defaultClassNames.month),\n nav: cn(\n 'absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1',\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n 'h-[var(--cell-size)] w-[var(--cell-size)] select-none p-0 aria-disabled:opacity-50',\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n 'h-[var(--cell-size)] w-[var(--cell-size)] select-none p-0 aria-disabled:opacity-50',\n defaultClassNames.button_next\n ),\n month_caption: cn(\n 'flex h-[var(--cell-size)] w-full items-center justify-center px-[var(--cell-size)]',\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n 'flex h-[var(--cell-size)] w-full items-center justify-center gap-1.5 text-sm font-medium',\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n 'has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border',\n defaultClassNames.dropdown_root\n ),\n dropdown: cn('bg-popover absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label'\n ? 'text-sm'\n : '[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5',\n defaultClassNames.caption_label\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn(\n 'text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal',\n defaultClassNames.weekday\n ),\n week: cn('mt-2 flex w-full', defaultClassNames.week),\n week_number_header: cn('w-[var(--cell-size)] select-none', defaultClassNames.week_number_header),\n week_number: cn(\n 'text-muted-foreground select-none text-[0.8rem]',\n defaultClassNames.week_number\n ),\n day: cn(\n 'group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md',\n defaultClassNames.day\n ),\n range_start: cn('bg-accent rounded-l-md', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('bg-accent rounded-r-md', defaultClassNames.range_end),\n today: cn(\n 'font-semibold underline rounded-md data-[selected=true]:rounded-none data-[selected=true]:no-underline',\n defaultClassNames.today\n ),\n outside: cn(\n 'text-muted-foreground aria-selected:text-muted-foreground',\n defaultClassNames.outside\n ),\n disabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === 'left') {\n return <ChevronLeftIcon className={cn('size-4', className)} {...props} />\n }\n\n if (orientation === 'right') {\n return <ChevronRightIcon className={cn('size-4', className)} {...props} />\n }\n\n return <ChevronDownIcon className={cn('size-4', className)} {...props} />\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-[var(--cell-size)] items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'data-[selected-single=true]:bg-primary data-[selected-single=true]:text-white data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-white data-[range-end=true]:bg-primary data-[range-end=true]:text-white group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[var(--cell-size)] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n"],"names":["Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","getDefaultClassNames","jsx","DayPicker","cn","date","buttonVariants","rootRef","orientation","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","CalendarDayButton","children","day","modifiers","ref","React","_a","Button"],"mappings":"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"}
1
+ {"version":3,"file":"calendar.js","sources":["../../../src/components/ui/calendar.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from '@/components/icons'\nimport { DayButton, DayPicker, getDefaultClassNames } from 'react-day-picker'\n\nimport { cn } from '@/lib/utils'\nimport { Button, buttonVariants } from '@/components/ui/button'\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = 'label',\n buttonVariant = 'ghost',\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>['variant']\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n 'bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent',\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) => date.toLocaleString('default', { month: 'short' }),\n ...formatters,\n }}\n classNames={{\n root: cn('w-fit', defaultClassNames.root),\n months: cn('relative flex flex-col gap-4 md:flex-row', defaultClassNames.months),\n month: cn('flex w-full flex-col gap-4', defaultClassNames.month),\n nav: cn(\n 'absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1',\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n 'h-[var(--cell-size)] w-[var(--cell-size)] select-none p-0 aria-disabled:opacity-50',\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n 'h-[var(--cell-size)] w-[var(--cell-size)] select-none p-0 aria-disabled:opacity-50',\n defaultClassNames.button_next\n ),\n month_caption: cn(\n 'flex h-[var(--cell-size)] w-full items-center justify-center px-[var(--cell-size)]',\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n 'flex h-[var(--cell-size)] w-full items-center justify-center gap-1.5 text-sm font-medium',\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n 'has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border',\n defaultClassNames.dropdown_root\n ),\n dropdown: cn('bg-popover absolute inset-0 opacity-0', defaultClassNames.dropdown),\n caption_label: cn(\n 'select-none font-medium',\n captionLayout === 'label'\n ? 'text-sm'\n : '[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5',\n defaultClassNames.caption_label\n ),\n table: 'w-full border-collapse',\n weekdays: cn('flex', defaultClassNames.weekdays),\n weekday: cn(\n 'text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal',\n defaultClassNames.weekday\n ),\n week: cn('mt-2 flex w-full', defaultClassNames.week),\n week_number_header: cn('w-[var(--cell-size)] select-none', defaultClassNames.week_number_header),\n week_number: cn(\n 'text-muted-foreground select-none text-[0.8rem]',\n defaultClassNames.week_number\n ),\n day: cn(\n 'group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md',\n defaultClassNames.day\n ),\n range_start: cn('bg-accent rounded-l-md', defaultClassNames.range_start),\n range_middle: cn('rounded-none', defaultClassNames.range_middle),\n range_end: cn('bg-accent rounded-r-md', defaultClassNames.range_end),\n today: cn(\n 'font-semibold underline rounded-md data-[selected=true]:rounded-none data-[selected=true]:no-underline',\n defaultClassNames.today\n ),\n outside: cn(\n 'text-muted-foreground aria-selected:text-muted-foreground',\n defaultClassNames.outside\n ),\n disabled: cn('text-muted-foreground opacity-50', defaultClassNames.disabled),\n hidden: cn('invisible', defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === 'left') {\n return <ChevronLeftIcon className={cn('size-4', className)} {...props} />\n }\n\n if (orientation === 'right') {\n return <ChevronRightIcon className={cn('size-4', className)} {...props} />\n }\n\n return <ChevronDownIcon className={cn('size-4', className)} {...props} />\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-[var(--cell-size)] items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n 'data-[selected-single=true]:bg-primary data-[selected-single=true]:text-white data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-white data-[range-end=true]:bg-primary data-[range-end=true]:text-white group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[var(--cell-size)] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70',\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n"],"names":["Calendar","className","classNames","showOutsideDays","captionLayout","buttonVariant","formatters","components","props","defaultClassNames","getDefaultClassNames","jsx","DayPicker","cn","date","buttonVariants","rootRef","orientation","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","CalendarDayButton","children","day","modifiers","ref","React","_a","Button"],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { jsx as s, jsxs as x } from "react/jsx-runtime";
2
2
  import * as r from "react";
3
3
  import k from "../../node_modules/.pnpm/embla-carousel-react@8.6.0_react@18.3.1/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js";
4
- import { ArrowLeft as z, ArrowRight as g } from "lucide-react";
5
4
  import { cn as m } from "../../lib/utils.js";
5
+ import "../icons/dynamic-icons.js";
6
+ import { ArrowLeftIcon as z, ArrowRightIcon as g } from "../icons/auto-generated.js";
6
7
  import { Button as w } from "./button.js";
7
8
  const v = r.createContext(null);
8
9
  function C() {
@@ -11,15 +12,15 @@ function C() {
11
12
  throw new Error("useCarousel must be used within a <Carousel />");
12
13
  return o;
13
14
  }
14
- const D = r.forwardRef(({ orientation: o = "horizontal", opts: l, setApi: t, plugins: a, className: c, children: i, ...u }, f) => {
15
+ const I = r.forwardRef(({ orientation: o = "horizontal", opts: l, setApi: t, plugins: a, className: c, children: i, ...u }, f) => {
15
16
  const [y, e] = k(
16
17
  {
17
18
  ...l,
18
19
  axis: o === "horizontal" ? "x" : "y"
19
20
  },
20
21
  a
21
- ), [b, P] = r.useState(!1), [S, p] = r.useState(!1), d = r.useCallback((n) => {
22
- n && (P(n.canScrollPrev()), p(n.canScrollNext()));
22
+ ), [b, p] = r.useState(!1), [P, S] = r.useState(!1), d = r.useCallback((n) => {
23
+ n && (p(n.canScrollPrev()), S(n.canScrollNext()));
23
24
  }, []), h = r.useCallback(() => {
24
25
  e == null || e.scrollPrev();
25
26
  }, [e]), N = r.useCallback(() => {
@@ -48,7 +49,7 @@ const D = r.forwardRef(({ orientation: o = "horizontal", opts: l, setApi: t, plu
48
49
  scrollPrev: h,
49
50
  scrollNext: N,
50
51
  canScrollPrev: b,
51
- canScrollNext: S
52
+ canScrollNext: P
52
53
  },
53
54
  children: /* @__PURE__ */ s(
54
55
  "div",
@@ -65,8 +66,8 @@ const D = r.forwardRef(({ orientation: o = "horizontal", opts: l, setApi: t, plu
65
66
  }
66
67
  );
67
68
  });
68
- D.displayName = "Carousel";
69
- const E = r.forwardRef(
69
+ I.displayName = "Carousel";
70
+ const D = r.forwardRef(
70
71
  ({ className: o, ...l }, t) => {
71
72
  const { carouselRef: a, orientation: c } = C();
72
73
  return /* @__PURE__ */ s("div", { ref: a, className: "overflow-hidden", children: /* @__PURE__ */ s(
@@ -83,8 +84,8 @@ const E = r.forwardRef(
83
84
  ) });
84
85
  }
85
86
  );
86
- E.displayName = "CarouselContent";
87
- const I = r.forwardRef(
87
+ D.displayName = "CarouselContent";
88
+ const E = r.forwardRef(
88
89
  ({ className: o, ...l }, t) => {
89
90
  const { orientation: a } = C();
90
91
  return /* @__PURE__ */ s(
@@ -103,7 +104,7 @@ const I = r.forwardRef(
103
104
  );
104
105
  }
105
106
  );
106
- I.displayName = "CarouselItem";
107
+ E.displayName = "CarouselItem";
107
108
  const j = r.forwardRef(
108
109
  ({ className: o, variant: l = "outline", size: t = "icon", ...a }, c) => {
109
110
  const { orientation: i, scrollPrev: u, canScrollPrev: f } = C();
@@ -157,9 +158,9 @@ const A = r.forwardRef(
157
158
  );
158
159
  A.displayName = "CarouselNext";
159
160
  export {
160
- D as Carousel,
161
- E as CarouselContent,
162
- I as CarouselItem,
161
+ I as Carousel,
162
+ D as CarouselContent,
163
+ E as CarouselItem,
163
164
  A as CarouselNext,
164
165
  j as CarouselPrevious
165
166
  };
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.js","sources":["../../../src/components/ui/carousel.tsx"],"sourcesContent":["import * as React from 'react'\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react'\nimport { ArrowLeft, ArrowRight } from 'lucide-react'\n\nimport { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: 'horizontal' | 'vertical'\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />')\n }\n\n return context\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }, ref) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return\n }\n\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === 'ArrowRight') {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return\n }\n\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n onSelect(api)\n api.on('reInit', onSelect)\n api.on('select', onSelect)\n\n return () => {\n api?.off('select', onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n})\nCarousel.displayName = 'Carousel'\n\nconst CarouselContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n 'flex',\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\n className\n )}\n {...props}\n />\n </div>\n )\n }\n)\nCarouselContent.displayName = 'CarouselContent'\n\nconst CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { orientation } = useCarousel()\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n 'min-w-0 shrink-0 grow-0 basis-full',\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\n className\n )}\n {...props}\n />\n )\n }\n)\nCarouselItem.displayName = 'CarouselItem'\n\nconst CarouselPrevious = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 rounded-full',\n orientation === 'horizontal'\n ? '-left-12 top-1/2 -translate-y-1/2'\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n }\n)\nCarouselPrevious.displayName = 'CarouselPrevious'\n\nconst CarouselNext = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 rounded-full',\n orientation === 'horizontal'\n ? '-right-12 top-1/2 -translate-y-1/2'\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n }\n)\nCarouselNext.displayName = 'CarouselNext'\n\nexport { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext }\n"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","ref","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeft","CarouselNext","ArrowRight"],"mappings":"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"}
1
+ {"version":3,"file":"carousel.js","sources":["../../../src/components/ui/carousel.tsx"],"sourcesContent":["import * as React from 'react'\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react'\nimport { ArrowLeftIcon, ArrowRightIcon } from '@/components/icons'\n\nimport { cn } from '@/lib/utils'\nimport { Button } from '@/components/ui/button'\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: 'horizontal' | 'vertical'\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />')\n }\n\n return context\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(({ orientation = 'horizontal', opts, setApi, plugins, className, children, ...props }, ref) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return\n }\n\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === 'ArrowRight') {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return\n }\n\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n onSelect(api)\n api.on('reInit', onSelect)\n api.on('select', onSelect)\n\n return () => {\n api?.off('select', onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n})\nCarousel.displayName = 'Carousel'\n\nconst CarouselContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n 'flex',\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\n className\n )}\n {...props}\n />\n </div>\n )\n }\n)\nCarouselContent.displayName = 'CarouselContent'\n\nconst CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { orientation } = useCarousel()\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n 'min-w-0 shrink-0 grow-0 basis-full',\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\n className\n )}\n {...props}\n />\n )\n }\n)\nCarouselItem.displayName = 'CarouselItem'\n\nconst CarouselPrevious = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 rounded-full',\n orientation === 'horizontal'\n ? '-left-12 top-1/2 -translate-y-1/2'\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeftIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n }\n)\nCarouselPrevious.displayName = 'CarouselPrevious'\n\nconst CarouselNext = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 rounded-full',\n orientation === 'horizontal'\n ? '-right-12 top-1/2 -translate-y-1/2'\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRightIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n }\n)\nCarouselNext.displayName = 'CarouselNext'\n\nexport { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext }\n"],"names":["CarouselContext","React","useCarousel","context","Carousel","orientation","opts","setApi","plugins","className","children","props","ref","carouselRef","api","useEmblaCarousel","canScrollPrev","setCanScrollPrev","canScrollNext","setCanScrollNext","onSelect","scrollPrev","scrollNext","handleKeyDown","event","jsx","cn","CarouselContent","CarouselItem","CarouselPrevious","variant","size","jsxs","Button","ArrowLeftIcon","CarouselNext","ArrowRightIcon"],"mappings":";;;;;;;AA4BA,MAAMA,IAAkBC,EAAM,cAA2C,IAAI;AAE7E,SAASC,IAAc;AACrB,QAAMC,IAAUF,EAAM,WAAWD,CAAe;AAEhD,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,gDAAgD;AAGlE,SAAOA;AACT;AAEA,MAAMC,IAAWH,EAAM,WAGrB,CAAC,EAAE,aAAAI,IAAc,cAAc,MAAAC,GAAM,QAAAC,GAAQ,SAAAC,GAAS,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAAQ;AAC/F,QAAM,CAACC,GAAaC,CAAG,IAAIC;AAAA,IACzB;AAAA,MACE,GAAGT;AAAA,MACH,MAAMD,MAAgB,eAAe,MAAM;AAAA,IAAA;AAAA,IAE7CG;AAAA,EAAA,GAEI,CAACQ,GAAeC,CAAgB,IAAIhB,EAAM,SAAS,EAAK,GACxD,CAACiB,GAAeC,CAAgB,IAAIlB,EAAM,SAAS,EAAK,GAExDmB,IAAWnB,EAAM,YAAY,CAACa,MAAqB;AACvD,IAAKA,MAILG,EAAiBH,EAAI,eAAe,GACpCK,EAAiBL,EAAI,eAAe;AAAA,EACtC,GAAG,CAAA,CAAE,GAECO,IAAapB,EAAM,YAAY,MAAM;AACzC,IAAAa,KAAA,QAAAA,EAAK;AAAA,EACP,GAAG,CAACA,CAAG,CAAC,GAEFQ,IAAarB,EAAM,YAAY,MAAM;AACzC,IAAAa,KAAA,QAAAA,EAAK;AAAA,EACP,GAAG,CAACA,CAAG,CAAC,GAEFS,IAAgBtB,EAAM;AAAA,IAC1B,CAACuB,MAA+C;AAC9C,MAAIA,EAAM,QAAQ,eAChBA,EAAM,eAAA,GACNH,EAAA,KACSG,EAAM,QAAQ,iBACvBA,EAAM,eAAA,GACNF,EAAA;AAAA,IAEJ;AAAA,IACA,CAACD,GAAYC,CAAU;AAAA,EAAA;AAGzB,SAAArB,EAAM,UAAU,MAAM;AACpB,IAAI,CAACa,KAAO,CAACP,KAIbA,EAAOO,CAAG;AAAA,EACZ,GAAG,CAACA,GAAKP,CAAM,CAAC,GAEhBN,EAAM,UAAU,MAAM;AACpB,QAAKa;AAIL,aAAAM,EAASN,CAAG,GACZA,EAAI,GAAG,UAAUM,CAAQ,GACzBN,EAAI,GAAG,UAAUM,CAAQ,GAElB,MAAM;AACX,QAAAN,KAAA,QAAAA,EAAK,IAAI,UAAUM;AAAA,MACrB;AAAA,EACF,GAAG,CAACN,GAAKM,CAAQ,CAAC,GAGhB,gBAAAK;AAAA,IAACzB,EAAgB;AAAA,IAAhB;AAAA,MACC,OAAO;AAAA,QACL,aAAAa;AAAA,QACA,KAAAC;AAAA,QACA,MAAAR;AAAA,QACA,aAAaD,OAAgBC,KAAA,gBAAAA,EAAM,UAAS,MAAM,aAAa;AAAA,QAC/D,YAAAe;AAAA,QACA,YAAAC;AAAA,QACA,eAAAN;AAAA,QACA,eAAAE;AAAA,MAAA;AAAA,MAGF,UAAA,gBAAAO;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAAb;AAAA,UACA,kBAAkBW;AAAA,UAClB,WAAWG,EAAG,YAAYjB,CAAS;AAAA,UACnC,MAAK;AAAA,UACL,wBAAqB;AAAA,UACpB,GAAGE;AAAA,UAEH,UAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN,CAAC;AACDN,EAAS,cAAc;AAEvB,MAAMuB,IAAkB1B,EAAM;AAAA,EAC5B,CAAC,EAAE,WAAAQ,GAAW,GAAGE,EAAA,GAASC,MAAQ;AAChC,UAAM,EAAE,aAAAC,GAAa,aAAAR,EAAA,IAAgBH,EAAA;AAErC,WACE,gBAAAuB,EAAC,OAAA,EAAI,KAAKZ,GAAa,WAAU,mBAC/B,UAAA,gBAAAY;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAb;AAAA,QACA,WAAWc;AAAA,UACT;AAAA,UACArB,MAAgB,eAAe,UAAU;AAAA,UACzCI;AAAA,QAAA;AAAA,QAED,GAAGE;AAAA,MAAA;AAAA,IAAA,GAER;AAAA,EAEJ;AACF;AACAgB,EAAgB,cAAc;AAE9B,MAAMC,IAAe3B,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAQ,GAAW,GAAGE,EAAA,GAASC,MAAQ;AAChC,UAAM,EAAE,aAAAP,EAAA,IAAgBH,EAAA;AAExB,WACE,gBAAAuB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAb;AAAA,QACA,MAAK;AAAA,QACL,wBAAqB;AAAA,QACrB,WAAWc;AAAA,UACT;AAAA,UACArB,MAAgB,eAAe,SAAS;AAAA,UACxCI;AAAA,QAAA;AAAA,QAED,GAAGE;AAAA,MAAA;AAAA,IAAA;AAAA,EAGV;AACF;AACAiB,EAAa,cAAc;AAE3B,MAAMC,IAAmB5B,EAAM;AAAA,EAC7B,CAAC,EAAE,WAAAQ,GAAW,SAAAqB,IAAU,WAAW,MAAAC,IAAO,QAAQ,GAAGpB,EAAA,GAASC,MAAQ;AACpE,UAAM,EAAE,aAAAP,GAAa,YAAAgB,GAAY,eAAAL,EAAA,IAAkBd,EAAA;AAEnD,WACE,gBAAA8B;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAArB;AAAA,QACA,SAAAkB;AAAA,QACA,MAAAC;AAAA,QACA,WAAWL;AAAA,UACT;AAAA,UACArB,MAAgB,eACZ,sCACA;AAAA,UACJI;AAAA,QAAA;AAAA,QAEF,UAAU,CAACO;AAAA,QACX,SAASK;AAAA,QACR,GAAGV;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAc,EAACS,GAAA,EAAc,WAAU,UAAA,CAAU;AAAA,UACnC,gBAAAT,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,iBAAA,CAAc;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAG9C;AACF;AACAI,EAAiB,cAAc;AAE/B,MAAMM,IAAelC,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAQ,GAAW,SAAAqB,IAAU,WAAW,MAAAC,IAAO,QAAQ,GAAGpB,EAAA,GAASC,MAAQ;AACpE,UAAM,EAAE,aAAAP,GAAa,YAAAiB,GAAY,eAAAJ,EAAA,IAAkBhB,EAAA;AAEnD,WACE,gBAAA8B;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAArB;AAAA,QACA,SAAAkB;AAAA,QACA,MAAAC;AAAA,QACA,WAAWL;AAAA,UACT;AAAA,UACArB,MAAgB,eACZ,uCACA;AAAA,UACJI;AAAA,QAAA;AAAA,QAEF,UAAU,CAACS;AAAA,QACX,SAASI;AAAA,QACR,GAAGX;AAAA,QAEJ,UAAA;AAAA,UAAA,gBAAAc,EAACW,GAAA,EAAe,WAAU,UAAA,CAAU;AAAA,UACpC,gBAAAX,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,aAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAG1C;AACF;AACAU,EAAa,cAAc;"}