@cueplusplus/ui 0.13.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/CHANGELOG.md +4028 -0
- package/LICENSE +21 -0
- package/NOTICE.md +34 -0
- package/README.md +237 -0
- package/dist/agent-runtime/_glyphs.js +43 -0
- package/dist/agent-runtime/branch-picker.d.ts +45 -0
- package/dist/agent-runtime/branch-picker.js +87 -0
- package/dist/agent-runtime/index.d.ts +4 -0
- package/dist/agent-runtime/index.js +4 -0
- package/dist/agent-runtime/tool-call-card.d.ts +69 -0
- package/dist/agent-runtime/tool-call-card.js +187 -0
- package/dist/agent-runtime/use-agent-thread.d.ts +164 -0
- package/dist/agent-runtime/use-agent-thread.js +251 -0
- package/dist/brand/_chassis.d.ts +54 -0
- package/dist/brand/_chassis.js +81 -0
- package/dist/brand/_geometry.js +41 -0
- package/dist/brand/cue-logotype.d.ts +29 -0
- package/dist/brand/cue-logotype.js +60 -0
- package/dist/brand/cue-mark.d.ts +30 -0
- package/dist/brand/cue-mark.js +61 -0
- package/dist/brand/index.d.ts +5 -0
- package/dist/brand/plussie.d.ts +67 -0
- package/dist/brand/plussie.js +125 -0
- package/dist/charts/_token.js +39 -0
- package/dist/charts/container.d.ts +58 -0
- package/dist/charts/container.js +77 -0
- package/dist/charts/index.d.ts +5 -0
- package/dist/charts/index.js +5 -0
- package/dist/charts/ramps.d.ts +140 -0
- package/dist/charts/ramps.js +615 -0
- package/dist/charts/theme.d.ts +112 -0
- package/dist/charts/theme.js +165 -0
- package/dist/charts/tones.d.ts +111 -0
- package/dist/charts/tones.js +127 -0
- package/dist/chat/_glyphs.js +55 -0
- package/dist/chat/agent-color.d.ts +84 -0
- package/dist/chat/agent-color.js +101 -0
- package/dist/chat/agent-pile.d.ts +55 -0
- package/dist/chat/agent-pile.js +121 -0
- package/dist/chat/ask-box.d.ts +88 -0
- package/dist/chat/ask-box.js +341 -0
- package/dist/chat/composer.d.ts +66 -0
- package/dist/chat/composer.js +144 -0
- package/dist/chat/delegation-card.d.ts +60 -0
- package/dist/chat/delegation-card.js +129 -0
- package/dist/chat/index.d.ts +8 -0
- package/dist/chat/index.js +8 -0
- package/dist/chat/message-list.d.ts +45 -0
- package/dist/chat/message-list.js +141 -0
- package/dist/chat/message.d.ts +47 -0
- package/dist/chat/message.js +108 -0
- package/dist/chrome/_band.js +54 -0
- package/dist/chrome/_drag.js +59 -0
- package/dist/chrome/_edge-scroller.d.ts +45 -0
- package/dist/chrome/_edge-scroller.js +149 -0
- package/dist/chrome/_glyphs.js +119 -0
- package/dist/chrome/_status-bar-item.js +85 -0
- package/dist/chrome/_status-bar.d.ts +15 -0
- package/dist/chrome/_status-bar.js +171 -0
- package/dist/chrome/_tabs-scroll.d.ts +67 -0
- package/dist/chrome/_tabs-scroll.js +73 -0
- package/dist/chrome/_tree.d.ts +75 -0
- package/dist/chrome/_tree.js +49 -0
- package/dist/chrome/app-bar.d.ts +103 -0
- package/dist/chrome/app-bar.js +175 -0
- package/dist/chrome/app-shell.d.ts +243 -0
- package/dist/chrome/app-shell.js +266 -0
- package/dist/chrome/band.d.ts +106 -0
- package/dist/chrome/band.js +97 -0
- package/dist/chrome/empty-state.d.ts +37 -0
- package/dist/chrome/empty-state.js +57 -0
- package/dist/chrome/eyebrow.d.ts +29 -0
- package/dist/chrome/eyebrow.js +36 -0
- package/dist/chrome/footer.d.ts +88 -0
- package/dist/chrome/footer.js +83 -0
- package/dist/chrome/index.d.ts +24 -0
- package/dist/chrome/index.js +22 -0
- package/dist/chrome/inspector.d.ts +61 -0
- package/dist/chrome/inspector.js +121 -0
- package/dist/chrome/navigation-menu.d.ts +80 -0
- package/dist/chrome/navigation-menu.js +121 -0
- package/dist/chrome/page-shell.d.ts +38 -0
- package/dist/chrome/page-shell.js +76 -0
- package/dist/chrome/panel.d.ts +55 -0
- package/dist/chrome/panel.js +67 -0
- package/dist/chrome/row.d.ts +82 -0
- package/dist/chrome/row.js +106 -0
- package/dist/chrome/scroll-area.d.ts +39 -0
- package/dist/chrome/scroll-area.js +70 -0
- package/dist/chrome/section-header.d.ts +42 -0
- package/dist/chrome/section-header.js +79 -0
- package/dist/chrome/segmented-control.d.ts +77 -0
- package/dist/chrome/segmented-control.js +95 -0
- package/dist/chrome/status-bar.d.ts +129 -0
- package/dist/chrome/status-bar.js +120 -0
- package/dist/chrome/tabs.d.ts +80 -0
- package/dist/chrome/tabs.js +132 -0
- package/dist/chrome/title-bar.d.ts +47 -0
- package/dist/chrome/title-bar.js +43 -0
- package/dist/chrome/toolbar.d.ts +68 -0
- package/dist/chrome/toolbar.js +83 -0
- package/dist/chrome/tree.d.ts +98 -0
- package/dist/chrome/tree.js +248 -0
- package/dist/color/_checker.js +14 -0
- package/dist/color/_convert.d.ts +52 -0
- package/dist/color/_convert.js +66 -0
- package/dist/color/_glyphs.js +28 -0
- package/dist/color/_thumb.js +15 -0
- package/dist/color/_value.js +28 -0
- package/dist/color/color-area.d.ts +27 -0
- package/dist/color/color-area.js +40 -0
- package/dist/color/color-field.d.ts +32 -0
- package/dist/color/color-field.js +43 -0
- package/dist/color/color-picker.d.ts +71 -0
- package/dist/color/color-picker.js +178 -0
- package/dist/color/color-slider.d.ts +31 -0
- package/dist/color/color-slider.js +51 -0
- package/dist/color/color-swatch.d.ts +32 -0
- package/dist/color/color-swatch.js +44 -0
- package/dist/color/index.d.ts +7 -0
- package/dist/color/index.js +7 -0
- package/dist/configurator/_export.d.ts +78 -0
- package/dist/configurator/_export.js +302 -0
- package/dist/configurator/_glyphs.js +92 -0
- package/dist/configurator/_overrides.d.ts +266 -0
- package/dist/configurator/_overrides.js +541 -0
- package/dist/configurator/configurator.d.ts +71 -0
- package/dist/configurator/configurator.js +284 -0
- package/dist/configurator/export-dialog.d.ts +30 -0
- package/dist/configurator/export-dialog.js +121 -0
- package/dist/configurator/index.d.ts +8 -0
- package/dist/configurator/index.js +8 -0
- package/dist/configurator/panel-sections.d.ts +86 -0
- package/dist/configurator/panel-sections.js +352 -0
- package/dist/configurator/token-editor.d.ts +74 -0
- package/dist/configurator/token-editor.js +152 -0
- package/dist/configurator/use-zoom.d.ts +87 -0
- package/dist/configurator/use-zoom.js +113 -0
- package/dist/date/_glyphs.js +34 -0
- package/dist/date/_segments.js +101 -0
- package/dist/date/_trigger.js +31 -0
- package/dist/date/calendar.d.ts +25 -0
- package/dist/date/calendar.js +125 -0
- package/dist/date/date-field.d.ts +34 -0
- package/dist/date/date-field.js +41 -0
- package/dist/date/date-picker.d.ts +69 -0
- package/dist/date/date-picker.js +89 -0
- package/dist/date/date-range-picker.d.ts +65 -0
- package/dist/date/date-range-picker.js +92 -0
- package/dist/date/index.d.ts +6 -0
- package/dist/date/index.js +6 -0
- package/dist/date/time-field.d.ts +29 -0
- package/dist/date/time-field.js +36 -0
- package/dist/dmx/_ramp.d.ts +77 -0
- package/dist/dmx/_ramp.js +169 -0
- package/dist/dmx/_readout.js +53 -0
- package/dist/dmx/_universe.d.ts +105 -0
- package/dist/dmx/_universe.js +112 -0
- package/dist/dmx/channel-matrix.d.ts +81 -0
- package/dist/dmx/channel-matrix.js +285 -0
- package/dist/dmx/dmx-bar.d.ts +50 -0
- package/dist/dmx/dmx-bar.js +107 -0
- package/dist/dmx/dmx-strip.d.ts +41 -0
- package/dist/dmx/dmx-strip.js +196 -0
- package/dist/dmx/index.d.ts +7 -0
- package/dist/dmx/index.js +7 -0
- package/dist/dmx/universe-grid.d.ts +61 -0
- package/dist/dmx/universe-grid.js +182 -0
- package/dist/elements/activity-graph.d.ts +40 -0
- package/dist/elements/activity-graph.js +81 -0
- package/dist/elements/agent-card.d.ts +49 -0
- package/dist/elements/agent-card.js +91 -0
- package/dist/elements/agent-handoff.d.ts +24 -0
- package/dist/elements/agent-handoff.js +53 -0
- package/dist/elements/agent-mode-badge.d.ts +72 -0
- package/dist/elements/agent-mode-badge.js +110 -0
- package/dist/elements/agent-plan.d.ts +24 -0
- package/dist/elements/agent-plan.js +74 -0
- package/dist/elements/agent-status.d.ts +29 -0
- package/dist/elements/agent-status.js +46 -0
- package/dist/elements/agent-surface.d.ts +65 -0
- package/dist/elements/agent-surface.js +68 -0
- package/dist/elements/animated-number.d.ts +86 -0
- package/dist/elements/animated-number.js +118 -0
- package/dist/elements/approval-card.d.ts +40 -0
- package/dist/elements/approval-card.js +78 -0
- package/dist/elements/artifact-card.d.ts +30 -0
- package/dist/elements/artifact-card.js +58 -0
- package/dist/elements/background-inbox.d.ts +39 -0
- package/dist/elements/background-inbox.js +60 -0
- package/dist/elements/canvas-split.d.ts +77 -0
- package/dist/elements/canvas-split.js +138 -0
- package/dist/elements/chart.d.ts +41 -0
- package/dist/elements/chart.js +117 -0
- package/dist/elements/chat-panel.d.ts +46 -0
- package/dist/elements/chat-panel.js +104 -0
- package/dist/elements/checkpoint-history.d.ts +31 -0
- package/dist/elements/checkpoint-history.js +65 -0
- package/dist/elements/clamp.d.ts +90 -0
- package/dist/elements/clamp.js +109 -0
- package/dist/elements/code-diff.d.ts +42 -0
- package/dist/elements/code-diff.js +69 -0
- package/dist/elements/code-runner.d.ts +38 -0
- package/dist/elements/code-runner.js +84 -0
- package/dist/elements/command-palette.d.ts +48 -0
- package/dist/elements/command-palette.js +129 -0
- package/dist/elements/compaction-row.d.ts +63 -0
- package/dist/elements/compaction-row.js +110 -0
- package/dist/elements/comparison-card.d.ts +47 -0
- package/dist/elements/comparison-card.js +69 -0
- package/dist/elements/composer.d.ts +274 -0
- package/dist/elements/composer.js +505 -0
- package/dist/elements/computer-use.d.ts +40 -0
- package/dist/elements/computer-use.js +92 -0
- package/dist/elements/confidence-marker.d.ts +39 -0
- package/dist/elements/confidence-marker.js +64 -0
- package/dist/elements/connection-state.d.ts +29 -0
- package/dist/elements/connection-state.js +66 -0
- package/dist/elements/context-breakdown.d.ts +30 -0
- package/dist/elements/context-breakdown.js +86 -0
- package/dist/elements/context-usage.d.ts +99 -0
- package/dist/elements/context-usage.js +225 -0
- package/dist/elements/conversation-search.d.ts +48 -0
- package/dist/elements/conversation-search.js +88 -0
- package/dist/elements/cost-meter.d.ts +33 -0
- package/dist/elements/cost-meter.js +75 -0
- package/dist/elements/data-table.d.ts +31 -0
- package/dist/elements/data-table.js +67 -0
- package/dist/elements/day-separator.d.ts +34 -0
- package/dist/elements/day-separator.js +50 -0
- package/dist/elements/diagram.d.ts +34 -0
- package/dist/elements/diagram.js +75 -0
- package/dist/elements/document-reference.d.ts +37 -0
- package/dist/elements/document-reference.js +66 -0
- package/dist/elements/draft-restore.d.ts +27 -0
- package/dist/elements/draft-restore.js +54 -0
- package/dist/elements/edit-message.d.ts +36 -0
- package/dist/elements/edit-message.js +77 -0
- package/dist/elements/elements.css +459 -0
- package/dist/elements/elicitation-form.d.ts +48 -0
- package/dist/elements/elicitation-form.js +106 -0
- package/dist/elements/empty-state.d.ts +52 -0
- package/dist/elements/empty-state.js +98 -0
- package/dist/elements/end-of-turn-summary.d.ts +60 -0
- package/dist/elements/end-of-turn-summary.js +75 -0
- package/dist/elements/error-state.d.ts +29 -0
- package/dist/elements/error-state.js +55 -0
- package/dist/elements/feedback-dialog.d.ts +36 -0
- package/dist/elements/feedback-dialog.js +81 -0
- package/dist/elements/file-tree.d.ts +45 -0
- package/dist/elements/file-tree.js +84 -0
- package/dist/elements/flow-graph.d.ts +45 -0
- package/dist/elements/flow-graph.js +78 -0
- package/dist/elements/generative/chart.js +200 -0
- package/dist/elements/generative/faults.js +111 -0
- package/dist/elements/generative/icons.d.ts +41 -0
- package/dist/elements/generative/icons.js +190 -0
- package/dist/elements/generative/intrinsics.js +483 -0
- package/dist/elements/generative/spec.d.ts +110 -0
- package/dist/elements/generative/spec.js +366 -0
- package/dist/elements/generative.css +1145 -0
- package/dist/elements/generative.d.ts +144 -0
- package/dist/elements/generative.js +126 -0
- package/dist/elements/guardrail-notice.d.ts +29 -0
- package/dist/elements/guardrail-notice.js +63 -0
- package/dist/elements/image-generation.d.ts +18 -0
- package/dist/elements/image-generation.js +64 -0
- package/dist/elements/index.d.ts +116 -0
- package/dist/elements/index.js +115 -0
- package/dist/elements/inline-citation.d.ts +43 -0
- package/dist/elements/inline-citation.js +93 -0
- package/dist/elements/job-progress.d.ts +49 -0
- package/dist/elements/job-progress.js +74 -0
- package/dist/elements/launcher-bubble.d.ts +34 -0
- package/dist/elements/launcher-bubble.js +72 -0
- package/dist/elements/live-region-announcer.d.ts +130 -0
- package/dist/elements/live-region-announcer.js +230 -0
- package/dist/elements/loading-state.d.ts +27 -0
- package/dist/elements/loading-state.js +36 -0
- package/dist/elements/map-answer.d.ts +38 -0
- package/dist/elements/map-answer.js +93 -0
- package/dist/elements/markdown.d.ts +131 -0
- package/dist/elements/markdown.js +528 -0
- package/dist/elements/math-block.d.ts +51 -0
- package/dist/elements/math-block.js +70 -0
- package/dist/elements/mcp-server-panel.d.ts +41 -0
- package/dist/elements/mcp-server-panel.js +115 -0
- package/dist/elements/memory-chips.d.ts +30 -0
- package/dist/elements/memory-chips.js +43 -0
- package/dist/elements/message-actions.d.ts +38 -0
- package/dist/elements/message-actions.js +71 -0
- package/dist/elements/message-attachment.d.ts +48 -0
- package/dist/elements/message-attachment.js +63 -0
- package/dist/elements/message-branches.d.ts +25 -0
- package/dist/elements/message-branches.js +65 -0
- package/dist/elements/message-pair.d.ts +33 -0
- package/dist/elements/message-pair.js +65 -0
- package/dist/elements/message-queue.d.ts +31 -0
- package/dist/elements/message-queue.js +80 -0
- package/dist/elements/message-timing.d.ts +33 -0
- package/dist/elements/message-timing.js +37 -0
- package/dist/elements/mobile-composer.d.ts +44 -0
- package/dist/elements/mobile-composer.js +88 -0
- package/dist/elements/model-picker.d.ts +38 -0
- package/dist/elements/model-picker.js +69 -0
- package/dist/elements/number-ticker.d.ts +18 -0
- package/dist/elements/number-ticker.js +47 -0
- package/dist/elements/onboarding.d.ts +30 -0
- package/dist/elements/onboarding.js +75 -0
- package/dist/elements/permission-grant.d.ts +35 -0
- package/dist/elements/permission-grant.js +86 -0
- package/dist/elements/permission-scopes.d.ts +215 -0
- package/dist/elements/permission-scopes.js +249 -0
- package/dist/elements/prompt-library.d.ts +43 -0
- package/dist/elements/prompt-library.js +117 -0
- package/dist/elements/queue-dock.d.ts +101 -0
- package/dist/elements/queue-dock.js +132 -0
- package/dist/elements/quota-banner.d.ts +26 -0
- package/dist/elements/quota-banner.js +66 -0
- package/dist/elements/quote-reply.d.ts +44 -0
- package/dist/elements/quote-reply.js +79 -0
- package/dist/elements/range.d.ts +29 -0
- package/dist/elements/range.js +45 -0
- package/dist/elements/read-aloud.d.ts +45 -0
- package/dist/elements/read-aloud.js +75 -0
- package/dist/elements/reasoning-effort.d.ts +36 -0
- package/dist/elements/reasoning-effort.js +67 -0
- package/dist/elements/reasoning-panel.d.ts +46 -0
- package/dist/elements/reasoning-panel.js +75 -0
- package/dist/elements/recommendation-card.d.ts +45 -0
- package/dist/elements/recommendation-card.js +83 -0
- package/dist/elements/regenerate-menu.d.ts +45 -0
- package/dist/elements/regenerate-menu.js +51 -0
- package/dist/elements/replay.d.ts +217 -0
- package/dist/elements/replay.js +498 -0
- package/dist/elements/research-report.d.ts +38 -0
- package/dist/elements/research-report.js +69 -0
- package/dist/elements/retrieval-chunks.d.ts +43 -0
- package/dist/elements/retrieval-chunks.js +81 -0
- package/dist/elements/revert-dock.d.ts +159 -0
- package/dist/elements/revert-dock.js +327 -0
- package/dist/elements/reviewable-diff.d.ts +45 -0
- package/dist/elements/reviewable-diff.js +110 -0
- package/dist/elements/risk-badge.d.ts +52 -0
- package/dist/elements/risk-badge.js +91 -0
- package/dist/elements/schedule-card.d.ts +42 -0
- package/dist/elements/schedule-card.js +90 -0
- package/dist/elements/score-breakdown.d.ts +47 -0
- package/dist/elements/score-breakdown.js +82 -0
- package/dist/elements/scroll-anchor.d.ts +32 -0
- package/dist/elements/scroll-anchor.js +123 -0
- package/dist/elements/settings-panel.d.ts +52 -0
- package/dist/elements/settings-panel.js +107 -0
- package/dist/elements/shared-conversation.d.ts +39 -0
- package/dist/elements/shared-conversation.js +68 -0
- package/dist/elements/sources.d.ts +33 -0
- package/dist/elements/sources.js +61 -0
- package/dist/elements/speaker-identity.d.ts +32 -0
- package/dist/elements/speaker-identity.js +51 -0
- package/dist/elements/spec-sheet.d.ts +31 -0
- package/dist/elements/spec-sheet.js +45 -0
- package/dist/elements/stopped-run.d.ts +22 -0
- package/dist/elements/stopped-run.js +50 -0
- package/dist/elements/streaming-text.d.ts +31 -0
- package/dist/elements/streaming-text.js +45 -0
- package/dist/elements/subagent-list.d.ts +37 -0
- package/dist/elements/subagent-list.js +79 -0
- package/dist/elements/suggestions.d.ts +30 -0
- package/dist/elements/suggestions.js +36 -0
- package/dist/elements/surfaces.d.ts +85 -0
- package/dist/elements/surfaces.js +108 -0
- package/dist/elements/tail-status.d.ts +131 -0
- package/dist/elements/tail-status.js +94 -0
- package/dist/elements/terminal-block.d.ts +29 -0
- package/dist/elements/terminal-block.js +54 -0
- package/dist/elements/thinking-indicator.d.ts +18 -0
- package/dist/elements/thinking-indicator.js +36 -0
- package/dist/elements/thread-list.d.ts +35 -0
- package/dist/elements/thread-list.js +68 -0
- package/dist/elements/thread-search.d.ts +42 -0
- package/dist/elements/thread-search.js +99 -0
- package/dist/elements/timeline.d.ts +37 -0
- package/dist/elements/timeline.js +46 -0
- package/dist/elements/todo-list.d.ts +42 -0
- package/dist/elements/todo-list.js +59 -0
- package/dist/elements/tool-call.d.ts +41 -0
- package/dist/elements/tool-call.js +85 -0
- package/dist/elements/tool-error.d.ts +39 -0
- package/dist/elements/tool-error.js +76 -0
- package/dist/elements/tool-group.d.ts +45 -0
- package/dist/elements/tool-group.js +71 -0
- package/dist/elements/tool-timeline.d.ts +65 -0
- package/dist/elements/tool-timeline.js +88 -0
- package/dist/elements/trace-waterfall.d.ts +37 -0
- package/dist/elements/trace-waterfall.js +69 -0
- package/dist/elements/transcript-rules.d.ts +67 -0
- package/dist/elements/transcript-rules.js +95 -0
- package/dist/elements/turn-footer.d.ts +74 -0
- package/dist/elements/turn-footer.js +101 -0
- package/dist/elements/typing-indicator.d.ts +16 -0
- package/dist/elements/typing-indicator.js +51 -0
- package/dist/elements/verdict-row.d.ts +89 -0
- package/dist/elements/verdict-row.js +150 -0
- package/dist/elements/vocabulary.d.ts +612 -0
- package/dist/elements/vocabulary.js +611 -0
- package/dist/elements/voice-conversation.d.ts +49 -0
- package/dist/elements/voice-conversation.js +123 -0
- package/dist/elements/web-preview.d.ts +32 -0
- package/dist/elements/web-preview.js +66 -0
- package/dist/elements/web-search.d.ts +37 -0
- package/dist/elements/web-search.js +66 -0
- package/dist/elements/work-collapse.d.ts +103 -0
- package/dist/elements/work-collapse.js +131 -0
- package/dist/flow/_frame.d.ts +52 -0
- package/dist/flow/_frame.js +38 -0
- package/dist/flow/controls.d.ts +41 -0
- package/dist/flow/controls.js +53 -0
- package/dist/flow/flow.css +121 -0
- package/dist/flow/handles.d.ts +40 -0
- package/dist/flow/handles.js +61 -0
- package/dist/flow/index.d.ts +7 -0
- package/dist/flow/index.js +7 -0
- package/dist/flow/node-card.d.ts +71 -0
- package/dist/flow/node-card.js +102 -0
- package/dist/flow/signal-edge.d.ts +60 -0
- package/dist/flow/signal-edge.js +108 -0
- package/dist/flow/use-flow-theme.d.ts +69 -0
- package/dist/flow/use-flow-theme.js +109 -0
- package/dist/forms/_chassis.d.ts +164 -0
- package/dist/forms/_chassis.js +159 -0
- package/dist/forms/_glyphs.js +143 -0
- package/dist/forms/_listbox.js +55 -0
- package/dist/forms/autocomplete.d.ts +61 -0
- package/dist/forms/autocomplete.js +88 -0
- package/dist/forms/button-group.d.ts +47 -0
- package/dist/forms/button-group.js +52 -0
- package/dist/forms/checkbox.d.ts +51 -0
- package/dist/forms/checkbox.js +98 -0
- package/dist/forms/combobox.d.ts +73 -0
- package/dist/forms/combobox.js +108 -0
- package/dist/forms/env-var-input.d.ts +74 -0
- package/dist/forms/env-var-input.js +116 -0
- package/dist/forms/field.d.ts +89 -0
- package/dist/forms/field.js +102 -0
- package/dist/forms/file-upload.d.ts +113 -0
- package/dist/forms/file-upload.js +232 -0
- package/dist/forms/index.d.ts +26 -0
- package/dist/forms/index.js +26 -0
- package/dist/forms/input-group.d.ts +36 -0
- package/dist/forms/input-group.js +59 -0
- package/dist/forms/input.d.ts +45 -0
- package/dist/forms/input.js +36 -0
- package/dist/forms/multi-select.d.ts +62 -0
- package/dist/forms/multi-select.js +107 -0
- package/dist/forms/number-field.d.ts +39 -0
- package/dist/forms/number-field.js +65 -0
- package/dist/forms/otp-field.d.ts +54 -0
- package/dist/forms/otp-field.js +59 -0
- package/dist/forms/password-input.d.ts +46 -0
- package/dist/forms/password-input.js +62 -0
- package/dist/forms/radio-group.d.ts +50 -0
- package/dist/forms/radio-group.js +64 -0
- package/dist/forms/rating.d.ts +69 -0
- package/dist/forms/rating.js +103 -0
- package/dist/forms/scrub-input.d.ts +81 -0
- package/dist/forms/scrub-input.js +249 -0
- package/dist/forms/search-input.d.ts +54 -0
- package/dist/forms/search-input.js +112 -0
- package/dist/forms/select.d.ts +75 -0
- package/dist/forms/select.js +91 -0
- package/dist/forms/slider.d.ts +44 -0
- package/dist/forms/slider.js +65 -0
- package/dist/forms/switch.d.ts +36 -0
- package/dist/forms/switch.js +71 -0
- package/dist/forms/tags-input.d.ts +69 -0
- package/dist/forms/tags-input.js +148 -0
- package/dist/forms/textarea.d.ts +39 -0
- package/dist/forms/textarea.js +37 -0
- package/dist/forms/toggle-group.d.ts +41 -0
- package/dist/forms/toggle-group.js +56 -0
- package/dist/forms/toggle.d.ts +47 -0
- package/dist/forms/toggle.js +100 -0
- package/dist/icons/containers.d.ts +89 -0
- package/dist/icons/containers.js +295 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/index.d.ts +138 -0
- package/dist/index.js +124 -0
- package/dist/instruments/_ansi.js +116 -0
- package/dist/instruments/_data-row.d.ts +68 -0
- package/dist/instruments/_data-row.js +139 -0
- package/dist/instruments/_glyphs.js +90 -0
- package/dist/instruments/_ledger-disclosure.js +103 -0
- package/dist/instruments/_ledger.d.ts +21 -0
- package/dist/instruments/_ledger.js +5 -0
- package/dist/instruments/_motion.js +56 -0
- package/dist/instruments/_rem.js +21 -0
- package/dist/instruments/app-window-frame.d.ts +48 -0
- package/dist/instruments/app-window-frame.js +76 -0
- package/dist/instruments/code-block.d.ts +35 -0
- package/dist/instruments/code-block.js +173 -0
- package/dist/instruments/copy-button.d.ts +41 -0
- package/dist/instruments/copy-button.js +112 -0
- package/dist/instruments/data-row.d.ts +94 -0
- package/dist/instruments/data-row.js +151 -0
- package/dist/instruments/data-table.d.ts +168 -0
- package/dist/instruments/data-table.js +212 -0
- package/dist/instruments/data-tree.d.ts +126 -0
- package/dist/instruments/data-tree.js +303 -0
- package/dist/instruments/group-bar.d.ts +63 -0
- package/dist/instruments/group-bar.js +122 -0
- package/dist/instruments/index.d.ts +18 -0
- package/dist/instruments/index.js +18 -0
- package/dist/instruments/ledger.d.ts +204 -0
- package/dist/instruments/ledger.js +204 -0
- package/dist/instruments/log-viewer.d.ts +74 -0
- package/dist/instruments/log-viewer.js +215 -0
- package/dist/instruments/meter.d.ts +81 -0
- package/dist/instruments/meter.js +96 -0
- package/dist/instruments/progress.d.ts +61 -0
- package/dist/instruments/progress.js +79 -0
- package/dist/instruments/seam-grid.d.ts +66 -0
- package/dist/instruments/seam-grid.js +78 -0
- package/dist/instruments/sparkline.d.ts +39 -0
- package/dist/instruments/sparkline.js +85 -0
- package/dist/instruments/stat.d.ts +35 -0
- package/dist/instruments/stat.js +59 -0
- package/dist/instruments/table.d.ts +170 -0
- package/dist/instruments/table.js +237 -0
- package/dist/instruments/terminal-frame.d.ts +89 -0
- package/dist/instruments/terminal-frame.js +256 -0
- package/dist/instruments/two-step-button.d.ts +47 -0
- package/dist/instruments/two-step-button.js +166 -0
- package/dist/instruments/usage-chart.d.ts +55 -0
- package/dist/instruments/usage-chart.js +235 -0
- package/dist/layout/_collapse.js +46 -0
- package/dist/layout/_glyphs.js +45 -0
- package/dist/layout/_ground.d.ts +22 -0
- package/dist/layout/_ground.js +9 -0
- package/dist/layout/accordion.d.ts +52 -0
- package/dist/layout/accordion.js +81 -0
- package/dist/layout/bento.d.ts +144 -0
- package/dist/layout/bento.js +266 -0
- package/dist/layout/breadcrumb.d.ts +35 -0
- package/dist/layout/breadcrumb.js +67 -0
- package/dist/layout/card.d.ts +51 -0
- package/dist/layout/card.js +76 -0
- package/dist/layout/carousel.d.ts +96 -0
- package/dist/layout/carousel.js +211 -0
- package/dist/layout/collapsible.d.ts +74 -0
- package/dist/layout/collapsible.js +126 -0
- package/dist/layout/container.d.ts +27 -0
- package/dist/layout/container.js +43 -0
- package/dist/layout/description-list.d.ts +24 -0
- package/dist/layout/description-list.js +37 -0
- package/dist/layout/frames.d.ts +70 -0
- package/dist/layout/frames.js +298 -0
- package/dist/layout/grid.d.ts +40 -0
- package/dist/layout/grid.js +48 -0
- package/dist/layout/index.d.ts +19 -0
- package/dist/layout/index.js +18 -0
- package/dist/layout/item.d.ts +65 -0
- package/dist/layout/item.js +100 -0
- package/dist/layout/link.d.ts +48 -0
- package/dist/layout/link.js +63 -0
- package/dist/layout/pagination.d.ts +54 -0
- package/dist/layout/pagination.js +121 -0
- package/dist/layout/preview.d.ts +177 -0
- package/dist/layout/preview.js +628 -0
- package/dist/layout/resizable.d.ts +38 -0
- package/dist/layout/resizable.js +68 -0
- package/dist/layout/sidebar.d.ts +105 -0
- package/dist/layout/sidebar.js +158 -0
- package/dist/layout/stack.d.ts +46 -0
- package/dist/layout/stack.js +62 -0
- package/dist/layout/stepper.d.ts +49 -0
- package/dist/layout/stepper.js +81 -0
- package/dist/layout/timeline.d.ts +43 -0
- package/dist/layout/timeline.js +63 -0
- package/dist/lib/aria-class.js +24 -0
- package/dist/lib/cn.js +18 -0
- package/dist/lib/compose.js +38 -0
- package/dist/lib/cva.d.ts +18 -0
- package/dist/lib/cva.js +65 -0
- package/dist/midi/_notes.d.ts +101 -0
- package/dist/midi/_notes.js +183 -0
- package/dist/midi/_ruler.d.ts +100 -0
- package/dist/midi/_ruler.js +105 -0
- package/dist/midi/_time.d.ts +107 -0
- package/dist/midi/_time.js +130 -0
- package/dist/midi/index.d.ts +9 -0
- package/dist/midi/index.js +9 -0
- package/dist/midi/musical-time-input.d.ts +48 -0
- package/dist/midi/musical-time-input.js +154 -0
- package/dist/midi/piano-keyboard.d.ts +50 -0
- package/dist/midi/piano-keyboard.js +197 -0
- package/dist/midi/spectrum-visualizer.d.ts +65 -0
- package/dist/midi/spectrum-visualizer.js +213 -0
- package/dist/midi/threshold-rail.d.ts +72 -0
- package/dist/midi/threshold-rail.js +214 -0
- package/dist/midi/timeline-ruler.d.ts +83 -0
- package/dist/midi/timeline-ruler.js +152 -0
- package/dist/overlays/_debounce.js +34 -0
- package/dist/overlays/_glyphs.js +59 -0
- package/dist/overlays/_surface.d.ts +70 -0
- package/dist/overlays/_surface.js +70 -0
- package/dist/overlays/_wheel.js +42 -0
- package/dist/overlays/alert-dialog.d.ts +67 -0
- package/dist/overlays/alert-dialog.js +117 -0
- package/dist/overlays/command-palette.d.ts +93 -0
- package/dist/overlays/command-palette.js +193 -0
- package/dist/overlays/context-menu.d.ts +64 -0
- package/dist/overlays/context-menu.js +78 -0
- package/dist/overlays/dialog.d.ts +72 -0
- package/dist/overlays/dialog.js +124 -0
- package/dist/overlays/drawer.d.ts +75 -0
- package/dist/overlays/drawer.js +151 -0
- package/dist/overlays/dropdown-menu.d.ts +79 -0
- package/dist/overlays/dropdown-menu.js +156 -0
- package/dist/overlays/hover-card.d.ts +58 -0
- package/dist/overlays/hover-card.js +91 -0
- package/dist/overlays/index.d.ts +15 -0
- package/dist/overlays/index.js +15 -0
- package/dist/overlays/info-tip.d.ts +41 -0
- package/dist/overlays/info-tip.js +45 -0
- package/dist/overlays/menubar.d.ts +72 -0
- package/dist/overlays/menubar.js +100 -0
- package/dist/overlays/popover.d.ts +66 -0
- package/dist/overlays/popover.js +114 -0
- package/dist/overlays/sheet.d.ts +78 -0
- package/dist/overlays/sheet.js +131 -0
- package/dist/overlays/toast.d.ts +106 -0
- package/dist/overlays/toast.js +146 -0
- package/dist/overlays/tooltip.d.ts +57 -0
- package/dist/overlays/tooltip.js +95 -0
- package/dist/primitives/avatar.d.ts +51 -0
- package/dist/primitives/avatar.js +93 -0
- package/dist/primitives/button.d.ts +58 -0
- package/dist/primitives/button.js +104 -0
- package/dist/primitives/chip.d.ts +73 -0
- package/dist/primitives/chip.js +238 -0
- package/dist/primitives/icon-button.d.ts +41 -0
- package/dist/primitives/icon-button.js +59 -0
- package/dist/primitives/index.d.ts +10 -0
- package/dist/primitives/index.js +10 -0
- package/dist/primitives/kbd.d.ts +17 -0
- package/dist/primitives/kbd.js +24 -0
- package/dist/primitives/separator.d.ts +25 -0
- package/dist/primitives/separator.js +30 -0
- package/dist/primitives/skeleton.d.ts +20 -0
- package/dist/primitives/skeleton.js +27 -0
- package/dist/primitives/spinner.d.ts +26 -0
- package/dist/primitives/spinner.js +31 -0
- package/dist/primitives/status-dot.d.ts +51 -0
- package/dist/primitives/status-dot.js +57 -0
- package/dist/styles.css +97 -0
- package/dist/system/agent-skin.d.ts +27 -0
- package/dist/system/agent-skin.js +20 -0
- package/dist/system/density.d.ts +73 -0
- package/dist/system/density.js +111 -0
- package/dist/system/index.d.ts +12 -0
- package/dist/system/index.js +10 -0
- package/dist/system/overrides.d.ts +80 -0
- package/dist/system/overrides.js +277 -0
- package/dist/system/portal.d.ts +56 -0
- package/dist/system/portal.js +193 -0
- package/dist/system/prepaint.d.ts +134 -0
- package/dist/system/prepaint.js +120 -0
- package/dist/system/theme-provider.d.ts +290 -0
- package/dist/system/theme-provider.js +543 -0
- package/dist/system/theme-registry.d.ts +53 -0
- package/dist/system/theme-registry.js +66 -0
- package/dist/system/use-density.d.ts +50 -0
- package/dist/system/use-density.js +232 -0
- package/dist/system/use-isomorphic-layout-effect.js +33 -0
- package/dist/system/use-theme.d.ts +30 -0
- package/dist/system/use-theme.js +36 -0
- package/dist/system/vocabulary.d.ts +16 -0
- package/dist/system/vocabulary.js +125 -0
- package/dist/theming/contrast.d.ts +2 -0
- package/dist/theming/contrast.js +2 -0
- package/dist/theming/create-theme.d.ts +195 -0
- package/dist/theming/create-theme.js +524 -0
- package/dist/theming/index.d.ts +4 -0
- package/dist/theming/index.js +4 -0
- package/dist/theming/serialize.d.ts +167 -0
- package/dist/theming/serialize.js +241 -0
- package/manifest/components/accordion.json +173 -0
- package/manifest/components/activity-graph.json +104 -0
- package/manifest/components/agent-card.json +150 -0
- package/manifest/components/agent-handoff.json +104 -0
- package/manifest/components/agent-mode-badge.json +102 -0
- package/manifest/components/agent-pile.json +147 -0
- package/manifest/components/agent-plan.json +74 -0
- package/manifest/components/agent-status.json +87 -0
- package/manifest/components/agent-surface.json +93 -0
- package/manifest/components/alert-dialog.json +215 -0
- package/manifest/components/animated-number.json +75 -0
- package/manifest/components/app-bar.json +297 -0
- package/manifest/components/app-shell.json +526 -0
- package/manifest/components/app-window-frame.json +124 -0
- package/manifest/components/approval-card.json +136 -0
- package/manifest/components/artifact-card.json +93 -0
- package/manifest/components/ask-box.json +288 -0
- package/manifest/components/audience-icon.json +46 -0
- package/manifest/components/autocomplete.json +262 -0
- package/manifest/components/avatar-group.json +83 -0
- package/manifest/components/avatar.json +113 -0
- package/manifest/components/background-inbox.json +79 -0
- package/manifest/components/band.json +104 -0
- package/manifest/components/bento.json +306 -0
- package/manifest/components/branch-picker.json +146 -0
- package/manifest/components/breadcrumb.json +85 -0
- package/manifest/components/button-group.json +91 -0
- package/manifest/components/button.json +163 -0
- package/manifest/components/calendar.json +65 -0
- package/manifest/components/canvas-split-body.json +66 -0
- package/manifest/components/canvas-split-document.json +55 -0
- package/manifest/components/canvas-split-header.json +97 -0
- package/manifest/components/canvas-split-line.json +66 -0
- package/manifest/components/canvas-split-message.json +70 -0
- package/manifest/components/canvas-split-thread.json +55 -0
- package/manifest/components/canvas-split.json +61 -0
- package/manifest/components/card.json +152 -0
- package/manifest/components/carousel.json +242 -0
- package/manifest/components/catalogue-icon.json +46 -0
- package/manifest/components/channel-beta-icon.json +46 -0
- package/manifest/components/channel-matrix.json +239 -0
- package/manifest/components/channel-released-icon.json +46 -0
- package/manifest/components/chart-container.json +127 -0
- package/manifest/components/chart-ramp.json +82 -0
- package/manifest/components/chart-swatch.json +72 -0
- package/manifest/components/chart-tooltip-content.json +140 -0
- package/manifest/components/chart.json +117 -0
- package/manifest/components/chat-empty-state.json +55 -0
- package/manifest/components/chat-panel-assistant-message.json +52 -0
- package/manifest/components/chat-panel-composer.json +74 -0
- package/manifest/components/chat-panel-messages.json +52 -0
- package/manifest/components/chat-panel-typing.json +52 -0
- package/manifest/components/chat-panel-user-message.json +52 -0
- package/manifest/components/chat-panel.json +58 -0
- package/manifest/components/checkbox-group.json +70 -0
- package/manifest/components/checkbox.json +106 -0
- package/manifest/components/checkpoint-history.json +91 -0
- package/manifest/components/chip.json +174 -0
- package/manifest/components/clamp.json +125 -0
- package/manifest/components/cli-tool-icon.json +46 -0
- package/manifest/components/code-block.json +107 -0
- package/manifest/components/code-diff.json +104 -0
- package/manifest/components/code-runner.json +124 -0
- package/manifest/components/collapsible.json +133 -0
- package/manifest/components/color-area.json +62 -0
- package/manifest/components/color-field.json +91 -0
- package/manifest/components/color-picker.json +235 -0
- package/manifest/components/color-slider.json +84 -0
- package/manifest/components/color-swatch.json +79 -0
- package/manifest/components/colors-section.json +70 -0
- package/manifest/components/combobox.json +265 -0
- package/manifest/components/command-palette.json +222 -0
- package/manifest/components/compaction-row.json +128 -0
- package/manifest/components/comparison-card.json +98 -0
- package/manifest/components/composer-actions.json +65 -0
- package/manifest/components/composer-attach-button.json +65 -0
- package/manifest/components/composer-attachment-chip.json +83 -0
- package/manifest/components/composer-attachments.json +60 -0
- package/manifest/components/composer-bar.json +76 -0
- package/manifest/components/composer-command-item.json +85 -0
- package/manifest/components/composer-context.json +71 -0
- package/manifest/components/composer-input.json +77 -0
- package/manifest/components/composer-menu-item.json +75 -0
- package/manifest/components/composer-menu.json +89 -0
- package/manifest/components/composer-model-item.json +82 -0
- package/manifest/components/composer-model-trigger.json +81 -0
- package/manifest/components/composer-person-item.json +86 -0
- package/manifest/components/composer-send.json +86 -0
- package/manifest/components/composer-toolbar.json +65 -0
- package/manifest/components/composer-voice-button.json +71 -0
- package/manifest/components/composer-voice.json +81 -0
- package/manifest/components/composer.json +238 -0
- package/manifest/components/computer-use.json +98 -0
- package/manifest/components/confidence-marker.json +86 -0
- package/manifest/components/connection-state.json +103 -0
- package/manifest/components/container.json +75 -0
- package/manifest/components/context-breakdown.json +72 -0
- package/manifest/components/context-menu.json +134 -0
- package/manifest/components/context-usage.json +98 -0
- package/manifest/components/conversation-search.json +111 -0
- package/manifest/components/copy-button.json +118 -0
- package/manifest/components/cost-meter.json +84 -0
- package/manifest/components/cue-logotype.json +110 -0
- package/manifest/components/cue-mark.json +111 -0
- package/manifest/components/cue-portal-frame.json +65 -0
- package/manifest/components/data-row.json +222 -0
- package/manifest/components/data-table-pagination.json +97 -0
- package/manifest/components/data-table-toolbar.json +127 -0
- package/manifest/components/data-tree.json +185 -0
- package/manifest/components/date-field.json +93 -0
- package/manifest/components/date-picker.json +255 -0
- package/manifest/components/date-range-picker.json +255 -0
- package/manifest/components/day-separator.json +63 -0
- package/manifest/components/delegation-card.json +196 -0
- package/manifest/components/density.json +93 -0
- package/manifest/components/description-list.json +91 -0
- package/manifest/components/diagram.json +126 -0
- package/manifest/components/dialog.json +222 -0
- package/manifest/components/disclosure.json +134 -0
- package/manifest/components/dmx-bar.json +107 -0
- package/manifest/components/dmx-strip.json +117 -0
- package/manifest/components/document-reference.json +108 -0
- package/manifest/components/draft-restore.json +96 -0
- package/manifest/components/drawer.json +204 -0
- package/manifest/components/dropdown-menu.json +275 -0
- package/manifest/components/edit-message.json +131 -0
- package/manifest/components/elements-command-palette.json +122 -0
- package/manifest/components/elements-composer.json +71 -0
- package/manifest/components/elements-data-table.json +75 -0
- package/manifest/components/elements-timeline.json +77 -0
- package/manifest/components/elicitation-form.json +130 -0
- package/manifest/components/empty-state-composer.json +71 -0
- package/manifest/components/empty-state-greeting.json +49 -0
- package/manifest/components/empty-state-suggestion.json +60 -0
- package/manifest/components/empty-state-suggestions.json +49 -0
- package/manifest/components/empty-state.json +111 -0
- package/manifest/components/end-of-turn-summary.json +89 -0
- package/manifest/components/env-var-input.json +194 -0
- package/manifest/components/error-state.json +93 -0
- package/manifest/components/export-dialog.json +101 -0
- package/manifest/components/eyebrow.json +59 -0
- package/manifest/components/feedback-dialog.json +133 -0
- package/manifest/components/field-description.json +66 -0
- package/manifest/components/field-error.json +87 -0
- package/manifest/components/field-label.json +66 -0
- package/manifest/components/field.json +82 -0
- package/manifest/components/file-tree.json +96 -0
- package/manifest/components/file-upload.json +204 -0
- package/manifest/components/flow-background.json +50 -0
- package/manifest/components/flow-controls.json +50 -0
- package/manifest/components/flow-graph.json +86 -0
- package/manifest/components/folder-icon.json +46 -0
- package/manifest/components/footer.json +133 -0
- package/manifest/components/frac.json +68 -0
- package/manifest/components/frames.json +210 -0
- package/manifest/components/generation-loader.json +78 -0
- package/manifest/components/generative-ui.json +125 -0
- package/manifest/components/grid.json +132 -0
- package/manifest/components/group-bar.json +122 -0
- package/manifest/components/guardrail-notice.json +109 -0
- package/manifest/components/hover-card.json +189 -0
- package/manifest/components/icon-button.json +106 -0
- package/manifest/components/image-generation.json +73 -0
- package/manifest/components/info-tip.json +133 -0
- package/manifest/components/inline-citation.json +90 -0
- package/manifest/components/input-group.json +112 -0
- package/manifest/components/input.json +121 -0
- package/manifest/components/inspector.json +199 -0
- package/manifest/components/item.json +163 -0
- package/manifest/components/job-progress.json +116 -0
- package/manifest/components/kbd.json +52 -0
- package/manifest/components/launcher-bubble.json +130 -0
- package/manifest/components/ledger.json +330 -0
- package/manifest/components/link.json +94 -0
- package/manifest/components/live-region-announcer.json +95 -0
- package/manifest/components/log-viewer.json +172 -0
- package/manifest/components/map-answer.json +97 -0
- package/manifest/components/markdown-text.json +126 -0
- package/manifest/components/math-block.json +84 -0
- package/manifest/components/mcp-server-icon.json +46 -0
- package/manifest/components/mcp-server-panel.json +102 -0
- package/manifest/components/memory-chips.json +73 -0
- package/manifest/components/menubar.json +184 -0
- package/manifest/components/message-actions.json +125 -0
- package/manifest/components/message-attachments.json +71 -0
- package/manifest/components/message-branches.json +83 -0
- package/manifest/components/message-list.json +121 -0
- package/manifest/components/message-pair.json +107 -0
- package/manifest/components/message-queue.json +85 -0
- package/manifest/components/message-timing.json +69 -0
- package/manifest/components/message.json +149 -0
- package/manifest/components/meter.json +150 -0
- package/manifest/components/mobile-composer.json +163 -0
- package/manifest/components/model-picker.json +87 -0
- package/manifest/components/multi-select.json +255 -0
- package/manifest/components/musical-time-input.json +141 -0
- package/manifest/components/navigation-menu.json +269 -0
- package/manifest/components/node-card.json +144 -0
- package/manifest/components/node-handle.json +84 -0
- package/manifest/components/number-field.json +131 -0
- package/manifest/components/number-ticker.json +67 -0
- package/manifest/components/onboarding.json +100 -0
- package/manifest/components/otp-field.json +163 -0
- package/manifest/components/page-shell.json +129 -0
- package/manifest/components/pagination.json +108 -0
- package/manifest/components/panel-header.json +89 -0
- package/manifest/components/panel.json +71 -0
- package/manifest/components/password-input.json +171 -0
- package/manifest/components/permission-grant.json +115 -0
- package/manifest/components/permission-scopes.json +184 -0
- package/manifest/components/piano-keyboard.json +149 -0
- package/manifest/components/plussie.json +140 -0
- package/manifest/components/popover.json +231 -0
- package/manifest/components/preset-section.json +80 -0
- package/manifest/components/preview.json +294 -0
- package/manifest/components/progress.json +114 -0
- package/manifest/components/prompt-library.json +122 -0
- package/manifest/components/queue-dock.json +139 -0
- package/manifest/components/quota-banner.json +113 -0
- package/manifest/components/quote-reply.json +129 -0
- package/manifest/components/radio-group.json +83 -0
- package/manifest/components/radio.json +94 -0
- package/manifest/components/rating.json +188 -0
- package/manifest/components/read-aloud.json +139 -0
- package/manifest/components/reasoning-effort.json +95 -0
- package/manifest/components/reasoning-panel.json +135 -0
- package/manifest/components/recommendation-card.json +133 -0
- package/manifest/components/regenerate-menu.json +107 -0
- package/manifest/components/replay-player.json +124 -0
- package/manifest/components/research-report.json +87 -0
- package/manifest/components/resizable.json +91 -0
- package/manifest/components/retrieval-chunks.json +98 -0
- package/manifest/components/revert-dock.json +197 -0
- package/manifest/components/reviewable-diff.json +113 -0
- package/manifest/components/risk-badge.json +89 -0
- package/manifest/components/row.json +122 -0
- package/manifest/components/schedule-card.json +121 -0
- package/manifest/components/score-breakdown.json +108 -0
- package/manifest/components/scroll-anchor.json +84 -0
- package/manifest/components/scroll-area.json +114 -0
- package/manifest/components/scrollable-tabs-list.json +91 -0
- package/manifest/components/scrub-input.json +268 -0
- package/manifest/components/seam-cell.json +91 -0
- package/manifest/components/seam-grid.json +84 -0
- package/manifest/components/seam-list.json +56 -0
- package/manifest/components/search-input.json +195 -0
- package/manifest/components/section-header.json +140 -0
- package/manifest/components/segmented-control.json +178 -0
- package/manifest/components/select.json +253 -0
- package/manifest/components/separator.json +56 -0
- package/manifest/components/settings-panel.json +152 -0
- package/manifest/components/shape-section.json +70 -0
- package/manifest/components/shared-conversation.json +107 -0
- package/manifest/components/sheet.json +210 -0
- package/manifest/components/shimmer-label.json +61 -0
- package/manifest/components/sidebar.json +245 -0
- package/manifest/components/signal-edge.json +56 -0
- package/manifest/components/skeleton.json +46 -0
- package/manifest/components/skill-icon.json +46 -0
- package/manifest/components/slider.json +106 -0
- package/manifest/components/sources.json +97 -0
- package/manifest/components/sparkline.json +89 -0
- package/manifest/components/speaker-identity.json +66 -0
- package/manifest/components/spec-sheet.json +93 -0
- package/manifest/components/spectrum-visualizer.json +147 -0
- package/manifest/components/spinner.json +71 -0
- package/manifest/components/stack-icon.json +46 -0
- package/manifest/components/stack.json +143 -0
- package/manifest/components/stacks-matrix-icon.json +46 -0
- package/manifest/components/stat.json +111 -0
- package/manifest/components/status-bar.json +233 -0
- package/manifest/components/status-dot.json +97 -0
- package/manifest/components/stepper.json +107 -0
- package/manifest/components/stopped-run.json +97 -0
- package/manifest/components/streaming-text.json +82 -0
- package/manifest/components/sub.json +45 -0
- package/manifest/components/subagent-list.json +106 -0
- package/manifest/components/suggestions.json +106 -0
- package/manifest/components/sup.json +45 -0
- package/manifest/components/swap-label.json +86 -0
- package/manifest/components/switch.json +102 -0
- package/manifest/components/table-scroll-region.json +78 -0
- package/manifest/components/table.json +306 -0
- package/manifest/components/tabs.json +156 -0
- package/manifest/components/tags-input.json +255 -0
- package/manifest/components/tail-status.json +138 -0
- package/manifest/components/terminal-block.json +111 -0
- package/manifest/components/terminal-frame.json +146 -0
- package/manifest/components/textarea.json +104 -0
- package/manifest/components/theme-configurator.json +158 -0
- package/manifest/components/theme-provider.json +228 -0
- package/manifest/components/thinking-indicator.json +69 -0
- package/manifest/components/thread-list.json +87 -0
- package/manifest/components/thread-search.json +108 -0
- package/manifest/components/threshold-rail.json +223 -0
- package/manifest/components/time-boundary.json +68 -0
- package/manifest/components/time-field.json +93 -0
- package/manifest/components/timeline-ruler.json +178 -0
- package/manifest/components/timeline.json +131 -0
- package/manifest/components/title-bar.json +97 -0
- package/manifest/components/toast.json +140 -0
- package/manifest/components/todo-list.json +76 -0
- package/manifest/components/toggle-group.json +134 -0
- package/manifest/components/toggle.json +140 -0
- package/manifest/components/token-editor.json +106 -0
- package/manifest/components/tool-call-card.json +268 -0
- package/manifest/components/tool-call.json +147 -0
- package/manifest/components/tool-error.json +141 -0
- package/manifest/components/tool-group.json +97 -0
- package/manifest/components/tool-timeline.json +147 -0
- package/manifest/components/toolbar.json +192 -0
- package/manifest/components/tooltip.json +199 -0
- package/manifest/components/trace-waterfall.json +84 -0
- package/manifest/components/tree-visibility-toggle.json +99 -0
- package/manifest/components/tree.json +182 -0
- package/manifest/components/turn-footer.json +133 -0
- package/manifest/components/two-step-button.json +150 -0
- package/manifest/components/typing-indicator.json +60 -0
- package/manifest/components/universe-grid.json +155 -0
- package/manifest/components/unread-divider.json +58 -0
- package/manifest/components/usage-chart.json +162 -0
- package/manifest/components/verdict-row.json +106 -0
- package/manifest/components/voice-conversation.json +141 -0
- package/manifest/components/web-preview.json +105 -0
- package/manifest/components/web-search.json +108 -0
- package/manifest/components/work-collapse.json +125 -0
- package/manifest/fixtures.json +776 -0
- package/manifest/manifest.json +5037 -0
- package/manifest/tokens.json +288 -0
- package/package.json +278 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useIsomorphicLayoutEffect } from "../system/use-isomorphic-layout-effect.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
//#region src/configurator/use-zoom.ts
|
|
5
|
+
/**
|
|
6
|
+
* The root zoom valve — luma's relief mechanism, adopted system-wide.
|
|
7
|
+
*
|
|
8
|
+
* Density is a *design* decision made in discrete, hand-authored steps; zoom is
|
|
9
|
+
* a *comfort* decision the person at the keyboard makes, continuously, about
|
|
10
|
+
* this screen at this distance. Conflating the two is how systems end up with a
|
|
11
|
+
* naive multiplier and blurry half-pixel geometry, so this is deliberately not a
|
|
12
|
+
* token: it sets the CSS `zoom` property on one element and lets the browser
|
|
13
|
+
* scale the finished layout, which keeps every hairline crisp and every rem
|
|
14
|
+
* ratio intact.
|
|
15
|
+
*
|
|
16
|
+
* The range is 0.7–1.5 because that is the band luma's console shipped and the
|
|
17
|
+
* spec adopted: below 0.7 the 9px type stops being type, above 1.5 the
|
|
18
|
+
* ultra-compact ladder has stopped being ultra-compact and the density picker is
|
|
19
|
+
* the better tool.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const zoom = useZoom();
|
|
23
|
+
* <Slider aria-label="Zoom" min={zoom.min} max={zoom.max} value={zoom.zoom} onValueChange={zoom.setZoom} />
|
|
24
|
+
*/
|
|
25
|
+
/** Floor of the valve — below this the type ladder stops being legible. */
|
|
26
|
+
const MIN_ZOOM = .7;
|
|
27
|
+
/** Ceiling of the valve — above this, pick a larger density instead. */
|
|
28
|
+
const MAX_ZOOM = 1.5;
|
|
29
|
+
/** One notch of the valve, and of ⌘+ / ⌘−. */
|
|
30
|
+
const ZOOM_STEP = .1;
|
|
31
|
+
const clamp = (value, min, max) => Math.min(max, Math.max(min, value));
|
|
32
|
+
/** Two decimals: `0.7 + 0.1` is not 0.8, and a zoom of 0.7999999999999999 helps nobody. */
|
|
33
|
+
const round = (value) => Number(value.toFixed(2));
|
|
34
|
+
/**
|
|
35
|
+
* A bounded, stepped root-zoom valve with the usual keyboard shortcuts.
|
|
36
|
+
*
|
|
37
|
+
* Controlled or uncontrolled, the same way every other control in this system
|
|
38
|
+
* is: pass `zoom` to own the value, `defaultZoom` to let the hook own it.
|
|
39
|
+
*
|
|
40
|
+
* The declaration belongs to the hook while it is mounted — unmounting takes it
|
|
41
|
+
* back off, so a configurator that is closed does not leave the page at 1.4.
|
|
42
|
+
*
|
|
43
|
+
* @param options - Range, target, controlled value, shortcut opt-out.
|
|
44
|
+
* @returns The valve: the value and the four ways to move it.
|
|
45
|
+
* @example
|
|
46
|
+
* const { zoom, zoomIn, zoomOut, reset } = useZoom({ shortcuts: false });
|
|
47
|
+
*/
|
|
48
|
+
function useZoom(options = {}) {
|
|
49
|
+
const { zoom: zoomProp, defaultZoom = 1, onZoomChange, min = MIN_ZOOM, max = MAX_ZOOM, step = ZOOM_STEP, target, shortcuts = true } = options;
|
|
50
|
+
const [uncontrolled, setUncontrolled] = React.useState(() => round(clamp(defaultZoom, min, max)));
|
|
51
|
+
const zoom = zoomProp === void 0 ? uncontrolled : round(clamp(zoomProp, min, max));
|
|
52
|
+
const setZoom = React.useCallback((next) => {
|
|
53
|
+
const clamped = round(clamp(next, min, max));
|
|
54
|
+
if (clamped === zoom) return;
|
|
55
|
+
if (zoomProp === void 0) setUncontrolled(clamped);
|
|
56
|
+
onZoomChange?.(clamped);
|
|
57
|
+
}, [
|
|
58
|
+
max,
|
|
59
|
+
min,
|
|
60
|
+
onZoomChange,
|
|
61
|
+
zoom,
|
|
62
|
+
zoomProp
|
|
63
|
+
]);
|
|
64
|
+
const zoomIn = React.useCallback(() => setZoom(zoom + step), [
|
|
65
|
+
setZoom,
|
|
66
|
+
step,
|
|
67
|
+
zoom
|
|
68
|
+
]);
|
|
69
|
+
const zoomOut = React.useCallback(() => setZoom(zoom - step), [
|
|
70
|
+
setZoom,
|
|
71
|
+
step,
|
|
72
|
+
zoom
|
|
73
|
+
]);
|
|
74
|
+
const reset = React.useCallback(() => setZoom(1), [setZoom]);
|
|
75
|
+
const element = target === void 0 ? typeof document === "undefined" ? null : document.documentElement : target;
|
|
76
|
+
useIsomorphicLayoutEffect(() => {
|
|
77
|
+
if (element === null) return;
|
|
78
|
+
if (zoom === 1) element.style.removeProperty("zoom");
|
|
79
|
+
else element.style.setProperty("zoom", String(zoom));
|
|
80
|
+
return () => {
|
|
81
|
+
element.style.removeProperty("zoom");
|
|
82
|
+
};
|
|
83
|
+
}, [element, zoom]);
|
|
84
|
+
React.useEffect(() => {
|
|
85
|
+
if (!shortcuts || typeof window === "undefined") return;
|
|
86
|
+
const onKeyDown = (event) => {
|
|
87
|
+
if (!(event.metaKey || event.ctrlKey) || event.altKey) return;
|
|
88
|
+
const step = event.key === "=" || event.key === "+" ? zoomIn : event.key === "-" || event.key === "_" ? zoomOut : event.key === "0" ? reset : null;
|
|
89
|
+
if (step === null) return;
|
|
90
|
+
event.preventDefault();
|
|
91
|
+
step();
|
|
92
|
+
};
|
|
93
|
+
window.addEventListener("keydown", onKeyDown);
|
|
94
|
+
return () => window.removeEventListener("keydown", onKeyDown);
|
|
95
|
+
}, [
|
|
96
|
+
reset,
|
|
97
|
+
shortcuts,
|
|
98
|
+
zoomIn,
|
|
99
|
+
zoomOut
|
|
100
|
+
]);
|
|
101
|
+
return {
|
|
102
|
+
zoom,
|
|
103
|
+
setZoom,
|
|
104
|
+
zoomIn,
|
|
105
|
+
zoomOut,
|
|
106
|
+
reset,
|
|
107
|
+
min,
|
|
108
|
+
max,
|
|
109
|
+
step
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
export { MAX_ZOOM, MIN_ZOOM, ZOOM_STEP, useZoom };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
//#region src/date/_glyphs.tsx
|
|
4
|
+
/**
|
|
5
|
+
* Glyphs for the date group.
|
|
6
|
+
*
|
|
7
|
+
* Drawn inline for the same reason as `forms/_glyphs.tsx`: a caret on a month
|
|
8
|
+
* nav and a grid on a picker trigger should not put an icon dependency on the
|
|
9
|
+
* render path, and hand-set strokes stay hairline-thin at the 8–12px sizes
|
|
10
|
+
* console density asks for. `currentColor` everywhere.
|
|
11
|
+
*
|
|
12
|
+
* @internal Not part of the public API.
|
|
13
|
+
*/
|
|
14
|
+
/** A month grid — the trigger mark of every date control. */
|
|
15
|
+
function CalendarGlyph(props) {
|
|
16
|
+
return /* @__PURE__ */ jsxs("svg", {
|
|
17
|
+
viewBox: "0 0 16 16",
|
|
18
|
+
fill: "none",
|
|
19
|
+
stroke: "currentColor",
|
|
20
|
+
strokeWidth: "1.25",
|
|
21
|
+
strokeLinecap: "round",
|
|
22
|
+
"aria-hidden": "true",
|
|
23
|
+
...props,
|
|
24
|
+
children: [/* @__PURE__ */ jsx("rect", {
|
|
25
|
+
x: "2.5",
|
|
26
|
+
y: "3.5",
|
|
27
|
+
width: "11",
|
|
28
|
+
height: "10",
|
|
29
|
+
rx: "1"
|
|
30
|
+
}), /* @__PURE__ */ jsx("path", { d: "M2.5 6.5h11M5.5 2v3M10.5 2v3" })]
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { CalendarGlyph };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { controlGroupFocusClasses, controlVariants } from "../forms/_chassis.js";
|
|
3
|
+
import { ariaClassName } from "../lib/aria-class.js";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { DateInput, DateSegment } from "react-aria-components";
|
|
7
|
+
//#region src/date/_segments.tsx
|
|
8
|
+
/**
|
|
9
|
+
* The shared skin of the two segmented React Aria fields, `DateField` and
|
|
10
|
+
* `TimeField`.
|
|
11
|
+
*
|
|
12
|
+
* Both render the same part — a `DateInput` of `DateSegment`s — so the recipe
|
|
13
|
+
* lives here once. The group takes the recessed control chassis, resized to
|
|
14
|
+
* `w-auto` (a date field is exactly as wide as a date, unlike a text input that
|
|
15
|
+
* fills its column), and each segment is a focus target in its own right,
|
|
16
|
+
* highlighted with the solid accent because a segment *is* the selection rather
|
|
17
|
+
* than a hover.
|
|
18
|
+
*
|
|
19
|
+
* @internal Not part of the public API.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* The chassis, resized for a control whose width comes from its content.
|
|
23
|
+
*
|
|
24
|
+
* The chassis lights its rim on `:focus`, which this group can never match —
|
|
25
|
+
* React Aria keeps DOM focus on the individual segment and reports the group's
|
|
26
|
+
* state as `data-focus-within`. Without the extra variant the inherited
|
|
27
|
+
* `focus:border-border-strong` is a rule that cannot fire, and a segmented field
|
|
28
|
+
* would be the only control in the system whose rim stays dead while it is being
|
|
29
|
+
* typed into.
|
|
30
|
+
*
|
|
31
|
+
* A segmented field is a grouped control in every sense that matters, so it
|
|
32
|
+
* takes the grouped contract whole rather than a rim of its own invention:
|
|
33
|
+
* `controlGroupFocusClasses` strengthens the rim for any focus inside and paints
|
|
34
|
+
* the single flush `--cue-focus` ring only for a `:focus-visible` descendant.
|
|
35
|
+
* React Aria makes each value segment `contentEditable`, and a typing surface
|
|
36
|
+
* matches `:focus-visible` on a pointer click as well as on Tab, so the ring
|
|
37
|
+
* lands whenever the field is actually being edited. `data-focus-within` is kept
|
|
38
|
+
* beside the native `:focus-within` rim because it is the state React Aria
|
|
39
|
+
* documents, and the two agree on the same colour either way.
|
|
40
|
+
*/
|
|
41
|
+
function segmentGroupClasses(size) {
|
|
42
|
+
return cn(controlVariants({ size }), "inline-flex w-auto items-center whitespace-nowrap data-[focus-within]:border-border-strong", controlGroupFocusClasses);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* One segment. `data-focused` — not `:focus` — carries the highlight, because
|
|
46
|
+
* React Aria keeps DOM focus on the segment element and reports the active one
|
|
47
|
+
* through data attributes.
|
|
48
|
+
*/
|
|
49
|
+
const segmentClasses = "rounded-[2px] px-[0.0625rem] tabular-nums outline-none data-[focused]:bg-accent data-[focused]:text-accent-fg data-[placeholder]:text-fg-subtle data-[disabled]:opacity-40 data-[type=literal]:px-0 data-[type=literal]:text-fg-subtle";
|
|
50
|
+
/**
|
|
51
|
+
* The `DateInput` children render prop, wired to the segment skin.
|
|
52
|
+
*
|
|
53
|
+
* `suppressHydrationWarning`, and it is not papering over a bug of ours. A
|
|
54
|
+
* segment's text comes from `Intl.DateTimeFormat`, which resolves against the
|
|
55
|
+
* *ICU data of whatever is rendering* — and a server and a browser update their
|
|
56
|
+
* ICU on different schedules. Today, `en-US` at 7:30 PM is `7:30\u202FPM` from
|
|
57
|
+
* Node 24 (CLDR 48) and `7:30\u0020PM` from Chrome 151: one narrow no-break
|
|
58
|
+
* space against one ordinary one, identical on screen, different to React.
|
|
59
|
+
*
|
|
60
|
+
* Without this, that one character is a hydration mismatch, and a mismatch is
|
|
61
|
+
* not a warning — React throws away the server's HTML and re-renders the whole
|
|
62
|
+
* document on the client. That re-mounts `<html>`, which React treats as a
|
|
63
|
+
* singleton and therefore strips every attribute off, including the four the
|
|
64
|
+
* pre-paint script wrote. Measured on this repository's own docs site: 208 ms
|
|
65
|
+
* with no theme, density, mode or pairing on the document, 6,423 elements
|
|
66
|
+
* resolving to a monospace nobody selected, and 40 KB of webfont fetched for it
|
|
67
|
+
* that painted zero glyphs.
|
|
68
|
+
*
|
|
69
|
+
* So the mismatch is declared expected, on the one element whose text can
|
|
70
|
+
* legitimately differ. The server's spelling of the space is kept; nobody can
|
|
71
|
+
* see which one it is.
|
|
72
|
+
*
|
|
73
|
+
* It needs the extra `<span>` because React Aria runs its props through
|
|
74
|
+
* `filterDOMProps`, which drops `suppressHydrationWarning` before the segment's
|
|
75
|
+
* own element ever sees it — and React only honours the flag on the element
|
|
76
|
+
* that directly contains the differing text. Only **literal** segments are
|
|
77
|
+
* wrapped: they are the separators, `aria-hidden` and not focusable, while the
|
|
78
|
+
* value segments React Aria makes `contentEditable` are left exactly as they
|
|
79
|
+
* were. Digits and `AM`/`PM` are spelled the same by every ICU there has been;
|
|
80
|
+
* it is only ever the space between them that moves.
|
|
81
|
+
*/
|
|
82
|
+
function renderSegment(segment) {
|
|
83
|
+
return /* @__PURE__ */ jsx(DateSegment, {
|
|
84
|
+
segment,
|
|
85
|
+
className: segmentClasses,
|
|
86
|
+
children: ({ text }) => segment.type === "literal" ? /* @__PURE__ */ jsx("span", {
|
|
87
|
+
suppressHydrationWarning: true,
|
|
88
|
+
children: text
|
|
89
|
+
}) : text
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/** The `DateInput` both fields render, dressed and wired to the segment skin. */
|
|
93
|
+
function SegmentGroup({ size, className }) {
|
|
94
|
+
return /* @__PURE__ */ jsx(DateInput, {
|
|
95
|
+
"data-slot": "date-input",
|
|
96
|
+
className: ariaClassName(segmentGroupClasses(size), className),
|
|
97
|
+
children: renderSegment
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
//#endregion
|
|
101
|
+
export { SegmentGroup, renderSegment, segmentClasses, segmentGroupClasses };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { controlVariants } from "../forms/_chassis.js";
|
|
3
|
+
//#region src/date/_trigger.ts
|
|
4
|
+
/**
|
|
5
|
+
* The shared skin of the two popover-backed date controls, `DatePicker` and
|
|
6
|
+
* `DateRangePicker`.
|
|
7
|
+
*
|
|
8
|
+
* Both are the same shape: a chassis-styled button that reads out a formatted
|
|
9
|
+
* date and opens a calendar. Encoding the trigger once keeps the pair from
|
|
10
|
+
* drifting, and keeps "what a value-carrying trigger looks like" a single
|
|
11
|
+
* decision — the same reason `_listbox.ts` exists for the filterable family.
|
|
12
|
+
*
|
|
13
|
+
* @internal Not part of the public API.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* A control-chassis button: recessed fill, hairline rim, density height ladder,
|
|
17
|
+
* with the value on the left and its glyph pinned right.
|
|
18
|
+
*/
|
|
19
|
+
function dateTriggerClasses(size) {
|
|
20
|
+
return cn(controlVariants({ size }), "flex cursor-pointer items-center justify-between gap-(--cue-space-2) text-left");
|
|
21
|
+
}
|
|
22
|
+
/** The value readout. Placeholder copy is one ink rung down. */
|
|
23
|
+
const dateTriggerValueClasses = "truncate tabular-nums";
|
|
24
|
+
/** Placeholder ink, applied to the readout when there is nothing to read. */
|
|
25
|
+
const dateTriggerPlaceholderClasses = "text-fg-subtle";
|
|
26
|
+
/** The trailing glyph — never a control, so it never takes the pointer. */
|
|
27
|
+
const dateTriggerGlyphClasses = "size-icon-sm shrink-0 text-fg-subtle";
|
|
28
|
+
/** Padding of the popup around a calendar: one unit tighter than a popover's. */
|
|
29
|
+
const datePopupClasses = "p-(--cue-space-3)";
|
|
30
|
+
//#endregion
|
|
31
|
+
export { datePopupClasses, dateTriggerClasses, dateTriggerGlyphClasses, dateTriggerPlaceholderClasses, dateTriggerValueClasses };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { DayPickerProps } from "react-day-picker";
|
|
3
|
+
//#region src/date/calendar.d.ts
|
|
4
|
+
/** Everything react-day-picker takes; the skin is applied on top. */
|
|
5
|
+
type CalendarProps = DayPickerProps;
|
|
6
|
+
/**
|
|
7
|
+
* A month grid, on react-day-picker v10.
|
|
8
|
+
*
|
|
9
|
+
* Selection modes, keyboard navigation, the ARIA grid wiring and the date maths
|
|
10
|
+
* (date-fns under the hood) are the library's; this layer supplies the token
|
|
11
|
+
* skin and nothing else, so upgrading the library never means re-deriving
|
|
12
|
+
* behaviour. Every `classNames` slot the caller passes is merged *over* the
|
|
13
|
+
* skin rather than replacing it.
|
|
14
|
+
*
|
|
15
|
+
* `react-day-picker` and `date-fns` are **optional peers**: import this from
|
|
16
|
+
* `@cueplusplus/ui/date`, never from the core barrel.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* <Calendar mode="single" selected={date} onSelect={setDate} />
|
|
20
|
+
* @example
|
|
21
|
+
* <Calendar mode="range" numberOfMonths={2} selected={range} onSelect={setRange} />
|
|
22
|
+
*/
|
|
23
|
+
declare function Calendar(props: CalendarProps): React.JSX.Element;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { Calendar, CalendarProps };
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { DayPicker } from "react-day-picker";
|
|
6
|
+
//#region src/date/calendar.tsx
|
|
7
|
+
/**
|
|
8
|
+
* The token skin for every element react-day-picker renders.
|
|
9
|
+
*
|
|
10
|
+
* react-day-picker ships its own stylesheet; this system never loads it. Each
|
|
11
|
+
* key below is one `UI` / `DayFlag` / `SelectionState` slot, dressed from the
|
|
12
|
+
* same tokens as the rest of the kit: the day cell is one rung of the control
|
|
13
|
+
* ladder (`size-control-sm`), the caption is a mono micro label, the selected
|
|
14
|
+
* day takes the solid accent and a range's middle takes `accent-soft` — the
|
|
15
|
+
* same "soft tint for a span, solid for the thing you picked" rule the menus
|
|
16
|
+
* use.
|
|
17
|
+
*
|
|
18
|
+
* Written as a `Partial<ClassNames>` rather than sprayed across the component
|
|
19
|
+
* so a caller can merge over any single slot (see {@link mergeCalendarClasses}).
|
|
20
|
+
*/
|
|
21
|
+
const CALENDAR_CLASSES = {
|
|
22
|
+
root: "font-mono text-(length:--cue-text-ui) text-fg",
|
|
23
|
+
months: "relative flex flex-wrap items-start gap-(--cue-space-5)",
|
|
24
|
+
month: "flex flex-col gap-(--cue-space-2)",
|
|
25
|
+
month_caption: "flex h-control-sm items-center justify-center",
|
|
26
|
+
caption_label: "font-mono text-(length:--cue-text-label) tracking-[0.15em] text-fg-subtle uppercase",
|
|
27
|
+
nav: "absolute inset-x-0 top-0 flex h-control-sm items-center justify-between",
|
|
28
|
+
button_previous: "flex size-control-sm cursor-pointer items-center justify-center rounded-(--radius-control) border-0 bg-transparent p-0 text-fg-subtle outline-none transition-colors duration-150 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none",
|
|
29
|
+
button_next: "flex size-control-sm cursor-pointer items-center justify-center rounded-(--radius-control) border-0 bg-transparent p-0 text-fg-subtle outline-none transition-colors duration-150 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none",
|
|
30
|
+
chevron: "size-icon-sm fill-current",
|
|
31
|
+
month_grid: "border-collapse border-spacing-0",
|
|
32
|
+
weekdays: "",
|
|
33
|
+
weekday: "size-control-sm p-0 text-center align-middle font-mono text-(length:--cue-text-micro) font-normal tracking-[0.1em] text-fg-subtle uppercase",
|
|
34
|
+
week: "",
|
|
35
|
+
day: "p-0 text-center align-middle",
|
|
36
|
+
day_button: "size-control-sm cursor-pointer rounded-(--radius-control) border-0 bg-transparent p-0 font-mono text-(length:--cue-text-ui) tabular-nums text-fg-muted outline-none transition-colors duration-150 hover:bg-surface-3 hover:text-fg focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-30 motion-reduce:transition-none",
|
|
37
|
+
today: "[&_button]:font-medium [&_button]:ring-1 [&_button]:ring-inset [&_button]:ring-accent/60",
|
|
38
|
+
outside: "[&_button]:text-fg-subtle [&_button]:opacity-50",
|
|
39
|
+
disabled: "opacity-40",
|
|
40
|
+
hidden: "invisible",
|
|
41
|
+
selected: "bg-accent text-accent-fg [&_button]:bg-accent [&_button]:text-accent-fg [&_button]:hover:bg-accent-hover",
|
|
42
|
+
range_start: "rounded-l-(--radius-control)",
|
|
43
|
+
range_end: "rounded-r-(--radius-control)",
|
|
44
|
+
range_middle: "rounded-none bg-accent-soft text-fg [&_button]:rounded-none [&_button]:bg-transparent [&_button]:text-fg",
|
|
45
|
+
footer: "pt-(--cue-space-2) font-mono text-(length:--cue-text-label) text-fg-muted",
|
|
46
|
+
dropdowns: "flex items-center gap-(--cue-space-2)",
|
|
47
|
+
dropdown_root: "relative inline-flex items-center",
|
|
48
|
+
dropdown: "h-control-sm cursor-pointer rounded-(--radius-control) border border-border bg-sunken px-(--cue-space-2) font-mono text-(length:--cue-text-label) text-fg outline-none focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1 focus-visible:outline-accent",
|
|
49
|
+
week_number: "size-control-sm text-center align-middle font-mono text-(length:--cue-text-micro) tabular-nums text-fg-subtle",
|
|
50
|
+
week_number_header: "size-control-sm text-center align-middle font-mono text-(length:--cue-text-micro) text-fg-subtle"
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Merge the caller's per-slot class names over the skin with `cn`, so an
|
|
54
|
+
* override replaces only the utilities it conflicts with instead of wiping the
|
|
55
|
+
* whole slot. Mirrors how every other component in the kit treats `className`.
|
|
56
|
+
*/
|
|
57
|
+
function mergeCalendarClasses(overrides) {
|
|
58
|
+
if (overrides === void 0) return CALENDAR_CLASSES;
|
|
59
|
+
const merged = { ...CALENDAR_CLASSES };
|
|
60
|
+
for (const [slot, value] of Object.entries(overrides)) merged[slot] = cn(CALENDAR_CLASSES[slot], value);
|
|
61
|
+
return merged;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The calendar's root. Swapped in only to stamp `data-slot` — react-day-picker
|
|
65
|
+
* does not forward unknown props to the element it renders.
|
|
66
|
+
*/
|
|
67
|
+
function CalendarRoot({ rootRef, ...elementProps }) {
|
|
68
|
+
return /* @__PURE__ */ jsx("div", {
|
|
69
|
+
ref: rootRef,
|
|
70
|
+
"data-slot": "calendar",
|
|
71
|
+
...elementProps
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/** react-day-picker's chevron slot, restyled to the kit's hairline caret. */
|
|
75
|
+
function CalendarChevron({ orientation = "left", className, size }) {
|
|
76
|
+
const rotation = {
|
|
77
|
+
left: 90,
|
|
78
|
+
right: -90,
|
|
79
|
+
up: 180,
|
|
80
|
+
down: 0
|
|
81
|
+
}[orientation];
|
|
82
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
83
|
+
viewBox: "0 0 16 16",
|
|
84
|
+
width: size,
|
|
85
|
+
height: size,
|
|
86
|
+
fill: "currentColor",
|
|
87
|
+
"aria-hidden": "true",
|
|
88
|
+
className,
|
|
89
|
+
style: { transform: `rotate(${rotation}deg)` },
|
|
90
|
+
children: /* @__PURE__ */ jsx("path", { d: "M4 6h8l-4 4.5z" })
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* A month grid, on react-day-picker v10.
|
|
95
|
+
*
|
|
96
|
+
* Selection modes, keyboard navigation, the ARIA grid wiring and the date maths
|
|
97
|
+
* (date-fns under the hood) are the library's; this layer supplies the token
|
|
98
|
+
* skin and nothing else, so upgrading the library never means re-deriving
|
|
99
|
+
* behaviour. Every `classNames` slot the caller passes is merged *over* the
|
|
100
|
+
* skin rather than replacing it.
|
|
101
|
+
*
|
|
102
|
+
* `react-day-picker` and `date-fns` are **optional peers**: import this from
|
|
103
|
+
* `@cueplusplus/ui/date`, never from the core barrel.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* <Calendar mode="single" selected={date} onSelect={setDate} />
|
|
107
|
+
* @example
|
|
108
|
+
* <Calendar mode="range" numberOfMonths={2} selected={range} onSelect={setRange} />
|
|
109
|
+
*/
|
|
110
|
+
function Calendar(props) {
|
|
111
|
+
const { className, classNames, showOutsideDays = true, components, ...rest } = props;
|
|
112
|
+
return /* @__PURE__ */ jsx(DayPicker, {
|
|
113
|
+
showOutsideDays,
|
|
114
|
+
className: cn("inline-block", className),
|
|
115
|
+
classNames: mergeCalendarClasses(classNames),
|
|
116
|
+
components: {
|
|
117
|
+
Root: CalendarRoot,
|
|
118
|
+
Chevron: CalendarChevron,
|
|
119
|
+
...components
|
|
120
|
+
},
|
|
121
|
+
...rest
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//#endregion
|
|
125
|
+
export { Calendar };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { FormControlSize } from "../forms/_chassis.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { DateFieldProps, DateInputProps, DateValue } from "react-aria-components";
|
|
4
|
+
//#region src/date/date-field.d.ts
|
|
5
|
+
interface DateFieldProps$1<T extends DateValue = DateValue> extends Omit<DateFieldProps<T>, "children"> {
|
|
6
|
+
/** Rung of the control ladder. Defaults to `"md"`. */
|
|
7
|
+
size?: FormControlSize;
|
|
8
|
+
/** Extra classes for the segment group itself. */
|
|
9
|
+
inputClassName?: DateInputProps["className"];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A typed date, one segment at a time — day, month, year — with no calendar.
|
|
13
|
+
*
|
|
14
|
+
* The right control when the user already knows the date: typing `08172026` is
|
|
15
|
+
* faster than three clicks, and a segmented field cannot produce an ambiguous
|
|
16
|
+
* `03/04`. Wraps React Aria's `DateField`, so locale-aware segment order,
|
|
17
|
+
* arrow-key stepping, overflow between segments and the `spinbutton` ARIA
|
|
18
|
+
* wiring are the library's; this layer restyles it onto the form chassis.
|
|
19
|
+
*
|
|
20
|
+
* Values are `@internationalized/date` objects (`CalendarDate`,
|
|
21
|
+
* `CalendarDateTime`, `ZonedDateTime`) — not `Date`, which cannot represent
|
|
22
|
+
* "a day" without dragging a timezone along.
|
|
23
|
+
*
|
|
24
|
+
* `react-aria-components` is an **optional peer**: import this from
|
|
25
|
+
* `@cueplusplus/ui/date`.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* <DateField aria-label="Go live" value={date} onChange={setDate} />
|
|
29
|
+
* @example
|
|
30
|
+
* <DateField label={undefined} aria-label="Cutoff" granularity="minute" size="sm" />
|
|
31
|
+
*/
|
|
32
|
+
declare function DateField$1<T extends DateValue = DateValue>({ size, className, inputClassName, ...fieldProps }: DateFieldProps$1<T>): React.JSX.Element;
|
|
33
|
+
//#endregion
|
|
34
|
+
export { DateField$1 as DateField, DateFieldProps$1 as DateFieldProps, type DateValue };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { ariaClassName } from "../lib/aria-class.js";
|
|
3
|
+
import { SegmentGroup } from "./_segments.js";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { DateField } from "react-aria-components";
|
|
7
|
+
//#region src/date/date-field.tsx
|
|
8
|
+
/**
|
|
9
|
+
* A typed date, one segment at a time — day, month, year — with no calendar.
|
|
10
|
+
*
|
|
11
|
+
* The right control when the user already knows the date: typing `08172026` is
|
|
12
|
+
* faster than three clicks, and a segmented field cannot produce an ambiguous
|
|
13
|
+
* `03/04`. Wraps React Aria's `DateField`, so locale-aware segment order,
|
|
14
|
+
* arrow-key stepping, overflow between segments and the `spinbutton` ARIA
|
|
15
|
+
* wiring are the library's; this layer restyles it onto the form chassis.
|
|
16
|
+
*
|
|
17
|
+
* Values are `@internationalized/date` objects (`CalendarDate`,
|
|
18
|
+
* `CalendarDateTime`, `ZonedDateTime`) — not `Date`, which cannot represent
|
|
19
|
+
* "a day" without dragging a timezone along.
|
|
20
|
+
*
|
|
21
|
+
* `react-aria-components` is an **optional peer**: import this from
|
|
22
|
+
* `@cueplusplus/ui/date`.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* <DateField aria-label="Go live" value={date} onChange={setDate} />
|
|
26
|
+
* @example
|
|
27
|
+
* <DateField label={undefined} aria-label="Cutoff" granularity="minute" size="sm" />
|
|
28
|
+
*/
|
|
29
|
+
function DateField$1({ size, className, inputClassName, ...fieldProps }) {
|
|
30
|
+
return /* @__PURE__ */ jsx(DateField, {
|
|
31
|
+
"data-slot": "date-field",
|
|
32
|
+
className: ariaClassName("inline-flex flex-col gap-(--cue-space-1)", className),
|
|
33
|
+
...fieldProps,
|
|
34
|
+
children: /* @__PURE__ */ jsx(SegmentGroup, {
|
|
35
|
+
size,
|
|
36
|
+
className: inputClassName
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
export { DateField$1 as DateField };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { FormControlSize } from "../forms/_chassis.js";
|
|
2
|
+
import { CalendarProps } from "./calendar.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
//#region src/date/date-picker.d.ts
|
|
5
|
+
/** The calendar knobs a picker leaves open; selection is the picker's own job. */
|
|
6
|
+
type DatePickerCalendarProps = Omit<CalendarProps, "mode" | "selected" | "onSelect" | "required">;
|
|
7
|
+
interface DatePickerProps {
|
|
8
|
+
/** The chosen day. Use with `onValueChange` for a controlled field. */
|
|
9
|
+
value?: Date | null;
|
|
10
|
+
/** Initially chosen day for an uncontrolled field. */
|
|
11
|
+
defaultValue?: Date | null;
|
|
12
|
+
/** Called with the new day, or `undefined` when the day is unpicked. */
|
|
13
|
+
onValueChange?: (value: Date | undefined) => void;
|
|
14
|
+
/** Read out while nothing is chosen. Defaults to `"Pick a date"`. */
|
|
15
|
+
placeholder?: string;
|
|
16
|
+
/** date-fns pattern for the readout. Defaults to `"d MMM yyyy"`. */
|
|
17
|
+
dateFormat?: string;
|
|
18
|
+
/** Rung of the control ladder. Defaults to `"md"`. */
|
|
19
|
+
size?: FormControlSize;
|
|
20
|
+
/** Prevent opening and grey the trigger out. */
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
/** Paint the danger rim — pair it with a `FieldError`. */
|
|
23
|
+
invalid?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Name for the hidden input, when the field is part of a form. The submitted
|
|
26
|
+
* value is the ISO date (`yyyy-MM-dd`), never the formatted readout.
|
|
27
|
+
*/
|
|
28
|
+
name?: string;
|
|
29
|
+
/** Id forwarded to the trigger. */
|
|
30
|
+
id?: string;
|
|
31
|
+
/** Accessible name for the trigger, when no `FieldLabel` names it. */
|
|
32
|
+
"aria-label"?: string;
|
|
33
|
+
/** Id of the element naming the trigger. */
|
|
34
|
+
"aria-labelledby"?: string;
|
|
35
|
+
/** Extra classes for the trigger. */
|
|
36
|
+
className?: string;
|
|
37
|
+
/** Extra classes for the popup surface. */
|
|
38
|
+
popupClassName?: string;
|
|
39
|
+
/** Everything else the calendar takes — month bounds, disabled days, locale. */
|
|
40
|
+
calendarProps?: DatePickerCalendarProps;
|
|
41
|
+
/** Open state, for a controlled popover. */
|
|
42
|
+
open?: boolean;
|
|
43
|
+
/** Initial open state. */
|
|
44
|
+
defaultOpen?: boolean;
|
|
45
|
+
/** Called when the popover opens or closes. */
|
|
46
|
+
onOpenChange?: (open: boolean) => void;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A single day, picked from a calendar in a popover.
|
|
50
|
+
*
|
|
51
|
+
* The trigger is a control-chassis button carrying the formatted day, so a date
|
|
52
|
+
* field lines up with the inputs beside it at every density. The calendar is
|
|
53
|
+
* `Calendar` (react-day-picker) inside the kit's `Popover`, which means it is
|
|
54
|
+
* portalled through the portal contract and renders at the theme and density of
|
|
55
|
+
* the tree it was opened from — not the body's.
|
|
56
|
+
*
|
|
57
|
+
* Picking a day closes the popup: a single-date picker has nothing left to ask.
|
|
58
|
+
*
|
|
59
|
+
* `react-day-picker` and `date-fns` are **optional peers**: import this from
|
|
60
|
+
* `@cueplusplus/ui/date`.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* <DatePicker aria-label="Show date" value={date} onValueChange={setDate} />
|
|
64
|
+
* @example
|
|
65
|
+
* <DatePicker name="showDate" dateFormat="EEE d MMM" calendarProps={{ disabled: past }} />
|
|
66
|
+
*/
|
|
67
|
+
declare function DatePicker({ value, defaultValue, onValueChange, placeholder, dateFormat, size, disabled, invalid, name, id, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, className, popupClassName, calendarProps, open, defaultOpen, onOpenChange }: DatePickerProps): React.JSX.Element;
|
|
68
|
+
//#endregion
|
|
69
|
+
export { DatePicker, DatePickerCalendarProps, DatePickerProps };
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { Popover } from "../overlays/popover.js";
|
|
4
|
+
import { Calendar } from "./calendar.js";
|
|
5
|
+
import { CalendarGlyph } from "./_glyphs.js";
|
|
6
|
+
import { datePopupClasses, dateTriggerClasses, dateTriggerGlyphClasses, dateTriggerValueClasses } from "./_trigger.js";
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { format } from "date-fns";
|
|
10
|
+
//#region src/date/date-picker.tsx
|
|
11
|
+
/** The wire format for a submitted date: sortable, unambiguous, locale-free. */
|
|
12
|
+
const ISO_DATE = "yyyy-MM-dd";
|
|
13
|
+
/**
|
|
14
|
+
* A single day, picked from a calendar in a popover.
|
|
15
|
+
*
|
|
16
|
+
* The trigger is a control-chassis button carrying the formatted day, so a date
|
|
17
|
+
* field lines up with the inputs beside it at every density. The calendar is
|
|
18
|
+
* `Calendar` (react-day-picker) inside the kit's `Popover`, which means it is
|
|
19
|
+
* portalled through the portal contract and renders at the theme and density of
|
|
20
|
+
* the tree it was opened from — not the body's.
|
|
21
|
+
*
|
|
22
|
+
* Picking a day closes the popup: a single-date picker has nothing left to ask.
|
|
23
|
+
*
|
|
24
|
+
* `react-day-picker` and `date-fns` are **optional peers**: import this from
|
|
25
|
+
* `@cueplusplus/ui/date`.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* <DatePicker aria-label="Show date" value={date} onValueChange={setDate} />
|
|
29
|
+
* @example
|
|
30
|
+
* <DatePicker name="showDate" dateFormat="EEE d MMM" calendarProps={{ disabled: past }} />
|
|
31
|
+
*/
|
|
32
|
+
function DatePicker({ value, defaultValue, onValueChange, placeholder = "Pick a date", dateFormat = "d MMM yyyy", size, disabled, invalid, name, id, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, className, popupClassName, calendarProps, open, defaultOpen, onOpenChange }) {
|
|
33
|
+
const [uncontrolled, setUncontrolled] = React.useState(defaultValue ?? void 0);
|
|
34
|
+
const selected = value === void 0 ? uncontrolled : value ?? void 0;
|
|
35
|
+
const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen ?? false);
|
|
36
|
+
const isOpen = open ?? uncontrolledOpen;
|
|
37
|
+
const setOpen = (next) => {
|
|
38
|
+
if (open === void 0) setUncontrolledOpen(next);
|
|
39
|
+
onOpenChange?.(next);
|
|
40
|
+
};
|
|
41
|
+
const select = (next) => {
|
|
42
|
+
if (value === void 0) setUncontrolled(next);
|
|
43
|
+
onValueChange?.(next);
|
|
44
|
+
setOpen(false);
|
|
45
|
+
};
|
|
46
|
+
return /* @__PURE__ */ jsxs(Popover.Root, {
|
|
47
|
+
open: isOpen,
|
|
48
|
+
onOpenChange: setOpen,
|
|
49
|
+
children: [
|
|
50
|
+
/* @__PURE__ */ jsxs(Popover.Trigger, {
|
|
51
|
+
render: /* @__PURE__ */ jsx("button", {
|
|
52
|
+
type: "button",
|
|
53
|
+
id,
|
|
54
|
+
disabled,
|
|
55
|
+
"aria-label": ariaLabel,
|
|
56
|
+
"aria-labelledby": ariaLabelledBy,
|
|
57
|
+
"data-slot": "date-picker-trigger",
|
|
58
|
+
"data-empty": selected === void 0 ? "true" : void 0,
|
|
59
|
+
"data-invalid": invalid ? "" : void 0,
|
|
60
|
+
className: cn(dateTriggerClasses(size), className)
|
|
61
|
+
}),
|
|
62
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
63
|
+
className: cn(dateTriggerValueClasses, selected === void 0 && "text-fg-subtle"),
|
|
64
|
+
children: selected === void 0 ? placeholder : format(selected, dateFormat)
|
|
65
|
+
}), /* @__PURE__ */ jsx(CalendarGlyph, { className: dateTriggerGlyphClasses })]
|
|
66
|
+
}),
|
|
67
|
+
/* @__PURE__ */ jsx(Popover.Content, {
|
|
68
|
+
className: cn(datePopupClasses, popupClassName),
|
|
69
|
+
align: "start",
|
|
70
|
+
"data-slot": "date-picker-popup",
|
|
71
|
+
children: /* @__PURE__ */ jsx(Calendar, {
|
|
72
|
+
...calendarProps,
|
|
73
|
+
mode: "single",
|
|
74
|
+
selected,
|
|
75
|
+
onSelect: select,
|
|
76
|
+
defaultMonth: calendarProps?.defaultMonth ?? selected,
|
|
77
|
+
autoFocus: true
|
|
78
|
+
})
|
|
79
|
+
}),
|
|
80
|
+
name === void 0 ? null : /* @__PURE__ */ jsx("input", {
|
|
81
|
+
type: "hidden",
|
|
82
|
+
name,
|
|
83
|
+
value: selected === void 0 ? "" : format(selected, ISO_DATE)
|
|
84
|
+
})
|
|
85
|
+
]
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
//#endregion
|
|
89
|
+
export { DatePicker };
|