@cueplusplus/ui 0.15.0 → 0.17.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 +1083 -0
- package/README.md +26 -0
- package/dist/agent-runtime/tool-call-card.js +7 -3
- package/dist/brand/_chassis.d.ts +1 -1
- package/dist/brand/cue-mark.d.ts +1 -1
- package/dist/brand/cue-mark.js +1 -1
- package/dist/charts/ramps.js +1 -1
- package/dist/chat/agent-pile.js +2 -1
- package/dist/chat/ask-box.js +4 -3
- package/dist/chat/delegation-card.js +3 -2
- package/dist/chat/message-list.js +4 -2
- package/dist/chat/message.js +17 -7
- package/dist/chrome/_edge-scroller.js +2 -1
- package/dist/chrome/_status-bar.js +9 -3
- package/dist/chrome/_tabs-scroll.d.ts +17 -1
- package/dist/chrome/_tabs-scroll.js +20 -3
- package/dist/chrome/app-bar.js +10 -3
- package/dist/chrome/app-shell.js +2 -1
- package/dist/chrome/band.d.ts +18 -12
- package/dist/chrome/band.js +19 -31
- package/dist/chrome/eyebrow.d.ts +13 -5
- package/dist/chrome/eyebrow.js +18 -7
- package/dist/chrome/footer.d.ts +5 -0
- package/dist/chrome/footer.js +14 -3
- package/dist/chrome/navigation-menu.js +4 -2
- package/dist/chrome/page-shell.js +8 -5
- package/dist/chrome/panel.d.ts +5 -2
- package/dist/chrome/panel.js +9 -4
- package/dist/chrome/row.js +6 -3
- package/dist/chrome/scroll-area.js +2 -1
- package/dist/chrome/section-header.js +13 -4
- package/dist/chrome/segmented-control.js +12 -3
- package/dist/chrome/status-bar.js +2 -1
- package/dist/chrome/tabs.js +11 -3
- package/dist/chrome/toolbar.js +2 -1
- package/dist/chrome/tree.js +3 -2
- package/dist/color/_thumb.js +9 -3
- package/dist/color/color-area.js +1 -1
- package/dist/color/color-field.d.ts +2 -1
- package/dist/color/color-picker.d.ts +2 -1
- package/dist/color/color-swatch.js +1 -1
- package/dist/configurator/_overrides.js +13 -4
- package/dist/configurator/configurator.js +4 -1
- package/dist/configurator/export-dialog.js +5 -2
- package/dist/configurator/panel-sections.js +6 -2
- package/dist/configurator/token-editor.js +4 -1
- package/dist/date/calendar.js +12 -8
- package/dist/date/date-field.d.ts +2 -1
- package/dist/date/date-picker.d.ts +2 -1
- package/dist/date/date-range-picker.d.ts +2 -1
- package/dist/date/time-field.d.ts +2 -1
- package/dist/dmx/channel-matrix.js +3 -2
- package/dist/dmx/dmx-bar.js +1 -1
- package/dist/dmx/dmx-strip.js +1 -1
- package/dist/dmx/universe-grid.js +3 -2
- package/dist/elements/activity-graph.js +3 -3
- package/dist/elements/agent-card.js +3 -3
- package/dist/elements/approval-card.js +3 -3
- package/dist/elements/artifact-card.js +2 -2
- package/dist/elements/background-inbox.js +2 -2
- package/dist/elements/canvas-split.js +2 -2
- package/dist/elements/chart.js +1 -1
- package/dist/elements/chat-panel.js +2 -2
- package/dist/elements/checkpoint-history.js +2 -2
- package/dist/elements/clamp.js +2 -1
- package/dist/elements/code-diff.js +1 -1
- package/dist/elements/code-runner.js +1 -1
- package/dist/elements/command-palette.js +6 -5
- package/dist/elements/comparison-card.js +2 -2
- package/dist/elements/composer.js +9 -8
- package/dist/elements/computer-use.js +1 -1
- package/dist/elements/confidence-marker.js +2 -1
- package/dist/elements/connection-state.js +1 -1
- package/dist/elements/context-breakdown.js +1 -1
- package/dist/elements/context-usage.js +1 -1
- package/dist/elements/conversation-search.js +4 -3
- package/dist/elements/cost-meter.js +1 -1
- package/dist/elements/data-table.js +2 -2
- package/dist/elements/day-separator.js +1 -1
- package/dist/elements/diagram.js +1 -1
- package/dist/elements/document-reference.js +3 -3
- package/dist/elements/draft-restore.js +1 -1
- package/dist/elements/edit-message.js +4 -3
- package/dist/elements/elements.css +26 -5
- package/dist/elements/elicitation-form.js +3 -3
- package/dist/elements/empty-state.js +2 -1
- package/dist/elements/error-state.js +1 -1
- package/dist/elements/feedback-dialog.js +4 -3
- package/dist/elements/file-tree.js +2 -2
- package/dist/elements/flow-graph.js +2 -2
- package/dist/elements/guardrail-notice.js +3 -3
- package/dist/elements/image-generation.js +1 -1
- package/dist/elements/inline-citation.js +3 -3
- package/dist/elements/job-progress.js +3 -3
- package/dist/elements/launcher-bubble.js +2 -2
- package/dist/elements/loading-state.js +1 -1
- package/dist/elements/map-answer.js +3 -2
- package/dist/elements/markdown.js +5 -4
- package/dist/elements/math-block.js +1 -1
- package/dist/elements/mcp-server-panel.js +3 -3
- package/dist/elements/message-attachment.js +4 -4
- package/dist/elements/message-pair.js +1 -1
- package/dist/elements/message-queue.js +2 -2
- package/dist/elements/mobile-composer.js +4 -3
- package/dist/elements/model-picker.js +3 -3
- package/dist/elements/onboarding.js +2 -2
- package/dist/elements/permission-grant.js +2 -2
- package/dist/elements/permission-scopes.js +5 -4
- package/dist/elements/prompt-library.js +7 -6
- package/dist/elements/queue-dock.js +4 -3
- package/dist/elements/quota-banner.js +1 -1
- package/dist/elements/quote-reply.js +1 -1
- package/dist/elements/read-aloud.js +2 -2
- package/dist/elements/reasoning-panel.js +2 -1
- package/dist/elements/recommendation-card.d.ts +1 -1
- package/dist/elements/recommendation-card.js +2 -2
- package/dist/elements/regenerate-menu.js +2 -2
- package/dist/elements/research-report.js +1 -1
- package/dist/elements/retrieval-chunks.js +1 -1
- package/dist/elements/revert-dock.js +5 -4
- package/dist/elements/reviewable-diff.js +1 -1
- package/dist/elements/schedule-card.js +3 -3
- package/dist/elements/score-breakdown.js +1 -1
- package/dist/elements/scroll-anchor.js +2 -2
- package/dist/elements/settings-panel.js +3 -2
- package/dist/elements/shared-conversation.js +2 -2
- package/dist/elements/sources.js +4 -3
- package/dist/elements/speaker-identity.js +1 -1
- package/dist/elements/spec-sheet.js +1 -1
- package/dist/elements/streaming-text.js +1 -1
- package/dist/elements/subagent-list.js +2 -2
- package/dist/elements/suggestions.js +1 -1
- package/dist/elements/surfaces.d.ts +1 -1
- package/dist/elements/surfaces.js +2 -1
- package/dist/elements/tail-status.js +1 -1
- package/dist/elements/terminal-block.js +1 -1
- package/dist/elements/thread-list.js +1 -1
- package/dist/elements/thread-search.js +5 -4
- package/dist/elements/timeline.js +1 -1
- package/dist/elements/todo-list.js +2 -2
- package/dist/elements/tool-call.js +4 -3
- package/dist/elements/tool-error.js +2 -2
- package/dist/elements/tool-group.js +1 -1
- package/dist/elements/tool-timeline.js +4 -3
- package/dist/elements/trace-waterfall.js +1 -1
- package/dist/elements/verdict-row.js +2 -2
- package/dist/elements/voice-conversation.js +3 -2
- package/dist/elements/web-preview.js +1 -1
- package/dist/elements/web-search.js +2 -2
- package/dist/elements/work-collapse.js +2 -1
- package/dist/flow/node-card.js +3 -2
- package/dist/flow/use-flow-theme.js +2 -1
- package/dist/forms/_chassis-size.d.ts +22 -0
- package/dist/forms/_chassis.d.ts +28 -15
- package/dist/forms/_chassis.js +34 -8
- package/dist/forms/_listbox.js +8 -5
- package/dist/forms/autocomplete.d.ts +2 -1
- package/dist/forms/checkbox.js +8 -2
- package/dist/forms/combobox.d.ts +2 -1
- package/dist/forms/env-var-input.d.ts +2 -1
- package/dist/forms/env-var-input.js +3 -2
- package/dist/forms/field.d.ts +2 -1
- package/dist/forms/field.js +15 -4
- package/dist/forms/file-upload.js +3 -2
- package/dist/forms/index.d.ts +2 -1
- package/dist/forms/input-group.d.ts +2 -1
- package/dist/forms/input.d.ts +2 -1
- package/dist/forms/multi-select.d.ts +2 -1
- package/dist/forms/number-field.js +2 -1
- package/dist/forms/otp-field.d.ts +2 -1
- package/dist/forms/password-input.d.ts +2 -1
- package/dist/forms/password-input.js +4 -2
- package/dist/forms/radio-group.js +6 -2
- package/dist/forms/rating.js +2 -1
- package/dist/forms/scrub-input.d.ts +2 -1
- package/dist/forms/scrub-input.js +2 -1
- package/dist/forms/search-input.d.ts +2 -1
- package/dist/forms/search-input.js +2 -1
- package/dist/forms/select.d.ts +2 -1
- package/dist/forms/select.js +6 -2
- package/dist/forms/slider.js +6 -2
- package/dist/forms/switch.js +6 -2
- package/dist/forms/tags-input.d.ts +2 -1
- package/dist/forms/textarea.js +2 -1
- package/dist/forms/toggle-group.d.ts +1 -1
- package/dist/forms/toggle.d.ts +1 -1
- package/dist/forms/toggle.js +3 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +2 -2
- package/dist/instruments/_data-row.js +2 -1
- package/dist/instruments/app-window-frame.js +1 -1
- package/dist/instruments/code-block.js +8 -2
- package/dist/instruments/group-bar.js +1 -1
- package/dist/instruments/ledger.js +6 -2
- package/dist/instruments/log-viewer.js +5 -3
- package/dist/instruments/progress.js +5 -2
- package/dist/instruments/seam-grid.js +5 -3
- package/dist/instruments/stat.js +10 -3
- package/dist/instruments/table.js +28 -10
- package/dist/instruments/terminal-frame.js +4 -2
- package/dist/instruments/usage-chart.js +1 -1
- package/dist/layout/_collapse.js +6 -1
- package/dist/layout/bento.js +7 -4
- package/dist/layout/breadcrumb.js +7 -3
- package/dist/layout/card.js +14 -6
- package/dist/layout/carousel.js +3 -2
- package/dist/layout/collapsible.js +5 -1
- package/dist/layout/container.js +2 -1
- package/dist/layout/description-list.js +4 -1
- package/dist/layout/frames.js +11 -5
- package/dist/layout/item.js +3 -2
- package/dist/layout/link.d.ts +16 -0
- package/dist/layout/link.js +22 -3
- package/dist/layout/pagination.js +2 -1
- package/dist/layout/preview.d.ts +32 -12
- package/dist/layout/preview.js +149 -40
- package/dist/layout/resizable.js +2 -1
- package/dist/layout/sidebar.js +11 -3
- package/dist/layout/stepper.js +6 -2
- package/dist/lib/cn.js +29 -2
- package/dist/midi/musical-time-input.d.ts +2 -1
- package/dist/midi/piano-keyboard.js +3 -2
- package/dist/midi/spectrum-visualizer.js +1 -1
- package/dist/midi/threshold-rail.js +2 -1
- package/dist/midi/timeline-ruler.js +1 -1
- package/dist/overlays/_surface.d.ts +72 -12
- package/dist/overlays/_surface.js +86 -12
- package/dist/overlays/command-palette.js +9 -5
- package/dist/overlays/dialog.d.ts +5 -0
- package/dist/overlays/dialog.js +6 -1
- package/dist/overlays/info-tip.js +2 -1
- package/dist/overlays/menubar.js +3 -1
- package/dist/overlays/popover.js +2 -1
- package/dist/overlays/toast.js +6 -2
- package/dist/overlays/tooltip.js +4 -1
- package/dist/primitives/button.d.ts +15 -0
- package/dist/primitives/button.js +40 -10
- package/dist/primitives/chip.d.ts +20 -2
- package/dist/primitives/chip.js +39 -17
- package/dist/primitives/kbd.d.ts +6 -0
- package/dist/primitives/kbd.js +10 -1
- package/dist/primitives/skeleton.js +1 -1
- package/dist/system/_focus-ring-field.js +29 -0
- package/dist/system/_focus-ring.js +125 -0
- package/dist/system/_paint-elevation.js +9 -0
- package/dist/system/_paint-glass.js +46 -0
- package/dist/system/_paint-glow.js +51 -0
- package/dist/system/_paint-ground-pattern.js +30 -0
- package/dist/system/_paint-rest-shade.js +32 -0
- package/dist/system/_paint-rim.js +59 -0
- package/dist/system/_paint-stroke-sunken.js +19 -0
- package/dist/system/_paint-stroke-surface-1.js +19 -0
- package/dist/system/_paint-stroke-surface-2.js +40 -0
- package/dist/system/_paint-texture.js +56 -0
- package/dist/system/_style-app-bar.js +65 -0
- package/dist/system/_style-band.js +57 -0
- package/dist/system/_style-body-leading.js +21 -0
- package/dist/system/_style-body-size.js +30 -0
- package/dist/system/_style-body-weight.js +24 -0
- package/dist/system/_style-body.js +27 -0
- package/dist/system/_style-caption.js +19 -0
- package/dist/system/_style-card-pad.js +43 -0
- package/dist/system/_style-check.js +33 -0
- package/dist/system/_style-chip.js +103 -0
- package/dist/system/_style-code.js +13 -0
- package/dist/system/_style-collapse.js +14 -0
- package/dist/system/_style-control-face.js +29 -0
- package/dist/system/_style-control-label.js +22 -0
- package/dist/system/_style-control-step.js +22 -0
- package/dist/system/_style-control.js +76 -0
- package/dist/system/_style-data-face.js +28 -0
- package/dist/system/_style-description.js +23 -0
- package/dist/system/_style-eyebrow.js +43 -0
- package/dist/system/_style-footer-rule.js +47 -0
- package/dist/system/_style-gutter.js +17 -0
- package/dist/system/_style-help-ink.js +14 -0
- package/dist/system/_style-help.js +29 -0
- package/dist/system/_style-input-face.js +34 -0
- package/dist/system/_style-kbd.js +46 -0
- package/dist/system/_style-label-case.js +36 -0
- package/dist/system/_style-label-face.js +32 -0
- package/dist/system/_style-label-ink.js +29 -0
- package/dist/system/_style-label-leading.js +14 -0
- package/dist/system/_style-label-size.js +36 -0
- package/dist/system/_style-label-tracking.js +45 -0
- package/dist/system/_style-label-weight.js +40 -0
- package/dist/system/_style-lede.js +49 -0
- package/dist/system/_style-link.js +46 -0
- package/dist/system/_style-menu.js +30 -0
- package/dist/system/_style-nav-item.js +41 -0
- package/dist/system/_style-nav-voice.js +43 -0
- package/dist/system/_style-option.js +42 -0
- package/dist/system/_style-overlay-title.js +35 -0
- package/dist/system/_style-page-title.js +48 -0
- package/dist/system/_style-popover-pad.js +13 -0
- package/dist/system/_style-quiet-ink.js +13 -0
- package/dist/system/_style-row-pad.js +13 -0
- package/dist/system/_style-seam.js +43 -0
- package/dist/system/_style-section-rule.js +26 -0
- package/dist/system/_style-segment.js +30 -0
- package/dist/system/_style-segmented-control.js +86 -0
- package/dist/system/_style-selected.js +36 -0
- package/dist/system/_style-stage-marks.js +26 -0
- package/dist/system/_style-tab.js +71 -0
- package/dist/system/_style-textarea.js +21 -0
- package/dist/system/_style-title.js +37 -0
- package/dist/system/_style-tooltip.js +17 -0
- package/dist/system/density.d.ts +15 -5
- package/dist/system/density.js +188 -25
- package/dist/system/index.d.ts +2 -2
- package/dist/system/index.js +2 -2
- package/dist/system/overrides.d.ts +1 -0
- package/dist/system/overrides.js +151 -3
- package/dist/system/portal.d.ts +3 -2
- package/dist/system/portal.js +22 -10
- package/dist/system/prepaint.d.ts +21 -5
- package/dist/system/prepaint.js +3 -1
- package/dist/system/published.d.ts +1 -0
- package/dist/system/published.js +131 -0
- package/dist/system/theme-provider.d.ts +168 -60
- package/dist/system/theme-provider.js +375 -79
- package/dist/system/theme-registry.d.ts +2 -1
- package/dist/system/theme-registry.js +27 -10
- package/dist/system/use-density.js +4 -3
- package/dist/system/use-theme.d.ts +5 -2
- package/dist/system/use-theme.js +7 -4
- package/dist/system/vocabulary.js +2 -2
- package/dist/theming/create-theme.js +12 -6
- package/dist/theming/serialize.d.ts +34 -2
- package/dist/theming/serialize.js +86 -4
- package/manifest/components/accordion.json +7 -1
- package/manifest/components/agent-pile.json +3 -0
- package/manifest/components/alert-dialog.json +38 -1
- package/manifest/components/app-bar.json +23 -2
- package/manifest/components/app-shell.json +5 -0
- package/manifest/components/ask-box.json +3 -1
- package/manifest/components/autocomplete.json +49 -1
- package/manifest/components/band.json +14 -3
- package/manifest/components/bento.json +12 -1
- package/manifest/components/breadcrumb.json +8 -1
- package/manifest/components/button.json +31 -3
- package/manifest/components/calendar.json +7 -0
- package/manifest/components/card.json +28 -1
- package/manifest/components/carousel.json +4 -1
- package/manifest/components/channel-matrix.json +40 -1
- package/manifest/components/chart-tooltip-content.json +38 -1
- package/manifest/components/chat-empty-state.json +3 -1
- package/manifest/components/checkbox-group.json +14 -0
- package/manifest/components/checkbox.json +14 -0
- package/manifest/components/chip.json +16 -1
- package/manifest/components/clamp.json +3 -1
- package/manifest/components/code-block.json +10 -1
- package/manifest/components/collapsible.json +13 -2
- package/manifest/components/color-area.json +4 -2
- package/manifest/components/color-field.json +14 -0
- package/manifest/components/color-picker.json +14 -0
- package/manifest/components/color-slider.json +3 -1
- package/manifest/components/colors-section.json +9 -1
- package/manifest/components/combobox.json +49 -1
- package/manifest/components/command-palette.json +37 -1
- package/manifest/components/composer-actions.json +3 -0
- package/manifest/components/composer-attach-button.json +3 -0
- package/manifest/components/composer-attachment-chip.json +3 -0
- package/manifest/components/composer-attachments.json +3 -0
- package/manifest/components/composer-bar.json +3 -0
- package/manifest/components/composer-command-item.json +3 -0
- package/manifest/components/composer-context.json +3 -0
- package/manifest/components/composer-input.json +3 -0
- package/manifest/components/composer-menu-item.json +3 -0
- package/manifest/components/composer-menu.json +3 -0
- package/manifest/components/composer-model-item.json +3 -0
- package/manifest/components/composer-model-trigger.json +3 -0
- package/manifest/components/composer-person-item.json +3 -0
- package/manifest/components/composer-send.json +3 -0
- package/manifest/components/composer-toolbar.json +3 -0
- package/manifest/components/composer-voice-button.json +3 -0
- package/manifest/components/composer-voice.json +3 -0
- package/manifest/components/composer.json +14 -0
- package/manifest/components/confidence-marker.json +3 -1
- package/manifest/components/container.json +2 -1
- package/manifest/components/context-menu.json +38 -1
- package/manifest/components/conversation-search.json +3 -1
- package/manifest/components/cue-mark.json +2 -2
- package/manifest/components/cue-portal-frame.json +1 -1
- package/manifest/components/data-row.json +3 -1
- package/manifest/components/data-tree.json +3 -1
- package/manifest/components/date-field.json +14 -0
- package/manifest/components/date-picker.json +14 -0
- package/manifest/components/date-range-picker.json +14 -0
- package/manifest/components/delegation-card.json +3 -1
- package/manifest/components/density.json +21 -7
- package/manifest/components/description-list.json +6 -1
- package/manifest/components/dialog.json +39 -1
- package/manifest/components/disclosure.json +13 -2
- package/manifest/components/dmx-bar.json +37 -1
- package/manifest/components/dmx-strip.json +37 -1
- package/manifest/components/drawer.json +38 -1
- package/manifest/components/dropdown-menu.json +38 -1
- package/manifest/components/edit-message.json +3 -1
- package/manifest/components/elements-command-palette.json +3 -1
- package/manifest/components/elements-composer.json +3 -0
- package/manifest/components/empty-state-composer.json +3 -1
- package/manifest/components/empty-state-greeting.json +3 -1
- package/manifest/components/empty-state-suggestion.json +3 -1
- package/manifest/components/empty-state-suggestions.json +3 -1
- package/manifest/components/env-var-input.json +14 -1
- package/manifest/components/export-dialog.json +6 -1
- package/manifest/components/eyebrow.json +13 -2
- package/manifest/components/feedback-dialog.json +3 -0
- package/manifest/components/field-description.json +14 -0
- package/manifest/components/field-error.json +14 -0
- package/manifest/components/field-label.json +15 -1
- package/manifest/components/field.json +14 -0
- package/manifest/components/file-upload.json +3 -0
- package/manifest/components/footer.json +14 -1
- package/manifest/components/frames.json +14 -1
- package/manifest/components/hover-card.json +38 -1
- package/manifest/components/info-tip.json +3 -0
- package/manifest/components/input-group.json +14 -0
- package/manifest/components/input.json +14 -0
- package/manifest/components/item.json +3 -1
- package/manifest/components/kbd.json +10 -1
- package/manifest/components/ledger.json +9 -2
- package/manifest/components/link.json +10 -0
- package/manifest/components/log-viewer.json +10 -0
- package/manifest/components/map-answer.json +3 -1
- package/manifest/components/markdown-text.json +3 -0
- package/manifest/components/menubar.json +41 -2
- package/manifest/components/message-list.json +10 -0
- package/manifest/components/message.json +6 -1
- package/manifest/components/mobile-composer.json +3 -1
- package/manifest/components/multi-select.json +49 -1
- package/manifest/components/musical-time-input.json +14 -0
- package/manifest/components/navigation-menu.json +41 -1
- package/manifest/components/node-card.json +3 -0
- package/manifest/components/number-field.json +14 -1
- package/manifest/components/otp-field.json +13 -0
- package/manifest/components/page-shell.json +14 -0
- package/manifest/components/pagination.json +3 -0
- package/manifest/components/panel-header.json +12 -0
- package/manifest/components/panel.json +13 -1
- package/manifest/components/password-input.json +14 -1
- package/manifest/components/permission-scopes.json +3 -1
- package/manifest/components/piano-keyboard.json +3 -0
- package/manifest/components/popover.json +39 -1
- package/manifest/components/preset-section.json +9 -1
- package/manifest/components/preview.json +30 -10
- package/manifest/components/progress.json +6 -1
- package/manifest/components/prompt-library.json +3 -1
- package/manifest/components/queue-dock.json +3 -1
- package/manifest/components/radio-group.json +8 -0
- package/manifest/components/radio.json +8 -0
- package/manifest/components/rating.json +4 -1
- package/manifest/components/reasoning-panel.json +3 -1
- package/manifest/components/recommendation-card.json +1 -1
- package/manifest/components/resizable.json +4 -1
- package/manifest/components/revert-dock.json +3 -1
- package/manifest/components/row.json +5 -1
- package/manifest/components/scroll-area.json +4 -2
- package/manifest/components/scrollable-tabs-list.json +19 -0
- package/manifest/components/scrub-input.json +14 -1
- package/manifest/components/seam-cell.json +1 -0
- package/manifest/components/seam-grid.json +1 -0
- package/manifest/components/seam-list.json +5 -1
- package/manifest/components/search-input.json +14 -1
- package/manifest/components/section-header.json +15 -2
- package/manifest/components/segmented-control.json +17 -0
- package/manifest/components/select.json +28 -0
- package/manifest/components/settings-panel.json +3 -0
- package/manifest/components/shape-section.json +9 -1
- package/manifest/components/sheet.json +38 -1
- package/manifest/components/shimmer-label.json +3 -0
- package/manifest/components/sidebar.json +19 -2
- package/manifest/components/slider.json +8 -0
- package/manifest/components/sources.json +3 -1
- package/manifest/components/stat.json +9 -0
- package/manifest/components/status-bar.json +4 -0
- package/manifest/components/stepper.json +8 -0
- package/manifest/components/swap-label.json +3 -0
- package/manifest/components/switch.json +8 -0
- package/manifest/components/table-scroll-region.json +20 -2
- package/manifest/components/table.json +20 -2
- package/manifest/components/tabs.json +20 -1
- package/manifest/components/tags-input.json +49 -1
- package/manifest/components/terminal-frame.json +3 -0
- package/manifest/components/textarea.json +16 -0
- package/manifest/components/theme-configurator.json +38 -1
- package/manifest/components/theme-provider.json +37 -19
- package/manifest/components/thread-search.json +3 -1
- package/manifest/components/threshold-rail.json +3 -0
- package/manifest/components/time-field.json +14 -0
- package/manifest/components/toast.json +39 -0
- package/manifest/components/toggle-group.json +1 -19
- package/manifest/components/toggle.json +3 -5
- package/manifest/components/token-editor.json +6 -1
- package/manifest/components/tool-call-card.json +9 -2
- package/manifest/components/tool-call.json +3 -1
- package/manifest/components/tool-timeline.json +3 -1
- package/manifest/components/toolbar.json +4 -1
- package/manifest/components/tooltip.json +40 -1
- package/manifest/components/tree-visibility-toggle.json +3 -0
- package/manifest/components/tree.json +3 -0
- package/manifest/components/universe-grid.json +3 -0
- package/manifest/components/voice-conversation.json +3 -0
- package/manifest/components/work-collapse.json +3 -1
- package/manifest/manifest.json +205 -185
- package/manifest/tokens.json +260 -4
- package/package.json +6 -6
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
//#region src/system/_style-band.ts
|
|
2
|
+
/**
|
|
3
|
+
* The two `Band`-only readers of the band's proportions: the broad column's
|
|
4
|
+
* measure, and the rhythm's two halves.
|
|
5
|
+
*
|
|
6
|
+
* **Why neither is in `chrome/_band.ts`.** `Footer` spends that file's
|
|
7
|
+
* `bandClasses("rule")` too, and `@repo/docgen` reads a `_`-prefixed module
|
|
8
|
+
* whole and publishes every `--cue-*` in it as a token each importer paints.
|
|
9
|
+
* `Footer` cannot render either reader below — its `width` is a
|
|
10
|
+
* `ContainerWidth` whose `broad` goes straight to `Container`, and the docs site
|
|
11
|
+
* renders it on every page, where Graphite's 160/80 halves would have moved
|
|
12
|
+
* every footer on a surface the fidelity round never measured (spec §10.4). So
|
|
13
|
+
* they live here, imported by `band.tsx` alone.
|
|
14
|
+
*
|
|
15
|
+
* @internal Not part of the public API.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* The `width="broad"` column's measure — spec §3.11, `style-band-width` (T38).
|
|
19
|
+
*
|
|
20
|
+
* `--cue-measure-broad` stays `:root`-only (a set that moved it would move
|
|
21
|
+
* every `Container` and `PageShell` at the broad rung); the band column reads a
|
|
22
|
+
* name of its own instead, a rem length from 40 to 100rem.
|
|
23
|
+
*
|
|
24
|
+
* **The fallback is the old class, spelt out.** `Container`'s broad rung is
|
|
25
|
+
* `max-w-(--cue-measure-broad)`, and this computes the same `max-width` when
|
|
26
|
+
* `--cue-style-band-width` is unset, which it is under no set and under every
|
|
27
|
+
* shipped set today.
|
|
28
|
+
*
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
const BAND_BROAD_WIDTH = "max-w-[var(--cue-style-band-width,var(--cue-measure-broad))]";
|
|
32
|
+
/**
|
|
33
|
+
* The rhythm's halves — spec §10.4, `band-y-top` and `band-y-bottom` (G46).
|
|
34
|
+
*
|
|
35
|
+
* `--cue-band-y` is one symmetric value, and Graphite's source draws every band
|
|
36
|
+
* 160px above and 80px below (88/32 on a phone), which no value of it reaches.
|
|
37
|
+
* The halves keep `band-y`'s spelling rather than the `style-` prefix: they are
|
|
38
|
+
* its halves (the paint-axis spec's §9.1 named them so).
|
|
39
|
+
*
|
|
40
|
+
* **Composed after `bandClasses(separation)`, and both stay in the class
|
|
41
|
+
* list.** `tailwind-merge` drops an earlier `py-` only for a later `py-`, so
|
|
42
|
+
* `bandClasses`'s `py-(--cue-band-y)` survives beside these; they win by
|
|
43
|
+
* Tailwind 4's property order, which emits `padding-block` before
|
|
44
|
+
* `padding-top` and `padding-bottom`. A consumer's later `py-0`
|
|
45
|
+
* (`home-band.tsx`) drops these two as well, so a band that zeroes its rhythm
|
|
46
|
+
* still does.
|
|
47
|
+
*
|
|
48
|
+
* **The fallback is the old value, spelt out.** Each half falls back to
|
|
49
|
+
* `var(--cue-band-y)`, which is what `py-(--cue-band-y)` drew on that side. The
|
|
50
|
+
* two names enter the contract with Graphite's round (plan L5.1); until then no
|
|
51
|
+
* set declares them, and each half renders `band-y`.
|
|
52
|
+
*
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
const BAND_Y_HALVES = "pt-[var(--cue-band-y-top,var(--cue-band-y))] pb-[var(--cue-band-y-bottom,var(--cue-band-y))]";
|
|
56
|
+
//#endregion
|
|
57
|
+
export { BAND_BROAD_WIDTH, BAND_Y_HALVES };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/system/_style-body-leading.ts
|
|
2
|
+
/**
|
|
3
|
+
* Body copy's leading where a component sets it itself: an overlay's
|
|
4
|
+
* description, a field's help and a tooltip (plan V.2, P42, P48, P129).
|
|
5
|
+
* Porcelain's body copy sits on a 1.38 leading at every size.
|
|
6
|
+
*
|
|
7
|
+
* | constant | reads | fallback |
|
|
8
|
+
* |------------------------|----------------------|--------------------------|
|
|
9
|
+
* | `BODY_LEADING` | `style-body-leading` | `var(--cue-leading-ui)` |
|
|
10
|
+
* | `BODY_LEADING_INHERIT` | `style-body-leading` | `inherit` |
|
|
11
|
+
*
|
|
12
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason
|
|
13
|
+
* (`_style-body-size.ts`).
|
|
14
|
+
*
|
|
15
|
+
* @internal Not part of the public API.
|
|
16
|
+
*/
|
|
17
|
+
const BODY_LEADING = "leading-[var(--cue-style-body-leading,var(--cue-leading-ui))]";
|
|
18
|
+
/** @see BODY_LEADING — for a site that set none and inherited its box's. */
|
|
19
|
+
const BODY_LEADING_INHERIT = "leading-[var(--cue-style-body-leading,inherit)]";
|
|
20
|
+
//#endregion
|
|
21
|
+
export { BODY_LEADING, BODY_LEADING_INHERIT };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
//#region src/system/_style-body-size.ts
|
|
2
|
+
/**
|
|
3
|
+
* Body copy's size where a component sets it itself: a card's description, an
|
|
4
|
+
* overlay's description, a table, a table's caption and the breadcrumb.
|
|
5
|
+
*
|
|
6
|
+
* Plan V.2 (P8, P42, P122, P128, P138). Each read a density rung directly —
|
|
7
|
+
* `text-ui` or `text-label` — and Porcelain's source sets them all at one 14px
|
|
8
|
+
* body size that does not ramp on a phone the way its `text-ui` does, so a
|
|
9
|
+
* Look needed a name for "body copy" apart from the rung.
|
|
10
|
+
*
|
|
11
|
+
* | constant | reads | fallback |
|
|
12
|
+
* |-------------------|-------------------|-------------------------|
|
|
13
|
+
* | `BODY_SIZE` | `style-body-size` | `var(--cue-text-ui)` |
|
|
14
|
+
* | `BODY_SIZE_LABEL` | `style-body-size` | `var(--cue-text-label)` |
|
|
15
|
+
*
|
|
16
|
+
* A type size, so the build wraps a set's value in the font scale's `calc()`
|
|
17
|
+
* as it does the `text-*` rungs it stands in for. **Size before leading** in
|
|
18
|
+
* any one class list: `tailwind-merge` drops a `leading-*` that precedes a
|
|
19
|
+
* font size. **Optional** (spec §3.0): declared on no `:root` and left at the
|
|
20
|
+
* shared `[data-style]` reset by every set that does not name it. Its own
|
|
21
|
+
* module because docgen attributes a token to a component by the file its
|
|
22
|
+
* class string lives in.
|
|
23
|
+
*
|
|
24
|
+
* @internal Not part of the public API.
|
|
25
|
+
*/
|
|
26
|
+
const BODY_SIZE = "text-[length:var(--cue-style-body-size,var(--cue-text-ui))]";
|
|
27
|
+
/** @see BODY_SIZE — for a site whose body copy was the `text-label` rung. */
|
|
28
|
+
const BODY_SIZE_LABEL = "text-[length:var(--cue-style-body-size,var(--cue-text-label))]";
|
|
29
|
+
//#endregion
|
|
30
|
+
export { BODY_SIZE, BODY_SIZE_LABEL };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region src/system/_style-body-weight.ts
|
|
2
|
+
/**
|
|
3
|
+
* Body copy's weight: whatever the box above says, until a style set names one.
|
|
4
|
+
*
|
|
5
|
+
* Spec 2026-09-26-looks-fidelity §3.5, plan R1. No reader of this name set a
|
|
6
|
+
* weight before it existed — a card's description, an overlay's body copy, the
|
|
7
|
+
* `PageShell` subtitle and the recessed control chassis all inherited theirs —
|
|
8
|
+
* so the fallback is `inherit`, which is what not declaring one computed.
|
|
9
|
+
* Tender's body copy is 300 (T62), and without this name a Look could not say so.
|
|
10
|
+
*
|
|
11
|
+
* The chassis (`forms/_chassis.ts`) reads this and not `_style-body.ts`: a
|
|
12
|
+
* control's face is `INPUT_FACE`, and importing the body face beside the weight
|
|
13
|
+
* would have docgen publish `style-body-face` as a token of every control.
|
|
14
|
+
* `_style-body.ts` composes this one for the readers that spend both.
|
|
15
|
+
*
|
|
16
|
+
* **Optional** (spec §3.0): declared on no `:root` and left at the shared
|
|
17
|
+
* `[data-style]` reset by every shipped set. `_style-page-title.ts` says why a
|
|
18
|
+
* weight reader is `font-[number:…]`.
|
|
19
|
+
*
|
|
20
|
+
* @internal Not part of the public API.
|
|
21
|
+
*/
|
|
22
|
+
const BODY_WEIGHT = "font-[number:var(--cue-style-body-weight,inherit)]";
|
|
23
|
+
//#endregion
|
|
24
|
+
export { BODY_WEIGHT };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BODY_WEIGHT } from "./_style-body-weight.js";
|
|
2
|
+
//#region src/system/_style-body.ts
|
|
3
|
+
/**
|
|
4
|
+
* Body copy's face and weight: mono and inherited, until a style set names them.
|
|
5
|
+
*
|
|
6
|
+
* Spec 2026-09-26-looks-fidelity §3.5, plan R1. `CardDescription`,
|
|
7
|
+
* `overlayTextClasses`, `overlayDescriptionClasses` and the `PageShell` subtitle
|
|
8
|
+
* each spelt `font-mono`, so a sans-voiced Look (Tender, Zine, Kiln, Porcelain)
|
|
9
|
+
* could change a card's title and leave the sentence under it shouting in mono.
|
|
10
|
+
*
|
|
11
|
+
* | property | reads | fallback (the class it replaced) |
|
|
12
|
+
* |-------------|---------------------|--------------------------------------|
|
|
13
|
+
* | font-family | `style-body-face` | `var(--cue-font-mono)` (`font-mono`) |
|
|
14
|
+
* | font-weight | `style-body-weight` | `inherit` (no class) |
|
|
15
|
+
*
|
|
16
|
+
* Size, leading and ink stay with each call site: a description and an overlay's
|
|
17
|
+
* body copy sit at different rungs and inks, and no Look measured them moving.
|
|
18
|
+
*
|
|
19
|
+
* **Both names are optional** (spec §3.0), declared on no `:root` and left at the
|
|
20
|
+
* shared `[data-style]` reset by every shipped set, so under each the reader
|
|
21
|
+
* computes what `font-mono` and no weight computed at the element.
|
|
22
|
+
*
|
|
23
|
+
* @internal Not part of the public API.
|
|
24
|
+
*/
|
|
25
|
+
const BODY_VOICE = `font-[family-name:var(--cue-style-body-face,var(--cue-font-mono))] ${BODY_WEIGHT}`;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { BODY_VOICE };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/system/_style-caption.ts
|
|
2
|
+
/**
|
|
3
|
+
* A caption's case where the caption is sentence case today (plan V.2, K131,
|
|
4
|
+
* G123): `style-caption-case`, falling back to `inherit` — what a caption
|
|
5
|
+
* that declared no case drew.
|
|
6
|
+
*
|
|
7
|
+
* Not `LABEL_CASE`. `style-label-case` is a required name that `console`
|
|
8
|
+
* restates as `uppercase`, so reading it at a caption that is not uppercase
|
|
9
|
+
* today would uppercase that caption under Classic. Kiln and Graphite set
|
|
10
|
+
* their captions in capitals at these sites too — a frame's caption, a
|
|
11
|
+
* showcase caption — and this is the optional name they say so with.
|
|
12
|
+
*
|
|
13
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason.
|
|
14
|
+
*
|
|
15
|
+
* @internal Not part of the public API.
|
|
16
|
+
*/
|
|
17
|
+
const CAPTION_CASE = "[text-transform:var(--cue-style-caption-case,inherit)]";
|
|
18
|
+
//#endregion
|
|
19
|
+
export { CAPTION_CASE };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
//#region src/system/_style-card-pad.ts
|
|
2
|
+
/**
|
|
3
|
+
* A card's padding: one `--cue-space-5` rung, times the style set's
|
|
4
|
+
* proportion.
|
|
5
|
+
*
|
|
6
|
+
* Spec 2026-09-26-looks-fidelity §3.11, `style-card-pad` (row K31). Kiln's
|
|
7
|
+
* cards breathe a quarter wider than the chassis's; a card's padding is a
|
|
8
|
+
* proportion of the density rung (F-6), so the set owns the multiplier and
|
|
9
|
+
* density keeps the rung — a compact island still pads a Kiln card less than a
|
|
10
|
+
* large one does.
|
|
11
|
+
*
|
|
12
|
+
* **The fallback is the old class, spelt out.** `p-(--cue-space-5)` compiled to
|
|
13
|
+
* `padding: var(--cue-space-5)`, and `calc(var(--cue-space-5)*1)` computes the
|
|
14
|
+
* same length at every rung. `--cue-style-card-pad` is on no `:root` — it is
|
|
15
|
+
* one of contract round 2's optional names, reset to `initial` under every
|
|
16
|
+
* `[data-style]` that does not declare it — so under no set, `console` and every
|
|
17
|
+
* shipped set today each reader below resolves to exactly what it drew before.
|
|
18
|
+
*
|
|
19
|
+
* **One constant per side and state**, because a card's parts pad
|
|
20
|
+
* asymmetrically on purpose: the header carries no bottom padding and the footer
|
|
21
|
+
* no top padding, so the body's own padding is the whole gap between them, and
|
|
22
|
+
* under `seam` each takes its missing side back (`Card.Header`'s docblock). Every
|
|
23
|
+
* side reads the same multiplier, so the asymmetry survives any value of it.
|
|
24
|
+
*
|
|
25
|
+
* **Its own module**, because `@repo/docgen` attributes a token to a component
|
|
26
|
+
* by the file its class string lives in, following only `_`-prefixed imports.
|
|
27
|
+
* `Card` is this file's only reader.
|
|
28
|
+
*
|
|
29
|
+
* @internal Not part of the public API.
|
|
30
|
+
*/
|
|
31
|
+
const CARD_PAD = "p-[calc(var(--cue-space-5)*var(--cue-style-card-pad,1))]";
|
|
32
|
+
/** The inline sides alone: the header's and the footer's. @internal */
|
|
33
|
+
const CARD_PAD_X = "px-[calc(var(--cue-space-5)*var(--cue-style-card-pad,1))]";
|
|
34
|
+
/** The header's top. @internal */
|
|
35
|
+
const CARD_PAD_TOP = "pt-[calc(var(--cue-space-5)*var(--cue-style-card-pad,1))]";
|
|
36
|
+
/** The footer's bottom. @internal */
|
|
37
|
+
const CARD_PAD_BOTTOM = "pb-[calc(var(--cue-space-5)*var(--cue-style-card-pad,1))]";
|
|
38
|
+
/** The header's bottom, taken back under `<Card.Root seam>`. @internal */
|
|
39
|
+
const CARD_PAD_SEAM_BOTTOM = "group-data-[seam]/card:pb-[calc(var(--cue-space-5)*var(--cue-style-card-pad,1))]";
|
|
40
|
+
/** The footer's top, taken back under `<Card.Root seam>`. @internal */
|
|
41
|
+
const CARD_PAD_SEAM_TOP = "group-data-[seam]/card:pt-[calc(var(--cue-space-5)*var(--cue-style-card-pad,1))]";
|
|
42
|
+
//#endregion
|
|
43
|
+
export { CARD_PAD, CARD_PAD_BOTTOM, CARD_PAD_SEAM_BOTTOM, CARD_PAD_SEAM_TOP, CARD_PAD_TOP, CARD_PAD_X };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//#region src/system/_style-check.ts
|
|
2
|
+
/**
|
|
3
|
+
* The checkbox's resting edge: `border`, or the style set's `style-check-edge`.
|
|
4
|
+
*
|
|
5
|
+
* Fidelity spec 2026-09-26 §3.7 (plan R3). Porcelain draws an unchecked box
|
|
6
|
+
* one rung heavier than its hairlines (`border-strong`, P50), and a checkbox
|
|
7
|
+
* is not a control a call site restyles per Look, so the set says it.
|
|
8
|
+
*
|
|
9
|
+
* **The fallback is the old class, spelt out**: `border-border` compiles to
|
|
10
|
+
* `border-color: var(--cue-border)`, and the name is declared on no `:root`,
|
|
11
|
+
* so under no set and under every set that declines it this resolves at the
|
|
12
|
+
* box exactly as `border-border` did. The checked, indeterminate, hovered and
|
|
13
|
+
* invalid edges are variants over this and keep their own colours.
|
|
14
|
+
*
|
|
15
|
+
* **Its own module**, for the reason `_style-control-face.ts` gives: one
|
|
16
|
+
* reader per file, so `@repo/docgen` attributes this token to the checkbox and
|
|
17
|
+
* to nothing else.
|
|
18
|
+
*
|
|
19
|
+
* @internal Not part of the public API.
|
|
20
|
+
*/
|
|
21
|
+
const CHECK_EDGE = "border-[color:var(--cue-style-check-edge,var(--cue-border))]";
|
|
22
|
+
/**
|
|
23
|
+
* The checkbox's corner and its `md` size (plan V.2, P110, P137):
|
|
24
|
+
* `style-check-radius`, falling back to the `rounded-control` corner the box
|
|
25
|
+
* drew, and `style-check-size`, falling back to the `icon-md` rung. Porcelain's
|
|
26
|
+
* box is 18px on a phone and 16px on a desktop, rounded at 0.4 of its control
|
|
27
|
+
* corner (4px). The `sm` box keeps its `icon-sm`.
|
|
28
|
+
*/
|
|
29
|
+
const CHECK_RADIUS = "rounded-[var(--cue-style-check-radius,calc(var(--cue-radius-control)*var(--cue-radius-scale)))]";
|
|
30
|
+
/** @see CHECK_RADIUS */
|
|
31
|
+
const CHECK_SIZE_MD = "size-[var(--cue-style-check-size,var(--cue-icon-md))]";
|
|
32
|
+
//#endregion
|
|
33
|
+
export { CHECK_EDGE, CHECK_RADIUS, CHECK_SIZE_MD };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
//#region src/system/_style-chip.ts
|
|
2
|
+
/**
|
|
3
|
+
* The chip's voice and recipe: its case, tracking and radius, and the share of
|
|
4
|
+
* each tone its fill and its rim take — the console's by default, the style
|
|
5
|
+
* set's choice inside one.
|
|
6
|
+
*
|
|
7
|
+
* Spec 2026-09-26-looks-fidelity §3.6 (R2), F-15. A tinted chip was
|
|
8
|
+
* `bg-<tone>/10 border-<tone>/35 text-<tone>`, mono, uppercase and caps-tracked
|
|
9
|
+
* on the control radius, and under a sans Look it was the most visible console
|
|
10
|
+
* voice left (K44). The four measured Looks each draw their tags differently —
|
|
11
|
+
* kiln's are sentence-case pills at a 12% fill with no rim, porcelain's a 8%
|
|
12
|
+
* fill with no rim on a tighter radius, zine's rimless and 0.1em-tracked — and
|
|
13
|
+
* none of that follows the Look unless the chip reads it. So it reads:
|
|
14
|
+
*
|
|
15
|
+
* - `--cue-style-chip-case`, falling back through `--cue-style-label-case` to
|
|
16
|
+
* `uppercase`: a chip shouts when the set's captions do, unless the set says
|
|
17
|
+
* otherwise (kiln's tags are sentence case while its captions are caps);
|
|
18
|
+
* - `--cue-style-chip-tracking`, falling back to each variant's own tracking —
|
|
19
|
+
* the caps rung for `tinted` and `outline`, `0.06em` for `tag`;
|
|
20
|
+
* - `--cue-style-chip-size`, falling back to each variant's own rung — the
|
|
21
|
+
* label rung for `tinted` and `outline`, the micro rung for `tag` (`Kbd`
|
|
22
|
+
* reads it too, from `_style-kbd.ts`);
|
|
23
|
+
* - `--cue-style-chip-radius`, falling back to what `rounded-control` compiles
|
|
24
|
+
* to — the control rung times the radius scale, resolved at the chip;
|
|
25
|
+
* - `--cue-style-chip-fill` and `--cue-style-chip-edge`, the share of the tone
|
|
26
|
+
* in the fill and in the rim, falling back to `10%` and `35%`.
|
|
27
|
+
*
|
|
28
|
+
* Every name is optional (spec §3.0, F-3), emitted as `initial` on the shared
|
|
29
|
+
* `[data-style]` reset, so under no set and every set that declines them each
|
|
30
|
+
* reader resolves to exactly what the class it replaced resolved to.
|
|
31
|
+
*
|
|
32
|
+
* **The tone recipe mixes in `oklab`, not the spec's `oklch`.** `bg-accent/10`
|
|
33
|
+
* compiles to `color-mix(in oklab, var(--cue-accent) 10%, transparent)`, and a
|
|
34
|
+
* mix with `transparent` lands on the same colour in either space — but an
|
|
35
|
+
* engine serialises the result in the space it mixed in, so an `oklch` recipe
|
|
36
|
+
* reads `oklch(…)` where the chip read `oklab(…)`, and the fallback would not
|
|
37
|
+
* be the site's value byte for byte. `oklab` is.
|
|
38
|
+
*
|
|
39
|
+
* `neutral` is not here: its fill (`surface-2`) and its rims (`border`,
|
|
40
|
+
* `hair-strong`) are theme roles rather than a share of a tone, and keep their
|
|
41
|
+
* own classes. The hover rims and fills (`/60`, `/20`) stay the tone's own too.
|
|
42
|
+
*
|
|
43
|
+
* **Every entry is a complete literal**, for the reason `_focus-ring.ts` gives
|
|
44
|
+
* at length: Tailwind generates a class only when some source spells it out in
|
|
45
|
+
* one contiguous string, so the per-tone recipe is written out six times and
|
|
46
|
+
* never assembled from the tone's name at runtime.
|
|
47
|
+
*
|
|
48
|
+
* **One module for the chip's own names**, because `Chip` is their only
|
|
49
|
+
* importer: `@repo/docgen` credits every importer with every token in a file,
|
|
50
|
+
* which is why `Kbd`'s read of `--cue-style-chip-size` lives in `_style-kbd.ts`.
|
|
51
|
+
*
|
|
52
|
+
* **Where the size sits decides the line box.** `tailwind-merge` drops a
|
|
53
|
+
* `leading-*` class that a later font-size class follows. The chip's base
|
|
54
|
+
* string carries `leading-none` and its variants the size, so `Chip`'s own
|
|
55
|
+
* `cn()` drops the `leading-none` — exactly as it did when the variants spelt
|
|
56
|
+
* `text-(length:--cue-text-label)` — and a rendered chip's line box is the
|
|
57
|
+
* inherited one. The sizes stay in the variants for that reason: moving them
|
|
58
|
+
* ahead of the base would restore `leading-none` and move every chip.
|
|
59
|
+
*
|
|
60
|
+
* @internal Not part of the public API.
|
|
61
|
+
*/
|
|
62
|
+
const CHIP_CASE = "[text-transform:var(--cue-style-chip-case,var(--cue-style-label-case,uppercase))]";
|
|
63
|
+
/** @see CHIP_CASE — the `tinted` and `outline` variants' size; the label rung by default. */
|
|
64
|
+
const CHIP_SIZE = "text-[length:var(--cue-style-chip-size,var(--cue-text-label))]";
|
|
65
|
+
/** @see CHIP_CASE — the `tag` variant's size; the micro rung by default. */
|
|
66
|
+
const CHIP_SIZE_MICRO = "text-[length:var(--cue-style-chip-size,var(--cue-text-micro))]";
|
|
67
|
+
/** @see CHIP_CASE — the `tinted` and `outline` variants' tracking; the caps rung by default. */
|
|
68
|
+
const CHIP_TRACKING = "tracking-[var(--cue-style-chip-tracking,var(--cue-tracking-caps))]";
|
|
69
|
+
/** @see CHIP_CASE — the `tag` variant's tracking; its own closed `0.06em` by default. */
|
|
70
|
+
const CHIP_TRACKING_TAG = "tracking-[var(--cue-style-chip-tracking,0.06em)]";
|
|
71
|
+
/** @see CHIP_CASE — the chip's radius; what `rounded-control` compiles to by default. */
|
|
72
|
+
const CHIP_RADIUS = "rounded-[var(--cue-style-chip-radius,calc(var(--cue-radius-control)*var(--cue-radius-scale)))]";
|
|
73
|
+
/** @see CHIP_CASE — each tone's fill: `var(--cue-style-chip-fill, 10%)` of the tone over transparent. */
|
|
74
|
+
const CHIP_FILL = {
|
|
75
|
+
accent: "bg-[color:color-mix(in_oklab,var(--cue-accent)_var(--cue-style-chip-fill,10%),transparent)]",
|
|
76
|
+
ok: "bg-[color:color-mix(in_oklab,var(--cue-ok)_var(--cue-style-chip-fill,10%),transparent)]",
|
|
77
|
+
busy: "bg-[color:color-mix(in_oklab,var(--cue-busy)_var(--cue-style-chip-fill,10%),transparent)]",
|
|
78
|
+
warn: "bg-[color:color-mix(in_oklab,var(--cue-warn)_var(--cue-style-chip-fill,10%),transparent)]",
|
|
79
|
+
danger: "bg-[color:color-mix(in_oklab,var(--cue-danger)_var(--cue-style-chip-fill,10%),transparent)]",
|
|
80
|
+
info: "bg-[color:color-mix(in_oklab,var(--cue-info)_var(--cue-style-chip-fill,10%),transparent)]"
|
|
81
|
+
};
|
|
82
|
+
/** @see CHIP_CASE — each tone's rim: `var(--cue-style-chip-edge, 35%)` of the tone over transparent. */
|
|
83
|
+
const CHIP_EDGE = {
|
|
84
|
+
accent: "border-[color:color-mix(in_oklab,var(--cue-accent)_var(--cue-style-chip-edge,35%),transparent)]",
|
|
85
|
+
ok: "border-[color:color-mix(in_oklab,var(--cue-ok)_var(--cue-style-chip-edge,35%),transparent)]",
|
|
86
|
+
busy: "border-[color:color-mix(in_oklab,var(--cue-busy)_var(--cue-style-chip-edge,35%),transparent)]",
|
|
87
|
+
warn: "border-[color:color-mix(in_oklab,var(--cue-warn)_var(--cue-style-chip-edge,35%),transparent)]",
|
|
88
|
+
danger: "border-[color:color-mix(in_oklab,var(--cue-danger)_var(--cue-style-chip-edge,35%),transparent)]",
|
|
89
|
+
info: "border-[color:color-mix(in_oklab,var(--cue-info)_var(--cue-style-chip-edge,35%),transparent)]"
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* The chip's own height and inline padding (plan V.2, P14):
|
|
93
|
+
* `style-chip-height`, falling back to the `h-chip` rung, and `style-chip-pad`,
|
|
94
|
+
* falling back to the `space-3` the tinted and outline variants pad at (the
|
|
95
|
+
* `tag` variant keeps its `space-2`). Porcelain's chips are 22px on a phone and
|
|
96
|
+
* 18px on a desktop, 3px in — shorter than the `chip-h` rung its key caps
|
|
97
|
+
* share, which is why this is the chip's name and not the rung's.
|
|
98
|
+
*/
|
|
99
|
+
const CHIP_HEIGHT = "h-[var(--cue-style-chip-height,var(--cue-chip-h))]";
|
|
100
|
+
/** @see CHIP_HEIGHT */
|
|
101
|
+
const CHIP_PAD = "px-[var(--cue-style-chip-pad,var(--cue-space-3))]";
|
|
102
|
+
//#endregion
|
|
103
|
+
export { CHIP_CASE, CHIP_EDGE, CHIP_FILL, CHIP_HEIGHT, CHIP_PAD, CHIP_RADIUS, CHIP_SIZE, CHIP_SIZE_MICRO, CHIP_TRACKING, CHIP_TRACKING_TAG };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/system/_style-code.ts
|
|
2
|
+
/**
|
|
3
|
+
* Code's weight (plan V.2, T74): `style-code-weight` on a `CodeBlock`'s code,
|
|
4
|
+
* falling back to `inherit` — the block declared none. Tender's source serves
|
|
5
|
+
* one code face, SourceCodePro-Medium, so its code is 500 wherever it appears.
|
|
6
|
+
*
|
|
7
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason.
|
|
8
|
+
*
|
|
9
|
+
* @internal Not part of the public API.
|
|
10
|
+
*/
|
|
11
|
+
const CODE_WEIGHT = "font-[number:var(--cue-style-code-weight,inherit)]";
|
|
12
|
+
//#endregion
|
|
13
|
+
export { CODE_WEIGHT };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/system/_style-collapse.ts
|
|
2
|
+
/**
|
|
3
|
+
* The disclosure trigger's height (plan V.2, P125): `style-collapse-height`,
|
|
4
|
+
* falling back to the `control-md` rung it drew. Porcelain's accordion rows
|
|
5
|
+
* are 52px. Shared by `Accordion`, `Collapsible` and `Disclosure`, which ride
|
|
6
|
+
* one trigger recipe (`layout/_collapse.ts`).
|
|
7
|
+
*
|
|
8
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason.
|
|
9
|
+
*
|
|
10
|
+
* @internal Not part of the public API.
|
|
11
|
+
*/
|
|
12
|
+
const COLLAPSE_HEIGHT = "h-[var(--cue-style-collapse-height,var(--cue-control-md))]";
|
|
13
|
+
//#endregion
|
|
14
|
+
export { COLLAPSE_HEIGHT };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//#region src/system/_style-control-face.ts
|
|
2
|
+
/**
|
|
3
|
+
* The face a control wears: mono by default, the style set's choice inside one.
|
|
4
|
+
*
|
|
5
|
+
* Spec 2026-09-26 R-8. Every control in this library spoke mono before this
|
|
6
|
+
* existed — `font-mono` on `Button`'s chassis and on the `Tabs` trigger — and
|
|
7
|
+
* that voice is the default and stays so. What was missing was a way for a
|
|
8
|
+
* sans-voiced Look (stripe's, replit's, coss's) to change it, and a face chosen
|
|
9
|
+
* per call site would not follow the Look. So the style set says it, through
|
|
10
|
+
* `--cue-style-control-face`, and this reads it.
|
|
11
|
+
*
|
|
12
|
+
* **The fallback is the old class, spelt out.** `font-mono` compiles to
|
|
13
|
+
* `font-family: var(--cue-font-mono)` through the Tailwind bridge, and
|
|
14
|
+
* `--cue-style-control-face` is declared on no `:root` — deliberately, because
|
|
15
|
+
* a `:root` `var(--cue-font-mono)` would be substituted at `<html>` and freeze
|
|
16
|
+
* the page's mono into every `<Preview font>` stage. So under no set this
|
|
17
|
+
* resolves to exactly what `font-mono` resolved to, at the control itself; and
|
|
18
|
+
* every shipped set but a sans-voiced one restates `var(--cue-font-mono)`, which
|
|
19
|
+
* `@cueplusplus/tokens` refuses to build otherwise for `console`.
|
|
20
|
+
*
|
|
21
|
+
* **Its own module**, because `@repo/docgen` attributes a token to a component
|
|
22
|
+
* by the file its class string lives in, following only `_`-prefixed imports —
|
|
23
|
+
* the rule `_paint-glow.ts` records. One reader per file.
|
|
24
|
+
*
|
|
25
|
+
* @internal Not part of the public API.
|
|
26
|
+
*/
|
|
27
|
+
const CONTROL_FACE = "font-[family-name:var(--cue-style-control-face,var(--cue-font-mono))]";
|
|
28
|
+
//#endregion
|
|
29
|
+
export { CONTROL_FACE };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/system/_style-control-label.ts
|
|
2
|
+
/**
|
|
3
|
+
* A control's own label — the text beside a `Switch`, a `Checkbox` or a
|
|
4
|
+
* `Radio` — at the body weight first and the label weight after it (plan V.2,
|
|
5
|
+
* T114, P126).
|
|
6
|
+
*
|
|
7
|
+
* The label beside a control is body copy in Tender's source (300, its body
|
|
8
|
+
* weight) and a caption-weight label in Porcelain's (500, its label weight),
|
|
9
|
+
* so the reader tries the body weight, then the label weight, then `inherit`
|
|
10
|
+
* — `LABEL_WEIGHT`'s fallback, what the label drew before either name
|
|
11
|
+
* existed. Only Tender declares the body weight, so every other Look keeps
|
|
12
|
+
* its label weight here.
|
|
13
|
+
*
|
|
14
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason: every
|
|
15
|
+
* importer of `_style-label-weight.ts` would otherwise publish
|
|
16
|
+
* `style-body-weight` as a token it reads.
|
|
17
|
+
*
|
|
18
|
+
* @internal Not part of the public API.
|
|
19
|
+
*/
|
|
20
|
+
const CONTROL_LABEL_WEIGHT = "font-[number:var(--cue-style-body-weight,var(--cue-style-label-weight,inherit))]";
|
|
21
|
+
//#endregion
|
|
22
|
+
export { CONTROL_LABEL_WEIGHT };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/system/_style-control-step.ts
|
|
2
|
+
/**
|
|
3
|
+
* The control rungs' step size (plan V.2, P130): the `sm` field and the `lg`
|
|
4
|
+
* field and button read `style-control-step-size`, each falling back to the
|
|
5
|
+
* rung it drew — `text-label`, `text-body` and `text-emphasis`. Porcelain's
|
|
6
|
+
* source sets every control's text at one size that steps from 16px on a
|
|
7
|
+
* phone to 14px on a desktop, whichever rung the control is.
|
|
8
|
+
*
|
|
9
|
+
* A type size, so the build wraps a set's value in the font scale's `calc()`.
|
|
10
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason: the field
|
|
11
|
+
* chassis reads it, and `_style-control.ts`'s button names are not the
|
|
12
|
+
* field's.
|
|
13
|
+
*
|
|
14
|
+
* @internal Not part of the public API.
|
|
15
|
+
*/
|
|
16
|
+
const CONTROL_STEP_SIZE_SM = "text-[length:var(--cue-style-control-step-size,var(--cue-text-label))]";
|
|
17
|
+
/** @see CONTROL_STEP_SIZE_SM */
|
|
18
|
+
const CONTROL_STEP_SIZE_BODY = "text-[length:var(--cue-style-control-step-size,var(--cue-text-body))]";
|
|
19
|
+
/** @see CONTROL_STEP_SIZE_SM */
|
|
20
|
+
const CONTROL_STEP_SIZE_LG = "text-[length:var(--cue-style-control-step-size,var(--cue-text-emphasis))]";
|
|
21
|
+
//#endregion
|
|
22
|
+
export { CONTROL_STEP_SIZE_BODY, CONTROL_STEP_SIZE_LG, CONTROL_STEP_SIZE_SM };
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
//#region src/system/_style-control.ts
|
|
2
|
+
/**
|
|
3
|
+
* `Button`'s voice, padding and tones, each a style-set name read with the
|
|
4
|
+
* class it replaced as its fallback.
|
|
5
|
+
*
|
|
6
|
+
* Fidelity spec 2026-09-26 §3.7 (plan R3), and §10.4 for `CONTROL_CASE`. Four
|
|
7
|
+
* Looks draw their buttons differently from the console: tender and zine at
|
|
8
|
+
* weight 400, kiln tracked in, tender and zine padded out and kiln and
|
|
9
|
+
* porcelain drawn in, tender's label trimmed to its cap height, graphite in
|
|
10
|
+
* capitals; and each gives its secondary, ghost and outline tones an ink, a
|
|
11
|
+
* ground or an edge of its own. None of that is a value one call site could
|
|
12
|
+
* choose, so the style set says it and these read it.
|
|
13
|
+
*
|
|
14
|
+
* **Every fallback is what the site rendered before this existed**, so under
|
|
15
|
+
* no set and under every set that declines a name the reader is a no-op:
|
|
16
|
+
*
|
|
17
|
+
* - `CONTROL_WEIGHT` is `font-medium`'s 500. It is spelt
|
|
18
|
+
* `font-[number:…]`: a bare `font-[…]` is read as a family, and the
|
|
19
|
+
* `number` label makes it a weight to Tailwind (which emits exactly what
|
|
20
|
+
* `font-medium` emitted, `--tw-font-weight` included) and to `twMerge`, so a
|
|
21
|
+
* caller's `className="font-semibold"` still replaces it. Spelt as an
|
|
22
|
+
* arbitrary `[font-weight:…]` property instead, it would survive the merge
|
|
23
|
+
* and win the cascade: Tailwind emits it after `font-semibold`.
|
|
24
|
+
* - `CONTROL_TRACKING`, `CONTROL_TRIM` and `CONTROL_CASE` fall back to
|
|
25
|
+
* `normal`, `normal` and `none`, the spec's fallbacks: the chassis set none
|
|
26
|
+
* of the three, so a button drew each property's initial value unless an
|
|
27
|
+
* ancestor set a letter-spacing or a case for it to inherit. It now draws
|
|
28
|
+
* the initial value under such an ancestor too, which is what a control
|
|
29
|
+
* should: its voice is the set's, not the caption's it happens to sit in.
|
|
30
|
+
* - The three `CONTROL_PAD_*` multiply the rung each size read (`space-4`,
|
|
31
|
+
* `-5`, `-6`) by the set's multiplier, `1` when it has none.
|
|
32
|
+
* - The tone readers keep each tone's own ink, ground and edge:
|
|
33
|
+
* `style-quiet-ink` in particular falls back to `fg-muted` on the ghost and
|
|
34
|
+
* to `fg` on the outline, the two values the spec's §3.0 names as the reason
|
|
35
|
+
* a name like it cannot be declared on `console`.
|
|
36
|
+
*
|
|
37
|
+
* `style-control-case` is not in the contract yet (spec §10.4: it enters in
|
|
38
|
+
* L5.1). Until then no set declares it and `CONTROL_CASE` renders its
|
|
39
|
+
* fallback.
|
|
40
|
+
*
|
|
41
|
+
* **Its own module, and `Button`'s alone.** `@repo/docgen` attributes every
|
|
42
|
+
* token a file spells to each component that imports it, following only
|
|
43
|
+
* `_`-prefixed imports; the rule `_style-control-face.ts` records. Only
|
|
44
|
+
* `primitives/button.tsx` imports this, and `IconButton` reads it through
|
|
45
|
+
* `buttonChassis` and `buttonTones` as it always has.
|
|
46
|
+
*
|
|
47
|
+
* @internal Not part of the public API.
|
|
48
|
+
*/
|
|
49
|
+
/** The control's weight: 500, or the set's `style-control-weight`. */
|
|
50
|
+
const CONTROL_WEIGHT = "font-[number:var(--cue-style-control-weight,500)]";
|
|
51
|
+
/** The control's tracking: `normal`, or the set's `style-control-tracking`. */
|
|
52
|
+
const CONTROL_TRACKING = "tracking-[var(--cue-style-control-tracking,normal)]";
|
|
53
|
+
/** The label's box trim: `normal`, or the set's `style-control-trim`. */
|
|
54
|
+
const CONTROL_TRIM = "[text-box:var(--cue-style-control-trim,normal)]";
|
|
55
|
+
/** The label's case: `none`, or the set's `style-control-case` (spec §10.4). */
|
|
56
|
+
const CONTROL_CASE = "[text-transform:var(--cue-style-control-case,none)]";
|
|
57
|
+
/** `size="sm"`'s inline padding: `space-4` times the set's `style-control-pad`. */
|
|
58
|
+
const CONTROL_PAD_SM = "px-[calc(var(--cue-space-4)*var(--cue-style-control-pad,1))]";
|
|
59
|
+
/** `size="md"`'s inline padding: `space-5` times the set's `style-control-pad`. */
|
|
60
|
+
const CONTROL_PAD_MD = "px-[calc(var(--cue-space-5)*var(--cue-style-control-pad,1))]";
|
|
61
|
+
/** `size="lg"`'s inline padding: `space-6` times the set's `style-control-pad`. */
|
|
62
|
+
const CONTROL_PAD_LG = "px-[calc(var(--cue-space-6)*var(--cue-style-control-pad,1))]";
|
|
63
|
+
/** The secondary tone's ink: `fg-muted`, or the set's `style-secondary-ink`. */
|
|
64
|
+
const SECONDARY_INK = "text-[color:var(--cue-style-secondary-ink,var(--cue-fg-muted))]";
|
|
65
|
+
/** The secondary tone's ground: `surface-2`, or the set's `style-secondary-ground`. */
|
|
66
|
+
const SECONDARY_GROUND = "bg-[color:var(--cue-style-secondary-ground,var(--cue-surface-2))]";
|
|
67
|
+
/** The secondary tone's edge: `border`, or the set's `style-secondary-edge`. */
|
|
68
|
+
const SECONDARY_EDGE = "border-[color:var(--cue-style-secondary-edge,var(--cue-border))]";
|
|
69
|
+
/** The ghost tone's ink: `fg-muted`, or the set's `style-quiet-ink`. */
|
|
70
|
+
const GHOST_INK = "text-[color:var(--cue-style-quiet-ink,var(--cue-fg-muted))]";
|
|
71
|
+
/** The outline tone's ink: `fg`, or the set's `style-quiet-ink`. */
|
|
72
|
+
const OUTLINE_INK = "text-[color:var(--cue-style-quiet-ink,var(--cue-fg))]";
|
|
73
|
+
/** The outline tone's edge: `border`, or the set's `style-outline-edge`. */
|
|
74
|
+
const OUTLINE_EDGE = "border-[color:var(--cue-style-outline-edge,var(--cue-border))]";
|
|
75
|
+
//#endregion
|
|
76
|
+
export { CONTROL_CASE, CONTROL_PAD_LG, CONTROL_PAD_MD, CONTROL_PAD_SM, CONTROL_TRACKING, CONTROL_TRIM, CONTROL_WEIGHT, GHOST_INK, OUTLINE_EDGE, OUTLINE_INK, SECONDARY_EDGE, SECONDARY_GROUND, SECONDARY_INK };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region src/system/_style-data-face.ts
|
|
2
|
+
/**
|
|
3
|
+
* The face figures and records are set in: mono, until a style set names another.
|
|
4
|
+
*
|
|
5
|
+
* Spec 2026-09-26-looks-fidelity §3.5, plan R1. A `Stat`'s value and detail, a
|
|
6
|
+
* `Table`, a `Row`, a `Bento` tile's eyebrow and a `SectionHeader`'s count all
|
|
7
|
+
* spelt `font-mono`. In the console that is the data's voice; in Tender, Kiln
|
|
8
|
+
* and Porcelain the same numbers are set in the Look's sans (T15, K44, P46), and
|
|
9
|
+
* a face chosen per call site would not follow the Look.
|
|
10
|
+
*
|
|
11
|
+
* `tabular-nums` stays at each call site: a sans figure column still has to line
|
|
12
|
+
* up. Code, timecode and DMX values do not read this — they are content, and stay
|
|
13
|
+
* `font-mono` whatever the Look.
|
|
14
|
+
*
|
|
15
|
+
* **The fallback is the old class, spelt out**: `font-mono` compiles to
|
|
16
|
+
* `font-family: var(--cue-font-mono)`, and `--cue-style-data-face` is optional
|
|
17
|
+
* (spec §3.0) — on no `:root`, and left at the shared `[data-style]` reset by
|
|
18
|
+
* every shipped set — so the reader resolves the element's own mono, exactly as
|
|
19
|
+
* `font-mono` did, in every set and every font island.
|
|
20
|
+
*
|
|
21
|
+
* **Its own module**, one name per file, so `@repo/docgen` attributes exactly
|
|
22
|
+
* this token to exactly the components that import it.
|
|
23
|
+
*
|
|
24
|
+
* @internal Not part of the public API.
|
|
25
|
+
*/
|
|
26
|
+
const DATA_FACE = "font-[family-name:var(--cue-style-data-face,var(--cue-font-mono))]";
|
|
27
|
+
//#endregion
|
|
28
|
+
export { DATA_FACE };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/system/_style-description.ts
|
|
2
|
+
/**
|
|
3
|
+
* `Card.Description`'s leading and tracking (plan V.2, Z104, T117, P8).
|
|
4
|
+
*
|
|
5
|
+
* The description reads `style-description-leading` first and then the body
|
|
6
|
+
* leading, so Zine can set a card's supporting line apart from the rest of its
|
|
7
|
+
* body copy (a clamp the description alone measured) while Tender and
|
|
8
|
+
* Porcelain move it with their body leading; with neither named it keeps the
|
|
9
|
+
* `leading-ui` it drew. The tracking is the description's own name rather
|
|
10
|
+
* than `style-prose-tracking`, which Kiln declares at -0.02em for its prose:
|
|
11
|
+
* reading that here would have moved every Kiln card's copy with it. It falls
|
|
12
|
+
* back to `inherit`, which is what the description drew, since it declared no
|
|
13
|
+
* tracking before.
|
|
14
|
+
*
|
|
15
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason.
|
|
16
|
+
*
|
|
17
|
+
* @internal Not part of the public API.
|
|
18
|
+
*/
|
|
19
|
+
const DESCRIPTION_LEADING = "leading-[var(--cue-style-description-leading,var(--cue-style-body-leading,var(--cue-leading-ui)))]";
|
|
20
|
+
/** @see DESCRIPTION_LEADING */
|
|
21
|
+
const DESCRIPTION_TRACKING = "tracking-[var(--cue-style-description-tracking,inherit)]";
|
|
22
|
+
//#endregion
|
|
23
|
+
export { DESCRIPTION_LEADING, DESCRIPTION_TRACKING };
|