@wildo-ai/presets-components 1.1.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/.native.tsbuildinfo +1 -0
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.labels.d.ts.map +1 -1
- package/dist/esm/components/actions/action-button.d.ts +1 -4
- package/dist/esm/components/actions/action-button.d.ts.map +1 -1
- package/dist/esm/components/actions/action-button.js +21 -5
- package/dist/esm/components/actions/action-button.js.map +1 -1
- package/dist/esm/components/actions/action-button.labels.d.ts.map +1 -1
- package/dist/esm/components/actions/button-group.d.ts.map +1 -1
- package/dist/esm/components/actions/button.d.ts.map +1 -1
- package/dist/esm/components/actions/button.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.js +7 -3
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.js.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/code-block.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/code-block.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/image.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/image.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/shiki-highlighter-runtime.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/shiki-highlighter.lazy.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/web-preview.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/web-preview.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/conversation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/conversation.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/message.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/message.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/prompt-input.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/prompt-input.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/sources.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/sources.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/suggestion.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/suggestion.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.d.ts +18 -3
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.js +5 -3
- package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
- package/dist/esm/components/ai-elements/decision/decision-request.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/decision-request.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/confirmation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/confirmation.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/queue.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/queue.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/task.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/task.js +10 -2
- package/dist/esm/components/ai-elements/execution/task.js.map +1 -1
- package/dist/esm/components/ai-elements/execution/task.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/tool.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/connection.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/connection.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/controls.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/controls.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/edge.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/edge.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/graph-runtime.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/graph.lazy.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/panel.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/panel.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/toolbar.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/toolbar.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/agent.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/agent.js +23 -3
- package/dist/esm/components/ai-elements/meta/agent.js.map +1 -1
- package/dist/esm/components/ai-elements/meta/context.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/context.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/context.lazy.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/model-selector.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/model-selector.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/open-in-chat.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/open-in-chat.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/loader.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/loader.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/shimmer.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/shimmer.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/stream/execution-stream.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/stream/execution-stream.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/chain-of-thought.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/checkpoint.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/checkpoint.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/inline-citation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/inline-citation.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/plan.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/plan.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/reasoning.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/reasoning.labels.d.ts.map +1 -1
- package/dist/esm/components/app/app-layout-main-container.d.ts.map +1 -1
- package/dist/esm/components/app/app-layout-main-container.labels.d.ts.map +1 -1
- package/dist/esm/components/app/app-layout-main-container.labels.js +10 -2
- package/dist/esm/components/app/app-layout-main-container.labels.js.map +1 -1
- package/dist/esm/components/app/public-layout-main-container.d.ts.map +1 -1
- package/dist/esm/components/app/public-layout-main-container.js +52 -5
- package/dist/esm/components/app/public-layout-main-container.js.map +1 -1
- package/dist/esm/components/app/public-layout-main-container.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-format.utils.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/avatar.d.ts.map +1 -1
- package/dist/esm/components/data-display/avatar.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/badge.d.ts.map +1 -1
- package/dist/esm/components/data-display/badge.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/description-list.d.ts.map +1 -1
- package/dist/esm/components/data-display/description-list.js +10 -7
- package/dist/esm/components/data-display/description-list.js.map +1 -1
- package/dist/esm/components/data-display/description-list.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.js +20 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-code.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-code.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-date.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-date.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-datetime.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-duration.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-duration.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-enum.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-enum.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-audio.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-audio.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-document.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-image.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-image.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-video.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-video.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-format.utils.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-i18n.utils.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-money.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-money.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-number.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-number.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-phone.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-phone.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-date.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-date.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-money.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-money.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-number.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-number.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-time.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-time.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-string.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-string.js +3 -0
- package/dist/esm/components/data-display/formatters/display-field-string.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-string.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-time.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-time.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/markdown-content.d.ts.map +1 -1
- package/dist/esm/components/data-display/markdown-stream-runtime.d.ts.map +1 -1
- package/dist/esm/components/data-display/markdown-stream.lazy.d.ts.map +1 -1
- package/dist/esm/components/data-display/notification-indicator.d.ts.map +1 -1
- package/dist/esm/components/data-display/notification-indicator.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.d.ts.map +1 -1
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.d.ts.map +1 -1
- package/dist/esm/components/feedback/celebration-overlay.d.ts.map +1 -1
- package/dist/esm/components/feedback/celebration-overlay.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/danger-zone.d.ts.map +1 -1
- package/dist/esm/components/feedback/danger-zone.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/empty-state.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/error-display.d.ts.map +1 -1
- package/dist/esm/components/feedback/error-display.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-limit-indicator.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-lock-badge.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-lock-badge.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.js +7 -0
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.js.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-overlay.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-overlay.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-spinner.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-spinner.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/notification-center.d.ts +5 -3
- package/dist/esm/components/feedback/notification-center.d.ts.map +1 -1
- package/dist/esm/components/feedback/notification-center.js +7 -5
- package/dist/esm/components/feedback/notification-center.js.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/progress.d.ts.map +1 -1
- package/dist/esm/components/feedback/progress.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/skeleton.d.ts.map +1 -1
- package/dist/esm/components/feedback/skeleton.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/toast.d.ts.map +1 -1
- package/dist/esm/components/feedback/toast.labels.d.ts.map +1 -1
- package/dist/esm/components/form/autosave-indicator.d.ts.map +1 -1
- package/dist/esm/components/form/autosave-indicator.labels.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/field.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/field.labels.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/form-primitive.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/form-primitive.labels.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/form-primitive.labels.js +2 -2
- package/dist/esm/components/form/chromes/form-primitive.labels.js.map +1 -1
- package/dist/esm/components/form/combobox.d.ts.map +1 -1
- package/dist/esm/components/form/combobox.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/checkbox.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/checkbox.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/switch.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/switch.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/code-editor/cm6-editor-appearance.d.ts.map +1 -1
- package/dist/esm/components/form/controls/code-editor/cm6-editor.d.ts.map +1 -1
- package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.d.ts.map +1 -1
- package/dist/esm/components/form/controls/code-editor/form-field-code.d.ts.map +1 -1
- package/dist/esm/components/form/controls/code-editor/markdown-editor.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/calendar.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/calendar.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/date-range-picker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datepicker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-picker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-picker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-range-picker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select-multiple.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select-multiple.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/file-upload.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/file-upload.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input-group.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
- package/dist/esm/components/form/controls/number/slider.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-input.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-picker-surface.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-picker-surface.js +1 -1
- package/dist/esm/components/form/controls/string/color-picker-surface.js.map +1 -1
- package/dist/esm/components/form/controls/string/inline-edit-text.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/input-otp.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/input-otp.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/password-input.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/textarea.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/aspect-ratio.d.ts.map +1 -1
- package/dist/esm/components/layout/aspect-ratio.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/carousel.d.ts.map +1 -1
- package/dist/esm/components/layout/carousel.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/divider.d.ts.map +1 -1
- package/dist/esm/components/layout/divider.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/resizable.d.ts.map +1 -1
- package/dist/esm/components/layout/resizable.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/scroll-area.d.ts.map +1 -1
- package/dist/esm/components/layout/scroll-area.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/separator.d.ts.map +1 -1
- package/dist/esm/components/layout/separator.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/activity-bar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/activity-bar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/command-menu.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/command-menu.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/control-panel.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/control-panel.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/menu-user-org.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/menu-user-org.js +8 -2
- package/dist/esm/components/navigation/app-level/menu-user-org.js.map +1 -1
- package/dist/esm/components/navigation/app-level/menu-user-org.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/menubar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/menubar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/navigation-back.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/navigation-back.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/notification-center.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/notification-center.js +22 -19
- package/dist/esm/components/navigation/app-level/notification-center.js.map +1 -1
- package/dist/esm/components/navigation/app-level/notification-center.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/notification-center.labels.js +11 -14
- package/dist/esm/components/navigation/app-level/notification-center.labels.js.map +1 -1
- package/dist/esm/components/navigation/app-level/quick-action-button.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/quick-action-button.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/quick-switcher.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/quick-switcher.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/sidebar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/sidebar.js +32 -15
- package/dist/esm/components/navigation/app-level/sidebar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/sidebar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/status-bar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/status-bar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/toolbar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/toolbar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/utility-panel.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/utility-panel.js +41 -8
- package/dist/esm/components/navigation/app-level/utility-panel.js.map +1 -1
- package/dist/esm/components/navigation/app-level/utility-panel.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/utility-panel.labels.js +1 -0
- package/dist/esm/components/navigation/app-level/utility-panel.labels.js.map +1 -1
- package/dist/esm/components/navigation/breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/navigation/breadcrumb.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/command.d.ts.map +1 -1
- package/dist/esm/components/navigation/command.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/menu-bar.d.ts.map +1 -1
- package/dist/esm/components/navigation/menu-bar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/navbar.d.ts.map +1 -1
- package/dist/esm/components/navigation/navbar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/sidebar.d.ts.map +1 -1
- package/dist/esm/components/navigation/sidebar.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert-dialog.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert-dialog.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/drawer.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/drawer.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/sheet.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/sheet.js +2 -2
- package/dist/esm/components/overlays/containers/sheet.js.map +1 -1
- package/dist/esm/components/overlays/containers/sheet.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/context-menu.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/context-menu.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/dropdown-menu.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/hover-card.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/hover-card.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/popover.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/popover.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/tooltip.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/tooltip.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/accordion.d.ts.map +1 -1
- package/dist/esm/components/sections/accordion.js +43 -13
- package/dist/esm/components/sections/accordion.js.map +1 -1
- package/dist/esm/components/sections/accordion.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/card.d.ts.map +1 -1
- package/dist/esm/components/sections/card.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/collapsible.d.ts.map +1 -1
- package/dist/esm/components/sections/collapsible.js +17 -3
- package/dist/esm/components/sections/collapsible.js.map +1 -1
- package/dist/esm/components/sections/collapsible.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/content-section.d.ts.map +1 -1
- package/dist/esm/components/sections/content-section.js +11 -7
- package/dist/esm/components/sections/content-section.js.map +1 -1
- package/dist/esm/components/sections/disclosure-nesting.d.ts +20 -0
- package/dist/esm/components/sections/disclosure-nesting.d.ts.map +1 -0
- package/dist/esm/components/sections/disclosure-nesting.js +20 -0
- package/dist/esm/components/sections/disclosure-nesting.js.map +1 -0
- package/dist/esm/components/sections/pagination.d.ts.map +1 -1
- package/dist/esm/components/sections/pagination.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/stacked-layout.d.ts.map +1 -1
- package/dist/esm/components/sections/stacked-layout.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/stepper.d.ts.map +1 -1
- package/dist/esm/components/sections/stepper.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/table.d.ts.map +1 -1
- package/dist/esm/components/sections/table.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/tabs.d.ts.map +1 -1
- package/dist/esm/components/sections/tabs.js +141 -10
- package/dist/esm/components/sections/tabs.js.map +1 -1
- package/dist/esm/components/sections/tabs.labels.d.ts.map +1 -1
- package/dist/esm/components/typography/heading.d.ts.map +1 -1
- package/dist/esm/components/typography/heading.labels.d.ts.map +1 -1
- package/dist/esm/components/typography/label.d.ts.map +1 -1
- package/dist/esm/components/typography/label.labels.d.ts.map +1 -1
- package/dist/esm/components/typography/link.d.ts.map +1 -1
- package/dist/esm/components/typography/link.labels.d.ts.map +1 -1
- package/dist/esm/components/typography/text.d.ts.map +1 -1
- package/dist/esm/components/typography/text.labels.d.ts.map +1 -1
- package/dist/esm/components/typography/truncated-text.d.ts.map +1 -1
- package/dist/esm/config/billing-shell.presets.d.ts.map +1 -1
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/preset-design-system.d.ts.map +1 -1
- package/dist/esm/config/preset-error-pages.d.ts.map +1 -1
- package/dist/esm/config/preset-kits.d.ts.map +1 -1
- package/dist/esm/config/preset-kits.js +0 -4
- package/dist/esm/config/preset-kits.js.map +1 -1
- package/dist/esm/config/preset-navigation.d.ts.map +1 -1
- package/dist/esm/config/preset-resources.d.ts.map +1 -1
- package/dist/esm/config/preset-shell.d.ts.map +1 -1
- package/dist/esm/config/preset-shell.js +0 -4
- package/dist/esm/config/preset-shell.js.map +1 -1
- package/dist/esm/config/preset-utils.d.ts.map +1 -1
- package/dist/esm/config/presets.d.ts.map +1 -1
- package/dist/esm/config/presets.js +0 -1
- package/dist/esm/config/presets.js.map +1 -1
- package/dist/esm/config/resources/application.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/application.resource-presets.js +6 -6
- package/dist/esm/config/resources/application.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/billing.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/billing.resource-presets.js +8 -8
- package/dist/esm/config/resources/billing.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/guidance.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/guidance.resource-presets.js +7 -7
- package/dist/esm/config/resources/guidance.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/identity.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/identity.resource-presets.js +13 -7
- package/dist/esm/config/resources/identity.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/index.d.ts +23 -1
- package/dist/esm/config/resources/index.d.ts.map +1 -1
- package/dist/esm/config/resources/index.js +24 -3
- package/dist/esm/config/resources/index.js.map +1 -1
- package/dist/esm/config/resources/organizations.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/organizations.resource-presets.js +8 -8
- package/dist/esm/config/resources/organizations.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/resource.config.utils.d.ts.map +1 -1
- package/dist/esm/config/resources/security.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/security.resource-presets.js +104 -13
- package/dist/esm/config/resources/security.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/webhooks.resource-presets.d.ts.map +1 -1
- package/dist/esm/index.d.ts +0 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lottie/lottie.content.definitions.d.ts.map +1 -1
- package/dist/esm/lottie/lottie.definitions.d.ts.map +1 -1
- package/dist/esm/mermaid-stub.d.ts.map +1 -1
- package/dist/esm/registration/register-common-enums.d.ts.map +1 -1
- package/dist/esm/registration/register-common-enums.js +20 -1
- package/dist/esm/registration/register-common-enums.js.map +1 -1
- package/dist/esm/registration/register-default-animations.d.ts.map +1 -1
- package/dist/esm/registration/register-default-icons.d.ts.map +1 -1
- package/dist/esm/registration/register-default-presets.d.ts.map +1 -1
- package/dist/esm/registration/register-default-presets.js +0 -4
- package/dist/esm/registration/register-default-presets.js.map +1 -1
- package/dist/esm/shiki-subset.d.ts.map +1 -1
- package/dist/esm/theme-exports.d.ts.map +1 -1
- package/dist/esm/themes/cozy.theme.d.ts.map +1 -1
- package/dist/esm/themes/cozy.theme.js +8 -3
- package/dist/esm/themes/cozy.theme.js.map +1 -1
- package/dist/esm/themes/dense.theme.d.ts.map +1 -1
- package/dist/esm/themes/dense.theme.js +8 -5
- package/dist/esm/themes/dense.theme.js.map +1 -1
- package/dist/esm/themes/editorial.theme.d.ts.map +1 -1
- package/dist/esm/themes/editorial.theme.js +8 -3
- package/dist/esm/themes/editorial.theme.js.map +1 -1
- package/dist/esm/themes/glass.theme.d.ts.map +1 -1
- package/dist/esm/themes/glass.theme.js +10 -4
- package/dist/esm/themes/glass.theme.js.map +1 -1
- package/dist/esm/themes/neo-brutalist.theme.d.ts.map +1 -1
- package/dist/esm/themes/neo-brutalist.theme.js +8 -3
- package/dist/esm/themes/neo-brutalist.theme.js.map +1 -1
- package/dist/esm/themes/terminal.theme.d.ts.map +1 -1
- package/dist/esm/themes/terminal.theme.js +8 -3
- package/dist/esm/themes/terminal.theme.js.map +1 -1
- package/dist/esm/themes/trading.theme.d.ts.map +1 -1
- package/dist/esm/themes/trading.theme.js +8 -3
- package/dist/esm/themes/trading.theme.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/dist/esm/.builder.pid +0 -9
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts +0 -13
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-plan-change-preview.js +0 -44
- package/dist/esm/components/billing/billing-plan-change-preview.js.map +0 -1
- package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts +0 -3
- package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-plan-change-preview.labels.js +0 -36
- package/dist/esm/components/billing/billing-plan-change-preview.labels.js.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.d.ts +0 -10
- package/dist/esm/components/billing/billing-promotion-code-input.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.js +0 -68
- package/dist/esm/components/billing/billing-promotion-code-input.js.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.labels.d.ts +0 -3
- package/dist/esm/components/billing/billing-promotion-code-input.labels.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.labels.js +0 -14
- package/dist/esm/components/billing/billing-promotion-code-input.labels.js.map +0 -1
- package/dist/esm/config/resources/infrastructure.resource-presets.d.ts +0 -16
- package/dist/esm/config/resources/infrastructure.resource-presets.d.ts.map +0 -1
- package/dist/esm/config/resources/infrastructure.resource-presets.js +0 -110
- package/dist/esm/config/resources/infrastructure.resource-presets.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InteractiveVariant, SurfaceVariant, FormControlVariant, IndicatorVariant, SelectableVariant, TypographyVariant, SpacingSemantic, DesignTokenModeStrategy, DesignTokenValueType, } from '@wildo-ai/presets-components-models';
|
|
1
|
+
import { DividerVariant, InteractiveVariant, SurfaceVariant, FormControlVariant, IndicatorVariant, SelectableVariant, TypographyVariant, SpacingSemantic, DesignTokenModeStrategy, DesignTokenValueType, SKELETON_NEUTRAL_TINT, } from '@wildo-ai/presets-components-models';
|
|
2
2
|
function recipe(r) {
|
|
3
3
|
return { base: r.base, states: r.states ?? {}, sizes: r.sizes, motion: r.motion ?? {}, gesture: r.gesture, policy: r.policy };
|
|
4
4
|
}
|
|
@@ -414,9 +414,13 @@ const overlayBackdrop = recipe({
|
|
|
414
414
|
exit: TM_MOTION.backdropExit,
|
|
415
415
|
},
|
|
416
416
|
});
|
|
417
|
-
const divider =
|
|
417
|
+
const divider = {
|
|
418
|
+
[DividerVariant.DEFAULT]: recipe({ base: 'bg-foreground/15 shrink-0' }),
|
|
419
|
+
// Nested-disclosure guide: the theme's own divider material, as a left edge.
|
|
420
|
+
[DividerVariant.NESTING_GUIDE]: recipe({ base: 'border-s border-foreground/15' }),
|
|
421
|
+
};
|
|
418
422
|
const skeleton = recipe({
|
|
419
|
-
base:
|
|
423
|
+
base: `${SKELETON_NEUTRAL_TINT} animate-pulse ${TM.radiusTight} motion-reduce:animate-none`,
|
|
420
424
|
});
|
|
421
425
|
const loadingSpinner = recipe({
|
|
422
426
|
base: 'text-primary animate-spin motion-reduce:animate-none',
|
|
@@ -443,6 +447,7 @@ const typography = {
|
|
|
443
447
|
h2: 'text-2xl',
|
|
444
448
|
h3: 'text-lg',
|
|
445
449
|
h4: 'text-base',
|
|
450
|
+
h5: 'text-sm',
|
|
446
451
|
md: 'text-base',
|
|
447
452
|
},
|
|
448
453
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.theme.js","sourceRoot":"","sources":["../../../../src/themes/terminal.theme.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ComponentStyleTheme, DesignTokenConfiguration } from '@wildo-ai/presets-components-models';\nimport {\n InteractiveVariant,\n SurfaceVariant,\n FormControlVariant,\n IndicatorVariant,\n SelectableVariant,\n TypographyVariant,\n SpacingSemantic,\n DesignTokenModeStrategy,\n DesignTokenValueType,\n} from '@wildo-ai/presets-components-models';\nimport type { UIBehaviorRecipe } from '@wildo-ai/presets-components-models';\n\nfunction recipe(r: Partial<UIBehaviorRecipe> & { base: string }): UIBehaviorRecipe {\n return { base: r.base, states: r.states ?? {}, sizes: r.sizes, motion: r.motion ?? {}, gesture: r.gesture, policy: r.policy };\n}\n\n// ============================================================\n// Terminal theme (Geist-inspired)\n//\n// Persona: developer tools, IDE-adjacent UIs, infra dashboards,\n// CLI companions, internal devops.\n// References: Vercel Geist, Linear, GitHub Primer, Raycast.\n//\n// Design DNA:\n// - GEIST SANS for body + headings (precise, slightly condensed,\n// designed for high-density UIs). Geist Mono for indicators,\n// numerics, code, and keyboard hints — the \"terminal\" signal.\n// - High density: smaller default control heights (h-7/h-8 ladder)\n// and tighter spacing than default. The whole theme assumes a\n// power user with a keyboard.\n// - Crisp 1px borders using `border-foreground/15` — terminal apps\n// are line-art, not box-shadow art.\n// - 4–6px radius (`rounded-md` baseline) — IDE-like, not pill-y.\n// - Near-monochrome palette + a single SIGNAL-GREEN accent\n// (`oklch(0.72 0.20 145)`) — the unmistakable \"active prompt /\n// diff-add\" color of every developer tool.\n// - INSTANT motion (duration-fast, linear) — devs hate latency,\n// real or perceived. No spring physics, no easing curves.\n// - Square checkboxes (`rounded-sm`) — feels closer to a TTY.\n// - Indicators are uppercase mono — small caps with kerning, like\n// `[INFO]` / `[WARN]` log prefixes.\n// ============================================================\n\n// -- Shared constants --\n\nconst TM = {\n hairline: 'border border-foreground/15',\n edge: 'border border-foreground/20',\n radius: 'rounded-md',\n radiusTight: 'rounded-sm',\n focus:\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70 focus-visible:ring-offset-1 focus-visible:ring-offset-background',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n invalid:\n 'aria-invalid:ring-destructive/30 dark:aria-invalid:ring-destructive/50 aria-invalid:border-destructive',\n};\n\n// ============================================================\n// MOTION PERSONALITY — Terminal\n// ============================================================\n// Hover/focus : FAST (150ms) + LINEAR → snappy 1:1 input/output,\n// no designerly choreography.\n// Overlay enter: FAST (150ms) + LINEAR → directional slide-1 (tight,\n// matches compact density).\n// Overlay exit : INSTANT (50ms) + LINEAR → close = vanish.\n// Backdrop : FAST/INSTANT + LINEAR → consistent with overlays.\n// Gestures : NONE — devs expect direct manipulation; springs\n// read as \"designed for marketing screenshots.\"\n//\n// Why LINEAR explicitly: the previous implementation set duration but\n// omitted ease- on overlay/backdrop animations. Browsers fell back to\n// the CSS default `ease` curve (cubic-bezier(0.25, 0.1, 0.25, 1)) — a\n// soft S-curve that contradicted the LINEAR personality. Every overlay\n// and backdrop now has explicit `ease-[var(--motion-easing-linear)]`\n// (TR-14 motion-coherence pass).\n// ============================================================\nconst TM_MOTION = {\n interactive:\n 'transition-[background-color,color,border-color,box-shadow] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n formControl:\n 'transition-[color,border-color,box-shadow] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n selectable:\n 'transition-[background-color,color,border-color] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n enterFadeZoom:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=open]:animate-none',\n exitFadeZoom:\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-[var(--motion-duration-instant)] data-[state=closed]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=closed]:animate-none',\n enterDirectional:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 motion-reduce:data-[state=open]:animate-none',\n backdropEnter:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=open]:animate-none',\n backdropExit:\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-[var(--motion-duration-instant)] data-[state=closed]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=closed]:animate-none',\n};\n\n// ============================================================\n// INTERACTIVE\n// Compact ladder: h-7/h-8/h-9 by default (vs default theme's h-9/h-9/h-10).\n// This is the visual signal of a \"power-user-density\" theme.\n// ============================================================\n\nconst interactiveSizes: Record<string, string> = {\n xs: 'h-6 px-2 text-xs gap-1 pointer-coarse:min-h-9',\n sm: 'h-7 px-2.5 gap-1 pointer-coarse:min-h-11',\n md: 'h-8 px-3 gap-1.5 pointer-coarse:min-h-11',\n lg: 'h-10 px-5 pointer-coarse:min-h-11',\n icon: 'size-8 pointer-coarse:min-h-11 pointer-coarse:min-w-11',\n 'icon-sm': 'size-6 pointer-coarse:min-h-9 pointer-coarse:min-w-9',\n};\n\nconst interactive: Record<InteractiveVariant, UIBehaviorRecipe> = {\n [InteractiveVariant.PRIMARY]: recipe({\n base: `bg-primary text-primary-foreground ${TM.radius} font-medium text-sm cursor-pointer shadow-[inset_0_1px_0_0_rgba(255,255,255,0.08)]`,\n states: {\n hover: 'hover:bg-primary/90',\n active: 'active:bg-primary/80',\n focus: TM.focus,\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.SECONDARY]: recipe({\n // Geist-style \"secondary\" = subtle bg with crisp border, the workhorse\n // button on developer-tool pages. Distinguished from outline by having\n // a fill at all (outline is fully transparent).\n base: `bg-muted/40 text-foreground ${TM.hairline} ${TM.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-muted hover:border-foreground/25',\n active: 'active:bg-muted/80',\n focus: TM.focus,\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.OUTLINE]: recipe({\n base: `bg-transparent text-foreground ${TM.edge} ${TM.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-muted hover:border-foreground/30',\n active: 'active:bg-muted/80',\n focus: TM.focus,\n selected:\n 'data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:border-foreground',\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.DESTRUCTIVE]: recipe({\n base: `bg-destructive text-destructive-foreground ${TM.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-destructive/90',\n active: 'active:bg-destructive/80',\n focus: TM.focus,\n highlighted: 'focus:bg-destructive/15 focus:text-destructive',\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.GHOST]: recipe({\n base: `text-foreground ${TM.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-muted',\n active: 'active:bg-muted/80',\n focus: TM.focus,\n selected: 'data-[state=on]:bg-muted data-[state=on]:text-foreground',\n highlighted: 'focus:bg-muted',\n open: 'data-[state=open]:bg-muted',\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.LINK]: recipe({\n // Mono-feel underline: `decoration-1` keeps it crisp, no thickening\n // on hover (terminal links don't morph).\n base: 'text-primary underline underline-offset-[3px] decoration-1 decoration-primary/60 font-medium text-sm cursor-pointer',\n states: {\n hover: 'hover:decoration-primary',\n active: 'active:text-primary/80',\n focus: TM.focus,\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: {\n xs: 'h-6 px-1.5 text-xs gap-1 pointer-coarse:min-h-9',\n sm: 'h-7 px-1.5 gap-1 pointer-coarse:min-h-11',\n md: 'h-8 px-1.5 gap-1.5 pointer-coarse:min-h-11',\n lg: 'h-10 px-1.5 pointer-coarse:min-h-11',\n icon: 'size-8 pointer-coarse:min-h-11 pointer-coarse:min-w-11',\n 'icon-sm': 'size-6 pointer-coarse:min-h-9 pointer-coarse:min-w-9',\n },\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.ACCENT]: recipe({\n // Terminal accent: a \"scanline\" sweep using mono font. Gradient stops\n // resolve from theme tokens — the accent gradient defaults to\n // green→cyan→blue (terminal phosphor → cyan IDE highlight → link blue).\n base: 'relative bg-primary text-primary-foreground font-mono font-semibold tracking-tight rounded-md bg-[length:200%_100%] bg-gradient-to-r from-accent-gradient-from via-accent-gradient-via to-accent-gradient-to animate-[gradient-rotate_3s_linear_infinite] motion-reduce:animate-none text-sm cursor-pointer',\n states: {\n hover: 'hover:brightness-110',\n active: 'active:brightness-95',\n focus: TM.focus,\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: {\n transition:\n 'transition-[background-position,filter] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n },\n }),\n};\n\n// ============================================================\n// SURFACE\n// SURFACE PERSONALITY — crisp terminal panes: 1px line art, mono posture, low\n// elevation. New variants behave like attached panes and compact status blocks.\n// Cards/dialogs are line-art panels with crisp 1px borders and\n// minimal shadows. Popovers get a subtle drop because they need\n// to lift off the page — but never the heavy shadow of glass/cozy.\n// ============================================================\n\nconst surface: ComponentStyleTheme['surface'] = {\n [SurfaceVariant.BASE]: recipe({\n base: `bg-background text-foreground ${TM.hairline} ${TM.radius}`,\n }),\n\n [SurfaceVariant.CARD]: recipe({\n // Content card: distinct `surface-raised` fill + terminal edge + radius.\n // Always painted.\n base: `bg-surface-raised text-surface-raised-foreground ${TM.edge} ${TM.radius}`,\n }),\n\n [SurfaceVariant.RAISED]: recipe({\n // `fill-*` mirrors `bg-*` so the Tooltip's Radix arrow (an SVG painted via\n // `fill`, inherited across Radix's arrow-wrapper span) matches the body.\n base: `bg-background fill-background text-foreground ${TM.edge} ${TM.radius} shadow-[0_2px_8px_rgba(0,0,0,0.06)] dark:shadow-[0_2px_8px_rgba(0,0,0,0.5)]`,\n motion: {\n enter: TM_MOTION.enterDirectional,\n exit: TM_MOTION.exitFadeZoom,\n },\n }),\n\n [SurfaceVariant.OVERLAY]: recipe({\n base: `bg-background text-foreground ${TM.edge} ${TM.radius} shadow-[0_8px_32px_rgba(0,0,0,0.10)] dark:shadow-[0_8px_32px_rgba(0,0,0,0.6)]`,\n motion: {\n enter: TM_MOTION.enterFadeZoom,\n exit: TM_MOTION.exitFadeZoom,\n },\n }),\n\n [SurfaceVariant.INSET]: recipe({\n base: `bg-muted/50 text-foreground ${TM.radiusTight} font-mono`,\n }),\n\n [SurfaceVariant.SUNKEN]: recipe({\n // Sidebar: terminal-app left rail — slightly darker bg, crisp right border.\n base: 'bg-muted/30 text-foreground border-r border-foreground/15',\n }),\n\n [SurfaceVariant.TAB_PANEL]: recipe({\n // Terminal tab panel: a crisp continuation, top rule omitted.\n base: 'bg-background text-foreground border-x border-b border-foreground/15 rounded-b-md',\n }),\n\n [SurfaceVariant.SHELL]: recipe({\n // Page shell: flat terminal canvas; nested panels draw the line art.\n base: 'bg-background text-foreground font-mono',\n }),\n\n [SurfaceVariant.TRANSIENT]: recipe({\n // Toast: compact terminal status panel.\n base: `bg-background text-foreground ${TM.edge} ${TM.radius} font-mono shadow-[0_4px_16px_rgba(0,0,0,0.10)] dark:shadow-[0_4px_16px_rgba(0,0,0,0.6)]`,\n motion: {\n enter: TM_MOTION.enterDirectional,\n exit: TM_MOTION.exitFadeZoom,\n },\n }),\n};\n\n// ============================================================\n// FORM_CONTROL\n// Tight, crisp, square-ish. Checkbox is `rounded-sm` (closer to TTY).\n// ============================================================\n\nconst formControl: Record<FormControlVariant, UIBehaviorRecipe> = {\n [FormControlVariant.DEFAULT]: recipe({\n base: `bg-background ${TM.edge} ${TM.radius} text-base md:text-sm text-foreground placeholder:text-muted-foreground/60 selection:bg-primary/30 selection:text-foreground`,\n states: {\n focus: TM.focus,\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: TM.invalid,\n },\n sizes: {\n md: 'h-8 px-2.5 py-1 pointer-coarse:min-h-11',\n sm: 'h-7 px-2 text-sm pointer-coarse:min-h-11',\n lg: 'h-10 px-3 py-2 pointer-coarse:min-h-11',\n },\n motion: { transition: TM_MOTION.formControl },\n }),\n\n [FormControlVariant.FILLED]: recipe({\n base: `bg-muted/60 ${TM.radius} border-0 text-base md:text-sm text-foreground placeholder:text-muted-foreground/60`,\n states: {\n focus: TM.focus,\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: TM.invalid,\n },\n sizes: {\n md: 'h-8 px-2.5 py-1 pointer-coarse:min-h-11',\n sm: 'h-7 px-2 text-sm pointer-coarse:min-h-11',\n lg: 'h-10 px-3 py-2 pointer-coarse:min-h-11',\n },\n motion: { transition: TM_MOTION.formControl },\n }),\n\n [FormControlVariant.UNDERLINED]: recipe({\n base: 'bg-transparent border-0 border-b border-foreground/25 rounded-none text-base md:text-sm text-foreground placeholder:text-muted-foreground/60',\n states: {\n focus: 'focus-visible:outline-none focus-visible:border-primary focus-visible:border-b-2',\n disabled: 'disabled:opacity-[var(--opacity-disabled)]',\n invalid: 'aria-invalid:border-destructive',\n },\n sizes: {\n md: 'h-8 px-0 py-1 pointer-coarse:min-h-11',\n sm: 'h-7 px-0 text-sm pointer-coarse:min-h-11',\n lg: 'h-10 px-0 py-2 pointer-coarse:min-h-11',\n },\n motion: {\n transition:\n 'transition-[border-color] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n },\n }),\n\n [FormControlVariant.CHECKBOX]: recipe({\n // `rounded-sm` (3px) — feels like a TTY checkbox `[x]`, not a pill.\n base: `${TM.edge} ${TM.radiusTight}`,\n states: {\n focus: TM.focus,\n selected:\n 'data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary',\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: TM.invalid,\n },\n motion: {\n transition:\n 'transition-[color,box-shadow] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n },\n }),\n\n [FormControlVariant.SWITCH]: recipe({\n base: 'data-[state=unchecked]:bg-muted/60 border border-foreground/20',\n states: {\n focus: TM.focus,\n selected: 'data-[state=checked]:bg-primary',\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: TM.invalid,\n },\n motion: {\n transition:\n 'transition-all duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n },\n }),\n};\n\n// ============================================================\n// INDICATOR\n// Mono uppercase + bracket-feel — `[INFO]` / `[WARN]` / `[ERROR]`,\n// without literally adding the brackets (those would clash with badge\n// rendering inside other components). Tight padding, crisp border.\n// ============================================================\n\nconst tmIndicatorShared = {\n states: { hover: '[a&]:hover:opacity-[var(--opacity-hover)]', focus: TM.focus, invalid: TM.invalid },\n motion: { transition: TM_MOTION.interactive },\n};\n\nconst indicator: Record<IndicatorVariant, UIBehaviorRecipe> = {\n [IndicatorVariant.NEUTRAL]: recipe({\n base: `bg-muted/50 text-muted-foreground ${TM.radiusTight} ${TM.hairline} px-1.5 py-0.5 text-[0.625rem] font-mono font-semibold uppercase tracking-wider`,\n ...tmIndicatorShared,\n }),\n [IndicatorVariant.INFO]: recipe({\n base: `bg-info/15 text-info ${TM.radiusTight} border border-info/30 px-1.5 py-0.5 text-[0.625rem] font-mono font-semibold uppercase tracking-wider`,\n ...tmIndicatorShared,\n }),\n [IndicatorVariant.SUCCESS]: recipe({\n base: `bg-success/15 text-success ${TM.radiusTight} border border-success/30 px-1.5 py-0.5 text-[0.625rem] font-mono font-semibold uppercase tracking-wider`,\n ...tmIndicatorShared,\n }),\n [IndicatorVariant.WARNING]: recipe({\n base: `bg-warning/15 text-warning ${TM.radiusTight} border border-warning/30 px-1.5 py-0.5 text-[0.625rem] font-mono font-semibold uppercase tracking-wider`,\n ...tmIndicatorShared,\n }),\n [IndicatorVariant.ERROR]: recipe({\n base: `bg-destructive/15 text-destructive ${TM.radiusTight} border border-destructive/30 px-1.5 py-0.5 text-[0.625rem] font-mono font-semibold uppercase tracking-wider`,\n ...tmIndicatorShared,\n }),\n};\n\n// ============================================================\n// SELECTABLE\n// Compact, crisp. Underline tab uses 2px solid (vs editorial's\n// hairline-becomes-2px) — no animation curve, just on/off.\n// ============================================================\n\nconst selectable: Record<SelectableVariant, UIBehaviorRecipe> = {\n [SelectableVariant.FILLED]: recipe({\n base: `${TM.radius} text-sm outline-hidden`,\n states: {\n hover: 'hover:bg-muted',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70',\n selected:\n 'data-[active=true]:bg-muted data-[active=true]:text-foreground data-[active=true]:font-medium data-[state=active]:bg-muted data-[state=active]:text-foreground',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-6 text-xs', md: 'h-7 text-sm', lg: 'h-10 text-sm' },\n motion: { transition: TM_MOTION.selectable },\n }),\n [SelectableVariant.UNDERLINE]: recipe({\n base: 'rounded-none border-b-2 border-transparent text-sm text-muted-foreground outline-hidden',\n states: {\n hover: 'hover:text-foreground',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70',\n selected:\n 'data-[state=active]:border-primary data-[state=active]:text-foreground data-[state=active]:font-medium',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-7 text-xs pb-1', md: 'h-8 text-sm pb-1.5', lg: 'h-10 text-sm pb-2' },\n motion: { transition: TM_MOTION.selectable },\n }),\n [SelectableVariant.PILL]: recipe({\n base: `${TM.radius} text-sm outline-hidden ${TM.hairline} border-transparent`,\n states: {\n hover: 'hover:bg-muted hover:border-foreground/15',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70',\n selected:\n 'data-[state=active]:bg-foreground data-[state=active]:text-background data-[state=active]:border-foreground',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-6 px-2 text-xs', md: 'h-7 px-3 text-sm', lg: 'h-9 px-4 text-sm' },\n motion: { transition: TM_MOTION.selectable },\n }),\n [SelectableVariant.INDICATOR]: recipe({\n base: `${TM.radius} text-sm outline-hidden border-s-2 border-transparent`,\n states: {\n hover: 'hover:bg-muted',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70',\n selected:\n 'data-[active=true]:border-primary data-[active=true]:bg-muted data-[active=true]:text-foreground data-[active=true]:font-medium',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-6 text-xs', md: 'h-7 text-sm', lg: 'h-10 text-sm' },\n motion: { transition: TM_MOTION.selectable },\n }),\n};\n\n// ============================================================\n// OVERLAY, DIVIDER, SKELETON\n// ============================================================\n\nconst overlayBackdrop: UIBehaviorRecipe = recipe({\n // Terminal scrim: dark, no blur (devs hate \"blurry IDE\" feel).\n base: 'bg-foreground/50',\n motion: {\n enter: TM_MOTION.backdropEnter,\n exit: TM_MOTION.backdropExit,\n },\n});\n\nconst divider: UIBehaviorRecipe = recipe({ base: 'bg-foreground/15 shrink-0' });\n\nconst skeleton: UIBehaviorRecipe = recipe({\n base: `bg-muted/60 animate-pulse ${TM.radiusTight} motion-reduce:animate-none`,\n});\n\nconst loadingSpinner: UIBehaviorRecipe = recipe({\n base: 'text-primary animate-spin motion-reduce:animate-none',\n});\n\nconst loadingOverlay: UIBehaviorRecipe = recipe({\n base: 'bg-background/85',\n motion: {\n enter: 'animate-in fade-in-0 duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:animate-none',\n exit: 'animate-out fade-out-0 duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:animate-none',\n },\n});\n\n// ============================================================\n// TYPOGRAPHY\n// Geist Sans for everything except CODE (Geist Mono). Heading scale\n// stays close to default (devs don't want hero-sized h1 on a settings\n// page) but BODY drops to text-[0.8125rem] for the dense feel.\n// LABEL is mono uppercase — small caps tracking, log-prefix vibe.\n// ============================================================\n\nconst typography: Record<TypographyVariant, UIBehaviorRecipe> = {\n [TypographyVariant.HEADING]: recipe({\n base: 'font-heading font-semibold leading-tight tracking-tight text-foreground',\n sizes: {\n h1: 'text-3xl',\n h2: 'text-2xl',\n h3: 'text-lg',\n h4: 'text-base',\n md: 'text-base',\n },\n }),\n [TypographyVariant.BODY]: recipe({\n // 13px body — IDE-density, not article-density. Default uses 14px.\n // `font-sans` (NOT `font-body`) — only `font-sans/serif/mono/heading/display`\n // are exposed as Tailwind utilities via @theme; `font-sans` resolves to\n // `var(--font-body)` which our requiredCustomTokens overrides to Geist.\n // Using `font-body` here would silently no-op.\n base: 'font-sans text-foreground text-[0.8125rem] leading-snug',\n sizes: { sm: 'text-xs', md: 'text-[0.8125rem]', lg: 'text-sm' },\n }),\n [TypographyVariant.LABEL]: recipe({\n // Mono uppercase: the \"log prefix\" / \"CLI flag\" idiom.\n base: 'font-mono font-medium text-2xs leading-none uppercase tracking-[0.08em] text-muted-foreground',\n sizes: { sm: 'text-[0.5625rem]', md: 'text-2xs', lg: 'text-xs' },\n }),\n [TypographyVariant.DESCRIPTION]: recipe({\n base: 'font-sans text-muted-foreground text-xs leading-snug',\n sizes: { sm: 'text-[0.6875rem]', md: 'text-xs' },\n }),\n [TypographyVariant.CODE]: recipe({\n // Inline code: tighter padding, mono, sharp corners.\n base: 'font-mono text-[0.85em] bg-muted/60 rounded-sm px-1 py-0.5 border border-foreground/10',\n sizes: { sm: 'text-[0.75em]', md: 'text-[0.85em]', lg: 'text-[0.9em]' },\n }),\n};\n\n// ============================================================\n// SPACING\n// Tightest in lineup. Devs want to see more on screen.\n// ============================================================\n\nconst spacing: ComponentStyleTheme['spacing'] = {\n [SpacingSemantic.ELEMENT]: '0.375rem',\n [SpacingSemantic.ITEM]: '0.1875rem',\n [SpacingSemantic.GROUP]: '0.625rem',\n [SpacingSemantic.FIELD]: '0.875rem',\n [SpacingSemantic.SECTION]: '1.25rem',\n [SpacingSemantic.REGION]: '1.75rem',\n [SpacingSemantic.CARD]: '0.875rem',\n [SpacingSemantic.CONTAINER]: '1.25rem',\n};\n\n// ============================================================\n// REQUIRED CUSTOM TOKENS — Geist palette + Geist font stacks\n//\n// Same `requiredCustomTokens` mechanism as neo-brutalist + editorial.\n// The Geist family is the visual signature of the theme — anything\n// else and you get \"default theme but tighter\".\n// ============================================================\n\nfunction colorOverride(lightOklch: string, darkOklch: string): DesignTokenConfiguration {\n return {\n type: DesignTokenValueType.COLOR,\n modeStrategy: DesignTokenModeStrategy.LIGHT_DARK,\n lightValue: lightOklch,\n darkValue: darkOklch,\n };\n}\n\nfunction colorSingle(oklch: string): DesignTokenConfiguration {\n return { type: DesignTokenValueType.COLOR, modeStrategy: DesignTokenModeStrategy.SINGLE, value: oklch };\n}\n\nfunction stringSingle(value: string): DesignTokenConfiguration {\n return { type: DesignTokenValueType.STRING, modeStrategy: DesignTokenModeStrategy.SINGLE, value };\n}\n\nconst requiredCustomTokens: Record<string, DesignTokenConfiguration> = {\n // === Page palette: pure-ish whites/blacks. Slight cool tint (hue 240)\n // matches Geist's documentation site exactly (`oklch(...)` derivations\n // from Vercel's published design tokens).\n background: colorOverride('1 0 0', '0.13 0.005 240'),\n foreground: colorOverride('0.16 0.005 240', '0.97 0 0'),\n\n // === Signal green primary: the \"active prompt / diff-add / git-add\"\n // color of every developer tool.\n //\n // ⚠ Wave G follow-up TR-13 (contrast correction): a high-luminance hue\n // (green at L=0.55 chroma 0.18 hue 145 → sRGB Y≈0.30) gives only ~3.0:1\n // contrast against pure white text, well below WCAG AA 4.5:1. Earlier\n // self-review claimed 5.1:1 — that was an OKLCH-L → sRGB-Y conversion\n // mistake (OKLCH L is perceptual; for green hues sRGB Y rises faster\n // than L would suggest). Fix: keep the signal-green hue/L (the visual\n // signature of the theme) and flip the FOREGROUND to near-black in\n // BOTH modes. This is also the canonical \"matrix / phosphor terminal\"\n // aesthetic — dark text on neon green is THE iconic developer-tool\n // look, never white-on-green. New contrast: L=0.55 vs L=0.10 ≈ 5.5:1\n // (light), L=0.72 vs L=0.10 ≈ 7.5:1 (dark). Both AA, dark mode AAA.\n primary: colorOverride('0.55 0.18 145', '0.72 0.20 145'),\n 'primary-foreground': colorSingle('0.10 0.005 240'),\n\n // === Secondary surface: subtle off-white / off-black. Distinguishes\n // from background but stays in the monochrome family.\n secondary: colorOverride('0.965 0.002 240', '0.18 0.005 240'),\n 'secondary-foreground': colorOverride('0.16 0.005 240', '0.97 0 0'),\n\n // === Muted: the \"code block\" / inset background.\n muted: colorOverride('0.955 0.002 240', '0.20 0.005 240'),\n 'muted-foreground': colorOverride('0.45 0.005 240', '0.62 0.005 240'),\n\n // === Borders: crisp but not loud — terminal apps live on grid lines.\n border: colorOverride('0.90 0.003 240', '0.27 0.005 240'),\n ring: colorOverride('0.55 0.18 145', '0.72 0.20 145'),\n input: colorOverride('0.90 0.003 240', '0.27 0.005 240'),\n\n // === Destructive: GitHub-style red.\n destructive: colorOverride('0.58 0.22 27', '0.65 0.24 27'),\n 'destructive-foreground': colorSingle('1 0 0'),\n\n // === Semantic info/success/warning — terminal-tool palette\n // (matches `tput setaf` vibes: cyan/green/yellow). Override these so\n // the theme doesn't depend on the host shipping reasonable defaults.\n // TR-13: same OKLCH→sRGB luminance issue as primary. info-blue at\n // L=0.62 hue 220 has sRGB Y≈0.27 → ~3.4:1 with white. success-green\n // is the same signal-green as primary → same ~3.0:1 with white.\n // Flip both foregrounds to near-black for AA in light mode (≥5:1).\n // Dark mode still uses dark foreground for visual consistency\n // (info/success indicators read as a coherent semantic family).\n info: colorOverride('0.62 0.13 220', '0.72 0.15 220'),\n 'info-foreground': colorSingle('0.10 0.005 240'),\n success: colorOverride('0.55 0.18 145', '0.72 0.20 145'),\n 'success-foreground': colorSingle('0.10 0.005 240'),\n warning: colorOverride('0.72 0.16 70', '0.78 0.18 70'),\n 'warning-foreground': colorSingle('0.10 0.005 240'),\n\n // === Accent gradient: green → cyan → blue (terminal phosphor sweep).\n // Matches the LINK + PRIMARY colors so the ACCENT recipe feels in-family.\n 'accent-gradient-from': colorOverride('0.55 0.18 145', '0.72 0.20 145'),\n 'accent-gradient-via': colorOverride('0.62 0.13 220', '0.72 0.15 220'),\n 'accent-gradient-to': colorOverride('0.55 0.16 250', '0.65 0.18 250'),\n\n // === Font stacks: Geist family. Geist is the visual signal of the\n // theme. Hosts that @font-face Geist Sans + Geist Mono get the\n // canonical look; fallback chain reaches Inter / SF Pro / Cascadia /\n // JetBrains Mono — all \"developer-friendly\" sans+mono.\n 'font-heading': stringSingle(\n \"'Geist', 'Inter', -apple-system, 'SF Pro Text', 'Segoe UI', system-ui, sans-serif\"\n ),\n 'font-body': stringSingle(\n \"'Geist', 'Inter', -apple-system, 'SF Pro Text', 'Segoe UI', system-ui, sans-serif\"\n ),\n 'font-mono': stringSingle(\n \"'Geist Mono', 'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'IBM Plex Mono', 'Menlo', 'Consolas', monospace\"\n ),\n};\n\n// ============================================================\n// ASSEMBLED THEME\n// ============================================================\n\nexport const terminalTheme: ComponentStyleTheme = {\n id: 'terminal',\n name: 'Terminal',\n description:\n 'Geist-inspired theme for developer tools, IDE-adjacent UIs, infra dashboards. Geist Sans body + Geist Mono labels/indicators/code. High density (h-7/h-8 control ladder, tightest spacing in lineup), crisp 1px hairlines, 4–6px radius (3px on checkboxes for TTY feel). Near-monochrome palette + signal-green primary (the universal \"active prompt / diff-add\" color). Instant linear motion (no easing curves, no spring physics). Mono uppercase indicators with small-caps tracking — the \"[INFO]/[WARN]/[ERROR]\" log-prefix idiom. Ships its own Geist font stacks via requiredCustomTokens.',\n\n requiredCustomTokens,\n spacing,\n\n interactive,\n surface,\n formControl,\n indicator,\n selectable,\n overlayBackdrop,\n divider,\n skeleton,\n loadingSpinner,\n loadingOverlay,\n typography,\n radius: '6px',\n backgroundLayer: undefined,\n chartStyle: {\n // Terminal charts: dense, instant, mono labels, thin lines.\n colorShadeLight: 500,\n colorShadeDark: 400,\n gridPadding: { top: 24, right: 16, bottom: 24, left: 48 },\n axis: {\n showAxisLine: true,\n showTicks: true,\n splitLineType: 'dashed',\n hideOverlap: true,\n yAxisNameLocation: 'middle',\n yAxisNameGap: 40,\n },\n tooltip: {\n extraCss:\n 'font-family: \"Geist Mono\", \"JetBrains Mono\", monospace; border: 1px solid color-mix(in oklch, currentColor 25%, transparent); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.08);',\n borderWidth: 1,\n },\n animation: { enabled: true, durationMs: 150, easing: 'linear' },\n series: { lineWidth: 1.5, pointSize: 3, areaOpacity: 0.12, barBorderRadius: 2, pieBorderWidth: 1 },\n typography: {\n titleFontSize: 14,\n titleFontWeight: 600,\n subtitleFontSize: 12,\n legendFontSize: 11,\n tooltipFontSize: 11,\n axisLabelFontSize: 10,\n axisNameFontSize: 11,\n },\n emphasis: { shadowBlur: 4, shadowColor: 'rgba(0, 0, 0, 0.15)', shadowOffsetX: 0 },\n responsive: {\n smallMaxWidth: 400,\n mediumMaxWidth: 799,\n smallGridPadding: { top: 16, right: 8, bottom: 16, left: 24 },\n mediumGridPadding: { left: 40, right: 16, bottom: 32 },\n hideLegendOnSmall: true,\n smallAxisLabelRotate: 45,\n smallFontSize: 9,\n mediumFontSize: 10,\n },\n multiSeriesLegendBottomPadding: 40,\n },\n};\n"]}
|
|
1
|
+
{"version":3,"file":"terminal.theme.js","sourceRoot":"","sources":["../../../../src/themes/terminal.theme.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ComponentStyleTheme, DesignTokenConfiguration } from '@wildo-ai/presets-components-models';\nimport {\n DividerVariant,\n InteractiveVariant,\n SurfaceVariant,\n FormControlVariant,\n IndicatorVariant,\n SelectableVariant,\n TypographyVariant,\n SpacingSemantic,\n DesignTokenModeStrategy,\n DesignTokenValueType,\n SKELETON_NEUTRAL_TINT,\n} from '@wildo-ai/presets-components-models';\nimport type { UIBehaviorRecipe } from '@wildo-ai/presets-components-models';\n\nfunction recipe(r: Partial<UIBehaviorRecipe> & { base: string }): UIBehaviorRecipe {\n return { base: r.base, states: r.states ?? {}, sizes: r.sizes, motion: r.motion ?? {}, gesture: r.gesture, policy: r.policy };\n}\n\n// ============================================================\n// Terminal theme (Geist-inspired)\n//\n// Persona: developer tools, IDE-adjacent UIs, infra dashboards,\n// CLI companions, internal devops.\n// References: Vercel Geist, Linear, GitHub Primer, Raycast.\n//\n// Design DNA:\n// - GEIST SANS for body + headings (precise, slightly condensed,\n// designed for high-density UIs). Geist Mono for indicators,\n// numerics, code, and keyboard hints — the \"terminal\" signal.\n// - High density: smaller default control heights (h-7/h-8 ladder)\n// and tighter spacing than default. The whole theme assumes a\n// power user with a keyboard.\n// - Crisp 1px borders using `border-foreground/15` — terminal apps\n// are line-art, not box-shadow art.\n// - 4–6px radius (`rounded-md` baseline) — IDE-like, not pill-y.\n// - Near-monochrome palette + a single SIGNAL-GREEN accent\n// (`oklch(0.72 0.20 145)`) — the unmistakable \"active prompt /\n// diff-add\" color of every developer tool.\n// - INSTANT motion (duration-fast, linear) — devs hate latency,\n// real or perceived. No spring physics, no easing curves.\n// - Square checkboxes (`rounded-sm`) — feels closer to a TTY.\n// - Indicators are uppercase mono — small caps with kerning, like\n// `[INFO]` / `[WARN]` log prefixes.\n// ============================================================\n\n// -- Shared constants --\n\nconst TM = {\n hairline: 'border border-foreground/15',\n edge: 'border border-foreground/20',\n radius: 'rounded-md',\n radiusTight: 'rounded-sm',\n focus:\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70 focus-visible:ring-offset-1 focus-visible:ring-offset-background',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n invalid:\n 'aria-invalid:ring-destructive/30 dark:aria-invalid:ring-destructive/50 aria-invalid:border-destructive',\n};\n\n// ============================================================\n// MOTION PERSONALITY — Terminal\n// ============================================================\n// Hover/focus : FAST (150ms) + LINEAR → snappy 1:1 input/output,\n// no designerly choreography.\n// Overlay enter: FAST (150ms) + LINEAR → directional slide-1 (tight,\n// matches compact density).\n// Overlay exit : INSTANT (50ms) + LINEAR → close = vanish.\n// Backdrop : FAST/INSTANT + LINEAR → consistent with overlays.\n// Gestures : NONE — devs expect direct manipulation; springs\n// read as \"designed for marketing screenshots.\"\n//\n// Why LINEAR explicitly: the previous implementation set duration but\n// omitted ease- on overlay/backdrop animations. Browsers fell back to\n// the CSS default `ease` curve (cubic-bezier(0.25, 0.1, 0.25, 1)) — a\n// soft S-curve that contradicted the LINEAR personality. Every overlay\n// and backdrop now has explicit `ease-[var(--motion-easing-linear)]`\n// (TR-14 motion-coherence pass).\n// ============================================================\nconst TM_MOTION = {\n interactive:\n 'transition-[background-color,color,border-color,box-shadow] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n formControl:\n 'transition-[color,border-color,box-shadow] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n selectable:\n 'transition-[background-color,color,border-color] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n enterFadeZoom:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=open]:animate-none',\n exitFadeZoom:\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-[var(--motion-duration-instant)] data-[state=closed]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=closed]:animate-none',\n enterDirectional:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1 motion-reduce:data-[state=open]:animate-none',\n backdropEnter:\n 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-[var(--motion-duration-fast)] data-[state=open]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=open]:animate-none',\n backdropExit:\n 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-[var(--motion-duration-instant)] data-[state=closed]:ease-[var(--motion-easing-linear)] motion-reduce:data-[state=closed]:animate-none',\n};\n\n// ============================================================\n// INTERACTIVE\n// Compact ladder: h-7/h-8/h-9 by default (vs default theme's h-9/h-9/h-10).\n// This is the visual signal of a \"power-user-density\" theme.\n// ============================================================\n\nconst interactiveSizes: Record<string, string> = {\n xs: 'h-6 px-2 text-xs gap-1 pointer-coarse:min-h-9',\n sm: 'h-7 px-2.5 gap-1 pointer-coarse:min-h-11',\n md: 'h-8 px-3 gap-1.5 pointer-coarse:min-h-11',\n lg: 'h-10 px-5 pointer-coarse:min-h-11',\n icon: 'size-8 pointer-coarse:min-h-11 pointer-coarse:min-w-11',\n 'icon-sm': 'size-6 pointer-coarse:min-h-9 pointer-coarse:min-w-9',\n};\n\nconst interactive: Record<InteractiveVariant, UIBehaviorRecipe> = {\n [InteractiveVariant.PRIMARY]: recipe({\n base: `bg-primary text-primary-foreground ${TM.radius} font-medium text-sm cursor-pointer shadow-[inset_0_1px_0_0_rgba(255,255,255,0.08)]`,\n states: {\n hover: 'hover:bg-primary/90',\n active: 'active:bg-primary/80',\n focus: TM.focus,\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.SECONDARY]: recipe({\n // Geist-style \"secondary\" = subtle bg with crisp border, the workhorse\n // button on developer-tool pages. Distinguished from outline by having\n // a fill at all (outline is fully transparent).\n base: `bg-muted/40 text-foreground ${TM.hairline} ${TM.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-muted hover:border-foreground/25',\n active: 'active:bg-muted/80',\n focus: TM.focus,\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.OUTLINE]: recipe({\n base: `bg-transparent text-foreground ${TM.edge} ${TM.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-muted hover:border-foreground/30',\n active: 'active:bg-muted/80',\n focus: TM.focus,\n selected:\n 'data-[state=on]:bg-foreground data-[state=on]:text-background data-[state=on]:border-foreground',\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.DESTRUCTIVE]: recipe({\n base: `bg-destructive text-destructive-foreground ${TM.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-destructive/90',\n active: 'active:bg-destructive/80',\n focus: TM.focus,\n highlighted: 'focus:bg-destructive/15 focus:text-destructive',\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.GHOST]: recipe({\n base: `text-foreground ${TM.radius} font-medium text-sm cursor-pointer`,\n states: {\n hover: 'hover:bg-muted',\n active: 'active:bg-muted/80',\n focus: TM.focus,\n selected: 'data-[state=on]:bg-muted data-[state=on]:text-foreground',\n highlighted: 'focus:bg-muted',\n open: 'data-[state=open]:bg-muted',\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.LINK]: recipe({\n // Mono-feel underline: `decoration-1` keeps it crisp, no thickening\n // on hover (terminal links don't morph).\n base: 'text-primary underline underline-offset-[3px] decoration-1 decoration-primary/60 font-medium text-sm cursor-pointer',\n states: {\n hover: 'hover:decoration-primary',\n active: 'active:text-primary/80',\n focus: TM.focus,\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: {\n xs: 'h-6 px-1.5 text-xs gap-1 pointer-coarse:min-h-9',\n sm: 'h-7 px-1.5 gap-1 pointer-coarse:min-h-11',\n md: 'h-8 px-1.5 gap-1.5 pointer-coarse:min-h-11',\n lg: 'h-10 px-1.5 pointer-coarse:min-h-11',\n icon: 'size-8 pointer-coarse:min-h-11 pointer-coarse:min-w-11',\n 'icon-sm': 'size-6 pointer-coarse:min-h-9 pointer-coarse:min-w-9',\n },\n motion: { transition: TM_MOTION.interactive },\n }),\n\n [InteractiveVariant.ACCENT]: recipe({\n // Terminal accent: a \"scanline\" sweep using mono font. Gradient stops\n // resolve from theme tokens — the accent gradient defaults to\n // green→cyan→blue (terminal phosphor → cyan IDE highlight → link blue).\n base: 'relative bg-primary text-primary-foreground font-mono font-semibold tracking-tight rounded-md bg-[length:200%_100%] bg-gradient-to-r from-accent-gradient-from via-accent-gradient-via to-accent-gradient-to animate-[gradient-rotate_3s_linear_infinite] motion-reduce:animate-none text-sm cursor-pointer',\n states: {\n hover: 'hover:brightness-110',\n active: 'active:brightness-95',\n focus: TM.focus,\n disabled: TM.disabled,\n invalid: TM.invalid,\n },\n sizes: interactiveSizes,\n motion: {\n transition:\n 'transition-[background-position,filter] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n },\n }),\n};\n\n// ============================================================\n// SURFACE\n// SURFACE PERSONALITY — crisp terminal panes: 1px line art, mono posture, low\n// elevation. New variants behave like attached panes and compact status blocks.\n// Cards/dialogs are line-art panels with crisp 1px borders and\n// minimal shadows. Popovers get a subtle drop because they need\n// to lift off the page — but never the heavy shadow of glass/cozy.\n// ============================================================\n\nconst surface: ComponentStyleTheme['surface'] = {\n [SurfaceVariant.BASE]: recipe({\n base: `bg-background text-foreground ${TM.hairline} ${TM.radius}`,\n }),\n\n [SurfaceVariant.CARD]: recipe({\n // Content card: distinct `surface-raised` fill + terminal edge + radius.\n // Always painted.\n base: `bg-surface-raised text-surface-raised-foreground ${TM.edge} ${TM.radius}`,\n }),\n\n [SurfaceVariant.RAISED]: recipe({\n // `fill-*` mirrors `bg-*` so the Tooltip's Radix arrow (an SVG painted via\n // `fill`, inherited across Radix's arrow-wrapper span) matches the body.\n base: `bg-background fill-background text-foreground ${TM.edge} ${TM.radius} shadow-[0_2px_8px_rgba(0,0,0,0.06)] dark:shadow-[0_2px_8px_rgba(0,0,0,0.5)]`,\n motion: {\n enter: TM_MOTION.enterDirectional,\n exit: TM_MOTION.exitFadeZoom,\n },\n }),\n\n [SurfaceVariant.OVERLAY]: recipe({\n base: `bg-background text-foreground ${TM.edge} ${TM.radius} shadow-[0_8px_32px_rgba(0,0,0,0.10)] dark:shadow-[0_8px_32px_rgba(0,0,0,0.6)]`,\n motion: {\n enter: TM_MOTION.enterFadeZoom,\n exit: TM_MOTION.exitFadeZoom,\n },\n }),\n\n [SurfaceVariant.INSET]: recipe({\n base: `bg-muted/50 text-foreground ${TM.radiusTight} font-mono`,\n }),\n\n [SurfaceVariant.SUNKEN]: recipe({\n // Sidebar: terminal-app left rail — slightly darker bg, crisp right border.\n base: 'bg-muted/30 text-foreground border-r border-foreground/15',\n }),\n\n [SurfaceVariant.TAB_PANEL]: recipe({\n // Terminal tab panel: a crisp continuation, top rule omitted.\n base: 'bg-background text-foreground border-x border-b border-foreground/15 rounded-b-md',\n }),\n\n [SurfaceVariant.SHELL]: recipe({\n // Page shell: flat terminal canvas; nested panels draw the line art.\n base: 'bg-background text-foreground font-mono',\n }),\n\n [SurfaceVariant.TRANSIENT]: recipe({\n // Toast: compact terminal status panel.\n base: `bg-background text-foreground ${TM.edge} ${TM.radius} font-mono shadow-[0_4px_16px_rgba(0,0,0,0.10)] dark:shadow-[0_4px_16px_rgba(0,0,0,0.6)]`,\n motion: {\n enter: TM_MOTION.enterDirectional,\n exit: TM_MOTION.exitFadeZoom,\n },\n }),\n};\n\n// ============================================================\n// FORM_CONTROL\n// Tight, crisp, square-ish. Checkbox is `rounded-sm` (closer to TTY).\n// ============================================================\n\nconst formControl: Record<FormControlVariant, UIBehaviorRecipe> = {\n [FormControlVariant.DEFAULT]: recipe({\n base: `bg-background ${TM.edge} ${TM.radius} text-base md:text-sm text-foreground placeholder:text-muted-foreground/60 selection:bg-primary/30 selection:text-foreground`,\n states: {\n focus: TM.focus,\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: TM.invalid,\n },\n sizes: {\n md: 'h-8 px-2.5 py-1 pointer-coarse:min-h-11',\n sm: 'h-7 px-2 text-sm pointer-coarse:min-h-11',\n lg: 'h-10 px-3 py-2 pointer-coarse:min-h-11',\n },\n motion: { transition: TM_MOTION.formControl },\n }),\n\n [FormControlVariant.FILLED]: recipe({\n base: `bg-muted/60 ${TM.radius} border-0 text-base md:text-sm text-foreground placeholder:text-muted-foreground/60`,\n states: {\n focus: TM.focus,\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: TM.invalid,\n },\n sizes: {\n md: 'h-8 px-2.5 py-1 pointer-coarse:min-h-11',\n sm: 'h-7 px-2 text-sm pointer-coarse:min-h-11',\n lg: 'h-10 px-3 py-2 pointer-coarse:min-h-11',\n },\n motion: { transition: TM_MOTION.formControl },\n }),\n\n [FormControlVariant.UNDERLINED]: recipe({\n base: 'bg-transparent border-0 border-b border-foreground/25 rounded-none text-base md:text-sm text-foreground placeholder:text-muted-foreground/60',\n states: {\n focus: 'focus-visible:outline-none focus-visible:border-primary focus-visible:border-b-2',\n disabled: 'disabled:opacity-[var(--opacity-disabled)]',\n invalid: 'aria-invalid:border-destructive',\n },\n sizes: {\n md: 'h-8 px-0 py-1 pointer-coarse:min-h-11',\n sm: 'h-7 px-0 text-sm pointer-coarse:min-h-11',\n lg: 'h-10 px-0 py-2 pointer-coarse:min-h-11',\n },\n motion: {\n transition:\n 'transition-[border-color] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n },\n }),\n\n [FormControlVariant.CHECKBOX]: recipe({\n // `rounded-sm` (3px) — feels like a TTY checkbox `[x]`, not a pill.\n base: `${TM.edge} ${TM.radiusTight}`,\n states: {\n focus: TM.focus,\n selected:\n 'data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary',\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: TM.invalid,\n },\n motion: {\n transition:\n 'transition-[color,box-shadow] duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n },\n }),\n\n [FormControlVariant.SWITCH]: recipe({\n base: 'data-[state=unchecked]:bg-muted/60 border border-foreground/20',\n states: {\n focus: TM.focus,\n selected: 'data-[state=checked]:bg-primary',\n disabled: 'disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]',\n invalid: TM.invalid,\n },\n motion: {\n transition:\n 'transition-all duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:transition-none',\n },\n }),\n};\n\n// ============================================================\n// INDICATOR\n// Mono uppercase + bracket-feel — `[INFO]` / `[WARN]` / `[ERROR]`,\n// without literally adding the brackets (those would clash with badge\n// rendering inside other components). Tight padding, crisp border.\n// ============================================================\n\nconst tmIndicatorShared = {\n states: { hover: '[a&]:hover:opacity-[var(--opacity-hover)]', focus: TM.focus, invalid: TM.invalid },\n motion: { transition: TM_MOTION.interactive },\n};\n\nconst indicator: Record<IndicatorVariant, UIBehaviorRecipe> = {\n [IndicatorVariant.NEUTRAL]: recipe({\n base: `bg-muted/50 text-muted-foreground ${TM.radiusTight} ${TM.hairline} px-1.5 py-0.5 text-[0.625rem] font-mono font-semibold uppercase tracking-wider`,\n ...tmIndicatorShared,\n }),\n [IndicatorVariant.INFO]: recipe({\n base: `bg-info/15 text-info ${TM.radiusTight} border border-info/30 px-1.5 py-0.5 text-[0.625rem] font-mono font-semibold uppercase tracking-wider`,\n ...tmIndicatorShared,\n }),\n [IndicatorVariant.SUCCESS]: recipe({\n base: `bg-success/15 text-success ${TM.radiusTight} border border-success/30 px-1.5 py-0.5 text-[0.625rem] font-mono font-semibold uppercase tracking-wider`,\n ...tmIndicatorShared,\n }),\n [IndicatorVariant.WARNING]: recipe({\n base: `bg-warning/15 text-warning ${TM.radiusTight} border border-warning/30 px-1.5 py-0.5 text-[0.625rem] font-mono font-semibold uppercase tracking-wider`,\n ...tmIndicatorShared,\n }),\n [IndicatorVariant.ERROR]: recipe({\n base: `bg-destructive/15 text-destructive ${TM.radiusTight} border border-destructive/30 px-1.5 py-0.5 text-[0.625rem] font-mono font-semibold uppercase tracking-wider`,\n ...tmIndicatorShared,\n }),\n};\n\n// ============================================================\n// SELECTABLE\n// Compact, crisp. Underline tab uses 2px solid (vs editorial's\n// hairline-becomes-2px) — no animation curve, just on/off.\n// ============================================================\n\nconst selectable: Record<SelectableVariant, UIBehaviorRecipe> = {\n [SelectableVariant.FILLED]: recipe({\n base: `${TM.radius} text-sm outline-hidden`,\n states: {\n hover: 'hover:bg-muted',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70',\n selected:\n 'data-[active=true]:bg-muted data-[active=true]:text-foreground data-[active=true]:font-medium data-[state=active]:bg-muted data-[state=active]:text-foreground',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-6 text-xs', md: 'h-7 text-sm', lg: 'h-10 text-sm' },\n motion: { transition: TM_MOTION.selectable },\n }),\n [SelectableVariant.UNDERLINE]: recipe({\n base: 'rounded-none border-b-2 border-transparent text-sm text-muted-foreground outline-hidden',\n states: {\n hover: 'hover:text-foreground',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70',\n selected:\n 'data-[state=active]:border-primary data-[state=active]:text-foreground data-[state=active]:font-medium',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-7 text-xs pb-1', md: 'h-8 text-sm pb-1.5', lg: 'h-10 text-sm pb-2' },\n motion: { transition: TM_MOTION.selectable },\n }),\n [SelectableVariant.PILL]: recipe({\n base: `${TM.radius} text-sm outline-hidden ${TM.hairline} border-transparent`,\n states: {\n hover: 'hover:bg-muted hover:border-foreground/15',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70',\n selected:\n 'data-[state=active]:bg-foreground data-[state=active]:text-background data-[state=active]:border-foreground',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-6 px-2 text-xs', md: 'h-7 px-3 text-sm', lg: 'h-9 px-4 text-sm' },\n motion: { transition: TM_MOTION.selectable },\n }),\n [SelectableVariant.INDICATOR]: recipe({\n base: `${TM.radius} text-sm outline-hidden border-s-2 border-transparent`,\n states: {\n hover: 'hover:bg-muted',\n focus: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/70',\n selected:\n 'data-[active=true]:border-primary data-[active=true]:bg-muted data-[active=true]:text-foreground data-[active=true]:font-medium',\n disabled: 'disabled:pointer-events-none disabled:opacity-[var(--opacity-disabled)]',\n },\n sizes: { sm: 'h-6 text-xs', md: 'h-7 text-sm', lg: 'h-10 text-sm' },\n motion: { transition: TM_MOTION.selectable },\n }),\n};\n\n// ============================================================\n// OVERLAY, DIVIDER, SKELETON\n// ============================================================\n\nconst overlayBackdrop: UIBehaviorRecipe = recipe({\n // Terminal scrim: dark, no blur (devs hate \"blurry IDE\" feel).\n base: 'bg-foreground/50',\n motion: {\n enter: TM_MOTION.backdropEnter,\n exit: TM_MOTION.backdropExit,\n },\n});\n\nconst divider: Record<DividerVariant, UIBehaviorRecipe> = {\n [DividerVariant.DEFAULT]: recipe({ base: 'bg-foreground/15 shrink-0' }),\n // Nested-disclosure guide: the theme's own divider material, as a left edge.\n [DividerVariant.NESTING_GUIDE]: recipe({ base: 'border-s border-foreground/15' }),\n};\n\nconst skeleton: UIBehaviorRecipe = recipe({\n base: `${SKELETON_NEUTRAL_TINT} animate-pulse ${TM.radiusTight} motion-reduce:animate-none`,\n});\n\nconst loadingSpinner: UIBehaviorRecipe = recipe({\n base: 'text-primary animate-spin motion-reduce:animate-none',\n});\n\nconst loadingOverlay: UIBehaviorRecipe = recipe({\n base: 'bg-background/85',\n motion: {\n enter: 'animate-in fade-in-0 duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-linear)] motion-reduce:animate-none',\n exit: 'animate-out fade-out-0 duration-[var(--motion-duration-instant)] ease-[var(--motion-easing-linear)] motion-reduce:animate-none',\n },\n});\n\n// ============================================================\n// TYPOGRAPHY\n// Geist Sans for everything except CODE (Geist Mono). Heading scale\n// stays close to default (devs don't want hero-sized h1 on a settings\n// page) but BODY drops to text-[0.8125rem] for the dense feel.\n// LABEL is mono uppercase — small caps tracking, log-prefix vibe.\n// ============================================================\n\nconst typography: Record<TypographyVariant, UIBehaviorRecipe> = {\n [TypographyVariant.HEADING]: recipe({\n base: 'font-heading font-semibold leading-tight tracking-tight text-foreground',\n sizes: {\n h1: 'text-3xl',\n h2: 'text-2xl',\n h3: 'text-lg',\n h4: 'text-base',\n h5: 'text-sm',\n md: 'text-base',\n },\n }),\n [TypographyVariant.BODY]: recipe({\n // 13px body — IDE-density, not article-density. Default uses 14px.\n // `font-sans` (NOT `font-body`) — only `font-sans/serif/mono/heading/display`\n // are exposed as Tailwind utilities via @theme; `font-sans` resolves to\n // `var(--font-body)` which our requiredCustomTokens overrides to Geist.\n // Using `font-body` here would silently no-op.\n base: 'font-sans text-foreground text-[0.8125rem] leading-snug',\n sizes: { sm: 'text-xs', md: 'text-[0.8125rem]', lg: 'text-sm' },\n }),\n [TypographyVariant.LABEL]: recipe({\n // Mono uppercase: the \"log prefix\" / \"CLI flag\" idiom.\n base: 'font-mono font-medium text-2xs leading-none uppercase tracking-[0.08em] text-muted-foreground',\n sizes: { sm: 'text-[0.5625rem]', md: 'text-2xs', lg: 'text-xs' },\n }),\n [TypographyVariant.DESCRIPTION]: recipe({\n base: 'font-sans text-muted-foreground text-xs leading-snug',\n sizes: { sm: 'text-[0.6875rem]', md: 'text-xs' },\n }),\n [TypographyVariant.CODE]: recipe({\n // Inline code: tighter padding, mono, sharp corners.\n base: 'font-mono text-[0.85em] bg-muted/60 rounded-sm px-1 py-0.5 border border-foreground/10',\n sizes: { sm: 'text-[0.75em]', md: 'text-[0.85em]', lg: 'text-[0.9em]' },\n }),\n};\n\n// ============================================================\n// SPACING\n// Tightest in lineup. Devs want to see more on screen.\n// ============================================================\n\nconst spacing: ComponentStyleTheme['spacing'] = {\n [SpacingSemantic.ELEMENT]: '0.375rem',\n [SpacingSemantic.ITEM]: '0.1875rem',\n [SpacingSemantic.GROUP]: '0.625rem',\n [SpacingSemantic.FIELD]: '0.875rem',\n [SpacingSemantic.SECTION]: '1.25rem',\n [SpacingSemantic.REGION]: '1.75rem',\n [SpacingSemantic.CARD]: '0.875rem',\n [SpacingSemantic.CONTAINER]: '1.25rem',\n};\n\n// ============================================================\n// REQUIRED CUSTOM TOKENS — Geist palette + Geist font stacks\n//\n// Same `requiredCustomTokens` mechanism as neo-brutalist + editorial.\n// The Geist family is the visual signature of the theme — anything\n// else and you get \"default theme but tighter\".\n// ============================================================\n\nfunction colorOverride(lightOklch: string, darkOklch: string): DesignTokenConfiguration {\n return {\n type: DesignTokenValueType.COLOR,\n modeStrategy: DesignTokenModeStrategy.LIGHT_DARK,\n lightValue: lightOklch,\n darkValue: darkOklch,\n };\n}\n\nfunction colorSingle(oklch: string): DesignTokenConfiguration {\n return { type: DesignTokenValueType.COLOR, modeStrategy: DesignTokenModeStrategy.SINGLE, value: oklch };\n}\n\nfunction stringSingle(value: string): DesignTokenConfiguration {\n return { type: DesignTokenValueType.STRING, modeStrategy: DesignTokenModeStrategy.SINGLE, value };\n}\n\nconst requiredCustomTokens: Record<string, DesignTokenConfiguration> = {\n // === Page palette: pure-ish whites/blacks. Slight cool tint (hue 240)\n // matches Geist's documentation site exactly (`oklch(...)` derivations\n // from Vercel's published design tokens).\n background: colorOverride('1 0 0', '0.13 0.005 240'),\n foreground: colorOverride('0.16 0.005 240', '0.97 0 0'),\n\n // === Signal green primary: the \"active prompt / diff-add / git-add\"\n // color of every developer tool.\n //\n // ⚠ Wave G follow-up TR-13 (contrast correction): a high-luminance hue\n // (green at L=0.55 chroma 0.18 hue 145 → sRGB Y≈0.30) gives only ~3.0:1\n // contrast against pure white text, well below WCAG AA 4.5:1. Earlier\n // self-review claimed 5.1:1 — that was an OKLCH-L → sRGB-Y conversion\n // mistake (OKLCH L is perceptual; for green hues sRGB Y rises faster\n // than L would suggest). Fix: keep the signal-green hue/L (the visual\n // signature of the theme) and flip the FOREGROUND to near-black in\n // BOTH modes. This is also the canonical \"matrix / phosphor terminal\"\n // aesthetic — dark text on neon green is THE iconic developer-tool\n // look, never white-on-green. New contrast: L=0.55 vs L=0.10 ≈ 5.5:1\n // (light), L=0.72 vs L=0.10 ≈ 7.5:1 (dark). Both AA, dark mode AAA.\n primary: colorOverride('0.55 0.18 145', '0.72 0.20 145'),\n 'primary-foreground': colorSingle('0.10 0.005 240'),\n\n // === Secondary surface: subtle off-white / off-black. Distinguishes\n // from background but stays in the monochrome family.\n secondary: colorOverride('0.965 0.002 240', '0.18 0.005 240'),\n 'secondary-foreground': colorOverride('0.16 0.005 240', '0.97 0 0'),\n\n // === Muted: the \"code block\" / inset background.\n muted: colorOverride('0.955 0.002 240', '0.20 0.005 240'),\n 'muted-foreground': colorOverride('0.45 0.005 240', '0.62 0.005 240'),\n\n // === Borders: crisp but not loud — terminal apps live on grid lines.\n border: colorOverride('0.90 0.003 240', '0.27 0.005 240'),\n ring: colorOverride('0.55 0.18 145', '0.72 0.20 145'),\n input: colorOverride('0.90 0.003 240', '0.27 0.005 240'),\n\n // === Destructive: GitHub-style red.\n destructive: colorOverride('0.58 0.22 27', '0.65 0.24 27'),\n 'destructive-foreground': colorSingle('1 0 0'),\n\n // === Semantic info/success/warning — terminal-tool palette\n // (matches `tput setaf` vibes: cyan/green/yellow). Override these so\n // the theme doesn't depend on the host shipping reasonable defaults.\n // TR-13: same OKLCH→sRGB luminance issue as primary. info-blue at\n // L=0.62 hue 220 has sRGB Y≈0.27 → ~3.4:1 with white. success-green\n // is the same signal-green as primary → same ~3.0:1 with white.\n // Flip both foregrounds to near-black for AA in light mode (≥5:1).\n // Dark mode still uses dark foreground for visual consistency\n // (info/success indicators read as a coherent semantic family).\n info: colorOverride('0.62 0.13 220', '0.72 0.15 220'),\n 'info-foreground': colorSingle('0.10 0.005 240'),\n success: colorOverride('0.55 0.18 145', '0.72 0.20 145'),\n 'success-foreground': colorSingle('0.10 0.005 240'),\n warning: colorOverride('0.72 0.16 70', '0.78 0.18 70'),\n 'warning-foreground': colorSingle('0.10 0.005 240'),\n\n // === Accent gradient: green → cyan → blue (terminal phosphor sweep).\n // Matches the LINK + PRIMARY colors so the ACCENT recipe feels in-family.\n 'accent-gradient-from': colorOverride('0.55 0.18 145', '0.72 0.20 145'),\n 'accent-gradient-via': colorOverride('0.62 0.13 220', '0.72 0.15 220'),\n 'accent-gradient-to': colorOverride('0.55 0.16 250', '0.65 0.18 250'),\n\n // === Font stacks: Geist family. Geist is the visual signal of the\n // theme. Hosts that @font-face Geist Sans + Geist Mono get the\n // canonical look; fallback chain reaches Inter / SF Pro / Cascadia /\n // JetBrains Mono — all \"developer-friendly\" sans+mono.\n 'font-heading': stringSingle(\n \"'Geist', 'Inter', -apple-system, 'SF Pro Text', 'Segoe UI', system-ui, sans-serif\"\n ),\n 'font-body': stringSingle(\n \"'Geist', 'Inter', -apple-system, 'SF Pro Text', 'Segoe UI', system-ui, sans-serif\"\n ),\n 'font-mono': stringSingle(\n \"'Geist Mono', 'JetBrains Mono', 'Fira Code', 'Cascadia Code', 'IBM Plex Mono', 'Menlo', 'Consolas', monospace\"\n ),\n};\n\n// ============================================================\n// ASSEMBLED THEME\n// ============================================================\n\nexport const terminalTheme: ComponentStyleTheme = {\n id: 'terminal',\n name: 'Terminal',\n description:\n 'Geist-inspired theme for developer tools, IDE-adjacent UIs, infra dashboards. Geist Sans body + Geist Mono labels/indicators/code. High density (h-7/h-8 control ladder, tightest spacing in lineup), crisp 1px hairlines, 4–6px radius (3px on checkboxes for TTY feel). Near-monochrome palette + signal-green primary (the universal \"active prompt / diff-add\" color). Instant linear motion (no easing curves, no spring physics). Mono uppercase indicators with small-caps tracking — the \"[INFO]/[WARN]/[ERROR]\" log-prefix idiom. Ships its own Geist font stacks via requiredCustomTokens.',\n\n requiredCustomTokens,\n spacing,\n\n interactive,\n surface,\n formControl,\n indicator,\n selectable,\n overlayBackdrop,\n divider,\n skeleton,\n loadingSpinner,\n loadingOverlay,\n typography,\n radius: '6px',\n backgroundLayer: undefined,\n chartStyle: {\n // Terminal charts: dense, instant, mono labels, thin lines.\n colorShadeLight: 500,\n colorShadeDark: 400,\n gridPadding: { top: 24, right: 16, bottom: 24, left: 48 },\n axis: {\n showAxisLine: true,\n showTicks: true,\n splitLineType: 'dashed',\n hideOverlap: true,\n yAxisNameLocation: 'middle',\n yAxisNameGap: 40,\n },\n tooltip: {\n extraCss:\n 'font-family: \"Geist Mono\", \"JetBrains Mono\", monospace; border: 1px solid color-mix(in oklch, currentColor 25%, transparent); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.08);',\n borderWidth: 1,\n },\n animation: { enabled: true, durationMs: 150, easing: 'linear' },\n series: { lineWidth: 1.5, pointSize: 3, areaOpacity: 0.12, barBorderRadius: 2, pieBorderWidth: 1 },\n typography: {\n titleFontSize: 14,\n titleFontWeight: 600,\n subtitleFontSize: 12,\n legendFontSize: 11,\n tooltipFontSize: 11,\n axisLabelFontSize: 10,\n axisNameFontSize: 11,\n },\n emphasis: { shadowBlur: 4, shadowColor: 'rgba(0, 0, 0, 0.15)', shadowOffsetX: 0 },\n responsive: {\n smallMaxWidth: 400,\n mediumMaxWidth: 799,\n smallGridPadding: { top: 16, right: 8, bottom: 16, left: 24 },\n mediumGridPadding: { left: 40, right: 16, bottom: 32 },\n hideLegendOnSmall: true,\n smallAxisLabelRotate: 45,\n smallFontSize: 9,\n mediumFontSize: 10,\n },\n multiSeriesLegendBottomPadding: 40,\n },\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trading.theme.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"trading.theme.d.ts","sourceRoot":"","sources":["../../../src/themes/trading.theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAA4B,MAAM,qCAAqC,CAAC;AAyuBzG,eAAO,MAAM,YAAY,EAAE,mBAiE1B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InteractiveVariant, SurfaceVariant, FormControlVariant, IndicatorVariant, SelectableVariant, TypographyVariant, SpacingSemantic, DesignTokenModeStrategy, DesignTokenValueType, } from '@wildo-ai/presets-components-models';
|
|
1
|
+
import { DividerVariant, InteractiveVariant, SurfaceVariant, FormControlVariant, IndicatorVariant, SelectableVariant, TypographyVariant, SpacingSemantic, DesignTokenModeStrategy, DesignTokenValueType, SKELETON_NEUTRAL_TINT, } from '@wildo-ai/presets-components-models';
|
|
2
2
|
function recipe(r) {
|
|
3
3
|
return { base: r.base, states: r.states ?? {}, sizes: r.sizes, motion: r.motion ?? {}, gesture: r.gesture, policy: r.policy };
|
|
4
4
|
}
|
|
@@ -466,11 +466,15 @@ const overlayBackdrop = recipe({
|
|
|
466
466
|
exit: TR_MOTION.backdropExit,
|
|
467
467
|
},
|
|
468
468
|
});
|
|
469
|
-
const divider =
|
|
469
|
+
const divider = {
|
|
470
|
+
[DividerVariant.DEFAULT]: recipe({ base: 'bg-foreground/15 shrink-0' }),
|
|
471
|
+
// Nested-disclosure guide: the theme's own divider material, as a left edge.
|
|
472
|
+
[DividerVariant.NESTING_GUIDE]: recipe({ base: 'border-s border-foreground/15' }),
|
|
473
|
+
};
|
|
470
474
|
const skeleton = recipe({
|
|
471
475
|
// Trading skeletons are LINEAR (no rounded corners) so they
|
|
472
476
|
// perfectly replace tabular cells while loading.
|
|
473
|
-
base:
|
|
477
|
+
base: `${SKELETON_NEUTRAL_TINT} animate-pulse ${TR.radius} motion-reduce:animate-none`,
|
|
474
478
|
});
|
|
475
479
|
const loadingSpinner = recipe({
|
|
476
480
|
base: 'text-primary animate-spin motion-reduce:animate-none',
|
|
@@ -497,6 +501,7 @@ const typography = {
|
|
|
497
501
|
h2: 'text-xl',
|
|
498
502
|
h3: 'text-base',
|
|
499
503
|
h4: 'text-sm',
|
|
504
|
+
h5: 'text-xs',
|
|
500
505
|
md: 'text-sm',
|
|
501
506
|
},
|
|
502
507
|
}),
|