@goliapkg/gds 1.7.0 → 2.0.1
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/{avatar-l3SaMCmU.js → avatar-Ct8OOGx6.js} +5 -5
- package/dist/avatar-Ct8OOGx6.js.map +1 -0
- package/dist/{badge-DTJq6AXr.js → badge-BCvi5RVF.js} +4 -4
- package/dist/badge-BCvi5RVF.js.map +1 -0
- package/dist/{button-avu-rQU4.js → button-BD3VHhwq.js} +2 -2
- package/dist/button-BD3VHhwq.js.map +1 -0
- package/dist/fonts.css +77 -11
- package/dist/{gesture-irjS0hVM.js → gesture-I79dlTuS.js} +1 -1
- package/dist/gesture-I79dlTuS.js.map +1 -0
- package/dist/highlight-BAGZc-4h.js.map +1 -1
- package/dist/hooks-BE-_EmDI.js.map +1 -1
- package/dist/{icon-button-YatlVZnz.js → icon-button-Bns79124.js} +3 -3
- package/dist/icon-button-Bns79124.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -29
- package/dist/l0-tokens/color-derive.d.ts.map +1 -1
- package/dist/l0-tokens/color-health.d.ts.map +1 -1
- package/dist/l0-tokens/color-math.d.ts.map +1 -1
- package/dist/l0-tokens/deps.d.ts.map +1 -1
- package/dist/l0-tokens/font-system.d.ts.map +1 -1
- package/dist/l0-tokens/generate-defaults.d.ts.map +1 -1
- package/dist/l0-tokens/glass-system.d.ts.map +1 -1
- package/dist/l0-tokens/index.d.ts +12 -12
- package/dist/l0-tokens/index.d.ts.map +1 -1
- package/dist/l0-tokens/index.js +1 -1
- package/dist/l0-tokens/motion-system.d.ts +1 -0
- package/dist/l0-tokens/motion-system.d.ts.map +1 -1
- package/dist/l0-tokens/shadow-system.d.ts.map +1 -1
- package/dist/l0-tokens/size-system.d.ts.map +1 -1
- package/dist/l0-tokens-DZkyVlac.js.map +1 -1
- package/dist/l1-systems/index.d.ts +2 -2
- package/dist/l1-systems/index.d.ts.map +1 -1
- package/dist/l1-systems/index.js +9 -9
- package/dist/l1-systems/theme.d.ts +30 -2
- package/dist/l1-systems/theme.d.ts.map +1 -1
- package/dist/l1-systems/use-theme.d.ts.map +1 -1
- package/dist/l2-primitives/aspect-ratio.d.ts.map +1 -1
- package/dist/l2-primitives/badge-dot.d.ts.map +1 -1
- package/dist/l2-primitives/badge.d.ts.map +1 -1
- package/dist/l2-primitives/button.d.ts.map +1 -1
- package/dist/l2-primitives/divider.d.ts.map +1 -1
- package/dist/l2-primitives/dot.d.ts.map +1 -1
- package/dist/l2-primitives/focus-ring.d.ts +9 -3
- package/dist/l2-primitives/focus-ring.d.ts.map +1 -1
- package/dist/l2-primitives/glow-effect.d.ts +8 -2
- package/dist/l2-primitives/glow-effect.d.ts.map +1 -1
- package/dist/l2-primitives/gradient-border.d.ts +8 -2
- package/dist/l2-primitives/gradient-border.d.ts.map +1 -1
- package/dist/l2-primitives/highlight.d.ts.map +1 -1
- package/dist/l2-primitives/index.js +8 -8
- package/dist/l2-primitives/input.d.ts +16 -0
- package/dist/l2-primitives/input.d.ts.map +1 -1
- package/dist/l2-primitives/kbd.d.ts.map +1 -1
- package/dist/l2-primitives/label.d.ts.map +1 -1
- package/dist/l2-primitives/loading.d.ts +21 -6
- package/dist/l2-primitives/loading.d.ts.map +1 -1
- package/dist/l2-primitives/number-input.d.ts.map +1 -1
- package/dist/l2-primitives/number-stepper.d.ts.map +1 -1
- package/dist/l2-primitives/progress.d.ts.map +1 -1
- package/dist/l2-primitives/scroll-area.d.ts.map +1 -1
- package/dist/l2-primitives/separator.d.ts.map +1 -1
- package/dist/l2-primitives/shimmer.d.ts.map +1 -1
- package/dist/l2-primitives/skeleton.d.ts.map +1 -1
- package/dist/l2-primitives/slider.d.ts.map +1 -1
- package/dist/l2-primitives/spinner.d.ts.map +1 -1
- package/dist/l2-primitives/truncate.d.ts +8 -2
- package/dist/l2-primitives/truncate.d.ts.map +1 -1
- package/dist/l2-primitives/visually-hidden.d.ts.map +1 -1
- package/dist/{l2-primitives-Le0006ck.js → l2-primitives-Cn0KNxbB.js} +84 -67
- package/dist/l2-primitives-Cn0KNxbB.js.map +1 -0
- package/dist/l3-atoms/animated-border.d.ts +1 -1
- package/dist/l3-atoms/animated-border.d.ts.map +1 -1
- package/dist/l3-atoms/animated-counter.d.ts.map +1 -1
- package/dist/l3-atoms/animated-number.d.ts.map +1 -1
- package/dist/l3-atoms/avatar-badge.d.ts.map +1 -1
- package/dist/l3-atoms/avatar.d.ts.map +1 -1
- package/dist/l3-atoms/barcode.d.ts.map +1 -1
- package/dist/l3-atoms/blinking.d.ts.map +1 -1
- package/dist/l3-atoms/bounce-dot.d.ts.map +1 -1
- package/dist/l3-atoms/checkbox-group.d.ts.map +1 -1
- package/dist/l3-atoms/checkbox.d.ts.map +1 -1
- package/dist/l3-atoms/chip.d.ts.map +1 -1
- package/dist/l3-atoms/color-swatch.d.ts.map +1 -1
- package/dist/l3-atoms/copy-button.d.ts.map +1 -1
- package/dist/l3-atoms/count-badge.d.ts.map +1 -1
- package/dist/l3-atoms/count-up.d.ts.map +1 -1
- package/dist/l3-atoms/countdown-badge.d.ts.map +1 -1
- package/dist/l3-atoms/countdown.d.ts.map +1 -1
- package/dist/l3-atoms/cursor-follow.d.ts.map +1 -1
- package/dist/l3-atoms/diff-indicator.d.ts.map +1 -1
- package/dist/l3-atoms/glow-dot.d.ts.map +1 -1
- package/dist/l3-atoms/gradient-text.d.ts.map +1 -1
- package/dist/l3-atoms/heat-cell.d.ts.map +1 -1
- package/dist/l3-atoms/hotkey.d.ts.map +1 -1
- package/dist/l3-atoms/index.d.ts +4 -4
- package/dist/l3-atoms/index.d.ts.map +1 -1
- package/dist/l3-atoms/index.js +6 -6
- package/dist/l3-atoms/info-tip.d.ts.map +1 -1
- package/dist/l3-atoms/key-value.d.ts.map +1 -1
- package/dist/l3-atoms/keyboard-shortcut.d.ts.map +1 -1
- package/dist/l3-atoms/live-dot.d.ts.map +1 -1
- package/dist/l3-atoms/loading-dots.d.ts.map +1 -1
- package/dist/l3-atoms/magnetic-button.d.ts.map +1 -1
- package/dist/l3-atoms/marquee.d.ts.map +1 -1
- package/dist/l3-atoms/meter.d.ts.map +1 -1
- package/dist/l3-atoms/number-flow.d.ts.map +1 -1
- package/dist/l3-atoms/online-indicator.d.ts.map +1 -1
- package/dist/l3-atoms/orbit.d.ts +1 -1
- package/dist/l3-atoms/orbit.d.ts.map +1 -1
- package/dist/l3-atoms/percentage-circle.d.ts.map +1 -1
- package/dist/l3-atoms/percentage.d.ts.map +1 -1
- package/dist/l3-atoms/price.d.ts.map +1 -1
- package/dist/l3-atoms/progress-circle.d.ts.map +1 -1
- package/dist/l3-atoms/progress-ring.d.ts.map +1 -1
- package/dist/l3-atoms/pulse-indicator.d.ts.map +1 -1
- package/dist/l3-atoms/pulse-ring.d.ts.map +1 -1
- package/dist/l3-atoms/qr-code.d.ts.map +1 -1
- package/dist/l3-atoms/quick-action.d.ts.map +1 -1
- package/dist/l3-atoms/radio-group.d.ts.map +1 -1
- package/dist/l3-atoms/range-slider.d.ts.map +1 -1
- package/dist/l3-atoms/rating.d.ts.map +1 -1
- package/dist/l3-atoms/ribbon-banner.d.ts.map +1 -1
- package/dist/l3-atoms/ribbon.d.ts.map +1 -1
- package/dist/l3-atoms/ripple-effect.d.ts.map +1 -1
- package/dist/l3-atoms/scroll-to-top.d.ts.map +1 -1
- package/dist/l3-atoms/segmented-control.d.ts +1 -1
- package/dist/l3-atoms/segmented-control.d.ts.map +1 -1
- package/dist/l3-atoms/shortcut-display.d.ts.map +1 -1
- package/dist/l3-atoms/skeleton-group.d.ts.map +1 -1
- package/dist/l3-atoms/sparkle.d.ts.map +1 -1
- package/dist/l3-atoms/stagger.d.ts +1 -1
- package/dist/l3-atoms/stagger.d.ts.map +1 -1
- package/dist/l3-atoms/star-rating.d.ts.map +1 -1
- package/dist/l3-atoms/status-badge.d.ts.map +1 -1
- package/dist/l3-atoms/status-dot.d.ts.map +1 -1
- package/dist/l3-atoms/switch-group.d.ts.map +1 -1
- package/dist/l3-atoms/switch.d.ts.map +1 -1
- package/dist/l3-atoms/text-badge.d.ts.map +1 -1
- package/dist/l3-atoms/text-effect.d.ts.map +1 -1
- package/dist/l3-atoms/textarea-counter.d.ts.map +1 -1
- package/dist/l3-atoms/theme-toggle.d.ts.map +1 -1
- package/dist/l3-atoms/toggle-group.d.ts.map +1 -1
- package/dist/l3-atoms/tooltip.d.ts.map +1 -1
- package/dist/l3-atoms/trend-arrow.d.ts.map +1 -1
- package/dist/l3-atoms/trend-indicator.d.ts +1 -1
- package/dist/l3-atoms/trend-indicator.d.ts.map +1 -1
- package/dist/l3-atoms/truncated-list.d.ts.map +1 -1
- package/dist/l3-atoms/verified-badge.d.ts.map +1 -1
- package/dist/l3-atoms/visual-counter.d.ts.map +1 -1
- package/dist/l3-atoms/volume-slider.d.ts +1 -1
- package/dist/l3-atoms/volume-slider.d.ts.map +1 -1
- package/dist/l3-atoms/zoom-on-hover.d.ts.map +1 -1
- package/dist/{l3-atoms-Cvu01YHO.js → l3-atoms-BCJNqPHk.js} +199 -236
- package/dist/l3-atoms-BCJNqPHk.js.map +1 -0
- package/dist/l4-molecules/accordion.d.ts +2 -2
- package/dist/l4-molecules/accordion.d.ts.map +1 -1
- package/dist/l4-molecules/action-card.d.ts.map +1 -1
- package/dist/l4-molecules/action-menu.d.ts.map +1 -1
- package/dist/l4-molecules/activity-log.d.ts.map +1 -1
- package/dist/l4-molecules/alert.d.ts.map +1 -1
- package/dist/l4-molecules/audit-entry.d.ts.map +1 -1
- package/dist/l4-molecules/banner.d.ts.map +1 -1
- package/dist/l4-molecules/before-after.d.ts.map +1 -1
- package/dist/l4-molecules/breadcrumb.d.ts.map +1 -1
- package/dist/l4-molecules/bulk-action-bar.d.ts.map +1 -1
- package/dist/l4-molecules/callout.d.ts.map +1 -1
- package/dist/l4-molecules/card.d.ts +1 -1
- package/dist/l4-molecules/card.d.ts.map +1 -1
- package/dist/l4-molecules/category-tag.d.ts.map +1 -1
- package/dist/l4-molecules/cert-badge.d.ts.map +1 -1
- package/dist/l4-molecules/chip-group.d.ts.map +1 -1
- package/dist/l4-molecules/circular-menu.d.ts.map +1 -1
- package/dist/l4-molecules/code-block.d.ts.map +1 -1
- package/dist/l4-molecules/code-snippet.d.ts.map +1 -1
- package/dist/l4-molecules/collapsible.d.ts +1 -1
- package/dist/l4-molecules/collapsible.d.ts.map +1 -1
- package/dist/l4-molecules/color-picker.d.ts.map +1 -1
- package/dist/l4-molecules/combobox-list.d.ts +4 -1
- package/dist/l4-molecules/combobox-list.d.ts.map +1 -1
- package/dist/l4-molecules/combobox.d.ts +5 -0
- package/dist/l4-molecules/combobox.d.ts.map +1 -1
- package/dist/l4-molecules/command-bar-float.d.ts.map +1 -1
- package/dist/l4-molecules/command-bar.d.ts.map +1 -1
- package/dist/l4-molecules/command-menu.d.ts.map +1 -1
- package/dist/l4-molecules/comparison-bar.d.ts.map +1 -1
- package/dist/l4-molecules/confirm-dialog.d.ts.map +1 -1
- package/dist/l4-molecules/context-menu.d.ts +1 -1
- package/dist/l4-molecules/context-menu.d.ts.map +1 -1
- package/dist/l4-molecules/copy-field.d.ts.map +1 -1
- package/dist/l4-molecules/copy-to-clipboard.d.ts.map +1 -1
- package/dist/l4-molecules/countdown-timer.d.ts.map +1 -1
- package/dist/l4-molecules/currency-display.d.ts.map +1 -1
- package/dist/l4-molecules/currency-input.d.ts.map +1 -1
- package/dist/l4-molecules/data-card.d.ts.map +1 -1
- package/dist/l4-molecules/date-display.d.ts.map +1 -1
- package/dist/l4-molecules/date-range-input.d.ts.map +1 -1
- package/dist/l4-molecules/description.d.ts.map +1 -1
- package/dist/l4-molecules/dialog.d.ts.map +1 -1
- package/dist/l4-molecules/dock.d.ts.map +1 -1
- package/dist/l4-molecules/download-button.d.ts.map +1 -1
- package/dist/l4-molecules/drawer.d.ts.map +1 -1
- package/dist/l4-molecules/drop-zone.d.ts.map +1 -1
- package/dist/l4-molecules/dropdown.d.ts +1 -1
- package/dist/l4-molecules/dropdown.d.ts.map +1 -1
- package/dist/l4-molecules/editable.d.ts.map +1 -1
- package/dist/l4-molecules/email-composer-field.d.ts +38 -0
- package/dist/l4-molecules/email-composer-field.d.ts.map +1 -0
- package/dist/l4-molecules/emoji-picker.d.ts.map +1 -1
- package/dist/l4-molecules/empty-placeholder.d.ts.map +1 -1
- package/dist/l4-molecules/empty-search.d.ts.map +1 -1
- package/dist/l4-molecules/environment-badge.d.ts.map +1 -1
- package/dist/l4-molecules/feature-flag.d.ts.map +1 -1
- package/dist/l4-molecules/field-group.d.ts.map +1 -1
- package/dist/l4-molecules/file-upload.d.ts.map +1 -1
- package/dist/l4-molecules/filter-bar.d.ts.map +1 -1
- package/dist/l4-molecules/flip-card.d.ts.map +1 -1
- package/dist/l4-molecules/form-actions.d.ts.map +1 -1
- package/dist/l4-molecules/form-field.d.ts.map +1 -1
- package/dist/l4-molecules/glass-button.d.ts.map +1 -1
- package/dist/l4-molecules/glass-card.d.ts.map +1 -1
- package/dist/l4-molecules/glitch-text.d.ts.map +1 -1
- package/dist/l4-molecules/hover-card.d.ts.map +1 -1
- package/dist/l4-molecules/index.d.ts +11 -5
- package/dist/l4-molecules/index.d.ts.map +1 -1
- package/dist/l4-molecules/index.js +4 -4
- package/dist/l4-molecules/info-row.d.ts.map +1 -1
- package/dist/l4-molecules/inline-edit.d.ts.map +1 -1
- package/dist/l4-molecules/input-group.d.ts.map +1 -1
- package/dist/l4-molecules/input-with-button.d.ts.map +1 -1
- package/dist/l4-molecules/key-value-list.d.ts.map +1 -1
- package/dist/l4-molecules/kv-table.d.ts.map +1 -1
- package/dist/l4-molecules/link-preview.d.ts.map +1 -1
- package/dist/l4-molecules/list-item.d.ts.map +1 -1
- package/dist/l4-molecules/live-metric.d.ts.map +1 -1
- package/dist/l4-molecules/matrix-rain.d.ts.map +1 -1
- package/dist/l4-molecules/media-container.d.ts.map +1 -1
- package/dist/l4-molecules/media-object.d.ts.map +1 -1
- package/dist/l4-molecules/mention-input.d.ts.map +1 -1
- package/dist/l4-molecules/mention-list.d.ts +1 -1
- package/dist/l4-molecules/mention-list.d.ts.map +1 -1
- package/dist/l4-molecules/metric-row.d.ts.map +1 -1
- package/dist/l4-molecules/metric-tile.d.ts.map +1 -1
- package/dist/l4-molecules/morphing-shape.d.ts.map +1 -1
- package/dist/l4-molecules/multi-select-list.d.ts.map +1 -1
- package/dist/l4-molecules/multi-select.d.ts.map +1 -1
- package/dist/l4-molecules/nav-item.d.ts.map +1 -1
- package/dist/l4-molecules/network-status.d.ts.map +1 -1
- package/dist/l4-molecules/noise-overlay.d.ts.map +1 -1
- package/dist/l4-molecules/notification-bell.d.ts.map +1 -1
- package/dist/l4-molecules/notification-dot.d.ts.map +1 -1
- package/dist/l4-molecules/notification.d.ts.map +1 -1
- package/dist/l4-molecules/num-table.d.ts.map +1 -1
- package/dist/l4-molecules/otp-input.d.ts.map +1 -1
- package/dist/l4-molecules/overflow-menu.d.ts.map +1 -1
- package/dist/l4-molecules/page-nav.d.ts.map +1 -1
- package/dist/l4-molecules/pagination.d.ts.map +1 -1
- package/dist/l4-molecules/panel.d.ts.map +1 -1
- package/dist/l4-molecules/particle-field.d.ts.map +1 -1
- package/dist/l4-molecules/password-input.d.ts.map +1 -1
- package/dist/l4-molecules/phone-input.d.ts.map +1 -1
- package/dist/l4-molecules/pin-input.d.ts.map +1 -1
- package/dist/l4-molecules/popover.d.ts.map +1 -1
- package/dist/l4-molecules/progress-steps.d.ts.map +1 -1
- package/dist/l4-molecules/quick-stat.d.ts.map +1 -1
- package/dist/l4-molecules/radio-card.d.ts.map +1 -1
- package/dist/l4-molecules/reveal.d.ts.map +1 -1
- package/dist/l4-molecules/scoreboard.d.ts.map +1 -1
- package/dist/l4-molecules/search-input.d.ts.map +1 -1
- package/dist/l4-molecules/select.d.ts.map +1 -1
- package/dist/l4-molecules/sheet.d.ts.map +1 -1
- package/dist/l4-molecules/slider-field.d.ts.map +1 -1
- package/dist/l4-molecules/sortable-header.d.ts.map +1 -1
- package/dist/l4-molecules/split-button.d.ts +1 -1
- package/dist/l4-molecules/split-button.d.ts.map +1 -1
- package/dist/l4-molecules/stacked-progress.d.ts.map +1 -1
- package/dist/l4-molecules/stat-comparison.d.ts.map +1 -1
- package/dist/l4-molecules/stat-trend.d.ts.map +1 -1
- package/dist/l4-molecules/status-bar-component.d.ts.map +1 -1
- package/dist/l4-molecules/stepper.d.ts.map +1 -1
- package/dist/l4-molecules/tab-group.d.ts +5 -1
- package/dist/l4-molecules/tab-group.d.ts.map +1 -1
- package/dist/l4-molecules/tabs.d.ts +4 -1
- package/dist/l4-molecules/tabs.d.ts.map +1 -1
- package/dist/l4-molecules/tag-input.d.ts.map +1 -1
- package/dist/l4-molecules/task-item.d.ts.map +1 -1
- package/dist/l4-molecules/text-reveal.d.ts.map +1 -1
- package/dist/l4-molecules/text-scramble.d.ts.map +1 -1
- package/dist/l4-molecules/tilt-card.d.ts.map +1 -1
- package/dist/l4-molecules/time-picker-grid.d.ts.map +1 -1
- package/dist/l4-molecules/time-picker.d.ts.map +1 -1
- package/dist/l4-molecules/timeline-item.d.ts.map +1 -1
- package/dist/l4-molecules/toast-provider.d.ts +10 -0
- package/dist/l4-molecules/toast-provider.d.ts.map +1 -0
- package/dist/l4-molecules/toast-store.d.ts +42 -0
- package/dist/l4-molecules/toast-store.d.ts.map +1 -0
- package/dist/l4-molecules/toast.d.ts.map +1 -1
- package/dist/l4-molecules/toggle-field.d.ts.map +1 -1
- package/dist/l4-molecules/toolbar-generic.d.ts.map +1 -1
- package/dist/l4-molecules/upload-progress.d.ts.map +1 -1
- package/dist/l4-molecules/user-card.d.ts.map +1 -1
- package/dist/l4-molecules/user-info.d.ts.map +1 -1
- package/dist/l4-molecules/user-menu.d.ts.map +1 -1
- package/dist/l4-molecules/version-badge.d.ts.map +1 -1
- package/dist/l4-molecules/watermark.d.ts.map +1 -1
- package/dist/l4-molecules/wizard.d.ts.map +1 -1
- package/dist/{l4-molecules-CSmApFmt.js → l4-molecules-DtNnQaFU.js} +1703 -1517
- package/dist/l4-molecules-DtNnQaFU.js.map +1 -0
- package/dist/l5-organisms/activity-feed.d.ts.map +1 -1
- package/dist/l5-organisms/animate-presence.d.ts.map +1 -1
- package/dist/l5-organisms/audio-player.d.ts.map +1 -1
- package/dist/l5-organisms/audit-log.d.ts.map +1 -1
- package/dist/l5-organisms/avatar-list.d.ts.map +1 -1
- package/dist/l5-organisms/calendar-utils.d.ts.map +1 -1
- package/dist/l5-organisms/calendar.d.ts.map +1 -1
- package/dist/l5-organisms/carousel.d.ts.map +1 -1
- package/dist/l5-organisms/changelog.d.ts.map +1 -1
- package/dist/l5-organisms/command-palette-list.d.ts +3 -1
- package/dist/l5-organisms/command-palette-list.d.ts.map +1 -1
- package/dist/l5-organisms/command-palette.d.ts +10 -1
- package/dist/l5-organisms/command-palette.d.ts.map +1 -1
- package/dist/l5-organisms/comment-thread.d.ts.map +1 -1
- package/dist/l5-organisms/confetti.d.ts.map +1 -1
- package/dist/l5-organisms/contact-card.d.ts.map +1 -1
- package/dist/l5-organisms/container-list.d.ts.map +1 -1
- package/dist/l5-organisms/cookie-banner.d.ts.map +1 -1
- package/dist/l5-organisms/cron-schedule.d.ts.map +1 -1
- package/dist/l5-organisms/data-grid.d.ts.map +1 -1
- package/dist/l5-organisms/data-list.d.ts.map +1 -1
- package/dist/l5-organisms/data-table/data-table-body.d.ts.map +1 -1
- package/dist/l5-organisms/data-table/data-table-head.d.ts.map +1 -1
- package/dist/l5-organisms/data-table/data-table-pagination.d.ts.map +1 -1
- package/dist/l5-organisms/data-table/data-table-toolbar.d.ts.map +1 -1
- package/dist/l5-organisms/data-table/data-table-types.d.ts +1 -1
- package/dist/l5-organisms/data-table/data-table-types.d.ts.map +1 -1
- package/dist/l5-organisms/data-table/data-table.d.ts.map +1 -1
- package/dist/l5-organisms/data-table/index.d.ts +1 -1
- package/dist/l5-organisms/data-table/index.d.ts.map +1 -1
- package/dist/l5-organisms/date-picker.d.ts.map +1 -1
- package/dist/l5-organisms/deploy-log.d.ts.map +1 -1
- package/dist/l5-organisms/description-list.d.ts.map +1 -1
- package/dist/l5-organisms/diff-algorithm.d.ts.map +1 -1
- package/dist/l5-organisms/diff-viewer.d.ts.map +1 -1
- package/dist/l5-organisms/email-composer.d.ts +118 -0
- package/dist/l5-organisms/email-composer.d.ts.map +1 -0
- package/dist/l5-organisms/email-list-item.d.ts.map +1 -1
- package/dist/l5-organisms/email-thread.d.ts +85 -0
- package/dist/l5-organisms/email-thread.d.ts.map +1 -0
- package/dist/l5-organisms/embed.d.ts.map +1 -1
- package/dist/l5-organisms/employee-card.d.ts.map +1 -1
- package/dist/l5-organisms/error-boundary.d.ts.map +1 -1
- package/dist/l5-organisms/file-browser.d.ts.map +1 -1
- package/dist/l5-organisms/file-card.d.ts.map +1 -1
- package/dist/l5-organisms/form-builder.d.ts.map +1 -1
- package/dist/l5-organisms/gantt-chart/gantt-chart-utils.d.ts.map +1 -1
- package/dist/l5-organisms/gantt-chart/gantt-chart.d.ts.map +1 -1
- package/dist/l5-organisms/gantt-chart/index.d.ts +1 -1
- package/dist/l5-organisms/gantt-chart/index.d.ts.map +1 -1
- package/dist/l5-organisms/heatmap-table.d.ts.map +1 -1
- package/dist/l5-organisms/image-preview.d.ts.map +1 -1
- package/dist/l5-organisms/index.d.ts +18 -12
- package/dist/l5-organisms/index.d.ts.map +1 -1
- package/dist/l5-organisms/index.js +2 -2
- package/dist/l5-organisms/infinite-scroll.d.ts.map +1 -1
- package/dist/l5-organisms/json-node.d.ts +1 -1
- package/dist/l5-organisms/json-node.d.ts.map +1 -1
- package/dist/l5-organisms/kanban.d.ts +2 -2
- package/dist/l5-organisms/kanban.d.ts.map +1 -1
- package/dist/l5-organisms/markdown-editor.d.ts.map +1 -1
- package/dist/l5-organisms/markdown-parser.d.ts.map +1 -1
- package/dist/l5-organisms/markdown-preview.d.ts +6 -0
- package/dist/l5-organisms/markdown-preview.d.ts.map +1 -1
- package/dist/l5-organisms/notification-center.d.ts.map +1 -1
- package/dist/l5-organisms/notification-toast.d.ts.map +1 -1
- package/dist/l5-organisms/parallax.d.ts.map +1 -1
- package/dist/l5-organisms/payslip-card.d.ts.map +1 -1
- package/dist/l5-organisms/permission-matrix.d.ts.map +1 -1
- package/dist/l5-organisms/progress-timeline.d.ts.map +1 -1
- package/dist/l5-organisms/property-editor.d.ts.map +1 -1
- package/dist/l5-organisms/quick-links.d.ts.map +1 -1
- package/dist/l5-organisms/recent-activity.d.ts.map +1 -1
- package/dist/l5-organisms/responsive-stack.d.ts.map +1 -1
- package/dist/l5-organisms/responsive-table.d.ts.map +1 -1
- package/dist/l5-organisms/rich-select-list.d.ts +1 -1
- package/dist/l5-organisms/rich-select-list.d.ts.map +1 -1
- package/dist/l5-organisms/rich-select.d.ts.map +1 -1
- package/dist/l5-organisms/rich-text-editor.d.ts +56 -0
- package/dist/l5-organisms/rich-text-editor.d.ts.map +1 -0
- package/dist/l5-organisms/search-results.d.ts.map +1 -1
- package/dist/l5-organisms/service-card.d.ts.map +1 -1
- package/dist/l5-organisms/signature-drawing.d.ts +1 -1
- package/dist/l5-organisms/signature-drawing.d.ts.map +1 -1
- package/dist/l5-organisms/signature-pad.d.ts.map +1 -1
- package/dist/l5-organisms/sortable-table.d.ts.map +1 -1
- package/dist/l5-organisms/spotlight.d.ts.map +1 -1
- package/dist/l5-organisms/stacked-list.d.ts.map +1 -1
- package/dist/l5-organisms/step-form.d.ts.map +1 -1
- package/dist/l5-organisms/system-health.d.ts.map +1 -1
- package/dist/l5-organisms/table.d.ts.map +1 -1
- package/dist/l5-organisms/task-board.d.ts.map +1 -1
- package/dist/l5-organisms/timeline.d.ts +1 -1
- package/dist/l5-organisms/timeline.d.ts.map +1 -1
- package/dist/l5-organisms/tour.d.ts.map +1 -1
- package/dist/l5-organisms/transaction-list.d.ts.map +1 -1
- package/dist/l5-organisms/tree.d.ts.map +1 -1
- package/dist/l5-organisms/video-controls.d.ts.map +1 -1
- package/dist/l5-organisms/video-player.d.ts.map +1 -1
- package/dist/l5-organisms/virtual-list.d.ts.map +1 -1
- package/dist/l5-organisms/weather-widget.d.ts.map +1 -1
- package/dist/l5-organisms-Bu2Z8LSj.js +6147 -0
- package/dist/l5-organisms-Bu2Z8LSj.js.map +1 -0
- package/dist/l6-charts/annotated-chart.d.ts +1 -1
- package/dist/l6-charts/annotated-chart.d.ts.map +1 -1
- package/dist/l6-charts/area-chart.d.ts.map +1 -1
- package/dist/l6-charts/bar-chart.d.ts.map +1 -1
- package/dist/l6-charts/box-plot.d.ts.map +1 -1
- package/dist/l6-charts/bullet-chart.d.ts.map +1 -1
- package/dist/l6-charts/bump-chart.d.ts.map +1 -1
- package/dist/l6-charts/calendar-heatmap.d.ts.map +1 -1
- package/dist/l6-charts/candlestick-chart.d.ts.map +1 -1
- package/dist/l6-charts/chord-diagram.d.ts.map +1 -1
- package/dist/l6-charts/chord-math.d.ts.map +1 -1
- package/dist/l6-charts/choropleth-map.d.ts +1 -1
- package/dist/l6-charts/choropleth-map.d.ts.map +1 -1
- package/dist/l6-charts/combo-chart.d.ts.map +1 -1
- package/dist/l6-charts/donut-gauge.d.ts.map +1 -1
- package/dist/l6-charts/flame-chart.d.ts.map +1 -1
- package/dist/l6-charts/flow-chart.d.ts.map +1 -1
- package/dist/l6-charts/funnel-chart.d.ts.map +1 -1
- package/dist/l6-charts/gauge.d.ts.map +1 -1
- package/dist/l6-charts/heatmap-chart.d.ts.map +1 -1
- package/dist/l6-charts/heatmap-utils.d.ts.map +1 -1
- package/dist/l6-charts/histogram.d.ts.map +1 -1
- package/dist/l6-charts/index.d.ts +1 -1
- package/dist/l6-charts/index.d.ts.map +1 -1
- package/dist/l6-charts/index.js +1 -1
- package/dist/l6-charts/line-chart.d.ts.map +1 -1
- package/dist/l6-charts/network-graph.d.ts.map +1 -1
- package/dist/l6-charts/order-book-chart.d.ts.map +1 -1
- package/dist/l6-charts/pie-chart.d.ts.map +1 -1
- package/dist/l6-charts/polar-area-chart.d.ts +1 -1
- package/dist/l6-charts/polar-area-chart.d.ts.map +1 -1
- package/dist/l6-charts/radar-chart.d.ts.map +1 -1
- package/dist/l6-charts/radial-bar-chart.d.ts.map +1 -1
- package/dist/l6-charts/realtime-chart.d.ts.map +1 -1
- package/dist/l6-charts/sankey-chart.d.ts.map +1 -1
- package/dist/l6-charts/scatter-chart.d.ts.map +1 -1
- package/dist/l6-charts/sparkline.d.ts.map +1 -1
- package/dist/l6-charts/stock-ticker.d.ts.map +1 -1
- package/dist/l6-charts/stream-chart.d.ts.map +1 -1
- package/dist/l6-charts/sunburst-chart.d.ts.map +1 -1
- package/dist/l6-charts/sunburst-math.d.ts.map +1 -1
- package/dist/l6-charts/timeline-chart.d.ts.map +1 -1
- package/dist/l6-charts/treemap-chart.d.ts.map +1 -1
- package/dist/l6-charts/violin-plot.d.ts.map +1 -1
- package/dist/l6-charts/waffle-chart.d.ts.map +1 -1
- package/dist/l6-charts/waterfall-chart.d.ts.map +1 -1
- package/dist/l6-charts/word-cloud.d.ts.map +1 -1
- package/dist/{l6-charts-DPMj1m0E.js → l6-charts-ngP5gbBh.js} +51 -51
- package/dist/l6-charts-ngP5gbBh.js.map +1 -0
- package/dist/l7-patterns/admin-layout.d.ts +6 -0
- package/dist/l7-patterns/admin-layout.d.ts.map +1 -1
- package/dist/l7-patterns/analytics-dashboard.d.ts.map +1 -1
- package/dist/l7-patterns/app-shell.d.ts +44 -0
- package/dist/l7-patterns/app-shell.d.ts.map +1 -0
- package/dist/l7-patterns/bento-grid.d.ts.map +1 -1
- package/dist/l7-patterns/calendar-view.d.ts.map +1 -1
- package/dist/l7-patterns/comparison-table.d.ts.map +1 -1
- package/dist/l7-patterns/composition-pattern.d.ts.map +1 -1
- package/dist/l7-patterns/cta-banner.d.ts.map +1 -1
- package/dist/l7-patterns/dashboard-layout.d.ts.map +1 -1
- package/dist/l7-patterns/data-export-card.d.ts.map +1 -1
- package/dist/l7-patterns/devops-layout.d.ts.map +1 -1
- package/dist/l7-patterns/empty-state.d.ts.map +1 -1
- package/dist/l7-patterns/faq.d.ts.map +1 -1
- package/dist/l7-patterns/feature-card.d.ts.map +1 -1
- package/dist/l7-patterns/footer.d.ts.map +1 -1
- package/dist/l7-patterns/form-layout.d.ts.map +1 -1
- package/dist/l7-patterns/form-pattern.d.ts.map +1 -1
- package/dist/l7-patterns/glass-panel.d.ts.map +1 -1
- package/dist/l7-patterns/grid-layout.d.ts.map +1 -1
- package/dist/l7-patterns/hero.d.ts.map +1 -1
- package/dist/l7-patterns/hr-dashboard.d.ts.map +1 -1
- package/dist/l7-patterns/inbox-layout.d.ts +50 -3
- package/dist/l7-patterns/inbox-layout.d.ts.map +1 -1
- package/dist/l7-patterns/index.d.ts +8 -4
- package/dist/l7-patterns/index.d.ts.map +1 -1
- package/dist/l7-patterns/index.js +2 -2
- package/dist/l7-patterns/kpi-dashboard.d.ts.map +1 -1
- package/dist/l7-patterns/loading-states.d.ts.map +1 -1
- package/dist/l7-patterns/login-form.d.ts.map +1 -1
- package/dist/l7-patterns/mail-composer.d.ts.map +1 -1
- package/dist/l7-patterns/masonry.d.ts.map +1 -1
- package/dist/l7-patterns/media-grid.d.ts.map +1 -1
- package/dist/l7-patterns/metric-card.d.ts.map +1 -1
- package/dist/l7-patterns/nav-bar.d.ts.map +1 -1
- package/dist/l7-patterns/notification-list.d.ts.map +1 -1
- package/dist/l7-patterns/onboarding-card.d.ts.map +1 -1
- package/dist/l7-patterns/page-header.d.ts.map +1 -1
- package/dist/l7-patterns/panel-group.d.ts +42 -0
- package/dist/l7-patterns/panel-group.d.ts.map +1 -0
- package/dist/l7-patterns/payroll-dashboard.d.ts.map +1 -1
- package/dist/l7-patterns/pricing-card.d.ts.map +1 -1
- package/dist/l7-patterns/profile-card.d.ts.map +1 -1
- package/dist/l7-patterns/project-dashboard.d.ts.map +1 -1
- package/dist/l7-patterns/responsive-container.d.ts.map +1 -1
- package/dist/l7-patterns/server-overview.d.ts.map +1 -1
- package/dist/l7-patterns/settings-layout.d.ts +6 -1
- package/dist/l7-patterns/settings-layout.d.ts.map +1 -1
- package/dist/l7-patterns/sidebar.d.ts +14 -0
- package/dist/l7-patterns/sidebar.d.ts.map +1 -1
- package/dist/l7-patterns/skeleton-pattern.d.ts.map +1 -1
- package/dist/l7-patterns/splash-screen.d.ts.map +1 -1
- package/dist/l7-patterns/split-view.d.ts.map +1 -1
- package/dist/l7-patterns/stat.d.ts.map +1 -1
- package/dist/l7-patterns/stats-card.d.ts.map +1 -1
- package/dist/l7-patterns/status-page.d.ts.map +1 -1
- package/dist/l7-patterns/stepper-form.d.ts.map +1 -1
- package/dist/l7-patterns/sticky-header.d.ts.map +1 -1
- package/dist/l7-patterns/testimonial.d.ts.map +1 -1
- package/dist/l7-patterns/timeline-steps.d.ts.map +1 -1
- package/dist/l7-patterns/toolbar.d.ts.map +1 -1
- package/dist/l7-patterns/wizard-layout.d.ts.map +1 -1
- package/dist/l7-patterns-CwonNW9o.js +2272 -0
- package/dist/l7-patterns-CwonNW9o.js.map +1 -0
- package/dist/loading-dots-C1LPHGa0.js +62 -0
- package/dist/loading-dots-C1LPHGa0.js.map +1 -0
- package/dist/motion-DUPegem-.js.map +1 -1
- package/dist/portal-Bbl6F_Wj.js.map +1 -1
- package/dist/{progress-wAKN3Czz.js → progress-dZIQEiTw.js} +5 -5
- package/dist/progress-dZIQEiTw.js.map +1 -0
- package/dist/{resize-handle-ilSc7QRM.js → resize-handle-BjSNhgJK.js} +5 -5
- package/dist/resize-handle-BjSNhgJK.js.map +1 -0
- package/dist/sanitize-BF45M9xp.js +33 -0
- package/dist/sanitize-BF45M9xp.js.map +1 -0
- package/dist/{scales-B23Guac-.js → scales-DlVrSOA2.js} +98 -96
- package/dist/scales-DlVrSOA2.js.map +1 -0
- package/dist/{separator-Dqs23A9D.js → separator-CRll1Ycp.js} +5 -5
- package/dist/separator-CRll1Ycp.js.map +1 -0
- package/dist/skeleton-C9FFZSYN.js.map +1 -1
- package/dist/spinner-C15eER04.js +201 -0
- package/dist/spinner-C15eER04.js.map +1 -0
- package/dist/stepper-DJ8pn-9D.js +199 -0
- package/dist/stepper-DJ8pn-9D.js.map +1 -0
- package/dist/{switch-DC85Os9r.js → switch-BAS-GXJV.js} +6 -6
- package/dist/switch-BAS-GXJV.js.map +1 -0
- package/dist/{textarea-BJCl_aH2.js → textarea-Btdu41rY.js} +4 -4
- package/dist/textarea-Btdu41rY.js.map +1 -0
- package/dist/toast-QxCZG0Oy.js +614 -0
- package/dist/toast-QxCZG0Oy.js.map +1 -0
- package/dist/tokens.css +466 -101
- package/dist/{use-theme-CONuDdW3.js → use-theme-D_THp_K2.js} +87 -66
- package/dist/use-theme-D_THp_K2.js.map +1 -0
- package/dist/utils/gesture.d.ts.map +1 -1
- package/dist/utils/hooks.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -2
- package/dist/utils/sanitize.d.ts +7 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/tiptap.d.ts +12 -0
- package/dist/utils/tiptap.d.ts.map +1 -0
- package/dist/utils/types.d.ts.map +1 -1
- package/package.json +80 -14
- package/dist/avatar-l3SaMCmU.js.map +0 -1
- package/dist/badge-DTJq6AXr.js.map +0 -1
- package/dist/button-avu-rQU4.js.map +0 -1
- package/dist/gesture-irjS0hVM.js.map +0 -1
- package/dist/icon-button-YatlVZnz.js.map +0 -1
- package/dist/l2-primitives-Le0006ck.js.map +0 -1
- package/dist/l3-atoms-Cvu01YHO.js.map +0 -1
- package/dist/l4-molecules-CSmApFmt.js.map +0 -1
- package/dist/l5-organisms-Css3AvsZ.js +0 -4955
- package/dist/l5-organisms-Css3AvsZ.js.map +0 -1
- package/dist/l6-charts-DPMj1m0E.js.map +0 -1
- package/dist/l7-patterns-8fc4b3eE.js +0 -1969
- package/dist/l7-patterns-8fc4b3eE.js.map +0 -1
- package/dist/loading-dots-fB4X_Zh0.js +0 -24
- package/dist/loading-dots-fB4X_Zh0.js.map +0 -1
- package/dist/progress-wAKN3Czz.js.map +0 -1
- package/dist/resize-handle-ilSc7QRM.js.map +0 -1
- package/dist/scales-B23Guac-.js.map +0 -1
- package/dist/separator-Dqs23A9D.js.map +0 -1
- package/dist/spinner-N7UNjdsQ.js +0 -144
- package/dist/spinner-N7UNjdsQ.js.map +0 -1
- package/dist/stepper-DWJfv7TA.js +0 -140
- package/dist/stepper-DWJfv7TA.js.map +0 -1
- package/dist/switch-DC85Os9r.js.map +0 -1
- package/dist/textarea-BJCl_aH2.js.map +0 -1
- package/dist/toast-DN5xANLM.js +0 -442
- package/dist/toast-DN5xANLM.js.map +0 -1
- package/dist/use-theme-CONuDdW3.js.map +0 -1
package/dist/toast-DN5xANLM.js
DELETED
|
@@ -1,442 +0,0 @@
|
|
|
1
|
-
import { r as e, t } from "./glass-CQTlX7IO.js";
|
|
2
|
-
import { r as n } from "./motion-DUPegem-.js";
|
|
3
|
-
import { forwardRef as r, useCallback as i, useState as a } from "react";
|
|
4
|
-
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
5
|
-
//#region src/l4-molecules/audit-entry.tsx
|
|
6
|
-
var c = {
|
|
7
|
-
default: "text-fg",
|
|
8
|
-
success: "text-success",
|
|
9
|
-
warning: "text-warning",
|
|
10
|
-
danger: "text-danger"
|
|
11
|
-
}, l = r(function({ action: t, className: n, target: r, timestamp: i, user: a, variant: l = "default", ...u }, d) {
|
|
12
|
-
return /* @__PURE__ */ s("div", {
|
|
13
|
-
className: e("flex items-center justify-between gds-gap gds-text", n),
|
|
14
|
-
"data-component": "audit-entry",
|
|
15
|
-
ref: d,
|
|
16
|
-
...u,
|
|
17
|
-
children: [/* @__PURE__ */ o("span", {
|
|
18
|
-
className: "shrink-0 text-xs text-fg-muted",
|
|
19
|
-
children: i
|
|
20
|
-
}), /* @__PURE__ */ s("span", {
|
|
21
|
-
className: "flex-1 truncate",
|
|
22
|
-
children: [
|
|
23
|
-
/* @__PURE__ */ o("span", {
|
|
24
|
-
className: "font-medium text-fg",
|
|
25
|
-
children: a
|
|
26
|
-
}),
|
|
27
|
-
" ",
|
|
28
|
-
/* @__PURE__ */ o("span", {
|
|
29
|
-
className: c[l],
|
|
30
|
-
children: t
|
|
31
|
-
}),
|
|
32
|
-
r !== void 0 && /* @__PURE__ */ s("span", {
|
|
33
|
-
className: "text-fg-muted",
|
|
34
|
-
children: [" ", r]
|
|
35
|
-
})
|
|
36
|
-
]
|
|
37
|
-
})]
|
|
38
|
-
});
|
|
39
|
-
}), u = /* @__PURE__ */ o("svg", {
|
|
40
|
-
width: "14",
|
|
41
|
-
height: "14",
|
|
42
|
-
viewBox: "0 0 14 14",
|
|
43
|
-
fill: "none",
|
|
44
|
-
stroke: "currentColor",
|
|
45
|
-
strokeWidth: "2",
|
|
46
|
-
strokeLinecap: "round",
|
|
47
|
-
strokeLinejoin: "round",
|
|
48
|
-
children: /* @__PURE__ */ o("path", { d: "M2.5 7.5l3 3 6-6.5" })
|
|
49
|
-
}), d = /* @__PURE__ */ o("svg", {
|
|
50
|
-
width: "14",
|
|
51
|
-
height: "14",
|
|
52
|
-
viewBox: "0 0 14 14",
|
|
53
|
-
fill: "none",
|
|
54
|
-
stroke: "currentColor",
|
|
55
|
-
strokeWidth: "2",
|
|
56
|
-
strokeLinecap: "round",
|
|
57
|
-
children: /* @__PURE__ */ o("path", { d: "M3 3l8 8M11 3l-8 8" })
|
|
58
|
-
}), f = /* @__PURE__ */ o("svg", {
|
|
59
|
-
width: "12",
|
|
60
|
-
height: "12",
|
|
61
|
-
viewBox: "0 0 12 12",
|
|
62
|
-
fill: "none",
|
|
63
|
-
stroke: "currentColor",
|
|
64
|
-
strokeWidth: "1.5",
|
|
65
|
-
strokeLinecap: "round",
|
|
66
|
-
strokeLinejoin: "round",
|
|
67
|
-
children: /* @__PURE__ */ o("path", { d: "M7 2l3 3-7 7H0V9z" })
|
|
68
|
-
}), p = r(function({ value: t, onSave: r, onCancel: c, validate: l, placeholder: p = "Click to edit", disabled: m, className: h }, g) {
|
|
69
|
-
let [_, v] = a(!1), [y, b] = a(t), [x, S] = a(null), C = i(() => {
|
|
70
|
-
m !== !0 && (b(t), S(null), v(!0));
|
|
71
|
-
}, [m, t]), w = i(() => {
|
|
72
|
-
if (l !== void 0) {
|
|
73
|
-
let e = l(y);
|
|
74
|
-
if (e !== null) {
|
|
75
|
-
S(e);
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
v(!1), S(null), r(y);
|
|
80
|
-
}, [
|
|
81
|
-
y,
|
|
82
|
-
r,
|
|
83
|
-
l
|
|
84
|
-
]), T = i(() => {
|
|
85
|
-
v(!1), b(t), S(null), c !== void 0 && c();
|
|
86
|
-
}, [c, t]), E = i((e) => {
|
|
87
|
-
e.key === "Enter" && w(), e.key === "Escape" && T();
|
|
88
|
-
}, [w, T]);
|
|
89
|
-
if (_) return /* @__PURE__ */ s("div", {
|
|
90
|
-
ref: g,
|
|
91
|
-
className: e("inline-flex flex-col", h),
|
|
92
|
-
"data-component": "inline-edit",
|
|
93
|
-
"data-state": "editing",
|
|
94
|
-
children: [/* @__PURE__ */ s("div", {
|
|
95
|
-
className: "flex items-center gap-1",
|
|
96
|
-
children: [
|
|
97
|
-
/* @__PURE__ */ o("input", {
|
|
98
|
-
autoFocus: !0,
|
|
99
|
-
className: e("bg-transparent gds-text-body text-fg outline-none border-b border-accent/50 px-0.5", x !== null && "border-danger/50", n),
|
|
100
|
-
onChange: (e) => {
|
|
101
|
-
b(e.target.value), S(null);
|
|
102
|
-
},
|
|
103
|
-
onKeyDown: E,
|
|
104
|
-
type: "text",
|
|
105
|
-
value: y
|
|
106
|
-
}),
|
|
107
|
-
/* @__PURE__ */ o("button", {
|
|
108
|
-
type: "button",
|
|
109
|
-
onClick: w,
|
|
110
|
-
className: e("shrink-0 p-0.5 text-success hover:text-success/80", n),
|
|
111
|
-
"aria-label": "Save",
|
|
112
|
-
children: u
|
|
113
|
-
}),
|
|
114
|
-
/* @__PURE__ */ o("button", {
|
|
115
|
-
type: "button",
|
|
116
|
-
onClick: T,
|
|
117
|
-
className: e("shrink-0 p-0.5 text-fg-muted hover:text-fg", n),
|
|
118
|
-
"aria-label": "Cancel",
|
|
119
|
-
children: d
|
|
120
|
-
})
|
|
121
|
-
]
|
|
122
|
-
}), x !== null && /* @__PURE__ */ o("span", {
|
|
123
|
-
className: "mt-0.5 text-[10px] text-danger",
|
|
124
|
-
children: x
|
|
125
|
-
})]
|
|
126
|
-
});
|
|
127
|
-
let D = t === "";
|
|
128
|
-
return /* @__PURE__ */ s("div", {
|
|
129
|
-
ref: g,
|
|
130
|
-
className: e("group inline-flex cursor-pointer items-center gap-1", m === !0 && "pointer-events-none opacity-50", h),
|
|
131
|
-
"data-component": "inline-edit",
|
|
132
|
-
"data-state": "display",
|
|
133
|
-
onClick: C,
|
|
134
|
-
onKeyDown: (e) => {
|
|
135
|
-
(e.key === "Enter" || e.key === " ") && C();
|
|
136
|
-
},
|
|
137
|
-
role: "button",
|
|
138
|
-
tabIndex: m === !0 ? -1 : 0,
|
|
139
|
-
children: [/* @__PURE__ */ o("span", {
|
|
140
|
-
className: e("gds-text-body", D ? "text-fg-muted" : "text-fg", n),
|
|
141
|
-
children: D ? p : t
|
|
142
|
-
}), /* @__PURE__ */ o("span", {
|
|
143
|
-
className: "text-fg-muted/0 transition-colors group-hover:text-fg-muted/60",
|
|
144
|
-
children: f
|
|
145
|
-
})]
|
|
146
|
-
});
|
|
147
|
-
}), m = r(function({ icon: t, title: n, description: r, trailing: i, onClick: a, active: c, disabled: l, className: u }, d) {
|
|
148
|
-
let f = a !== void 0 && l !== !0;
|
|
149
|
-
return /* @__PURE__ */ s("div", {
|
|
150
|
-
ref: d,
|
|
151
|
-
role: f ? "button" : void 0,
|
|
152
|
-
tabIndex: f ? 0 : void 0,
|
|
153
|
-
onClick: f ? a : void 0,
|
|
154
|
-
onKeyDown: f ? (e) => {
|
|
155
|
-
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), a());
|
|
156
|
-
} : void 0,
|
|
157
|
-
className: e("flex items-center gap-3 gds-pad-x gds-pad-y-sm gds-text-body select-none", f && "cursor-pointer hover:bg-bg-tertiary", c === !0 && "border-l-2 border-l-accent bg-accent/5", l === !0 && "pointer-events-none opacity-50", u),
|
|
158
|
-
"data-component": "list-item",
|
|
159
|
-
"data-state": c === !0 ? "active" : void 0,
|
|
160
|
-
children: [
|
|
161
|
-
t !== void 0 && /* @__PURE__ */ o("span", {
|
|
162
|
-
className: "shrink-0 text-fg-muted",
|
|
163
|
-
children: t
|
|
164
|
-
}),
|
|
165
|
-
/* @__PURE__ */ s("div", {
|
|
166
|
-
className: "min-w-0 flex-1",
|
|
167
|
-
children: [/* @__PURE__ */ o("div", {
|
|
168
|
-
className: "font-medium text-fg",
|
|
169
|
-
children: n
|
|
170
|
-
}), r !== void 0 && /* @__PURE__ */ o("div", {
|
|
171
|
-
className: "mt-0.5 text-fg-muted gds-text-caption",
|
|
172
|
-
children: r
|
|
173
|
-
})]
|
|
174
|
-
}),
|
|
175
|
-
i !== void 0 && /* @__PURE__ */ o("span", {
|
|
176
|
-
className: "shrink-0",
|
|
177
|
-
children: i
|
|
178
|
-
})
|
|
179
|
-
]
|
|
180
|
-
});
|
|
181
|
-
}), h = {
|
|
182
|
-
info: "border-l-accent",
|
|
183
|
-
success: "border-l-success",
|
|
184
|
-
warning: "border-l-warning",
|
|
185
|
-
danger: "border-l-danger"
|
|
186
|
-
}, g = {
|
|
187
|
-
info: "bg-accent/5",
|
|
188
|
-
success: "bg-success/5",
|
|
189
|
-
warning: "bg-warning/5",
|
|
190
|
-
danger: "bg-danger/5"
|
|
191
|
-
}, _ = {
|
|
192
|
-
info: "text-accent",
|
|
193
|
-
success: "text-success",
|
|
194
|
-
warning: "text-warning",
|
|
195
|
-
danger: "text-danger"
|
|
196
|
-
}, v = {
|
|
197
|
-
info: /* @__PURE__ */ s("svg", {
|
|
198
|
-
width: "16",
|
|
199
|
-
height: "16",
|
|
200
|
-
viewBox: "0 0 16 16",
|
|
201
|
-
fill: "none",
|
|
202
|
-
stroke: "currentColor",
|
|
203
|
-
strokeWidth: "1.5",
|
|
204
|
-
strokeLinecap: "round",
|
|
205
|
-
children: [/* @__PURE__ */ o("circle", {
|
|
206
|
-
cx: "8",
|
|
207
|
-
cy: "8",
|
|
208
|
-
r: "6.5"
|
|
209
|
-
}), /* @__PURE__ */ o("path", { d: "M8 5.5h.01M8 7.5v3" })]
|
|
210
|
-
}),
|
|
211
|
-
success: /* @__PURE__ */ s("svg", {
|
|
212
|
-
width: "16",
|
|
213
|
-
height: "16",
|
|
214
|
-
viewBox: "0 0 16 16",
|
|
215
|
-
fill: "none",
|
|
216
|
-
stroke: "currentColor",
|
|
217
|
-
strokeWidth: "1.5",
|
|
218
|
-
strokeLinecap: "round",
|
|
219
|
-
strokeLinejoin: "round",
|
|
220
|
-
children: [/* @__PURE__ */ o("circle", {
|
|
221
|
-
cx: "8",
|
|
222
|
-
cy: "8",
|
|
223
|
-
r: "6.5"
|
|
224
|
-
}), /* @__PURE__ */ o("path", { d: "M5.5 8l2 2 3-3.5" })]
|
|
225
|
-
}),
|
|
226
|
-
warning: /* @__PURE__ */ s("svg", {
|
|
227
|
-
width: "16",
|
|
228
|
-
height: "16",
|
|
229
|
-
viewBox: "0 0 16 16",
|
|
230
|
-
fill: "none",
|
|
231
|
-
stroke: "currentColor",
|
|
232
|
-
strokeWidth: "1.5",
|
|
233
|
-
strokeLinecap: "round",
|
|
234
|
-
children: [/* @__PURE__ */ o("path", { d: "M7.13 2.5l-5.5 10h11l-5.5-10z" }), /* @__PURE__ */ o("path", { d: "M7.63 6.5v2.5M7.63 11h.01" })]
|
|
235
|
-
}),
|
|
236
|
-
danger: /* @__PURE__ */ s("svg", {
|
|
237
|
-
width: "16",
|
|
238
|
-
height: "16",
|
|
239
|
-
viewBox: "0 0 16 16",
|
|
240
|
-
fill: "none",
|
|
241
|
-
stroke: "currentColor",
|
|
242
|
-
strokeWidth: "1.5",
|
|
243
|
-
strokeLinecap: "round",
|
|
244
|
-
children: [/* @__PURE__ */ o("circle", {
|
|
245
|
-
cx: "8",
|
|
246
|
-
cy: "8",
|
|
247
|
-
r: "6.5"
|
|
248
|
-
}), /* @__PURE__ */ o("path", { d: "M5.5 5.5l5 5M10.5 5.5l-5 5" })]
|
|
249
|
-
})
|
|
250
|
-
}, y = r(function({ title: n, description: r, variant: i = "info", action: a, onClose: c, glass: l, className: u, ...d }, f) {
|
|
251
|
-
let p = i ?? "info";
|
|
252
|
-
return /* @__PURE__ */ s("div", {
|
|
253
|
-
ref: f,
|
|
254
|
-
className: e("flex w-full items-start gds-gap gds-radius-popover border border-border border-l-2 gds-pad-x gds-pad-y", h[p], g[p], l === !0 && t(l), u),
|
|
255
|
-
"data-component": "notification",
|
|
256
|
-
"data-variant": p,
|
|
257
|
-
role: "alert",
|
|
258
|
-
...d,
|
|
259
|
-
children: [
|
|
260
|
-
/* @__PURE__ */ o("span", {
|
|
261
|
-
className: e("mt-px shrink-0", _[p]),
|
|
262
|
-
children: v[p]
|
|
263
|
-
}),
|
|
264
|
-
/* @__PURE__ */ s("div", {
|
|
265
|
-
className: "min-w-0 flex-1",
|
|
266
|
-
children: [/* @__PURE__ */ o("p", {
|
|
267
|
-
className: "gds-text-body font-medium text-fg",
|
|
268
|
-
children: n
|
|
269
|
-
}), r !== void 0 && /* @__PURE__ */ o("p", {
|
|
270
|
-
className: "mt-0.5 gds-text-label text-fg-muted",
|
|
271
|
-
children: r
|
|
272
|
-
})]
|
|
273
|
-
}),
|
|
274
|
-
a !== void 0 && /* @__PURE__ */ o("div", {
|
|
275
|
-
className: "shrink-0",
|
|
276
|
-
children: a
|
|
277
|
-
}),
|
|
278
|
-
c !== void 0 && /* @__PURE__ */ o("button", {
|
|
279
|
-
type: "button",
|
|
280
|
-
onClick: c,
|
|
281
|
-
className: e("shrink-0 gds-radius-button p-0.5 text-fg-muted opacity-60 hover:opacity-100", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-1 focus-visible:ring-offset-bg"),
|
|
282
|
-
"aria-label": "Dismiss",
|
|
283
|
-
children: /* @__PURE__ */ o("svg", {
|
|
284
|
-
width: "12",
|
|
285
|
-
height: "12",
|
|
286
|
-
viewBox: "0 0 12 12",
|
|
287
|
-
fill: "none",
|
|
288
|
-
stroke: "currentColor",
|
|
289
|
-
strokeWidth: "2",
|
|
290
|
-
strokeLinecap: "round",
|
|
291
|
-
children: /* @__PURE__ */ o("path", { d: "M2 2l8 8M10 2l-8 8" })
|
|
292
|
-
})
|
|
293
|
-
})
|
|
294
|
-
]
|
|
295
|
-
});
|
|
296
|
-
}), b = {
|
|
297
|
-
low: "bg-success/15 text-success",
|
|
298
|
-
medium: "bg-warning/15 text-warning",
|
|
299
|
-
high: "bg-danger/15 text-danger",
|
|
300
|
-
critical: "bg-danger text-white"
|
|
301
|
-
}, x = r(function({ className: t, completed: n = !1, dueDate: r, onToggle: i, priority: a, title: c, ...l }, u) {
|
|
302
|
-
return /* @__PURE__ */ s("div", {
|
|
303
|
-
className: e("flex items-center gap-2 rounded px-2 py-1.5 text-sm", t),
|
|
304
|
-
"data-component": "task-item",
|
|
305
|
-
"data-completed": n,
|
|
306
|
-
ref: u,
|
|
307
|
-
...l,
|
|
308
|
-
children: [
|
|
309
|
-
/* @__PURE__ */ o("input", {
|
|
310
|
-
checked: n,
|
|
311
|
-
className: "shrink-0 accent-accent",
|
|
312
|
-
onChange: i,
|
|
313
|
-
type: "checkbox"
|
|
314
|
-
}),
|
|
315
|
-
/* @__PURE__ */ o("span", {
|
|
316
|
-
className: e("flex-1 truncate", n && "line-through text-fg-muted"),
|
|
317
|
-
children: c
|
|
318
|
-
}),
|
|
319
|
-
a !== void 0 && /* @__PURE__ */ o("span", {
|
|
320
|
-
className: e("rounded px-1.5 py-0.5 text-[10px] font-medium uppercase", b[a]),
|
|
321
|
-
children: a
|
|
322
|
-
}),
|
|
323
|
-
r !== void 0 && /* @__PURE__ */ o("span", {
|
|
324
|
-
className: "shrink-0 text-xs text-fg-muted",
|
|
325
|
-
children: r
|
|
326
|
-
})
|
|
327
|
-
]
|
|
328
|
-
});
|
|
329
|
-
}), S = {
|
|
330
|
-
default: "border-l-accent",
|
|
331
|
-
success: "border-l-success",
|
|
332
|
-
warning: "border-l-warning",
|
|
333
|
-
danger: "border-l-danger"
|
|
334
|
-
}, C = {
|
|
335
|
-
default: /* @__PURE__ */ s("svg", {
|
|
336
|
-
width: "16",
|
|
337
|
-
height: "16",
|
|
338
|
-
viewBox: "0 0 16 16",
|
|
339
|
-
fill: "none",
|
|
340
|
-
stroke: "currentColor",
|
|
341
|
-
strokeWidth: "1.5",
|
|
342
|
-
strokeLinecap: "round",
|
|
343
|
-
children: [/* @__PURE__ */ o("circle", {
|
|
344
|
-
cx: "8",
|
|
345
|
-
cy: "8",
|
|
346
|
-
r: "6.5"
|
|
347
|
-
}), /* @__PURE__ */ o("path", { d: "M8 5.5h.01M8 7.5v3" })]
|
|
348
|
-
}),
|
|
349
|
-
success: /* @__PURE__ */ s("svg", {
|
|
350
|
-
width: "16",
|
|
351
|
-
height: "16",
|
|
352
|
-
viewBox: "0 0 16 16",
|
|
353
|
-
fill: "none",
|
|
354
|
-
stroke: "currentColor",
|
|
355
|
-
strokeWidth: "1.5",
|
|
356
|
-
strokeLinecap: "round",
|
|
357
|
-
strokeLinejoin: "round",
|
|
358
|
-
children: [/* @__PURE__ */ o("circle", {
|
|
359
|
-
cx: "8",
|
|
360
|
-
cy: "8",
|
|
361
|
-
r: "6.5"
|
|
362
|
-
}), /* @__PURE__ */ o("path", { d: "M5.5 8l2 2 3-3.5" })]
|
|
363
|
-
}),
|
|
364
|
-
warning: /* @__PURE__ */ s("svg", {
|
|
365
|
-
width: "16",
|
|
366
|
-
height: "16",
|
|
367
|
-
viewBox: "0 0 16 16",
|
|
368
|
-
fill: "none",
|
|
369
|
-
stroke: "currentColor",
|
|
370
|
-
strokeWidth: "1.5",
|
|
371
|
-
strokeLinecap: "round",
|
|
372
|
-
children: [/* @__PURE__ */ o("path", { d: "M7.13 2.5l-5.5 10h11l-5.5-10z" }), /* @__PURE__ */ o("path", { d: "M7.63 6.5v2.5M7.63 11h.01" })]
|
|
373
|
-
}),
|
|
374
|
-
danger: /* @__PURE__ */ s("svg", {
|
|
375
|
-
width: "16",
|
|
376
|
-
height: "16",
|
|
377
|
-
viewBox: "0 0 16 16",
|
|
378
|
-
fill: "none",
|
|
379
|
-
stroke: "currentColor",
|
|
380
|
-
strokeWidth: "1.5",
|
|
381
|
-
strokeLinecap: "round",
|
|
382
|
-
children: [/* @__PURE__ */ o("circle", {
|
|
383
|
-
cx: "8",
|
|
384
|
-
cy: "8",
|
|
385
|
-
r: "6.5"
|
|
386
|
-
}), /* @__PURE__ */ o("path", { d: "M5.5 5.5l5 5M10.5 5.5l-5 5" })]
|
|
387
|
-
})
|
|
388
|
-
}, w = {
|
|
389
|
-
default: "text-accent",
|
|
390
|
-
success: "text-success",
|
|
391
|
-
warning: "text-warning",
|
|
392
|
-
danger: "text-danger"
|
|
393
|
-
}, T = r(function({ title: t, description: n, variant: r = "default", onClose: i, action: a, className: c, ...l }, u) {
|
|
394
|
-
return /* @__PURE__ */ s("div", {
|
|
395
|
-
ref: u,
|
|
396
|
-
className: e("flex items-start gds-gap gds-radius-popover border border-border border-l-4 bg-surface gds-pad-x gds-pad-y gds-shadow-lg", S[r], c),
|
|
397
|
-
"data-component": "toast",
|
|
398
|
-
"data-variant": r,
|
|
399
|
-
role: "status",
|
|
400
|
-
...l,
|
|
401
|
-
children: [
|
|
402
|
-
/* @__PURE__ */ o("span", {
|
|
403
|
-
className: e("mt-px shrink-0", w[r]),
|
|
404
|
-
children: C[r]
|
|
405
|
-
}),
|
|
406
|
-
/* @__PURE__ */ s("div", {
|
|
407
|
-
className: "min-w-0 flex-1",
|
|
408
|
-
children: [/* @__PURE__ */ o("p", {
|
|
409
|
-
className: "gds-text-body font-medium text-fg",
|
|
410
|
-
children: t
|
|
411
|
-
}), n !== void 0 && /* @__PURE__ */ o("p", {
|
|
412
|
-
className: "mt-0.5 gds-text-label text-fg-muted",
|
|
413
|
-
children: n
|
|
414
|
-
})]
|
|
415
|
-
}),
|
|
416
|
-
a !== void 0 && /* @__PURE__ */ o("div", {
|
|
417
|
-
className: "shrink-0",
|
|
418
|
-
children: a
|
|
419
|
-
}),
|
|
420
|
-
i !== void 0 && /* @__PURE__ */ o("button", {
|
|
421
|
-
type: "button",
|
|
422
|
-
onClick: i,
|
|
423
|
-
className: e("shrink-0 gds-radius-button p-0.5 text-fg-muted opacity-60 hover:opacity-100", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-1 focus-visible:ring-offset-bg"),
|
|
424
|
-
"aria-label": "Dismiss",
|
|
425
|
-
children: /* @__PURE__ */ o("svg", {
|
|
426
|
-
width: "12",
|
|
427
|
-
height: "12",
|
|
428
|
-
viewBox: "0 0 12 12",
|
|
429
|
-
fill: "none",
|
|
430
|
-
stroke: "currentColor",
|
|
431
|
-
strokeWidth: "2",
|
|
432
|
-
strokeLinecap: "round",
|
|
433
|
-
children: /* @__PURE__ */ o("path", { d: "M2 2l8 8M10 2l-8 8" })
|
|
434
|
-
})
|
|
435
|
-
})
|
|
436
|
-
]
|
|
437
|
-
});
|
|
438
|
-
});
|
|
439
|
-
//#endregion
|
|
440
|
-
export { p as a, m as i, x as n, l as o, y as r, T as t };
|
|
441
|
-
|
|
442
|
-
//# sourceMappingURL=toast-DN5xANLM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toast-DN5xANLM.js","names":[],"sources":["../src/l4-molecules/audit-entry.tsx","../src/l4-molecules/inline-edit.tsx","../src/l4-molecules/list-item.tsx","../src/l4-molecules/notification.tsx","../src/l4-molecules/task-item.tsx","../src/l4-molecules/toast.tsx"],"sourcesContent":["import { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\ntype AuditEntryVariant = 'danger' | 'default' | 'success' | 'warning'\n\ntype AuditEntryProps = React.HTMLAttributes<HTMLDivElement> & {\n action: string\n target?: string\n timestamp: string\n user: string\n variant?: AuditEntryVariant\n}\n\nconst variantCls: Record<AuditEntryVariant, string> = {\n default: 'text-fg',\n success: 'text-success',\n warning: 'text-warning',\n danger: 'text-danger',\n}\n\nexport const AuditEntry = forwardRef<HTMLDivElement, AuditEntryProps>(\n function AuditEntry({ action, className, target, timestamp, user, variant = 'default', ...props }, ref) {\n return (\n <div\n className={cx('flex items-center justify-between gds-gap gds-text', className)}\n data-component=\"audit-entry\"\n ref={ref}\n {...props}\n >\n <span className=\"shrink-0 text-xs text-fg-muted\">{timestamp}</span>\n <span className=\"flex-1 truncate\">\n <span className=\"font-medium text-fg\">{user}</span>\n {' '}\n <span className={variantCls[variant]}>{action}</span>\n {target !== undefined && <span className=\"text-fg-muted\"> {target}</span>}\n </span>\n </div>\n )\n },\n)\n\nexport type { AuditEntryProps, AuditEntryVariant }\n","// inline-edit — editable text with confirm/cancel buttons and validation\nimport { forwardRef, useCallback, useState } from 'react'\n\nimport { focusCls } from '../utils/a11y'\nimport { cx } from '../utils/cx'\n\nexport type InlineEditProps = {\n value: string\n onSave: (value: string) => void\n onCancel?: () => void\n validate?: (value: string) => string | null\n placeholder?: string\n disabled?: boolean\n className?: string\n}\n\nconst checkIcon = (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M2.5 7.5l3 3 6-6.5\" />\n </svg>\n)\n\nconst cancelIcon = (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <path d=\"M3 3l8 8M11 3l-8 8\" />\n </svg>\n)\n\nconst editIcon = (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M7 2l3 3-7 7H0V9z\" />\n </svg>\n)\n\nexport const InlineEdit = forwardRef<HTMLDivElement, InlineEditProps>(\n function InlineEdit({ value, onSave, onCancel, validate, placeholder = 'Click to edit', disabled, className }, ref) {\n const [editing, setEditing] = useState(false)\n const [editValue, setEditValue] = useState(value)\n const [error, setError] = useState<string | null>(null)\n\n const startEditing = useCallback(() => {\n if (disabled === true) return\n setEditValue(value)\n setError(null)\n setEditing(true)\n }, [disabled, value])\n\n const save = useCallback(() => {\n if (validate !== undefined) {\n const err = validate(editValue)\n if (err !== null) {\n setError(err)\n return\n }\n }\n setEditing(false)\n setError(null)\n onSave(editValue)\n }, [editValue, onSave, validate])\n\n const cancel = useCallback(() => {\n setEditing(false)\n setEditValue(value)\n setError(null)\n if (onCancel !== undefined) {\n onCancel()\n }\n }, [onCancel, value])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n save()\n }\n if (e.key === 'Escape') {\n cancel()\n }\n },\n [save, cancel],\n )\n\n if (editing) {\n return (\n <div ref={ref} className={cx('inline-flex flex-col', className)} data-component=\"inline-edit\" data-state=\"editing\">\n <div className=\"flex items-center gap-1\">\n <input\n autoFocus\n className={cx(\n 'bg-transparent gds-text-body text-fg outline-none border-b border-accent/50 px-0.5',\n error !== null && 'border-danger/50',\n focusCls,\n )}\n onChange={(e) => { setEditValue(e.target.value); setError(null) }}\n onKeyDown={handleKeyDown}\n type=\"text\"\n value={editValue}\n />\n <button type=\"button\" onClick={save} className={cx('shrink-0 p-0.5 text-success hover:text-success/80', focusCls)} aria-label=\"Save\">\n {checkIcon}\n </button>\n <button type=\"button\" onClick={cancel} className={cx('shrink-0 p-0.5 text-fg-muted hover:text-fg', focusCls)} aria-label=\"Cancel\">\n {cancelIcon}\n </button>\n </div>\n {error !== null && <span className=\"mt-0.5 text-[10px] text-danger\">{error}</span>}\n </div>\n )\n }\n\n const isEmpty = value === ''\n\n return (\n <div\n ref={ref}\n className={cx('group inline-flex cursor-pointer items-center gap-1', disabled === true && 'pointer-events-none opacity-50', className)}\n data-component=\"inline-edit\"\n data-state=\"display\"\n onClick={startEditing}\n onKeyDown={(e) => { if (e.key === 'Enter' || e.key === ' ') startEditing() }}\n role=\"button\"\n tabIndex={disabled === true ? -1 : 0}\n >\n <span className={cx('gds-text-body', isEmpty ? 'text-fg-muted' : 'text-fg', focusCls)}>\n {isEmpty ? placeholder : value}\n </span>\n <span className=\"text-fg-muted/0 transition-colors group-hover:text-fg-muted/60\">{editIcon}</span>\n </div>\n )\n },\n)\n","// list-item — structured list row with icon, title, description, and trailing element\nimport type { ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\nexport type ListItemProps = {\n icon?: ReactNode\n title: string\n description?: string\n trailing?: ReactNode\n onClick?: () => void\n active?: boolean\n disabled?: boolean\n className?: string\n}\n\nexport const ListItem = forwardRef<HTMLDivElement, ListItemProps>(\n function ListItem({ icon, title, description, trailing, onClick, active, disabled, className }, ref) {\n const isClickable = onClick !== undefined && disabled !== true\n\n return (\n <div\n ref={ref}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onClick={isClickable ? onClick : undefined}\n onKeyDown={isClickable ? (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick()\n }\n } : undefined}\n className={cx(\n 'flex items-center gap-3 gds-pad-x gds-pad-y-sm gds-text-body select-none',\n isClickable && 'cursor-pointer hover:bg-bg-tertiary',\n active === true && 'border-l-2 border-l-accent bg-accent/5',\n disabled === true && 'pointer-events-none opacity-50',\n className,\n )}\n data-component=\"list-item\"\n data-state={active === true ? 'active' : undefined}\n >\n {icon !== undefined && <span className=\"shrink-0 text-fg-muted\">{icon}</span>}\n <div className=\"min-w-0 flex-1\">\n <div className=\"font-medium text-fg\">{title}</div>\n {description !== undefined && (\n <div className=\"mt-0.5 text-fg-muted gds-text-caption\">{description}</div>\n )}\n </div>\n {trailing !== undefined && <span className=\"shrink-0\">{trailing}</span>}\n </div>\n )\n },\n)\n","// notification — persistent banner with variant, title, description, and action\nimport type { ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nimport { focusCls } from '../utils/a11y'\nimport { cx } from '../utils/cx'\nimport { glassClass } from '../utils/glass'\n\ntype NotificationVariant = 'danger' | 'info' | 'success' | 'warning'\n\nconst borderColorMap: Record<NotificationVariant, string> = {\n info: 'border-l-accent',\n success: 'border-l-success',\n warning: 'border-l-warning',\n danger: 'border-l-danger',\n}\n\nconst bgColorMap: Record<NotificationVariant, string> = {\n info: 'bg-accent/5',\n success: 'bg-success/5',\n warning: 'bg-warning/5',\n danger: 'bg-danger/5',\n}\n\nconst iconColorMap: Record<NotificationVariant, string> = {\n info: 'text-accent',\n success: 'text-success',\n warning: 'text-warning',\n danger: 'text-danger',\n}\n\nconst iconMap: Record<NotificationVariant, ReactNode> = {\n info: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\">\n <circle cx=\"8\" cy=\"8\" r=\"6.5\" /><path d=\"M8 5.5h.01M8 7.5v3\" />\n </svg>\n ),\n success: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"8\" cy=\"8\" r=\"6.5\" /><path d=\"M5.5 8l2 2 3-3.5\" />\n </svg>\n ),\n warning: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\">\n <path d=\"M7.13 2.5l-5.5 10h11l-5.5-10z\" /><path d=\"M7.63 6.5v2.5M7.63 11h.01\" />\n </svg>\n ),\n danger: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\">\n <circle cx=\"8\" cy=\"8\" r=\"6.5\" /><path d=\"M5.5 5.5l5 5M10.5 5.5l-5 5\" />\n </svg>\n ),\n}\n\ntype NotificationProps = React.HTMLAttributes<HTMLDivElement> & {\n title: string\n description?: string\n variant?: NotificationVariant\n action?: ReactNode\n onClose?: () => void\n glass?: boolean\n}\n\nconst Notification = forwardRef<HTMLDivElement, NotificationProps>(\n function Notification({ title, description, variant = 'info', action, onClose, glass, className, ...props }, ref) {\n const v = variant ?? 'info'\n\n return (\n <div\n ref={ref}\n className={cx(\n 'flex w-full items-start gds-gap gds-radius-popover border border-border border-l-2 gds-pad-x gds-pad-y',\n borderColorMap[v],\n bgColorMap[v],\n glass === true && glassClass(glass),\n className,\n )}\n data-component=\"notification\"\n data-variant={v}\n role=\"alert\"\n {...props}\n >\n <span className={cx('mt-px shrink-0', iconColorMap[v])}>{iconMap[v]}</span>\n <div className=\"min-w-0 flex-1\">\n <p className=\"gds-text-body font-medium text-fg\">{title}</p>\n {description !== undefined && <p className=\"mt-0.5 gds-text-label text-fg-muted\">{description}</p>}\n </div>\n {action !== undefined && <div className=\"shrink-0\">{action}</div>}\n {onClose !== undefined && (\n <button\n type=\"button\"\n onClick={onClose}\n className={cx('shrink-0 gds-radius-button p-0.5 text-fg-muted opacity-60 hover:opacity-100', focusCls)}\n aria-label=\"Dismiss\"\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <path d=\"M2 2l8 8M10 2l-8 8\" />\n </svg>\n </button>\n )}\n </div>\n )\n },\n)\n\nexport { Notification }\nexport type { NotificationProps, NotificationVariant }\n","import { forwardRef } from 'react'\n\nimport { cx } from '../utils/cx'\n\ntype TaskItemPriority = 'low' | 'medium' | 'high' | 'critical'\n\ntype TaskItemProps = React.HTMLAttributes<HTMLDivElement> & {\n completed?: boolean\n dueDate?: string\n onToggle?: () => void\n priority?: TaskItemPriority\n title: string\n}\n\nconst priorityCls: Record<TaskItemPriority, string> = {\n low: 'bg-success/15 text-success',\n medium: 'bg-warning/15 text-warning',\n high: 'bg-danger/15 text-danger',\n critical: 'bg-danger text-white',\n}\n\nconst TaskItem = forwardRef<HTMLDivElement, TaskItemProps>(\n function TaskItem({ className, completed = false, dueDate, onToggle, priority, title, ...props }, ref) {\n return (\n <div\n className={cx('flex items-center gap-2 rounded px-2 py-1.5 text-sm', className)}\n data-component=\"task-item\"\n data-completed={completed}\n ref={ref}\n {...props}\n >\n <input\n checked={completed}\n className=\"shrink-0 accent-accent\"\n onChange={onToggle}\n type=\"checkbox\"\n />\n <span className={cx('flex-1 truncate', completed && 'line-through text-fg-muted')}>{title}</span>\n {priority !== undefined && (\n <span className={cx('rounded px-1.5 py-0.5 text-[10px] font-medium uppercase', priorityCls[priority])}>{priority}</span>\n )}\n {dueDate !== undefined && (\n <span className=\"shrink-0 text-xs text-fg-muted\">{dueDate}</span>\n )}\n </div>\n )\n },\n)\n\nexport { TaskItem }\nexport type { TaskItemPriority, TaskItemProps }\n","// toast — notification card with variant, title, description, and action\nimport type { ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nimport { focusCls } from '../utils/a11y'\nimport { cx } from '../utils/cx'\n\nexport type ToastVariant = 'danger' | 'default' | 'success' | 'warning'\n\nconst borderColorMap: Record<ToastVariant, string> = {\n default: 'border-l-accent',\n success: 'border-l-success',\n warning: 'border-l-warning',\n danger: 'border-l-danger',\n}\n\nconst iconMap: Record<ToastVariant, ReactNode> = {\n default: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\">\n <circle cx=\"8\" cy=\"8\" r=\"6.5\" /><path d=\"M8 5.5h.01M8 7.5v3\" />\n </svg>\n ),\n success: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"8\" cy=\"8\" r=\"6.5\" /><path d=\"M5.5 8l2 2 3-3.5\" />\n </svg>\n ),\n warning: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\">\n <path d=\"M7.13 2.5l-5.5 10h11l-5.5-10z\" /><path d=\"M7.63 6.5v2.5M7.63 11h.01\" />\n </svg>\n ),\n danger: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\">\n <circle cx=\"8\" cy=\"8\" r=\"6.5\" /><path d=\"M5.5 5.5l5 5M10.5 5.5l-5 5\" />\n </svg>\n ),\n}\n\nconst iconColorMap: Record<ToastVariant, string> = {\n default: 'text-accent',\n success: 'text-success',\n warning: 'text-warning',\n danger: 'text-danger',\n}\n\nexport type ToastProps = React.HTMLAttributes<HTMLDivElement> & {\n title: string\n description?: string\n variant?: ToastVariant\n onClose?: () => void\n action?: ReactNode\n}\n\nexport const Toast = forwardRef<HTMLDivElement, ToastProps>(\n function Toast({ title, description, variant = 'default', onClose, action, className, ...props }, ref) {\n return (\n <div\n ref={ref}\n className={cx(\n 'flex items-start gds-gap gds-radius-popover border border-border border-l-4 bg-surface gds-pad-x gds-pad-y gds-shadow-lg',\n borderColorMap[variant],\n className,\n )}\n data-component=\"toast\"\n data-variant={variant}\n role=\"status\"\n {...props}\n >\n <span className={cx('mt-px shrink-0', iconColorMap[variant])}>{iconMap[variant]}</span>\n <div className=\"min-w-0 flex-1\">\n <p className=\"gds-text-body font-medium text-fg\">{title}</p>\n {description !== undefined && <p className=\"mt-0.5 gds-text-label text-fg-muted\">{description}</p>}\n </div>\n {action !== undefined && <div className=\"shrink-0\">{action}</div>}\n {onClose !== undefined && (\n <button\n type=\"button\"\n onClick={onClose}\n className={cx('shrink-0 gds-radius-button p-0.5 text-fg-muted opacity-60 hover:opacity-100', focusCls)}\n aria-label=\"Dismiss\"\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\">\n <path d=\"M2 2l8 8M10 2l-8 8\" />\n </svg>\n </button>\n )}\n </div>\n )\n },\n)\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-theme-CONuDdW3.js","names":[],"sources":["../src/l1-systems/theme.ts","../src/l1-systems/use-theme.ts"],"sourcesContent":["// L1 — Theme System\n// manages color preset + 5 dimensional axes + dark/light mode\n// applies CSS variable overrides to document root\n// persists to localStorage, syncs across tabs\n\nimport { atom } from 'jotai'\n\nimport { deriveDarkPalette, deriveLightPalette, paletteToVars } from '../l0-tokens/color-derive'\nimport { fontToCssVars } from '../l0-tokens/font-system'\nimport { DEFAULT_PRIMARY } from '../l0-tokens/generate-defaults'\nimport type {\n ThemeDensity,\n ThemeElevation,\n ThemeGlass,\n ThemeMotion,\n ThemeShape,\n} from '../l0-tokens/scales'\nimport { resolveAxesToCssVars } from '../l0-tokens/scales'\n\n// color overrides — per-token overrides for advanced users\nexport type ThemeColorOverrides = {\n '--gds-accent': string\n '--gds-accent-fg': string\n '--gds-accent-hover': string\n '--gds-danger': string\n '--gds-success': string\n '--gds-warning': string\n}\n\nexport type ThemeMode = 'dark' | 'light' | 'system'\n\n// full theme state — what the user has configured\nexport type ThemeState = {\n mode: ThemeMode\n primaryColor: string // single source — everything derived from this\n presetId: string // for UI display only (\"default\", \"teal\", \"amber\"...)\n // dimensional axes — each constrained to L0 scale options\n shape: ThemeShape\n density: ThemeDensity\n elevation: ThemeElevation\n glass: ThemeGlass\n motion: ThemeMotion\n // optional per-token color overrides (advanced — overrides derivation)\n colorOverrides: Partial<ThemeColorOverrides> | null\n}\n\n// default theme — beautiful out of the box\nexport const DEFAULT_THEME: ThemeState = {\n mode: 'system',\n primaryColor: DEFAULT_PRIMARY,\n presetId: 'default',\n shape: 'default',\n density: 'default',\n elevation: 'raised',\n glass: 'full',\n motion: 'full',\n colorOverrides: null,\n}\n\n// jotai atoms — reactive theme state\nexport const themeAtom = atom<ThemeState>(DEFAULT_THEME)\n\nexport const resolvedModeAtom = atom<'dark' | 'light'>((get) => {\n const { mode } = get(themeAtom)\n if (mode !== 'system') return mode\n if (typeof window === 'undefined') return 'dark'\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n})\n\n// resolve theme state → flat CSS variable overrides\n// all colors derived from primaryColor via L0 functions — no manual color presets\nexport function resolveThemeCssVars(\n state: ThemeState,\n resolvedMode: 'dark' | 'light',\n): Record<string, string> {\n // 1. derive colors from primaryColor\n const palette = resolvedMode === 'dark'\n ? deriveDarkPalette(state.primaryColor)\n : deriveLightPalette(state.primaryColor)\n const vars: Record<string, string> = { ...paletteToVars(palette, resolvedMode) }\n\n // 2. font stacks + weights\n Object.assign(vars, fontToCssVars())\n\n // 3. dimensional axes — computed by L0 system functions\n Object.assign(vars, resolveAxesToCssVars(\n state.shape, state.density, state.elevation,\n state.glass, state.motion, resolvedMode,\n ))\n\n // 4. per-token color overrides (highest priority — advanced users)\n if (state.colorOverrides !== null) {\n for (const [key, val] of Object.entries(state.colorOverrides)) {\n if (val !== undefined) {\n vars[key] = val\n }\n }\n }\n\n return vars\n}\n\n// apply resolved vars to document\nexport function applyThemeToDocument(\n vars: Record<string, string>,\n resolvedMode: 'dark' | 'light',\n previousKeys?: string[],\n): string[] {\n const root = document.documentElement\n\n // clear previous overrides\n if (previousKeys !== undefined) {\n for (const key of previousKeys) {\n root.style.removeProperty(key)\n }\n }\n\n // set mode attribute\n const mode = root.getAttribute('data-theme-mode')\n if (mode !== resolvedMode) {\n root.setAttribute('data-theme-mode', resolvedMode)\n }\n\n // apply new overrides\n const keys = Object.keys(vars)\n for (const [key, val] of Object.entries(vars)) {\n root.style.setProperty(key, val)\n }\n\n return keys\n}\n\n// persistence keys\nconst STORAGE_KEY = 'gds-theme'\n\nexport function persistTheme(state: ThemeState): void {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(state))\n } catch {\n // storage full or unavailable\n }\n}\n\nexport function loadPersistedTheme(): ThemeState | null {\n try {\n const raw = localStorage.getItem(STORAGE_KEY)\n if (raw === null) return null\n const parsed = JSON.parse(raw) as Partial<ThemeState>\n // validate and merge with defaults to handle schema evolution\n return {\n ...DEFAULT_THEME,\n ...parsed,\n // validate primaryColor is a hex string\n primaryColor: typeof parsed.primaryColor === 'string' && /^#[0-9a-fA-F]{6}$/.test(parsed.primaryColor)\n ? parsed.primaryColor : DEFAULT_THEME.primaryColor,\n // ensure constrained values are valid\n shape: validateOption(parsed.shape, ['sharp', 'default', 'rounded'], DEFAULT_THEME.shape),\n density: validateOption(parsed.density, ['compact', 'default', 'comfortable'], DEFAULT_THEME.density),\n elevation: validateOption(parsed.elevation, ['flat', 'subtle', 'raised'], DEFAULT_THEME.elevation),\n glass: validateOption(parsed.glass, ['off', 'subtle', 'full'], DEFAULT_THEME.glass),\n motion: validateOption(parsed.motion, ['off', 'reduced', 'full'], DEFAULT_THEME.motion),\n mode: validateOption(parsed.mode, ['light', 'dark', 'system'], DEFAULT_THEME.mode),\n }\n } catch {\n return null\n }\n}\n\nfunction validateOption<T extends string>(\n value: unknown,\n options: T[],\n fallback: T,\n): T {\n if (typeof value === 'string' && options.includes(value as T)) {\n return value as T\n }\n return fallback\n}\n","// L1 — theme hooks\n// components use these to read/write theme state\n// all changes go through constrained API — no raw CSS manipulation\n\nimport { useAtom, useAtomValue } from 'jotai'\nimport { useCallback, useEffect, useRef } from 'react'\n\nimport type { ThemeDensity, ThemeElevation, ThemeGlass, ThemeMotion, ThemeShape } from '../l0-tokens/scales'\nimport type { ThemeColorOverrides, ThemeMode, ThemeState } from './theme'\nimport {\n applyThemeToDocument,\n DEFAULT_THEME,\n loadPersistedTheme,\n persistTheme,\n resolvedModeAtom,\n resolveThemeCssVars,\n themeAtom,\n} from './theme'\n\n// color presets — app registers named presets, each is just a primaryColor\ntype ThemeConfig = {\n colorPresets: Record<string, { primaryColor: string }>\n}\n\nlet themeConfig: ThemeConfig = { colorPresets: {} }\n\n// called once at app init — register named color presets\nexport function configureTheme(config: ThemeConfig): void {\n themeConfig = config\n}\n\n// read current theme state (reactive)\nexport function useTheme(): ThemeState {\n return useAtomValue(themeAtom)\n}\n\n// read resolved dark/light mode (reactive)\nexport function useResolvedMode(): 'dark' | 'light' {\n return useAtomValue(resolvedModeAtom)\n}\n\n// theme mutation hooks — each returns a setter for one axis\nexport function useSetThemeMode(): (mode: ThemeMode) => void {\n const [, setTheme] = useAtom(themeAtom)\n return useCallback((mode: ThemeMode) => {\n setTheme((prev) => ({ ...prev, mode }))\n }, [setTheme])\n}\n\nexport function useSetThemePreset(): (presetId: string) => void {\n const [, setTheme] = useAtom(themeAtom)\n return useCallback((presetId: string) => {\n const preset = themeConfig.colorPresets[presetId]\n const primaryColor = preset?.primaryColor ?? DEFAULT_THEME.primaryColor\n setTheme((prev) => ({ ...prev, presetId, primaryColor, colorOverrides: null }))\n }, [setTheme])\n}\n\nexport function useSetThemePrimaryColor(): (color: string) => void {\n const [, setTheme] = useAtom(themeAtom)\n return useCallback((primaryColor: string) => {\n setTheme((prev) => ({ ...prev, primaryColor, colorOverrides: null }))\n }, [setTheme])\n}\n\nexport function useSetThemeShape(): (shape: ThemeShape) => void {\n const [, setTheme] = useAtom(themeAtom)\n return useCallback((shape: ThemeShape) => {\n setTheme((prev) => ({ ...prev, shape }))\n }, [setTheme])\n}\n\nexport function useSetThemeDensity(): (density: ThemeDensity) => void {\n const [, setTheme] = useAtom(themeAtom)\n return useCallback((density: ThemeDensity) => {\n setTheme((prev) => ({ ...prev, density }))\n }, [setTheme])\n}\n\nexport function useSetThemeElevation(): (elevation: ThemeElevation) => void {\n const [, setTheme] = useAtom(themeAtom)\n return useCallback((elevation: ThemeElevation) => {\n setTheme((prev) => ({ ...prev, elevation }))\n }, [setTheme])\n}\n\nexport function useSetThemeGlass(): (glass: ThemeGlass) => void {\n const [, setTheme] = useAtom(themeAtom)\n return useCallback((glass: ThemeGlass) => {\n setTheme((prev) => ({ ...prev, glass }))\n }, [setTheme])\n}\n\nexport function useSetThemeMotion(): (motion: ThemeMotion) => void {\n const [, setTheme] = useAtom(themeAtom)\n return useCallback((motion: ThemeMotion) => {\n setTheme((prev) => ({ ...prev, motion }))\n }, [setTheme])\n}\n\nexport function useSetThemeColors(): (overrides: Partial<ThemeColorOverrides> | null) => void {\n const [, setTheme] = useAtom(themeAtom)\n return useCallback((colorOverrides: Partial<ThemeColorOverrides> | null) => {\n setTheme((prev) => ({ ...prev, colorOverrides }))\n }, [setTheme])\n}\n\nexport function useResetTheme(): () => void {\n const [, setTheme] = useAtom(themeAtom)\n return useCallback(() => {\n setTheme(DEFAULT_THEME)\n }, [setTheme])\n}\n\n// side-effect hook: apply theme to DOM + persist + listen to system changes\n// call this ONCE in the app root\nexport function useThemeEffect(): void {\n const theme = useAtomValue(themeAtom)\n const resolvedMode = useAtomValue(resolvedModeAtom)\n const prevKeysRef = useRef<string[]>([])\n\n // apply to DOM whenever theme changes\n useEffect(() => {\n const vars = resolveThemeCssVars(theme, resolvedMode)\n prevKeysRef.current = applyThemeToDocument(vars, resolvedMode, prevKeysRef.current)\n persistTheme(theme)\n }, [theme, resolvedMode])\n\n // listen for system theme preference changes\n useEffect(() => {\n const mq = window.matchMedia('(prefers-color-scheme: dark)')\n const handler = () => {\n // trigger re-render via resolvedModeAtom re-evaluation\n // jotai derived atoms auto-recompute, but we need to force it\n // by touching the base atom (no-op write)\n }\n mq.addEventListener('change', handler)\n return () => mq.removeEventListener('change', handler)\n }, [])\n\n // restore from localStorage on mount\n useEffect(() => {\n const persisted = loadPersistedTheme()\n if (persisted !== null) {\n // apply directly without going through atom to avoid flash\n const vars = resolveThemeCssVars(persisted, resolvedMode)\n prevKeysRef.current = applyThemeToDocument(vars, resolvedMode)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n}\n"],"mappings":"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"}
|