@cueplusplus/ui 0.16.0 → 0.18.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 +901 -0
- package/README.md +1 -1
- 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 +3 -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 +1 -1
- package/dist/chrome/_tabs-scroll.js +1 -1
- package/dist/chrome/app-bar.js +9 -3
- package/dist/chrome/app-shell.js +2 -1
- package/dist/chrome/band.d.ts +18 -12
- package/dist/chrome/band.js +18 -32
- package/dist/chrome/empty-state.js +8 -4
- 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 +6 -3
- package/dist/chrome/page-shell.js +8 -5
- package/dist/chrome/panel.d.ts +5 -2
- package/dist/chrome/panel.js +10 -5
- package/dist/chrome/row.js +9 -5
- package/dist/chrome/scroll-area.js +6 -4
- package/dist/chrome/section-header.js +13 -4
- package/dist/chrome/segmented-control.js +14 -4
- package/dist/chrome/status-bar.js +2 -1
- package/dist/chrome/tabs.js +14 -3
- package/dist/chrome/toolbar.js +6 -3
- 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-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/_trigger.js +4 -1
- package/dist/date/calendar.js +22 -12
- 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.d.ts +34 -6
- package/dist/forms/_chassis.js +44 -9
- package/dist/forms/_listbox.js +22 -14
- package/dist/forms/checkbox.js +13 -4
- package/dist/forms/env-var-input.js +3 -2
- package/dist/forms/field.d.ts +2 -1
- package/dist/forms/field.js +16 -5
- package/dist/forms/file-upload.js +3 -2
- package/dist/forms/input-group.js +11 -2
- package/dist/forms/multi-select.js +4 -3
- package/dist/forms/number-field.js +7 -3
- package/dist/forms/otp-field.js +15 -6
- package/dist/forms/password-input.js +4 -2
- package/dist/forms/radio-group.js +10 -4
- package/dist/forms/rating.js +2 -1
- package/dist/forms/scrub-input.js +2 -1
- package/dist/forms/search-input.js +2 -1
- package/dist/forms/select.js +10 -4
- package/dist/forms/slider.js +9 -3
- package/dist/forms/switch.js +9 -3
- package/dist/forms/tags-input.js +4 -3
- package/dist/forms/textarea.js +3 -1
- package/dist/forms/toggle-group.js +2 -1
- package/dist/forms/toggle.js +5 -1
- package/dist/index.d.ts +2 -2
- 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 +4 -3
- package/dist/instruments/meter.js +2 -1
- package/dist/instruments/progress.js +9 -3
- package/dist/instruments/seam-grid.js +5 -3
- package/dist/instruments/stat.js +13 -4
- package/dist/instruments/table.js +29 -10
- package/dist/instruments/terminal-frame.js +4 -2
- package/dist/instruments/usage-chart.js +1 -1
- package/dist/layout/_collapse.js +26 -5
- package/dist/layout/accordion.js +2 -1
- package/dist/layout/bento.js +7 -4
- package/dist/layout/breadcrumb.js +10 -5
- package/dist/layout/card.js +14 -7
- package/dist/layout/carousel.js +3 -2
- package/dist/layout/collapsible.js +6 -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 +30 -0
- package/dist/layout/link.js +22 -3
- package/dist/layout/pagination.js +8 -8
- 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/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 +74 -14
- package/dist/overlays/_surface.js +87 -14
- package/dist/overlays/alert-dialog.js +1 -1
- package/dist/overlays/command-palette.js +28 -9
- package/dist/overlays/dialog.d.ts +5 -0
- package/dist/overlays/dialog.js +6 -1
- package/dist/overlays/drawer.js +8 -1
- package/dist/overlays/hover-card.js +3 -1
- package/dist/overlays/info-tip.js +2 -1
- package/dist/overlays/menubar.js +3 -1
- package/dist/overlays/popover.js +3 -1
- package/dist/overlays/toast.js +14 -6
- package/dist/overlays/tooltip.js +3 -1
- package/dist/primitives/avatar.js +6 -2
- package/dist/primitives/button.d.ts +16 -1
- package/dist/primitives/button.js +44 -12
- package/dist/primitives/chip.d.ts +11 -29
- package/dist/primitives/chip.js +40 -50
- package/dist/primitives/icon-button.d.ts +1 -1
- package/dist/primitives/kbd.d.ts +6 -0
- package/dist/primitives/kbd.js +10 -1
- package/dist/primitives/skeleton.js +2 -1
- package/dist/system/_focus-ring-field.js +29 -0
- package/dist/system/_focus-ring.js +125 -0
- package/dist/system/_paint-glow.js +22 -3
- package/dist/system/_paint-rest-shade.js +32 -0
- package/dist/system/_paint-rim.js +22 -4
- package/dist/system/_paint-stroke-surface-1.js +1 -1
- package/dist/system/_paint-stroke-surface-2.js +14 -1
- package/dist/system/_paint-texture.js +5 -2
- package/dist/system/_style-accordion-rule.js +32 -0
- package/dist/system/_style-app-bar.js +65 -0
- package/dist/system/_style-avatar.js +20 -0
- package/dist/system/_style-band.js +57 -0
- package/dist/system/_style-body-leading.js +19 -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 +32 -0
- package/dist/system/_style-caption-ink.js +17 -0
- package/dist/system/_style-caption-size.js +19 -0
- package/dist/system/_style-caption-weight.js +18 -0
- package/dist/system/_style-caption.js +19 -0
- package/dist/system/_style-card-gap.js +14 -0
- package/dist/system/_style-card-pad.js +43 -0
- package/dist/system/_style-cell.js +18 -0
- package/dist/system/_style-check-glyph.js +14 -0
- package/dist/system/_style-check.js +40 -0
- package/dist/system/_style-chip.js +143 -0
- package/dist/system/_style-choice-gap.js +15 -0
- package/dist/system/_style-code.js +13 -0
- package/dist/system/_style-collapse.js +94 -0
- package/dist/system/_style-control-face.js +29 -0
- package/dist/system/_style-control-gap.js +14 -0
- package/dist/system/_style-control-label.js +29 -0
- package/dist/system/_style-control-step.js +22 -0
- package/dist/system/_style-control.js +76 -0
- package/dist/system/_style-crumb.js +44 -0
- package/dist/system/_style-data-face.js +28 -0
- package/dist/system/_style-day.js +25 -0
- package/dist/system/_style-description.js +23 -0
- package/dist/system/_style-disabled.js +70 -0
- package/dist/system/_style-disclosure.js +21 -0
- package/dist/system/_style-empty-state.js +42 -0
- package/dist/system/_style-eyebrow.js +43 -0
- package/dist/system/_style-field-chassis.js +38 -0
- package/dist/system/_style-field-gap.js +12 -0
- package/dist/system/_style-footer-rule.js +47 -0
- package/dist/system/_style-glyph-ink.js +20 -0
- package/dist/system/_style-glyph-opacity.js +20 -0
- package/dist/system/_style-glyph-size.js +21 -0
- package/dist/system/_style-group-gap.js +15 -0
- package/dist/system/_style-group-label-pad.js +14 -0
- package/dist/system/_style-group-label.js +24 -0
- package/dist/system/_style-gutter.js +17 -0
- package/dist/system/_style-help-ink.js +14 -0
- package/dist/system/_style-help.js +38 -0
- package/dist/system/_style-hover-card-width.js +15 -0
- package/dist/system/_style-input-face.js +34 -0
- package/dist/system/_style-kbd.js +58 -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 +58 -0
- package/dist/system/_style-menu.js +43 -0
- package/dist/system/_style-meter.js +15 -0
- package/dist/system/_style-nav-item.js +41 -0
- package/dist/system/_style-nav-menu.js +48 -0
- package/dist/system/_style-nav-voice.js +43 -0
- package/dist/system/_style-option.js +99 -0
- package/dist/system/_style-otp.js +15 -0
- package/dist/system/_style-outline-hover.js +18 -0
- package/dist/system/_style-overlay-title.js +35 -0
- package/dist/system/_style-page-title.js +48 -0
- package/dist/system/_style-page.js +17 -0
- package/dist/system/_style-palette.js +18 -0
- package/dist/system/_style-panel.js +21 -0
- package/dist/system/_style-popover-pad.js +13 -0
- package/dist/system/_style-popover-width.js +15 -0
- package/dist/system/_style-quiet-ink.js +13 -0
- package/dist/system/_style-radio.js +19 -0
- package/dist/system/_style-row-disabled.js +17 -0
- package/dist/system/_style-row-pad.js +13 -0
- package/dist/system/_style-row.js +30 -0
- package/dist/system/_style-scrollbar.js +19 -0
- package/dist/system/_style-seam.js +43 -0
- package/dist/system/_style-section-rule.js +26 -0
- package/dist/system/_style-segment-pad.js +15 -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-skeleton.js +15 -0
- package/dist/system/_style-slider.js +26 -0
- package/dist/system/_style-stage-marks.js +26 -0
- package/dist/system/_style-stat.js +31 -0
- package/dist/system/_style-stepper.js +16 -0
- package/dist/system/_style-switch.js +26 -0
- package/dist/system/_style-tab-hover.js +15 -0
- package/dist/system/_style-tab.js +71 -0
- package/dist/system/_style-text-focus.js +26 -0
- package/dist/system/_style-textarea.js +21 -0
- package/dist/system/_style-title.js +37 -0
- package/dist/system/_style-toast.js +22 -0
- package/dist/system/_style-toggle.js +50 -0
- package/dist/system/_style-toolbar.js +23 -0
- package/dist/system/_style-tooltip.js +46 -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 +118 -21
- package/dist/system/theme-provider.js +362 -73
- 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 +29 -2
- package/manifest/components/agent-pile.json +3 -0
- package/manifest/components/alert-dialog.json +36 -3
- package/manifest/components/app-bar.json +61 -2
- package/manifest/components/app-shell.json +5 -0
- package/manifest/components/ask-box.json +3 -1
- package/manifest/components/autocomplete.json +85 -1
- package/manifest/components/avatar-group.json +7 -0
- package/manifest/components/avatar.json +7 -0
- package/manifest/components/band.json +7 -3
- package/manifest/components/bento.json +12 -1
- package/manifest/components/breadcrumb.json +12 -0
- package/manifest/components/button.json +43 -4
- package/manifest/components/calendar.json +13 -0
- package/manifest/components/card.json +23 -1
- package/manifest/components/carousel.json +4 -1
- package/manifest/components/channel-matrix.json +37 -3
- package/manifest/components/chart-tooltip-content.json +35 -3
- package/manifest/components/chat-empty-state.json +3 -1
- package/manifest/components/checkbox-group.json +36 -1
- package/manifest/components/checkbox.json +36 -1
- package/manifest/components/chip.json +22 -1
- package/manifest/components/clamp.json +3 -1
- package/manifest/components/code-block.json +10 -1
- package/manifest/components/collapsible.json +35 -2
- package/manifest/components/color-area.json +4 -2
- package/manifest/components/color-field.json +29 -0
- package/manifest/components/color-picker.json +29 -0
- package/manifest/components/color-slider.json +3 -1
- package/manifest/components/colors-section.json +9 -1
- package/manifest/components/combobox.json +85 -1
- package/manifest/components/command-palette.json +39 -3
- 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 +29 -0
- package/manifest/components/confidence-marker.json +3 -1
- package/manifest/components/container.json +2 -1
- package/manifest/components/context-menu.json +35 -3
- 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 +28 -0
- package/manifest/components/date-picker.json +32 -0
- package/manifest/components/date-range-picker.json +32 -0
- package/manifest/components/delegation-card.json +3 -1
- package/manifest/components/density.json +15 -7
- package/manifest/components/description-list.json +6 -1
- package/manifest/components/dialog.json +37 -3
- package/manifest/components/disclosure.json +35 -2
- package/manifest/components/dmx-bar.json +34 -3
- package/manifest/components/dmx-strip.json +34 -3
- package/manifest/components/drawer.json +36 -3
- package/manifest/components/dropdown-menu.json +35 -3
- 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/empty-state.json +13 -0
- package/manifest/components/env-var-input.json +28 -0
- 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 +15 -0
- package/manifest/components/field-error.json +15 -0
- package/manifest/components/field-label.json +16 -1
- package/manifest/components/field.json +15 -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 +37 -3
- package/manifest/components/info-tip.json +3 -0
- package/manifest/components/input-group.json +31 -0
- package/manifest/components/input.json +29 -0
- package/manifest/components/item.json +3 -1
- package/manifest/components/kbd.json +12 -1
- package/manifest/components/ledger.json +9 -2
- package/manifest/components/link.json +33 -0
- package/manifest/components/log-viewer.json +3 -0
- package/manifest/components/map-answer.json +3 -1
- package/manifest/components/markdown-text.json +3 -0
- package/manifest/components/menubar.json +38 -4
- package/manifest/components/message-list.json +3 -0
- package/manifest/components/message.json +6 -1
- package/manifest/components/meter.json +1 -0
- package/manifest/components/mobile-composer.json +3 -1
- package/manifest/components/multi-select.json +86 -1
- package/manifest/components/musical-time-input.json +29 -0
- package/manifest/components/navigation-menu.json +48 -3
- package/manifest/components/node-card.json +3 -0
- package/manifest/components/number-field.json +30 -0
- package/manifest/components/otp-field.json +29 -0
- package/manifest/components/page-shell.json +14 -0
- package/manifest/components/pagination.json +22 -0
- package/manifest/components/panel-header.json +13 -0
- package/manifest/components/panel.json +14 -1
- package/manifest/components/password-input.json +28 -0
- package/manifest/components/permission-scopes.json +3 -1
- package/manifest/components/piano-keyboard.json +3 -0
- package/manifest/components/popover.json +37 -3
- package/manifest/components/preset-section.json +9 -1
- package/manifest/components/preview.json +24 -10
- package/manifest/components/progress.json +10 -1
- package/manifest/components/prompt-library.json +3 -1
- package/manifest/components/queue-dock.json +3 -1
- package/manifest/components/radio-group.json +14 -0
- package/manifest/components/radio.json +14 -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 +8 -1
- package/manifest/components/scroll-area.json +6 -2
- package/manifest/components/scrollable-tabs-list.json +21 -0
- package/manifest/components/scrub-input.json +28 -0
- package/manifest/components/seam-cell.json +1 -0
- package/manifest/components/seam-grid.json +1 -0
- package/manifest/components/seam-list.json +8 -1
- package/manifest/components/search-input.json +28 -0
- package/manifest/components/section-header.json +15 -2
- package/manifest/components/segmented-control.json +17 -0
- package/manifest/components/select.json +42 -0
- package/manifest/components/settings-panel.json +3 -0
- package/manifest/components/shape-section.json +9 -1
- package/manifest/components/sheet.json +35 -3
- package/manifest/components/shimmer-label.json +3 -0
- package/manifest/components/sidebar.json +19 -2
- package/manifest/components/skeleton.json +2 -0
- package/manifest/components/slider.json +16 -0
- package/manifest/components/sources.json +3 -1
- package/manifest/components/stat.json +17 -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 +30 -0
- package/manifest/components/table-scroll-region.json +22 -2
- package/manifest/components/table.json +22 -2
- package/manifest/components/tabs.json +22 -1
- package/manifest/components/tags-input.json +86 -1
- package/manifest/components/terminal-frame.json +3 -0
- package/manifest/components/textarea.json +31 -0
- package/manifest/components/theme-configurator.json +35 -3
- package/manifest/components/theme-provider.json +31 -19
- package/manifest/components/thread-search.json +3 -1
- package/manifest/components/threshold-rail.json +3 -0
- package/manifest/components/time-field.json +28 -0
- package/manifest/components/toast.json +39 -2
- package/manifest/components/toggle-group.json +2 -1
- package/manifest/components/toggle.json +32 -0
- 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 +22 -1
- package/manifest/components/tooltip.json +42 -3
- 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/fixtures.json +15 -0
- package/manifest/manifest.json +210 -190
- package/manifest/tokens.json +395 -4
- package/package.json +6 -6
|
@@ -12,9 +12,12 @@
|
|
|
12
12
|
* entirely and repaints outlines in the user's own highlight colour, so a ring
|
|
13
13
|
* drawn as a shadow vanishes for exactly the people who most need it — and a
|
|
14
14
|
* form control's ring is a focus indicator. `forms/chassis.test.ts` asserts
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
15
|
+
* that the one shadow `controlSurface` carries is the resting shade
|
|
16
|
+
* (`REST_SHADE_CLASS`, fidelity plan R3) and that nothing else in it is a
|
|
17
|
+
* shadow or a ring, and it is right to: the shade is decorative and
|
|
18
|
+
* unconditional, no part of the focus indicator, so losing it to
|
|
19
|
+
* `forced-colors` loses nothing a person needs. §22's inventory lists
|
|
20
|
+
* `_chassis.ts:101` as a rim site; it is wrong, and the guard predates it.
|
|
18
21
|
*
|
|
19
22
|
* A panel's or a card's rim is decorative, so the same loss is cosmetic there.
|
|
20
23
|
*
|
|
@@ -34,8 +37,23 @@
|
|
|
34
37
|
* At the defaults `--cue-paint-rim-width` is `0px` and the ink is
|
|
35
38
|
* `transparent`, so the ring is a no-op twice over.
|
|
36
39
|
*
|
|
40
|
+
* **The resting shade rides in the same list** (spec 2026-09-26-looks-fidelity
|
|
41
|
+
* §3.10, `paint-rest-shade`; plan R5). A card and a panel are the two surfaces
|
|
42
|
+
* that spend this ring, and they are two of `REST_SHADE`'s readers: a pack that
|
|
43
|
+
* sets them down on the page with a one-stop contact shadow (glaze, rows P21
|
|
44
|
+
* and P25) tints `--cue-paint-rest-shade`, and every other pack leaves it
|
|
45
|
+
* `transparent`. It is composed here, as the second layer of this one utility,
|
|
46
|
+
* and not beside it, for the reason above — `twMerge` keeps one of two
|
|
47
|
+
* `shadow-` utilities. It is spelt out rather than interpolated from
|
|
48
|
+
* `_paint-rest-shade.ts`, because Tailwind scans the shipped `dist/` for whole
|
|
49
|
+
* class strings and a template literal is not one; `test/system/
|
|
50
|
+
* paint-rim-pattern.test.ts` holds the two spellings to each other. A
|
|
51
|
+
* transparent layer paints nothing, so under every pack but a tinted one this
|
|
52
|
+
* is still the ring alone (`tests/browser/paint-elevation-noop.spec.ts`, by
|
|
53
|
+
* pixels, under all ten).
|
|
54
|
+
*
|
|
37
55
|
* @internal Not part of the public API.
|
|
38
56
|
*/
|
|
39
|
-
const RIM_INSET = "shadow-[inset_0_0_0_var(--cue-paint-rim-width)_var(--cue-paint-rim-ink,transparent)]";
|
|
57
|
+
const RIM_INSET = "shadow-[inset_0_0_0_var(--cue-paint-rim-width)_var(--cue-paint-rim-ink,transparent),0_calc(2px*var(--cue-paint-shadow-scale))_calc(4px*var(--cue-paint-shadow-scale))_var(--cue-paint-rest-shade,transparent)]";
|
|
40
58
|
//#endregion
|
|
41
59
|
export { RIM_INSET };
|
|
@@ -14,6 +14,6 @@
|
|
|
14
14
|
*
|
|
15
15
|
* @internal Not part of the public API.
|
|
16
16
|
*/
|
|
17
|
-
const STROKE_SURFACE_1 = "border-transparent border-(length:--cue-paint-stroke-width) bg-[linear-gradient(var(--cue-surface-1),var(--cue-surface-1)),linear-gradient(var(--cue-paint-stroke-angle),var(--cue-paint-stroke-from,var(--cue-border)),var(--cue-paint-stroke-to,var(--cue-border)))] bg-origin-border [background-clip:padding-box,border-box]";
|
|
17
|
+
const STROKE_SURFACE_1 = "border-transparent border-(length:--cue-paint-stroke-width) bg-[linear-gradient(var(--cue-surface-1),var(--cue-surface-1)),linear-gradient(var(--cue-paint-stroke-angle),var(--cue-paint-stroke-raised-from,var(--cue-paint-stroke-from,var(--cue-border))),var(--cue-paint-stroke-raised-to,var(--cue-paint-stroke-to,var(--cue-border))))] bg-origin-border [background-clip:padding-box,border-box]";
|
|
18
18
|
//#endregion
|
|
19
19
|
export { STROKE_SURFACE_1 };
|
|
@@ -17,11 +17,24 @@
|
|
|
17
17
|
* theme did not choose for them. Caught by the manifest, which showed 22
|
|
18
18
|
* components losing `--cue-border-overlay` the moment this fill was adopted.
|
|
19
19
|
*
|
|
20
|
+
* **Round 2 (spec §3.10, P0.6): the stroke stops read the overlay's own ink,
|
|
21
|
+
* `paint-stroke-overlay-from`/`-to`, not `paint-stroke-from`/`-to` any more.**
|
|
22
|
+
* Every shipped pack still restates its stroke pair here too — `none`'s pair
|
|
23
|
+
* is `var(--cue-border-overlay)`, closing F-10's gap (under `none`, an overlay's
|
|
24
|
+
* edge used to differ from what a page with no pack draws) — so the fallback
|
|
25
|
+
* stays load-bearing only for a THIRD-PARTY pack that has not yet declared the
|
|
26
|
+
* two new names.
|
|
27
|
+
*
|
|
28
|
+
* **The fill reads `style-overlay-ground` (spec §3.11), not a bare
|
|
29
|
+
* `--cue-surface-2` literal.** A style set may pick one of five opaque grounds
|
|
30
|
+
* for an overlay's fill, the same way `band-ground` works one axis over; no
|
|
31
|
+
* set does yet, so the fallback keeps this a no-op everywhere.
|
|
32
|
+
*
|
|
20
33
|
* The recipe itself, and why its off state is a flat gradient rather than
|
|
21
34
|
* `none`, is documented once in `./_paint`.
|
|
22
35
|
*
|
|
23
36
|
* @internal Not part of the public API.
|
|
24
37
|
*/
|
|
25
|
-
const STROKE_SURFACE_2 = "border-transparent border-(length:--cue-paint-stroke-width) bg-[linear-gradient(var(--cue-surface-2),var(--cue-surface-2)),linear-gradient(var(--cue-paint-stroke-angle),var(--cue-paint-stroke-from,var(--cue-border-overlay)),var(--cue-paint-stroke-to,var(--cue-border-overlay)))] bg-origin-border [background-clip:padding-box,border-box]";
|
|
38
|
+
const STROKE_SURFACE_2 = "border-transparent border-(length:--cue-paint-stroke-width) bg-[linear-gradient(var(--cue-style-overlay-ground,var(--cue-surface-2)),var(--cue-style-overlay-ground,var(--cue-surface-2))),linear-gradient(var(--cue-paint-stroke-angle),var(--cue-paint-stroke-overlay-from,var(--cue-border-overlay)),var(--cue-paint-stroke-overlay-to,var(--cue-border-overlay)))] bg-origin-border [background-clip:padding-box,border-box]";
|
|
26
39
|
//#endregion
|
|
27
40
|
export { STROKE_SURFACE_2 };
|
|
@@ -33,8 +33,11 @@
|
|
|
33
33
|
* already decided. Found in review.
|
|
34
34
|
*
|
|
35
35
|
* **Nothing else in the library may take this pseudo-element on the same
|
|
36
|
-
* element.** §6.5 note 2 is about that, and it is why
|
|
37
|
-
* before adopting: neither `Band` nor `AppShell`
|
|
36
|
+
* element.** §6.5 note 2 is about that, and it is why each host is checked
|
|
37
|
+
* before adopting: neither `Band` nor `AppShell.Root` used `::before` for
|
|
38
|
+
* anything else at the point each one took this class string (spec 2026-09-26
|
|
39
|
+
* R-14 added the second host, so a pack's texture also covers the page ground
|
|
40
|
+
* a console shell paints and not only `<Band separation="ground">`).
|
|
38
41
|
*
|
|
39
42
|
* **No ink here, so no fallback rule to keep.** Every name this spends is a
|
|
40
43
|
* declared pack name with a `:root` default — `texture` is `none`,
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//#region src/system/_style-accordion-rule.ts
|
|
2
|
+
/**
|
|
3
|
+
* The line style of the rule between two accordion sections (round 6, spec
|
|
4
|
+
* §11, lane R6.T: `style-accordion-rule-style`, KEY{solid, dashed}).
|
|
5
|
+
*
|
|
6
|
+
* `Accordion.Item` draws the rule with `border-t`, which writes
|
|
7
|
+
* `border-top-style: var(--tw-border-style)`, a slot Tailwind registers with
|
|
8
|
+
* `inherits: false` and `initial-value: solid`, so the section fills that slot
|
|
9
|
+
* rather than a raw `[border-top-style:…]` — the footer's reason
|
|
10
|
+
* (`_style-footer-rule.ts`): a caller's own `border-dotted` still wins. The
|
|
11
|
+
* fallback is the slot's `solid`. stripe.com's accordion draws its rules 1px
|
|
12
|
+
* dashed in the quiet border ink (`:where(.hds-accordion) .hds-details`), so
|
|
13
|
+
* tender sets `dashed` (T126).
|
|
14
|
+
*
|
|
15
|
+
* **Its own module**, and not in `_style-collapse.ts`, because docgen credits
|
|
16
|
+
* every `--cue-*` in a module to each component that imports it, and
|
|
17
|
+
* `Collapsible` and `Disclosure` draw no rule between sections.
|
|
18
|
+
*
|
|
19
|
+
* @internal Not part of the public API.
|
|
20
|
+
*/
|
|
21
|
+
const ACCORDION_RULE_STYLE = "[--tw-border-style:var(--cue-style-accordion-rule-style,solid)]";
|
|
22
|
+
/**
|
|
23
|
+
* The ink of the rule between two accordion sections (round 6, spec §11, lane
|
|
24
|
+
* R6.K: `style-accordion-rule-ink`), falling back to the `border` the item's
|
|
25
|
+
* `border-border` drew. replit.com rules its FAQ rows 1px #d7d5ce where its
|
|
26
|
+
* footer rule, the kiln theme's `border`, is #dad2ce — ΔE00 3.85 apart, so the
|
|
27
|
+
* rule takes a name of its own rather than moving the theme's anchor (K140). greptile.com's
|
|
28
|
+
* FAQ rules are 1px dashed in its heading ink, slate, which zine sets (Z111).
|
|
29
|
+
*/
|
|
30
|
+
const ACCORDION_RULE_INK = "border-[color:var(--cue-style-accordion-rule-ink,var(--cue-border))]";
|
|
31
|
+
//#endregion
|
|
32
|
+
export { ACCORDION_RULE_INK, ACCORDION_RULE_STYLE };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
//#region src/system/_style-app-bar.ts
|
|
2
|
+
/**
|
|
3
|
+
* What `AppBar` reads from the style set beyond the navigation voice: the
|
|
4
|
+
* bar's height, its rule's ink and line style, and its inline inset, and a
|
|
5
|
+
* link's padding, hover ground, hover ink and muted ink.
|
|
6
|
+
*
|
|
7
|
+
* Spec 2026-09-26-looks-fidelity §3.7, §3.8, §3.11 and §10.4 (plan R4 and its
|
|
8
|
+
* Graphite addition). The site header serves every Look, so a Look's taller
|
|
9
|
+
* bar (tender, zine, kiln, porcelain), its lighter or absent rule (zine,
|
|
10
|
+
* kiln), its wider inset (graphite) or its padded, tinted links (zine,
|
|
11
|
+
* porcelain) cannot be a class on the header: it would move Classic too
|
|
12
|
+
* (F-18). Each is a style-set name read here.
|
|
13
|
+
*
|
|
14
|
+
* **Every fallback is the class it replaced, spelt out**, for the reason
|
|
15
|
+
* `_style-control-face.ts` gives, so under no set and under every set that
|
|
16
|
+
* declines a name the bar renders exactly what it did:
|
|
17
|
+
*
|
|
18
|
+
* - `h-(--cue-chrome-toolbar)`, `border-border` and `px-(--cue-space-5)` on
|
|
19
|
+
* the bar;
|
|
20
|
+
* - no padding and no ground on a link (`0`, `transparent`) — the link keeps
|
|
21
|
+
* `Link`'s own `rounded-control`, which a padded, tinted link now shows;
|
|
22
|
+
* - `hover:text-accent`, which `AppBar.Link` inherited from `Link`, read here
|
|
23
|
+
* through `style-hover-ink` as spec §3.7 names this reader;
|
|
24
|
+
* - `text-fg-muted` for the `muted` register, read through `style-quiet-ink`
|
|
25
|
+
* (spec §3.7: `fg-muted` for AppBar.Link `muted`).
|
|
26
|
+
*
|
|
27
|
+
* **The hover ground yields to a caller's own ground.** It is the one
|
|
28
|
+
* declaration here the link never had: `Link` sets no background in any state,
|
|
29
|
+
* so `<AppBar.Link className="bg-surface-2">` kept its ground under the pointer.
|
|
30
|
+
* A plain `hover:bg-[…]` is `(0,2,0)` and would paint over it; this is written
|
|
31
|
+
* `[@media(hover:hover)]:[:where(&:hover)]:`, which is `hover:` — the same
|
|
32
|
+
* media query, the same state — at zero specificity, so any class a caller
|
|
33
|
+
* passes for the ground still wins, hovered or not. The hover INK replaced
|
|
34
|
+
* `Link`'s own `hover:text-accent` and keeps its standing, as that did.
|
|
35
|
+
*
|
|
36
|
+
* `style-appbar-inset` entered the contract in the fidelity plan's L5.1:
|
|
37
|
+
* `graphite` declares it (40px, 24px on a phone; G38), and under every other
|
|
38
|
+
* set the bar renders its fallback.
|
|
39
|
+
*
|
|
40
|
+
* **The rule's line style fills Tailwind's own slot** (`style-chrome-rule-style`,
|
|
41
|
+
* round 5 of plan V.2: `zine` dashes it, Z17). The bar's `border-b` writes
|
|
42
|
+
* `border-bottom-style: var(--tw-border-style)`, a slot Tailwind registers as
|
|
43
|
+
* `@property` with `inherits: false` and `initial-value: solid` — which is the
|
|
44
|
+
* solid rule the bar always drew. Filling that slot keeps the one declaration,
|
|
45
|
+
* for the reason `_paint-glass.ts` fills `--tw-backdrop-blur`: a raw
|
|
46
|
+
* `[border-bottom-style:…]` would be a second, competing declaration, and
|
|
47
|
+
* Tailwind emits it after `border-dashed`, so it would beat a caller's own
|
|
48
|
+
* `border-dotted`. Through the slot a caller's style class still wins, because
|
|
49
|
+
* it writes `border-style` itself, after `border-b`. The fallback is the
|
|
50
|
+
* slot's own initial value, and `test/system/style-navigation.test.tsx` asks
|
|
51
|
+
* the compiler for both the slot and that value rather than remembering them.
|
|
52
|
+
*
|
|
53
|
+
* **Its own module**, for the docgen reason `_style-nav-voice.ts` gives: only
|
|
54
|
+
* `AppBar` reads these names, so only `AppBar` is credited with them.
|
|
55
|
+
*
|
|
56
|
+
* @internal Not part of the public API.
|
|
57
|
+
*/
|
|
58
|
+
/** The bar itself: height, bottom rule's ink and line style, and inline inset. */
|
|
59
|
+
const APP_BAR_CHROME = "h-[var(--cue-style-appbar-height,var(--cue-chrome-toolbar))] border-[color:var(--cue-style-chrome-rule,var(--cue-border))] [--tw-border-style:var(--cue-style-chrome-rule-style,solid)] px-[var(--cue-style-appbar-inset,var(--cue-space-5))]";
|
|
60
|
+
/** One link's box and hover: padding, hover ground, hover ink. */
|
|
61
|
+
const APP_BAR_LINK = "p-[var(--cue-style-nav-pad,0)] [@media(hover:hover)]:[:where(&:hover)]:bg-[color:var(--cue-style-nav-hover-ground,transparent)] hover:text-[color:var(--cue-style-hover-ink,var(--cue-accent))]";
|
|
62
|
+
/** The `muted` register's ink. */
|
|
63
|
+
const APP_BAR_QUIET_INK = "text-[color:var(--cue-style-quiet-ink,var(--cue-fg-muted))]";
|
|
64
|
+
//#endregion
|
|
65
|
+
export { APP_BAR_CHROME, APP_BAR_LINK, APP_BAR_QUIET_INK };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
//#region src/system/_style-avatar.ts
|
|
2
|
+
/**
|
|
3
|
+
* The avatar's corner and edge (round 6, spec §11, lane R6.Z).
|
|
4
|
+
*
|
|
5
|
+
* `style-avatar-radius` is a proportion of a radius rung (RUNG(radius-*), as
|
|
6
|
+
* `style-dialog-radius` is), multiplied by `--cue-radius-scale` like every
|
|
7
|
+
* other corner, and falls back to the `rounded-full` (9999px) an avatar drew.
|
|
8
|
+
* `style-avatar-edge` is an INK, falling back to the `border` it drew.
|
|
9
|
+
* greptile.com zeroes every corner, its portrait's among them, and draws no
|
|
10
|
+
* edge on it (Z132), so zine sets the control corner and `transparent`.
|
|
11
|
+
*
|
|
12
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason.
|
|
13
|
+
*
|
|
14
|
+
* @internal Not part of the public API.
|
|
15
|
+
*/
|
|
16
|
+
const AVATAR_RADIUS = "rounded-[calc(var(--cue-style-avatar-radius,9999px)*var(--cue-radius-scale))]";
|
|
17
|
+
/** @see AVATAR_RADIUS */
|
|
18
|
+
const AVATAR_EDGE = "border-[color:var(--cue-style-avatar-edge,var(--cue-border))]";
|
|
19
|
+
//#endregion
|
|
20
|
+
export { AVATAR_EDGE, AVATAR_RADIUS };
|
|
@@ -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,19 @@
|
|
|
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
|
+
//#endregion
|
|
19
|
+
export { BODY_LEADING };
|
|
@@ -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,32 @@
|
|
|
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
|
+
* A site that sets its own weight (a toast's medium title, round 6, P184) reads
|
|
24
|
+
* `BODY_FACE` alone, so a set's body weight does not thin it.
|
|
25
|
+
*
|
|
26
|
+
* @internal Not part of the public API.
|
|
27
|
+
*/
|
|
28
|
+
const BODY_FACE = "font-[family-name:var(--cue-style-body-face,var(--cue-font-mono))]";
|
|
29
|
+
/** @see BODY_FACE — the face with the weight, for copy whose weight is inherited. */
|
|
30
|
+
const BODY_VOICE = `${BODY_FACE} ${BODY_WEIGHT}`;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { BODY_FACE, BODY_VOICE };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/system/_style-caption-ink.ts
|
|
2
|
+
/**
|
|
3
|
+
* A caption's ink (round 6, spec §11, lane R6.P: `style-caption-ink`): an avatar's
|
|
4
|
+
* initials and a progress bar's label and value, falling back to the
|
|
5
|
+
* `fg-muted` or `fg-subtle` each drew. coss.com/ui inks all three `fg`
|
|
6
|
+
* (P143.fallback-ink, P170.label-ink, P170.value).
|
|
7
|
+
*
|
|
8
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason: one token per
|
|
9
|
+
* file, so only the components that read it are credited with it.
|
|
10
|
+
*
|
|
11
|
+
* @internal Not part of the public API.
|
|
12
|
+
*/
|
|
13
|
+
const CAPTION_INK_MUTED = "text-[color:var(--cue-style-caption-ink,var(--cue-fg-muted))]";
|
|
14
|
+
/** @see CAPTION_INK_MUTED */
|
|
15
|
+
const CAPTION_INK_SUBTLE = "text-[color:var(--cue-style-caption-ink,var(--cue-fg-subtle))]";
|
|
16
|
+
//#endregion
|
|
17
|
+
export { CAPTION_INK_MUTED, CAPTION_INK_SUBTLE };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/system/_style-caption-size.ts
|
|
2
|
+
/**
|
|
3
|
+
* A caption's type size (round 6, spec §11, lane R6.P: `style-caption-size`): an
|
|
4
|
+
* avatar's initials, a progress bar's and a slider's readout, and a calendar's
|
|
5
|
+
* month caption and weekday heads — the small type each set on the `text-label`
|
|
6
|
+
* or `text-micro` rung it falls back to. coss.com/ui sets the readouts and the
|
|
7
|
+
* month caption 14px (P170.label, P170.value-size, P178.value, P189.caption);
|
|
8
|
+
* its initials and weekday heads are 12px, which spec §6.2's G10 line quotes.
|
|
9
|
+
*
|
|
10
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason: one token per
|
|
11
|
+
* file, so only the components that read it are credited with it.
|
|
12
|
+
*
|
|
13
|
+
* @internal Not part of the public API.
|
|
14
|
+
*/
|
|
15
|
+
const CAPTION_SIZE_LABEL = "text-[length:var(--cue-style-caption-size,var(--cue-text-label))]";
|
|
16
|
+
/** @see CAPTION_SIZE_LABEL */
|
|
17
|
+
const CAPTION_SIZE_MICRO = "text-[length:var(--cue-style-caption-size,var(--cue-text-micro))]";
|
|
18
|
+
//#endregion
|
|
19
|
+
export { CAPTION_SIZE_LABEL, CAPTION_SIZE_MICRO };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/system/_style-caption-weight.ts
|
|
2
|
+
/**
|
|
3
|
+
* A caption's weight (round 6, spec §11, lane R6.P: `style-caption-weight`): an
|
|
4
|
+
* avatar's initials, a progress bar's label, and a calendar's month caption and
|
|
5
|
+
* weekday heads, falling back to the inherited or `400` weight each drew.
|
|
6
|
+
* coss.com/ui sets all four at 500 (P143.fallback-weight, P170.label-weight,
|
|
7
|
+
* P189.caption-weight, P189.weekday-weight).
|
|
8
|
+
*
|
|
9
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason: one token per
|
|
10
|
+
* file, so only the components that read it are credited with it.
|
|
11
|
+
*
|
|
12
|
+
* @internal Not part of the public API.
|
|
13
|
+
*/
|
|
14
|
+
const CAPTION_WEIGHT = "font-[number:var(--cue-style-caption-weight,inherit)]";
|
|
15
|
+
/** @see CAPTION_WEIGHT */
|
|
16
|
+
const CAPTION_WEIGHT_NORMAL = "font-[number:var(--cue-style-caption-weight,400)]";
|
|
17
|
+
//#endregion
|
|
18
|
+
export { CAPTION_WEIGHT, CAPTION_WEIGHT_NORMAL };
|
|
@@ -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,14 @@
|
|
|
1
|
+
//#region src/system/_style-card-gap.ts
|
|
2
|
+
/**
|
|
3
|
+
* The gap between a card's title and its description (round 6, spec §11, lane
|
|
4
|
+
* R6.P: `style-card-gap`), falling back to the `space-1` the header drew.
|
|
5
|
+
* coss.com/ui's card header sets them 6px apart (P146.gap).
|
|
6
|
+
*
|
|
7
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason: one token per
|
|
8
|
+
* file, so only the components that read it are credited with it.
|
|
9
|
+
*
|
|
10
|
+
* @internal Not part of the public API.
|
|
11
|
+
*/
|
|
12
|
+
const CARD_GAP = "gap-[var(--cue-style-card-gap,var(--cue-space-1))]";
|
|
13
|
+
//#endregion
|
|
14
|
+
export { CARD_GAP };
|
|
@@ -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,18 @@
|
|
|
1
|
+
//#region src/system/_style-cell.ts
|
|
2
|
+
/**
|
|
3
|
+
* A table cell's inline padding and leading (round 6, spec §11, lane R6.P:
|
|
4
|
+
* `style-cell-pad`, `style-cell-leading`), falling back to the row's
|
|
5
|
+
* `pad-row-x` and the inherited leading. coss.com/ui pads its cells and heads
|
|
6
|
+
* 10px and sets them on a line of 1 (P181, P181.head-pad, P181.cell-leading).
|
|
7
|
+
*
|
|
8
|
+
* **Optional** (spec §3.0): each name is declared by `porcelain` alone and each
|
|
9
|
+
* reader falls back to what the component drew. Its own module for docgen's
|
|
10
|
+
* reason: one component's tokens per file.
|
|
11
|
+
*
|
|
12
|
+
* @internal Not part of the public API.
|
|
13
|
+
*/
|
|
14
|
+
const CELL_PAD = "px-[var(--cue-style-cell-pad,var(--cue-pad-row-x))]";
|
|
15
|
+
/** @see CELL_PAD */
|
|
16
|
+
const CELL_LEADING = "leading-[var(--cue-style-cell-leading,inherit)]";
|
|
17
|
+
//#endregion
|
|
18
|
+
export { CELL_LEADING, CELL_PAD };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/system/_style-check-glyph.ts
|
|
2
|
+
/**
|
|
3
|
+
* A checkbox's tick and dash (round 6, spec §11, lane R6.P:
|
|
4
|
+
* `style-check-glyph-size`), falling back to the `size-full` of the box they
|
|
5
|
+
* drew. coss.com/ui's tick is 12px inside its 16px box (P147.glyph-size).
|
|
6
|
+
*
|
|
7
|
+
* **Optional** (spec §3.0). Its own module for docgen's reason: one token per
|
|
8
|
+
* file, so only the components that read it are credited with it.
|
|
9
|
+
*
|
|
10
|
+
* @internal Not part of the public API.
|
|
11
|
+
*/
|
|
12
|
+
const CHECK_GLYPH_SIZE = "size-[var(--cue-style-check-glyph-size,100%)]";
|
|
13
|
+
//#endregion
|
|
14
|
+
export { CHECK_GLYPH_SIZE };
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
/**
|
|
33
|
+
* The checkbox's hover edge (round 6, spec §11, lane R6.T:
|
|
34
|
+
* `style-check-hover-edge`), falling back to the `border-strong` it drew.
|
|
35
|
+
* stripe.com's unchecked box draws its hover edge in its brand-500
|
|
36
|
+
* (`--hds-color-input-border-hover`, #665efd, T145).
|
|
37
|
+
*/
|
|
38
|
+
const CHECK_HOVER_EDGE = "hover:border-[color:var(--cue-style-check-hover-edge,var(--cue-border-strong))]";
|
|
39
|
+
//#endregion
|
|
40
|
+
export { CHECK_EDGE, CHECK_HOVER_EDGE, CHECK_RADIUS, CHECK_SIZE_MD };
|