@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.
- package/dist/base.css +1 -1
- package/dist/components/icons/dynamic-icons.js +15 -0
- package/dist/components/icons/dynamic-icons.js.map +1 -0
- package/dist/components/mode-toggle.js +14 -10
- package/dist/components/mode-toggle.js.map +1 -1
- package/dist/components/ui/accordion.js +4 -3
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/badge.js +8 -6
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/breadcrumb.js +5 -4
- package/dist/components/ui/breadcrumb.js.map +1 -1
- package/dist/components/ui/calendar.js +11 -10
- package/dist/components/ui/calendar.js.map +1 -1
- package/dist/components/ui/carousel.js +14 -13
- package/dist/components/ui/carousel.js.map +1 -1
- package/dist/components/ui/checkbox.js +2 -1
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/chip.js +5 -4
- package/dist/components/ui/chip.js.map +1 -1
- package/dist/components/ui/combobox.js +10 -9
- package/dist/components/ui/combobox.js.map +1 -1
- package/dist/components/ui/command.d.ts +2 -2
- package/dist/components/ui/command.js +7 -6
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/data-table/data-table-column-header.js +14 -13
- package/dist/components/ui/data-table/data-table-column-header.js.map +1 -1
- package/dist/components/ui/data-table/data-table-pagination.js +23 -22
- package/dist/components/ui/data-table/data-table-pagination.js.map +1 -1
- package/dist/components/ui/data-table/data-table-toolbar.js +13 -12
- package/dist/components/ui/data-table/data-table-toolbar.js.map +1 -1
- package/dist/components/ui/data-table/data-table-view-options.js +4 -3
- package/dist/components/ui/data-table/data-table-view-options.js.map +1 -1
- package/dist/components/ui/dialog.js +16 -15
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js +9 -8
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/empty.js +1 -1
- package/dist/components/ui/empty.js.map +1 -1
- package/dist/components/ui/filter.js +5 -4
- package/dist/components/ui/filter.js.map +1 -1
- package/dist/components/ui/navigation-menu.js +11 -10
- package/dist/components/ui/navigation-menu.js.map +1 -1
- package/dist/components/ui/pagination.js +14 -13
- package/dist/components/ui/pagination.js.map +1 -1
- package/dist/components/ui/radio-group.js +12 -11
- package/dist/components/ui/radio-group.js.map +1 -1
- package/dist/components/ui/resizable.js +5 -4
- package/dist/components/ui/resizable.js.map +1 -1
- package/dist/components/ui/select.js +9 -8
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/sheet.js +12 -11
- package/dist/components/ui/sheet.js.map +1 -1
- package/dist/components/ui/sidebar.js +7 -6
- package/dist/components/ui/sidebar.js.map +1 -1
- package/dist/components/ui/stack.d.ts +2 -2
- package/dist/components/ui/tree.js +31 -30
- package/dist/components/ui/tree.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/shadcn-uikit-full.css +1 -1
- package/dist/shadcn-uikit.css +1 -1
- package/dist/utilities.css +1 -1
- 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 {
|
|
3
|
-
import { Button as
|
|
4
|
-
import { DropdownMenu as
|
|
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
|
-
|
|
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(
|
|
9
|
-
/* @__PURE__ */ o(
|
|
10
|
-
/* @__PURE__ */ e(
|
|
11
|
-
/* @__PURE__ */ e(
|
|
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(
|
|
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
|
-
|
|
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 {
|
|
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
|
|
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
|
-
|
|
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 {
|
|
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
|
|
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
|
|
27
|
-
return /* @__PURE__ */ n("div", { className: a(
|
|
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
|
-
|
|
31
|
-
|
|
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,
|
|
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
|
|
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 ?
|
|
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(
|
|
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 {
|
|
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
|
|
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
|
|
9
|
+
function S({
|
|
9
10
|
className: i,
|
|
10
|
-
classNames:
|
|
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
|
-
...
|
|
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:
|
|
115
|
+
day: m,
|
|
115
116
|
modifiers: a,
|
|
116
117
|
...l
|
|
117
118
|
}) {
|
|
118
|
-
const s = p(), u =
|
|
119
|
-
return
|
|
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":
|
|
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
|
-
|
|
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":";;;;;;;;AASA,SAASA,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,eAAAC,IAAgB;AAAA,EAChB,eAAAC,IAAgB;AAAA,EAChB,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,GAEG;AACD,QAAMC,IAAoBC,EAAA;AAE1B,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,iBAAAT;AAAA,MACA,WAAWU;AAAA,QACT;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,QACPZ;AAAA,MAAA;AAAA,MAEF,eAAAG;AAAA,MACA,YAAY;AAAA,QACV,qBAAqB,CAACU,MAASA,EAAK,eAAe,WAAW,EAAE,OAAO,SAAS;AAAA,QAChF,GAAGR;AAAA,MAAA;AAAA,MAEL,YAAY;AAAA,QACV,MAAMO,EAAG,SAASJ,EAAkB,IAAI;AAAA,QACxC,QAAQI,EAAG,4CAA4CJ,EAAkB,MAAM;AAAA,QAC/E,OAAOI,EAAG,8BAA8BJ,EAAkB,KAAK;AAAA,QAC/D,KAAKI;AAAA,UACH;AAAA,UACAJ,EAAkB;AAAA,QAAA;AAAA,QAEpB,iBAAiBI;AAAA,UACfE,EAAe,EAAE,SAASV,GAAe;AAAA,UACzC;AAAA,UACAI,EAAkB;AAAA,QAAA;AAAA,QAEpB,aAAaI;AAAA,UACXE,EAAe,EAAE,SAASV,GAAe;AAAA,UACzC;AAAA,UACAI,EAAkB;AAAA,QAAA;AAAA,QAEpB,eAAeI;AAAA,UACb;AAAA,UACAJ,EAAkB;AAAA,QAAA;AAAA,QAEpB,WAAWI;AAAA,UACT;AAAA,UACAJ,EAAkB;AAAA,QAAA;AAAA,QAEpB,eAAeI;AAAA,UACb;AAAA,UACAJ,EAAkB;AAAA,QAAA;AAAA,QAEpB,UAAUI,EAAG,yCAAyCJ,EAAkB,QAAQ;AAAA,QAChF,eAAeI;AAAA,UACb;AAAA,UACAT,MAAkB,UACd,YACA;AAAA,UACJK,EAAkB;AAAA,QAAA;AAAA,QAEpB,OAAO;AAAA,QACP,UAAUI,EAAG,QAAQJ,EAAkB,QAAQ;AAAA,QAC/C,SAASI;AAAA,UACP;AAAA,UACAJ,EAAkB;AAAA,QAAA;AAAA,QAEpB,MAAMI,EAAG,oBAAoBJ,EAAkB,IAAI;AAAA,QACnD,oBAAoBI,EAAG,oCAAoCJ,EAAkB,kBAAkB;AAAA,QAC/F,aAAaI;AAAA,UACX;AAAA,UACAJ,EAAkB;AAAA,QAAA;AAAA,QAEpB,KAAKI;AAAA,UACH;AAAA,UACAJ,EAAkB;AAAA,QAAA;AAAA,QAEpB,aAAaI,EAAG,0BAA0BJ,EAAkB,WAAW;AAAA,QACvE,cAAcI,EAAG,gBAAgBJ,EAAkB,YAAY;AAAA,QAC/D,WAAWI,EAAG,0BAA0BJ,EAAkB,SAAS;AAAA,QACnE,OAAOI;AAAA,UACL;AAAA,UACAJ,EAAkB;AAAA,QAAA;AAAA,QAEpB,SAASI;AAAA,UACP;AAAA,UACAJ,EAAkB;AAAA,QAAA;AAAA,QAEpB,UAAUI,EAAG,oCAAoCJ,EAAkB,QAAQ;AAAA,QAC3E,QAAQI,EAAG,aAAaJ,EAAkB,MAAM;AAAA,QAChD,GAAGP;AAAA,MAAA;AAAA,MAEL,YAAY;AAAA,QACV,MAAM,CAAC,EAAE,WAAAD,GAAW,SAAAe,GAAS,GAAGR,QACvB,gBAAAG,EAAC,OAAA,EAAI,aAAU,YAAW,KAAKK,GAAS,WAAWH,EAAGZ,CAAS,GAAI,GAAGO,EAAAA,CAAO;AAAA,QAEtF,SAAS,CAAC,EAAE,WAAAP,GAAW,aAAAgB,GAAa,GAAGT,QACjCS,MAAgB,SACX,gBAAAN,EAACO,KAAgB,WAAWL,EAAG,UAAUZ,CAAS,GAAI,GAAGO,GAAO,IAGrES,MAAgB,UACX,gBAAAN,EAACQ,KAAiB,WAAWN,EAAG,UAAUZ,CAAS,GAAI,GAAGO,GAAO,IAGnE,gBAAAG,EAACS,KAAgB,WAAWP,EAAG,UAAUZ,CAAS,GAAI,GAAGO,GAAO;AAAA,QAEzE,WAAWa;AAAA,QACX,YAAY,CAAC,EAAE,UAAAC,GAAU,GAAGd,QAExB,gBAAAG,EAAC,QAAI,GAAGH,GACN,4BAAC,OAAA,EAAI,WAAU,wEACZ,UAAAc,EAAA,CACH,EAAA,CACF;AAAA,QAGJ,GAAGf;AAAA,MAAA;AAAA,MAEJ,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASa,EAAkB;AAAA,EACzB,WAAApB;AAAA,EACA,KAAAsB;AAAA,EACA,WAAAC;AAAA,EACA,GAAGhB;AACL,GAA2C;AACzC,QAAMC,IAAoBC,EAAA,GAEpBe,IAAMC,EAAM,OAA0B,IAAI;AAChD,SAAAA,EAAM,UAAU,MAAM;;AACpB,IAAIF,EAAU,aAASG,IAAAF,EAAI,YAAJ,QAAAE,EAAa;AAAA,EACtC,GAAG,CAACH,EAAU,OAAO,CAAC,GAGpB,gBAAAb;AAAA,IAACiB;AAAA,IAAA;AAAA,MACC,KAAAH;AAAA,MACA,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,YAAUF,EAAI,KAAK,mBAAA;AAAA,MACnB,wBACEC,EAAU,YACV,CAACA,EAAU,eACX,CAACA,EAAU,aACX,CAACA,EAAU;AAAA,MAEb,oBAAkBA,EAAU;AAAA,MAC5B,kBAAgBA,EAAU;AAAA,MAC1B,qBAAmBA,EAAU;AAAA,MAC7B,WAAWX;AAAA,QACT;AAAA,QACAJ,EAAkB;AAAA,QAClBR;AAAA,MAAA;AAAA,MAED,GAAGO;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -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
|
|
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,
|
|
22
|
-
n && (
|
|
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:
|
|
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
|
-
|
|
69
|
-
const
|
|
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
|
-
|
|
87
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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":"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"}
|