@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-field-string.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"display-field-string.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-string.tsx"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AAI1E;;;;GAIG;AACH,iBAAS,kBAAkB,CAAC,EAC1B,MAAM,EACN,KAAK,EACL,SAAS,GACV,EAAE,uBAAuB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAoKpD;AAID,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -54,6 +54,9 @@ function DisplayFieldString({ schema, value, className, }) {
|
|
|
54
54
|
return (_jsx(Text, { className: "min-w-0 truncate", children: value }));
|
|
55
55
|
case StringDisplayMode.MULTILINE:
|
|
56
56
|
return (_jsx(Text, { className: "whitespace-pre-wrap", children: value }));
|
|
57
|
+
case StringDisplayMode.IDENTIFIER:
|
|
58
|
+
// A machine ref/slug: verbatim and greppable, styled to recede behind the prose.
|
|
59
|
+
return _jsx(Text, { className: "font-mono text-xs text-muted-foreground break-all", children: value });
|
|
57
60
|
case StringDisplayMode.MARKDOWN:
|
|
58
61
|
// Rich long-form content (descriptions, notes): full markdown body
|
|
59
62
|
// themed through the typography recipes. See markdown-content.tsx for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-field-string.js","sourceRoot":"","sources":["../../../../../../src/components/data-display/formatters/display-field-string.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\n/**\n * DisplayFieldString Component\n *\n * Displays a string value based on the string UI decorator.\n * Supports different display modes: text, truncate, multiline, markdown, color, link, email, badge, copy, secret\n */\n\nimport * as React from \"react\"\n\nimport { cn, useI18n, useIconRegistry, StandardIconReference, IconSize, Text, Badge } from \"@wildo-ai/saas-frontend-lib\"\nimport { FrontendComponentType } from \"@wildo-ai/presets-components-models\"\nimport { getStringUI, getStringFormat, StringDisplayMode } from \"@wildo-ai/zod-decorators\"\nimport type { DisplayFieldStringProps } from '@wildo-ai/saas-frontend-lib'\n\nimport { MarkdownContent } from \"../markdown-content\"\n\n/**\n * DisplayFieldString component\n *\n * Renders a string value according to the string UI decorator\n */\nfunction DisplayFieldString({\n schema,\n value,\n className,\n}: DisplayFieldStringProps): React.JSX.Element | null {\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_FORM_FIELD })\n const { renderIcon } = useIconRegistry()\n const [copied, setCopied] = React.useState(false)\n\n const stringUI = getStringUI(schema)\n const stringFormat = getStringFormat(schema)\n\n // SECRET fields mask by default; `initiallyRevealed` (set by `.isEphemeral()`)\n // shows the value on first paint for one-time reveals. The eye toggle still works.\n const [revealed, setRevealed] = React.useState(stringUI?.display?.initiallyRevealed ?? false)\n\n let displayMode = stringUI?.display?.displayMode ?? StringDisplayMode.TEXT\n if (!stringUI && stringFormat) {\n if (stringFormat === 'email') displayMode = StringDisplayMode.EMAIL\n else if (stringFormat === 'url') displayMode = StringDisplayMode.LINK\n }\n\n // Copy to clipboard handler\n const handleCopy = async () => {\n if (value) {\n await navigator.clipboard.writeText(value)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }\n }\n\n // Render the value content\n const renderValue = () => {\n // Handle null/undefined\n if (value === null || value === undefined || value === '') {\n return <><Text className=\"text-muted-foreground italic\" aria-hidden=\"true\">—</Text><span className=\"sr-only\">{tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD, 'noValue')}</span></>\n }\n\n // Render based on display mode\n switch (displayMode) {\n case StringDisplayMode.TEXT:\n return <Text>{value}</Text>\n\n case StringDisplayMode.TRUNCATE:\n return (\n <Text className=\"min-w-0 truncate\">\n {value}\n </Text>\n )\n\n case StringDisplayMode.MULTILINE:\n return (\n <Text className=\"whitespace-pre-wrap\">\n {value}\n </Text>\n )\n\n case StringDisplayMode.MARKDOWN:\n // Rich long-form content (descriptions, notes): full markdown body\n // themed through the typography recipes. See markdown-content.tsx for\n // the embedded heading-demotion rationale.\n return <MarkdownContent value={value} />\n\n\n case StringDisplayMode.COLOR:\n return (\n <div className=\"flex items-center gap-element\">\n <div\n className=\"h-5 w-5 rounded border border-border\"\n style={{ backgroundColor: value }}\n aria-hidden=\"true\"\n />\n <Text className=\"font-mono text-sm\">{value}</Text>\n </div>\n )\n\n case StringDisplayMode.LINK:\n return (\n <a\n href={value}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary hover:underline\"\n >\n {value}\n </a>\n )\n\n case StringDisplayMode.EMAIL:\n return (\n <a\n href={`mailto:${value}`}\n className=\"text-primary hover:underline\"\n >\n {value}\n </a>\n )\n\n case StringDisplayMode.BADGE:\n return <Badge variant=\"secondary\">{value}</Badge>\n\n case StringDisplayMode.COPY:\n return (\n <div className=\"flex items-center gap-element\">\n <Text className=\"font-mono text-sm\">{value}</Text>\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"text-muted-foreground hover:text-foreground transition-colors\"\n aria-label={copied ? tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'copied') : tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'copyToClipboard')}\n >\n <span aria-hidden=\"true\">\n {copied\n ? renderIcon(StandardIconReference.CHECK, { size: IconSize.SM })\n : renderIcon(StandardIconReference.COPY, { size: IconSize.SM })\n }\n </span>\n </button>\n </div>\n )\n\n case StringDisplayMode.SECRET:\n return (\n <div className=\"flex items-center gap-element\">\n <Text className=\"font-mono text-sm select-all\" aria-live=\"polite\">\n {revealed ? value : '••••••••••••••••'}\n </Text>\n <button\n type=\"button\"\n onClick={() => setRevealed(prev => !prev)}\n className=\"text-muted-foreground hover:text-foreground transition-colors\"\n aria-label={revealed ? tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'hideValue') : tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'revealValue')}\n >\n <span aria-hidden=\"true\">\n {revealed\n ? renderIcon(StandardIconReference.EYE_OFF, { size: IconSize.SM })\n : renderIcon(StandardIconReference.EYE, { size: IconSize.SM })\n }\n </span>\n </button>\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"text-muted-foreground hover:text-foreground transition-colors\"\n aria-label={copied ? tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'copied') : tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'copyToClipboard')}\n >\n <span aria-hidden=\"true\">\n {copied\n ? renderIcon(StandardIconReference.CHECK, { size: IconSize.SM })\n : renderIcon(StandardIconReference.COPY, { size: IconSize.SM })\n }\n </span>\n </button>\n </div>\n )\n\n default:\n return <Text>{value}</Text>\n }\n }\n\n if (!isReady) return null\n // Label/description rendering is handled by the parent DisplayField (FIELD-01)\n return <div className={className}>{renderValue()}</div>\n}\n\n;(DisplayFieldString as typeof DisplayFieldString & { displayName: string }).displayName = \"DisplayFieldString\"\n\nexport { DisplayFieldString }\n"]}
|
|
1
|
+
{"version":3,"file":"display-field-string.js","sourceRoot":"","sources":["../../../../../../src/components/data-display/formatters/display-field-string.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\n/**\n * DisplayFieldString Component\n *\n * Displays a string value based on the string UI decorator.\n * Supports different display modes: text, truncate, multiline, markdown, color, link, email, badge, copy, secret\n */\n\nimport * as React from \"react\"\n\nimport { cn, useI18n, useIconRegistry, StandardIconReference, IconSize, Text, Badge } from \"@wildo-ai/saas-frontend-lib\"\nimport { FrontendComponentType } from \"@wildo-ai/presets-components-models\"\nimport { getStringUI, getStringFormat, StringDisplayMode } from \"@wildo-ai/zod-decorators\"\nimport type { DisplayFieldStringProps } from '@wildo-ai/saas-frontend-lib'\n\nimport { MarkdownContent } from \"../markdown-content\"\n\n/**\n * DisplayFieldString component\n *\n * Renders a string value according to the string UI decorator\n */\nfunction DisplayFieldString({\n schema,\n value,\n className,\n}: DisplayFieldStringProps): React.JSX.Element | null {\n const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_FORM_FIELD })\n const { renderIcon } = useIconRegistry()\n const [copied, setCopied] = React.useState(false)\n\n const stringUI = getStringUI(schema)\n const stringFormat = getStringFormat(schema)\n\n // SECRET fields mask by default; `initiallyRevealed` (set by `.isEphemeral()`)\n // shows the value on first paint for one-time reveals. The eye toggle still works.\n const [revealed, setRevealed] = React.useState(stringUI?.display?.initiallyRevealed ?? false)\n\n let displayMode = stringUI?.display?.displayMode ?? StringDisplayMode.TEXT\n if (!stringUI && stringFormat) {\n if (stringFormat === 'email') displayMode = StringDisplayMode.EMAIL\n else if (stringFormat === 'url') displayMode = StringDisplayMode.LINK\n }\n\n // Copy to clipboard handler\n const handleCopy = async () => {\n if (value) {\n await navigator.clipboard.writeText(value)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }\n }\n\n // Render the value content\n const renderValue = () => {\n // Handle null/undefined\n if (value === null || value === undefined || value === '') {\n return <><Text className=\"text-muted-foreground italic\" aria-hidden=\"true\">—</Text><span className=\"sr-only\">{tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD, 'noValue')}</span></>\n }\n\n // Render based on display mode\n switch (displayMode) {\n case StringDisplayMode.TEXT:\n return <Text>{value}</Text>\n\n case StringDisplayMode.TRUNCATE:\n return (\n <Text className=\"min-w-0 truncate\">\n {value}\n </Text>\n )\n\n case StringDisplayMode.MULTILINE:\n return (\n <Text className=\"whitespace-pre-wrap\">\n {value}\n </Text>\n )\n\n case StringDisplayMode.IDENTIFIER:\n // A machine ref/slug: verbatim and greppable, styled to recede behind the prose.\n return <Text className=\"font-mono text-xs text-muted-foreground break-all\">{value}</Text>\n\n case StringDisplayMode.MARKDOWN:\n // Rich long-form content (descriptions, notes): full markdown body\n // themed through the typography recipes. See markdown-content.tsx for\n // the embedded heading-demotion rationale.\n return <MarkdownContent value={value} />\n\n\n case StringDisplayMode.COLOR:\n return (\n <div className=\"flex items-center gap-element\">\n <div\n className=\"h-5 w-5 rounded border border-border\"\n style={{ backgroundColor: value }}\n aria-hidden=\"true\"\n />\n <Text className=\"font-mono text-sm\">{value}</Text>\n </div>\n )\n\n case StringDisplayMode.LINK:\n return (\n <a\n href={value}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary hover:underline\"\n >\n {value}\n </a>\n )\n\n case StringDisplayMode.EMAIL:\n return (\n <a\n href={`mailto:${value}`}\n className=\"text-primary hover:underline\"\n >\n {value}\n </a>\n )\n\n case StringDisplayMode.BADGE:\n return <Badge variant=\"secondary\">{value}</Badge>\n\n case StringDisplayMode.COPY:\n return (\n <div className=\"flex items-center gap-element\">\n <Text className=\"font-mono text-sm\">{value}</Text>\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"text-muted-foreground hover:text-foreground transition-colors\"\n aria-label={copied ? tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'copied') : tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'copyToClipboard')}\n >\n <span aria-hidden=\"true\">\n {copied\n ? renderIcon(StandardIconReference.CHECK, { size: IconSize.SM })\n : renderIcon(StandardIconReference.COPY, { size: IconSize.SM })\n }\n </span>\n </button>\n </div>\n )\n\n case StringDisplayMode.SECRET:\n return (\n <div className=\"flex items-center gap-element\">\n <Text className=\"font-mono text-sm select-all\" aria-live=\"polite\">\n {revealed ? value : '••••••••••••••••'}\n </Text>\n <button\n type=\"button\"\n onClick={() => setRevealed(prev => !prev)}\n className=\"text-muted-foreground hover:text-foreground transition-colors\"\n aria-label={revealed ? tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'hideValue') : tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'revealValue')}\n >\n <span aria-hidden=\"true\">\n {revealed\n ? renderIcon(StandardIconReference.EYE_OFF, { size: IconSize.SM })\n : renderIcon(StandardIconReference.EYE, { size: IconSize.SM })\n }\n </span>\n </button>\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"text-muted-foreground hover:text-foreground transition-colors\"\n aria-label={copied ? tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'copied') : tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD_STRING, 'copyToClipboard')}\n >\n <span aria-hidden=\"true\">\n {copied\n ? renderIcon(StandardIconReference.CHECK, { size: IconSize.SM })\n : renderIcon(StandardIconReference.COPY, { size: IconSize.SM })\n }\n </span>\n </button>\n </div>\n )\n\n default:\n return <Text>{value}</Text>\n }\n }\n\n if (!isReady) return null\n // Label/description rendering is handled by the parent DisplayField (FIELD-01)\n return <div className={className}>{renderValue()}</div>\n}\n\n;(DisplayFieldString as typeof DisplayFieldString & { displayName: string }).displayName = \"DisplayFieldString\"\n\nexport { DisplayFieldString }\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-field-string.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"display-field-string.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-string.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,gCAAgC,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-field-time.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"display-field-time.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-time.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAGxE,iBAAS,gBAAgB,CAAC,EACxB,KAAK,EACL,SAAS,GACV,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAgBlD;AAID,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-field-time.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"display-field-time.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-time.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,8BAA8B,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-content.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"markdown-content.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/markdown-content.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAID,iBAAS,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6FtF;AAID,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-stream-runtime.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"markdown-stream-runtime.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/markdown-stream-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEjD,sGAAsG;AACtG,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAA;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,eAAO,MAAM,sBAAsB,EAAE,wBAQjC,CAAA;AAEJ;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAE1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-stream.lazy.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"markdown-stream.lazy.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/markdown-stream.lazy.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,4DAA4D;AAC5D,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,CAAA;AAqDzE;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,OAAyB,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAc9G"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-indicator.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"notification-indicator.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/notification-indicator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,0BAA0B,EAAyB,MAAM,6BAA6B,CAAA;AA2BpG,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAa,EACb,KAAK,EACL,SAAS,GACV,EAAE,0BAA0B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA0BvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-indicator.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"notification-indicator.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/notification-indicator.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAO/H,eAAO,MAAM,mCAAmC,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-viewer.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"pdf-viewer.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/pdf-viewer/pdf-viewer.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA0C9B,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,IAAI,EAAE,WAAW,CAAA;IACjB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,aAAqB,EACrB,WAAW,EACX,SAAS,EACT,SAAS,GACV,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwGpC;AAED,eAAe,SAAS,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-viewer.lazy.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"pdf-viewer.lazy.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/pdf-viewer/pdf-viewer.lazy.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAIlD,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAMtE;AAED,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"celebration-overlay.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"celebration-overlay.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/celebration-overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AA4B1E;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,kBAAkB,gGA4J9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"celebration-overlay.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"celebration-overlay.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/celebration-overlay.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,gCAAgC,EAAE,mBAAmB,EAWjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"danger-zone.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"danger-zone.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/danger-zone.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqB3F;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"danger-zone.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"danger-zone.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/danger-zone.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/empty-state.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAQL,eAAe,EAChB,MAAM,6BAA6B,CAAC;AAQrC;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,wFAwFtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty-state.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"empty-state.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/empty-state.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,EAAO,CAAC;AAGlE,eAAO,MAAM,gCAAgC,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-display.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"error-display.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/error-display.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAsBL,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAsBrC,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,OAAO,EACP,OAAqC,EACrC,UAAU,EACV,KAAK,EACL,OAAO,EACP,UAAU,EACV,OAAY,EACZ,WAAmB,EACnB,YAAsC,EACtC,eAAsC,EACtC,eAAoB,EACpB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmMvC;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-display.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"error-display.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/error-display.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,EA6D3D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-limit-indicator.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"feature-limit-indicator.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/features/feature-limit-indicator.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAE3B,MAAM,6BAA6B,CAAC;AAerC,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,KAAK,EACL,KAAK,EACL,SAAgB,EAChB,IAAW,GACZ,EAAE,0BAA0B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqChD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-limit-indicator.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"feature-limit-indicator.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/features/feature-limit-indicator.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,mCAAmC,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-lock-badge.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"feature-lock-badge.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/features/feature-lock-badge.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAOzE,wBAAgB,gBAAgB,CAAC,EAC/B,eAAe,EACf,IAAW,GACZ,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA4BlD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-lock-badge.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"feature-lock-badge.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/features/feature-lock-badge.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,8BAA8B,EAAE,mBAAmB,EAY/D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-unavailable-dialog.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"feature-unavailable-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/features/feature-unavailable-dialog.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAGjF,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,YAAY,EACZ,GAAG,WAAW,EACf,EAAE,6BAA6B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAcnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-unavailable-dialog.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"feature-unavailable-dialog.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/features/feature-unavailable-dialog.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,sCAAsC,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-unavailable-prompt.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"feature-unavailable-prompt.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/features/feature-unavailable-prompt.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EAQL,6BAA6B,EAC9B,MAAM,6BAA6B,CAAC;AAuCrC,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,eAAe,EACf,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,SAAS,GACV,EAAE,6BAA6B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAgH1D"}
|
|
@@ -20,6 +20,13 @@ const BEHAVIOR_CONFIG = {
|
|
|
20
20
|
contact_admin: { icon: StandardIconReference.USERS, titleKey: 'contactTitle', descriptionKey: 'contactDescription' },
|
|
21
21
|
limit_upgrade_prompt: { icon: StandardIconReference.WARNING, titleKey: 'limitTitle', descriptionKey: 'limitDescription', ctaKey: 'limitCTA' },
|
|
22
22
|
disable: { icon: StandardIconReference.LOCK, titleKey: 'disableTitle', descriptionKey: 'disableDescription' },
|
|
23
|
+
/*
|
|
24
|
+
* `custom` reaches this preset ONLY when the feature declared no `customComponentRef`: the engine
|
|
25
|
+
* wrapper resolves a declared ref through the component registry and renders that instead, and an
|
|
26
|
+
* unresolvable ref renders ComponentNotInjected (#440). So this row is the no-ref fallback, not an
|
|
27
|
+
* alias — it used to be the alias, which is why a CUSTOM feature rendered the DISABLE copy while
|
|
28
|
+
* `useResourceOperationActions` was treating CUSTOM as a prompt behaviour.
|
|
29
|
+
*/
|
|
23
30
|
custom: { icon: StandardIconReference.LOCK, titleKey: 'disableTitle', descriptionKey: 'disableDescription' },
|
|
24
31
|
};
|
|
25
32
|
const DEFAULT_CONFIG = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-unavailable-prompt.js","sourceRoot":"","sources":["../../../../../../src/components/feedback/features/feature-unavailable-prompt.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * FeatureUnavailablePrompt (Preset)\n *\n * Core reusable content for feature unavailability prompts.\n * Adapts its title, description, icon, and CTA based on `behavior`.\n *\n * Rendered both in the route content area (FeatureRouteGuard) and inside a Dialog.\n */\n\nimport React, { useMemo } from 'react';\nimport { ButtonSize, FrontendComponentType, SurfaceVariant } from '@wildo-ai/presets-components-models';\nimport {\n Button,\n ButtonVariants_Variant,\n useI18n,\n useIconRegistry,\n StandardIconReference,\n IconSize,\n Surface,\n FeatureUnavailablePromptProps,\n} from '@wildo-ai/saas-frontend-lib';\n\n// ── Behavior → icon / label key mapping ─────────────────────────────\n\ninterface BehaviorConfig {\n icon: StandardIconReference;\n titleKey: string;\n descriptionKey: string;\n ctaKey?: string;\n}\n\n/**\n * Maps FeatureUnavailabilityBehavior enum values (lowercase) to icon + label keys.\n * Keys must match the enum values exactly: 'upgrade_prompt', 'addon_prompt', etc.\n */\nconst BEHAVIOR_CONFIG: Record<string, BehaviorConfig> = {\n upgrade_prompt: { icon: StandardIconReference.LOCK, titleKey: 'upgradeTitle', descriptionKey: 'upgradeDescription', ctaKey: 'upgradeCTA' },\n addon_prompt: { icon: StandardIconReference.PLUS, titleKey: 'addonTitle', descriptionKey: 'addonDescription', ctaKey: 'addonCTA' },\n contact_admin: { icon: StandardIconReference.USERS, titleKey: 'contactTitle', descriptionKey: 'contactDescription' },\n limit_upgrade_prompt: { icon: StandardIconReference.WARNING, titleKey: 'limitTitle', descriptionKey: 'limitDescription', ctaKey: 'limitCTA' },\n disable: { icon: StandardIconReference.LOCK, titleKey: 'disableTitle', descriptionKey: 'disableDescription' },\n custom: { icon: StandardIconReference.LOCK, titleKey: 'disableTitle', descriptionKey: 'disableDescription' },\n};\n\nconst DEFAULT_CONFIG: BehaviorConfig = {\n icon: StandardIconReference.LOCK,\n titleKey: 'disableTitle',\n descriptionKey: 'disableDescription',\n};\n\n// ── Component ───────────────────────────────────────────────────────\n\nexport function FeatureUnavailablePrompt({\n behavior,\n missingFeatures,\n limitInfo,\n upgradeOptionsCount,\n onAction,\n onDismiss,\n}: FeatureUnavailablePromptProps): React.JSX.Element | null {\n const { makeTrComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_FEATURE_UNAVAILABLE_PROMPT });\n const { renderIcon } = useIconRegistry();\n\n const t = useMemo(\n () => makeTrComponent(FrontendComponentType.LOW_LEVEL_FEATURE_UNAVAILABLE_PROMPT),\n [makeTrComponent],\n );\n\n const config = BEHAVIOR_CONFIG[behavior] ?? DEFAULT_CONFIG;\n\n const limitPercentage = useMemo(() => {\n if (!limitInfo || limitInfo.limit <= 0) return 0;\n return Math.min(100, Math.round((limitInfo.current / limitInfo.limit) * 100));\n }, [limitInfo]);\n\n if (!isReady) return null;\n\n return (\n <div className=\"flex flex-col items-center justify-center min-h-[60vh] p-card text-center max-w-lg mx-auto\">\n {/* Icon */}\n <div className=\"w-16 h-16 rounded-full bg-muted flex items-center justify-center mb-section\">\n {renderIcon(config.icon, { size: IconSize.LG, className: 'text-muted-foreground' })}\n </div>\n\n {/* Title */}\n <h2 className=\"text-2xl font-semibold text-foreground mb-element\">\n {t(config.titleKey)}\n </h2>\n\n {/* Description */}\n <p className=\"text-muted-foreground mb-section max-w-sm\">\n {t(config.descriptionKey)}\n </p>\n\n {/* Missing features badges */}\n {missingFeatures && missingFeatures.length > 0 && (\n <div className=\"mb-section space-y-element\">\n <p className=\"text-xs font-medium text-muted-foreground\">\n {t('requiredFeaturesLabel')}\n </p>\n <div className=\"flex flex-wrap justify-center gap-1\">\n {missingFeatures.map(f => (\n <span key={f} className=\"inline-flex items-center rounded-md bg-primary/10 px-2.5 py-1 text-xs font-medium text-primary\">\n {f}\n </span>\n ))}\n </div>\n </div>\n )}\n\n {/* Limit usage bar */}\n {limitInfo && (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <div className=\"bg-muted rounded-lg p-card-sm space-y-element w-full max-w-xs mb-section\">\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-muted-foreground\">{limitInfo.featureId}</span>\n <span className=\"font-medium text-foreground\">\n {t('usageProgress', { current: limitInfo.current, limit: limitInfo.limit })}\n </span>\n </div>\n <div\n className=\"h-2.5 bg-muted-foreground/20 rounded-full overflow-hidden\"\n role=\"progressbar\"\n aria-valuenow={limitInfo.current}\n aria-valuemin={0}\n aria-valuemax={limitInfo.limit}\n aria-label={`${limitInfo.featureId}: ${limitInfo.current} of ${limitInfo.limit}`}\n >\n <div\n className={`h-full rounded-full transition-all duration-[var(--motion-duration-fast)] ${\n limitPercentage >= 100 ? 'bg-destructive' : limitPercentage >= 80 ? 'bg-warning' : 'bg-primary'\n }`}\n style={{ width: `${limitPercentage}%` }}\n />\n </div>\n </div>\n </Surface>\n )}\n\n {/* Upgrade options count */}\n {upgradeOptionsCount != null && upgradeOptionsCount > 0 && (\n <p className=\"text-sm text-muted-foreground mb-section\">\n {t('upgradeOptionsAvailable', { count: upgradeOptionsCount })}\n </p>\n )}\n\n {/* Actions */}\n <div className=\"flex flex-col gap-element w-full max-w-xs\">\n {config.ctaKey && (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.DEFAULT}\n size={ButtonSize.MD}\n onClick={onAction}\n >\n {t(config.ctaKey)}\n </Button>\n )}\n {onDismiss && (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.GHOST}\n size={ButtonSize.MD}\n onClick={onDismiss}\n >\n {t('goBack')}\n </Button>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"feature-unavailable-prompt.js","sourceRoot":"","sources":["../../../../../src/components/feedback/features/feature-unavailable-prompt.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * FeatureUnavailablePrompt (Preset)\n *\n * Core reusable content for feature unavailability prompts.\n * Adapts its title, description, icon, and CTA based on `behavior`.\n *\n * Rendered both in the route content area (FeatureRouteGuard) and inside a Dialog.\n */\n\nimport React, { useMemo } from 'react';\nimport { ButtonSize, FrontendComponentType, SurfaceVariant } from '@wildo-ai/presets-components-models';\nimport {\n Button,\n ButtonVariants_Variant,\n useI18n,\n useIconRegistry,\n StandardIconReference,\n IconSize,\n Surface,\n FeatureUnavailablePromptProps,\n} from '@wildo-ai/saas-frontend-lib';\n\n// ── Behavior → icon / label key mapping ─────────────────────────────\n\ninterface BehaviorConfig {\n icon: StandardIconReference;\n titleKey: string;\n descriptionKey: string;\n ctaKey?: string;\n}\n\n/**\n * Maps FeatureUnavailabilityBehavior enum values (lowercase) to icon + label keys.\n * Keys must match the enum values exactly: 'upgrade_prompt', 'addon_prompt', etc.\n */\nconst BEHAVIOR_CONFIG: Record<string, BehaviorConfig> = {\n upgrade_prompt: { icon: StandardIconReference.LOCK, titleKey: 'upgradeTitle', descriptionKey: 'upgradeDescription', ctaKey: 'upgradeCTA' },\n addon_prompt: { icon: StandardIconReference.PLUS, titleKey: 'addonTitle', descriptionKey: 'addonDescription', ctaKey: 'addonCTA' },\n contact_admin: { icon: StandardIconReference.USERS, titleKey: 'contactTitle', descriptionKey: 'contactDescription' },\n limit_upgrade_prompt: { icon: StandardIconReference.WARNING, titleKey: 'limitTitle', descriptionKey: 'limitDescription', ctaKey: 'limitCTA' },\n disable: { icon: StandardIconReference.LOCK, titleKey: 'disableTitle', descriptionKey: 'disableDescription' },\n /*\n * `custom` reaches this preset ONLY when the feature declared no `customComponentRef`: the engine\n * wrapper resolves a declared ref through the component registry and renders that instead, and an\n * unresolvable ref renders ComponentNotInjected (#440). So this row is the no-ref fallback, not an\n * alias — it used to be the alias, which is why a CUSTOM feature rendered the DISABLE copy while\n * `useResourceOperationActions` was treating CUSTOM as a prompt behaviour.\n */\n custom: { icon: StandardIconReference.LOCK, titleKey: 'disableTitle', descriptionKey: 'disableDescription' },\n};\n\nconst DEFAULT_CONFIG: BehaviorConfig = {\n icon: StandardIconReference.LOCK,\n titleKey: 'disableTitle',\n descriptionKey: 'disableDescription',\n};\n\n// ── Component ───────────────────────────────────────────────────────\n\nexport function FeatureUnavailablePrompt({\n behavior,\n missingFeatures,\n limitInfo,\n upgradeOptionsCount,\n onAction,\n onDismiss,\n}: FeatureUnavailablePromptProps): React.JSX.Element | null {\n const { makeTrComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_FEATURE_UNAVAILABLE_PROMPT });\n const { renderIcon } = useIconRegistry();\n\n const t = useMemo(\n () => makeTrComponent(FrontendComponentType.LOW_LEVEL_FEATURE_UNAVAILABLE_PROMPT),\n [makeTrComponent],\n );\n\n const config = BEHAVIOR_CONFIG[behavior] ?? DEFAULT_CONFIG;\n\n const limitPercentage = useMemo(() => {\n if (!limitInfo || limitInfo.limit <= 0) return 0;\n return Math.min(100, Math.round((limitInfo.current / limitInfo.limit) * 100));\n }, [limitInfo]);\n\n if (!isReady) return null;\n\n return (\n <div className=\"flex flex-col items-center justify-center min-h-[60vh] p-card text-center max-w-lg mx-auto\">\n {/* Icon */}\n <div className=\"w-16 h-16 rounded-full bg-muted flex items-center justify-center mb-section\">\n {renderIcon(config.icon, { size: IconSize.LG, className: 'text-muted-foreground' })}\n </div>\n\n {/* Title */}\n <h2 className=\"text-2xl font-semibold text-foreground mb-element\">\n {t(config.titleKey)}\n </h2>\n\n {/* Description */}\n <p className=\"text-muted-foreground mb-section max-w-sm\">\n {t(config.descriptionKey)}\n </p>\n\n {/* Missing features badges */}\n {missingFeatures && missingFeatures.length > 0 && (\n <div className=\"mb-section space-y-element\">\n <p className=\"text-xs font-medium text-muted-foreground\">\n {t('requiredFeaturesLabel')}\n </p>\n <div className=\"flex flex-wrap justify-center gap-1\">\n {missingFeatures.map(f => (\n <span key={f} className=\"inline-flex items-center rounded-md bg-primary/10 px-2.5 py-1 text-xs font-medium text-primary\">\n {f}\n </span>\n ))}\n </div>\n </div>\n )}\n\n {/* Limit usage bar */}\n {limitInfo && (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <div className=\"bg-muted rounded-lg p-card-sm space-y-element w-full max-w-xs mb-section\">\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-muted-foreground\">{limitInfo.featureId}</span>\n <span className=\"font-medium text-foreground\">\n {t('usageProgress', { current: limitInfo.current, limit: limitInfo.limit })}\n </span>\n </div>\n <div\n className=\"h-2.5 bg-muted-foreground/20 rounded-full overflow-hidden\"\n role=\"progressbar\"\n aria-valuenow={limitInfo.current}\n aria-valuemin={0}\n aria-valuemax={limitInfo.limit}\n aria-label={`${limitInfo.featureId}: ${limitInfo.current} of ${limitInfo.limit}`}\n >\n <div\n className={`h-full rounded-full transition-all duration-[var(--motion-duration-fast)] ${\n limitPercentage >= 100 ? 'bg-destructive' : limitPercentage >= 80 ? 'bg-warning' : 'bg-primary'\n }`}\n style={{ width: `${limitPercentage}%` }}\n />\n </div>\n </div>\n </Surface>\n )}\n\n {/* Upgrade options count */}\n {upgradeOptionsCount != null && upgradeOptionsCount > 0 && (\n <p className=\"text-sm text-muted-foreground mb-section\">\n {t('upgradeOptionsAvailable', { count: upgradeOptionsCount })}\n </p>\n )}\n\n {/* Actions */}\n <div className=\"flex flex-col gap-element w-full max-w-xs\">\n {config.ctaKey && (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.DEFAULT}\n size={ButtonSize.MD}\n onClick={onAction}\n >\n {t(config.ctaKey)}\n </Button>\n )}\n {onDismiss && (\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.GHOST}\n size={ButtonSize.MD}\n onClick={onDismiss}\n >\n {t('goBack')}\n </Button>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-unavailable-prompt.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"feature-unavailable-prompt.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/feedback/features/feature-unavailable-prompt.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,sCAAsC,EAAE,mBAAmB,EA2GvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-overlay.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"loading-overlay.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/loading-overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEtE;;;;;;;GAOG;AACH,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,WAAgB,EAAE,WAAkB,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAwBpI;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-overlay.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"loading-overlay.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/loading-overlay.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,4BAA4B,EAAE,mBAAmB,EAM7D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-spinner.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"loading-spinner.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/loading-spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEtE;;;;;GAKG;AACH,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,IAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA2CzG;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loading-spinner.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"loading-spinner.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/loading-spinner.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,4BAA4B,EAAE,mBAAmB,EAM7D,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { NotificationCenterProps } from '@wildo-ai/saas-frontend-lib';
|
|
3
3
|
/**
|
|
4
|
-
* NotificationCenter — generic, resource-agnostic
|
|
4
|
+
* NotificationCenter — generic, resource-agnostic SESSION-FEED component.
|
|
5
5
|
*
|
|
6
|
-
* A pure UI component that displays
|
|
7
|
-
*
|
|
6
|
+
* A pure UI component that displays what has arrived since the page loaded, with relative timestamps
|
|
7
|
+
* and per-item actions. Read/unread state was removed on 2026-09-08 (#412): the store behind it has
|
|
8
|
+
* no persistence, so "read" was a property that died with the page and marking something read meant
|
|
9
|
+
* nothing. Does NOT know about resources, i18n, or
|
|
8
10
|
* any engine concepts — all labels are passed as props.
|
|
9
11
|
*
|
|
10
12
|
* For engine integration, see the notification-center wrapper in saas-frontend-lib
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-center.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"notification-center.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/notification-center.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAEL,uBAAuB,EAMxB,MAAM,6BAA6B,CAAC;AAkCrC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,gGA2H9B,CAAC"}
|
|
@@ -28,18 +28,20 @@ const TYPE_INDICATORS = {
|
|
|
28
28
|
// Component
|
|
29
29
|
// ─────────────────────────────────────────────────────────────
|
|
30
30
|
/**
|
|
31
|
-
* NotificationCenter — generic, resource-agnostic
|
|
31
|
+
* NotificationCenter — generic, resource-agnostic SESSION-FEED component.
|
|
32
32
|
*
|
|
33
|
-
* A pure UI component that displays
|
|
34
|
-
*
|
|
33
|
+
* A pure UI component that displays what has arrived since the page loaded, with relative timestamps
|
|
34
|
+
* and per-item actions. Read/unread state was removed on 2026-09-08 (#412): the store behind it has
|
|
35
|
+
* no persistence, so "read" was a property that died with the page and marking something read meant
|
|
36
|
+
* nothing. Does NOT know about resources, i18n, or
|
|
35
37
|
* any engine concepts — all labels are passed as props.
|
|
36
38
|
*
|
|
37
39
|
* For engine integration, see the notification-center wrapper in saas-frontend-lib
|
|
38
40
|
* which wires NotificationContext and resolves i18n labels.
|
|
39
41
|
*/
|
|
40
|
-
export const NotificationCenter = React.forwardRef(({ notifications,
|
|
42
|
+
export const NotificationCenter = React.forwardRef(({ notifications, sessionCount, onRemove, onClearAll, labelTitle = 'Notifications', labelNoNotifications = 'Nothing since this page loaded', labelClearAll = 'Clear all', labelDismiss = 'Dismiss', labelTimeJustNow, formatTimeMinutesAgo, formatTimeHoursAgo, formatTimeDaysAgo, className, ...props }, ref) => {
|
|
41
43
|
const timeLabels = { labelTimeJustNow, formatTimeMinutesAgo, formatTimeHoursAgo, formatTimeDaysAgo };
|
|
42
|
-
return (_jsx(Surface, { asChild: true, emitPolicyVars: false, variant: SurfaceVariant.RAISED, children: _jsxs("div", { ref: ref, className: cn("flex flex-col w-full max-w-sm border border-border rounded-lg bg-popover shadow-[var(--shadow-lg)]", className), ...props, children: [_jsxs("div", { className: "flex items-center justify-between px-card py-element border-b border-border", children: [_jsxs("div", { className: "flex items-center gap-element", children: [_jsx("h3", { className: "text-sm font-semibold text-foreground", children: labelTitle }),
|
|
44
|
+
return (_jsx(Surface, { asChild: true, emitPolicyVars: false, variant: SurfaceVariant.RAISED, children: _jsxs("div", { ref: ref, className: cn("flex flex-col w-full max-w-sm border border-border rounded-lg bg-popover shadow-[var(--shadow-lg)]", className), ...props, children: [_jsxs("div", { className: "flex items-center justify-between px-card py-element border-b border-border", children: [_jsxs("div", { className: "flex items-center gap-element", children: [_jsx("h3", { className: "text-sm font-semibold text-foreground", children: labelTitle }), sessionCount > 0 && (_jsx("span", { className: "inline-flex items-center justify-center h-5 min-w-[20px] px-1.5 text-xs font-medium bg-primary text-primary-foreground rounded-full", children: sessionCount }))] }), _jsx("div", { className: "flex items-center gap-element-sm", children: notifications.length > 0 && onClearAll && (_jsx(Button, { variant: ButtonVariants_Variant.GHOST, size: ButtonSize.XS, className: "text-muted-foreground", onClick: onClearAll, children: labelClearAll })) })] }), _jsx(ScrollArea, { className: "max-h-[24rem]", children: notifications.length === 0 ? (_jsx("div", { className: "flex items-center justify-center py-section text-sm text-muted-foreground", children: labelNoNotifications })) : (_jsx("div", { className: "flex flex-col", children: notifications.map((notification) => (_jsx(Surface, { asChild: true, emitPolicyVars: false, variant: SurfaceVariant.INSET, children: _jsxs("div", { className: cn("flex items-start gap-element px-card py-element-lg border-b border-border/50 last:border-b-0"), children: [_jsx("div", { className: "flex-shrink-0 mt-1.5", children: _jsx("div", { className: cn("w-2 h-2 rounded-full", TYPE_INDICATORS[notification.type] ?? TYPE_INDICATORS.info) }) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "flex items-start justify-between gap-element-sm", children: [_jsxs("p", { className: "text-sm leading-snug font-medium text-foreground", children: [notification.wasCelebration && _jsx("span", { className: "me-1", children: "\uD83C\uDF89" }), notification.message] }), onRemove && (_jsx("button", { type: "button", className: "flex-shrink-0 text-muted-foreground/50 hover:text-muted-foreground text-xs", onClick: () => onRemove(notification.id), "aria-label": labelDismiss, children: "\u00D7" }))] }), _jsx("p", { className: "text-xs text-muted-foreground/70 mt-0.5", children: getRelativeTime(notification.timestamp, timeLabels) }), notification.nextStep && (_jsxs(Button, { variant: ButtonVariants_Variant.LINK, size: ButtonSize.SM, className: "h-auto p-0 text-xs mt-1", onClick: () => notification.nextStep.onClick(), children: [notification.nextStep.label, " \u2192"] }))] })] }) }, notification.id))) })) })] }) }));
|
|
43
45
|
});
|
|
44
46
|
NotificationCenter.displayName = "NotificationCenter";
|
|
45
47
|
//# sourceMappingURL=notification-center.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-center.js","sourceRoot":"","sources":["../../../../../src/components/feedback/notification-center.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\"\nimport {\n NotificationCenterNotification,\n NotificationCenterProps,\n cn,\n Button,\n ButtonVariants_Variant,\n ScrollArea,\n Surface,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { ButtonSize, SurfaceVariant } from \"@wildo-ai/presets-components-models\"\n\n// ─────────────────────────────────────────────────────────────\n// Helpers\n// ─────────────────────────────────────────────────────────────\n\nfunction getRelativeTime(\n timestamp: number,\n labels: Pick<NotificationCenterProps, 'labelTimeJustNow' | 'formatTimeMinutesAgo' | 'formatTimeHoursAgo' | 'formatTimeDaysAgo'>\n): string {\n const diff = Date.now() - timestamp;\n const minutes = Math.floor(diff / 60000);\n const hours = Math.floor(diff / 3600000);\n const days = Math.floor(diff / 86400000);\n\n if (minutes < 1) return labels.labelTimeJustNow ?? 'Just now';\n if (minutes < 60) return labels.formatTimeMinutesAgo?.(minutes) ?? `${minutes}m ago`;\n if (hours < 24) return labels.formatTimeHoursAgo?.(hours) ?? `${hours}h ago`;\n return labels.formatTimeDaysAgo?.(days) ?? `${days}d ago`;\n}\n\nconst TYPE_INDICATORS: Record<string, string> = {\n success: 'bg-success',\n error: 'bg-destructive',\n warning: 'bg-warning',\n info: 'bg-info',\n};\n\n// ─────────────────────────────────────────────────────────────\n// Component\n// ─────────────────────────────────────────────────────────────\n\n/**\n * NotificationCenter — generic, resource-agnostic notification list component.\n *\n * A pure UI component that displays a list of notifications with read/unread state,\n * relative timestamps, and action buttons. Does NOT know about resources, i18n, or\n * any engine concepts — all labels are passed as props.\n *\n * For engine integration, see the notification-center wrapper in saas-frontend-lib\n * which wires NotificationContext and resolves i18n labels.\n */\nexport const NotificationCenter = React.forwardRef<HTMLDivElement, NotificationCenterProps>(\n (\n {\n notifications,\n unreadCount,\n onMarkAsRead,\n onMarkAllAsRead,\n onRemove,\n onClearAll,\n labelTitle = 'Notifications',\n labelNoNotifications = 'No notifications',\n labelMarkAllRead = 'Mark all as read',\n labelClearAll = 'Clear all',\n labelDismiss = 'Dismiss',\n labelTimeJustNow,\n formatTimeMinutesAgo,\n formatTimeHoursAgo,\n formatTimeDaysAgo,\n className,\n ...props\n },\n ref,\n ) => {\n const timeLabels = { labelTimeJustNow, formatTimeMinutesAgo, formatTimeHoursAgo, formatTimeDaysAgo };\n\n return (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.RAISED}>\n <div\n ref={ref}\n className={cn(\n \"flex flex-col w-full max-w-sm border border-border rounded-lg bg-popover shadow-[var(--shadow-lg)]\",\n className,\n )}\n {...props}\n >\n {/* Header */}\n <div className=\"flex items-center justify-between px-card py-element border-b border-border\">\n <div className=\"flex items-center gap-element\">\n <h3 className=\"text-sm font-semibold text-foreground\">{labelTitle}</h3>\n {unreadCount > 0 && (\n <span className=\"inline-flex items-center justify-center h-5 min-w-[20px] px-1.5 text-xs font-medium bg-primary text-primary-foreground rounded-full\">\n {unreadCount}\n </span>\n )}\n </div>\n <div className=\"flex items-center gap-element-sm\">\n {unreadCount > 0 && onMarkAllAsRead && (\n <Button variant={ButtonVariants_Variant.GHOST} size={ButtonSize.XS} onClick={onMarkAllAsRead}>\n {labelMarkAllRead}\n </Button>\n )}\n {notifications.length > 0 && onClearAll && (\n <Button variant={ButtonVariants_Variant.GHOST} size={ButtonSize.XS} className=\"text-muted-foreground\" onClick={onClearAll}>\n {labelClearAll}\n </Button>\n )}\n </div>\n </div>\n\n {/* Notification List */}\n <ScrollArea className=\"max-h-[24rem]\">\n {notifications.length === 0 ? (\n <div className=\"flex items-center justify-center py-section text-sm text-muted-foreground\">\n {labelNoNotifications}\n </div>\n ) : (\n <div className=\"flex flex-col\">\n {notifications.map((notification) => (\n <Surface key={notification.id} asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n <div\n className={cn(\n \"flex items-start gap-element px-card py-element-lg border-b border-border/50 last:border-b-0 transition-colors\",\n !notification.isRead && \"bg-accent/30\",\n \"hover:bg-accent/50 cursor-pointer\",\n )}\n onClick={() => onMarkAsRead?.(notification.id)}\n >\n {/* Type indicator dot */}\n <div className=\"flex-shrink-0 mt-1.5\">\n <div className={cn(\n \"w-2 h-2 rounded-full\",\n TYPE_INDICATORS[notification.type] ?? TYPE_INDICATORS.info,\n notification.isRead && \"opacity-40\",\n )} />\n </div>\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-start justify-between gap-element-sm\">\n <p className={cn(\n \"text-sm leading-snug\",\n !notification.isRead ? \"font-medium text-foreground\" : \"text-muted-foreground\",\n )}>\n {notification.wasCelebration && <span className=\"me-1\">🎉</span>}\n {notification.message}\n </p>\n {onRemove && (\n <button\n type=\"button\"\n className=\"flex-shrink-0 text-muted-foreground/50 hover:text-muted-foreground text-xs\"\n onClick={(e) => { e.stopPropagation(); onRemove(notification.id); }}\n aria-label={labelDismiss}\n >\n ×\n </button>\n )}\n </div>\n <p className=\"text-xs text-muted-foreground/70 mt-0.5\">\n {getRelativeTime(notification.timestamp, timeLabels)}\n </p>\n {notification.nextStep && (\n <Button\n variant={ButtonVariants_Variant.LINK}\n size={ButtonSize.SM}\n className=\"h-auto p-0 text-xs mt-1\"\n onClick={(e) => { e.stopPropagation(); notification.nextStep!.onClick(); }}\n >\n {notification.nextStep.label} →\n </Button>\n )}\n </div>\n </div>\n </Surface>\n ))}\n </div>\n )}\n </ScrollArea>\n </div>\n </Surface>\n );\n },\n);\n\nNotificationCenter.displayName = \"NotificationCenter\";\n"]}
|
|
1
|
+
{"version":3,"file":"notification-center.js","sourceRoot":"","sources":["../../../../src/components/feedback/notification-center.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from \"react\"\nimport {\n NotificationCenterNotification,\n NotificationCenterProps,\n cn,\n Button,\n ButtonVariants_Variant,\n ScrollArea,\n Surface,\n} from '@wildo-ai/saas-frontend-lib';\n\nimport { ButtonSize, SurfaceVariant } from \"@wildo-ai/presets-components-models\"\n\n// ─────────────────────────────────────────────────────────────\n// Helpers\n// ─────────────────────────────────────────────────────────────\n\nfunction getRelativeTime(\n timestamp: number,\n labels: Pick<NotificationCenterProps, 'labelTimeJustNow' | 'formatTimeMinutesAgo' | 'formatTimeHoursAgo' | 'formatTimeDaysAgo'>\n): string {\n const diff = Date.now() - timestamp;\n const minutes = Math.floor(diff / 60000);\n const hours = Math.floor(diff / 3600000);\n const days = Math.floor(diff / 86400000);\n\n if (minutes < 1) return labels.labelTimeJustNow ?? 'Just now';\n if (minutes < 60) return labels.formatTimeMinutesAgo?.(minutes) ?? `${minutes}m ago`;\n if (hours < 24) return labels.formatTimeHoursAgo?.(hours) ?? `${hours}h ago`;\n return labels.formatTimeDaysAgo?.(days) ?? `${days}d ago`;\n}\n\nconst TYPE_INDICATORS: Record<string, string> = {\n success: 'bg-success',\n error: 'bg-destructive',\n warning: 'bg-warning',\n info: 'bg-info',\n};\n\n// ─────────────────────────────────────────────────────────────\n// Component\n// ─────────────────────────────────────────────────────────────\n\n/**\n * NotificationCenter — generic, resource-agnostic SESSION-FEED component.\n *\n * A pure UI component that displays what has arrived since the page loaded, with relative timestamps\n * and per-item actions. Read/unread state was removed on 2026-09-08 (#412): the store behind it has\n * no persistence, so \"read\" was a property that died with the page and marking something read meant\n * nothing. Does NOT know about resources, i18n, or\n * any engine concepts — all labels are passed as props.\n *\n * For engine integration, see the notification-center wrapper in saas-frontend-lib\n * which wires NotificationContext and resolves i18n labels.\n */\nexport const NotificationCenter = React.forwardRef<HTMLDivElement, NotificationCenterProps>(\n (\n {\n notifications,\n sessionCount,\n onRemove,\n onClearAll,\n labelTitle = 'Notifications',\n labelNoNotifications = 'Nothing since this page loaded',\n labelClearAll = 'Clear all',\n labelDismiss = 'Dismiss',\n labelTimeJustNow,\n formatTimeMinutesAgo,\n formatTimeHoursAgo,\n formatTimeDaysAgo,\n className,\n ...props\n },\n ref,\n ) => {\n const timeLabels = { labelTimeJustNow, formatTimeMinutesAgo, formatTimeHoursAgo, formatTimeDaysAgo };\n\n return (\n <Surface asChild emitPolicyVars={false} variant={SurfaceVariant.RAISED}>\n <div\n ref={ref}\n className={cn(\n \"flex flex-col w-full max-w-sm border border-border rounded-lg bg-popover shadow-[var(--shadow-lg)]\",\n className,\n )}\n {...props}\n >\n {/* Header */}\n <div className=\"flex items-center justify-between px-card py-element border-b border-border\">\n <div className=\"flex items-center gap-element\">\n <h3 className=\"text-sm font-semibold text-foreground\">{labelTitle}</h3>\n {/* Counts what arrived this session — there is no unread state to count. */}\n {sessionCount > 0 && (\n <span className=\"inline-flex items-center justify-center h-5 min-w-[20px] px-1.5 text-xs font-medium bg-primary text-primary-foreground rounded-full\">\n {sessionCount}\n </span>\n )}\n </div>\n <div className=\"flex items-center gap-element-sm\">\n {notifications.length > 0 && onClearAll && (\n <Button variant={ButtonVariants_Variant.GHOST} size={ButtonSize.XS} className=\"text-muted-foreground\" onClick={onClearAll}>\n {labelClearAll}\n </Button>\n )}\n </div>\n </div>\n\n {/* Notification List */}\n <ScrollArea className=\"max-h-[24rem]\">\n {notifications.length === 0 ? (\n <div className=\"flex items-center justify-center py-section text-sm text-muted-foreground\">\n {labelNoNotifications}\n </div>\n ) : (\n <div className=\"flex flex-col\">\n {notifications.map((notification) => (\n <Surface key={notification.id} asChild emitPolicyVars={false} variant={SurfaceVariant.INSET}>\n {/*\n * Not clickable, and not styled as if it were. The row's only click action was\n * marking it read; with that gone, `cursor-pointer` and a hover highlight would\n * advertise an interaction that does nothing. Dismiss and the next-step link are\n * the row's real actions.\n */}\n <div\n className={cn(\n \"flex items-start gap-element px-card py-element-lg border-b border-border/50 last:border-b-0\",\n )}\n >\n {/* Type indicator dot */}\n <div className=\"flex-shrink-0 mt-1.5\">\n <div className={cn(\n \"w-2 h-2 rounded-full\",\n TYPE_INDICATORS[notification.type] ?? TYPE_INDICATORS.info,\n )} />\n </div>\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-start justify-between gap-element-sm\">\n <p className=\"text-sm leading-snug font-medium text-foreground\">\n {notification.wasCelebration && <span className=\"me-1\">🎉</span>}\n {notification.message}\n </p>\n {onRemove && (\n <button\n type=\"button\"\n className=\"flex-shrink-0 text-muted-foreground/50 hover:text-muted-foreground text-xs\"\n onClick={() => onRemove(notification.id)}\n aria-label={labelDismiss}\n >\n ×\n </button>\n )}\n </div>\n <p className=\"text-xs text-muted-foreground/70 mt-0.5\">\n {getRelativeTime(notification.timestamp, timeLabels)}\n </p>\n {notification.nextStep && (\n <Button\n variant={ButtonVariants_Variant.LINK}\n size={ButtonSize.SM}\n className=\"h-auto p-0 text-xs mt-1\"\n onClick={() => notification.nextStep!.onClick()}\n >\n {notification.nextStep.label} →\n </Button>\n )}\n </div>\n </div>\n </Surface>\n ))}\n </div>\n )}\n </ScrollArea>\n </div>\n </Surface>\n );\n },\n);\n\nNotificationCenter.displayName = \"NotificationCenter\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations-confirm-critical.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"operations-confirm-critical.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/operations-confirm-critical.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAA;AAejF,iBAAS,yBAAyB,CAAC,EACjC,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,KAAK,EACL,wBAAgC,EAChC,kBAAuB,EACvB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,8BAA8B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAiF3D;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations-confirm-critical.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"operations-confirm-critical.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/operations-confirm-critical.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,qCAAqC,CAAC;AAM7C,eAAO,MAAM,uCAAuC,EAAE,mBAAmB,EA2BxE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/progress.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAA;AAK7D,QAAA,MAAM,QAAQ,2JAmCZ,CAAA;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"progress.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/progress.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAWzF;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"skeleton.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/skeleton.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/toast.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC5B,OAAO,EAAqB,YAAY,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAGjE,QAAA,MAAM,OAAO,GAAI,cAAc,YAAY,KAAG,KAAK,CAAC,GAAG,CAAC,OA0BvD,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"toast.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/toast.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autosave-indicator.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"autosave-indicator.d.ts","sourceRoot":"","sources":["../../../../src/components/form/autosave-indicator.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAiDzE,iBAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,YAAY,EACZ,OAAO,EACP,SAAS,EACT,IAAW,EACX,QAAmB,GACpB,EAAE,sBAAsB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAwEnD;AAID,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autosave-indicator.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"autosave-indicator.labels.d.ts","sourceRoot":"","sources":["../../../../src/components/form/autosave-indicator.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,+BAA+B,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/chromes/field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAGL,KAAK,EAGL,KAAK,UAAU,EAChB,MAAM,6BAA6B,CAAC;AAsCrC,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,WAAgD,EAChD,GAAG,KAAK,EACT,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUhC;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAW7F;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAaxD;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAW3F;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmB/F;AAED,iBAAS,cAAc,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAsBpB;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,MAAM,EACN,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAA;CACjD,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA0CpB;AAED,OAAO,EACL,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,GACX,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"field.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/chromes/field.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM/H,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,EAAO,CAAC;AAG7D,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,EAAO,CAAC;AAGpE,eAAO,MAAM,8BAA8B,EAAE,mBAAmB,EAAO,CAAC;AAGxE,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,EAAO,CAAC;AAGlE,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,EAAO,CAAC;AAGlE,eAAO,MAAM,4BAA4B,EAAE,mBAAmB,EAAO,CAAC;AAGtE,eAAO,MAAM,wBAAwB,EAAE,mBAAmB,EAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-primitive.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"form-primitive.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/chromes/form-primitive.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAEL,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAyC,YAAY,EAA4B,MAAM,6BAA6B,CAAA;AAG3H,QAAA,MAAM,QAAQ,EAAE,OAAO,YAA2B,CAAA;AAElD,QAAA,MAAM,kBAAkB,GACtB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,KAAK,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EAC/D,cAEC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,KAAG,KAAK,CAAC,GAAG,CAAC,OAMnD,CAAA;AAED,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAYzF;AAED,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAYtE;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgBvF;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAY9F;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAmBjG;AAED,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,WAAW,EACX,kBAAkB,GACnB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-primitive.labels.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"form-primitive.labels.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/chromes/form-primitive.labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,mBAAmB,EAA2B,MAAM,qCAAqC,CAAC;AAM1I,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,EAAO,CAAC;AAG5D,eAAO,MAAM,yBAAyB,EAAE,mBAAmB,EAAO,CAAC;AAGnE,eAAO,MAAM,6BAA6B,EAAE,mBAAmB,EAAO,CAAC;AAGvE,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,EA0DxD,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,mBAAmB,EAAO,CAAC;AAGhE,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,EAAO,CAAC;AAGjE,eAAO,MAAM,yBAAyB,EAAE,mBAAmB,EAgI1D,CAAC"}
|