@wildo-ai/presets-components 1.0.1
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/components/actions/action-bar.d.ts +8 -0
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -0
- package/dist/esm/components/actions/action-bar.js +125 -0
- package/dist/esm/components/actions/action-bar.js.map +1 -0
- package/dist/esm/components/actions/action-button.d.ts +8 -0
- package/dist/esm/components/actions/action-button.d.ts.map +1 -0
- package/dist/esm/components/actions/action-button.js +36 -0
- package/dist/esm/components/actions/action-button.js.map +1 -0
- package/dist/esm/components/actions/button-group.d.ts +7 -0
- package/dist/esm/components/actions/button-group.d.ts.map +1 -0
- package/dist/esm/components/actions/button-group.js +34 -0
- package/dist/esm/components/actions/button-group.js.map +1 -0
- package/dist/esm/components/actions/button.d.ts +5 -0
- package/dist/esm/components/actions/button.d.ts.map +1 -0
- package/dist/esm/components/actions/button.js +38 -0
- package/dist/esm/components/actions/button.js.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.d.ts +3 -0
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.js +136 -0
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.js.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/artifact.d.ts +13 -0
- package/dist/esm/components/ai-elements/artifacts/artifact.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/artifact.js +52 -0
- package/dist/esm/components/ai-elements/artifacts/artifact.js.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/code-block.d.ts +17 -0
- package/dist/esm/components/ai-elements/artifacts/code-block.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/code-block.js +114 -0
- package/dist/esm/components/ai-elements/artifacts/code-block.js.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/image.d.ts +4 -0
- package/dist/esm/components/ai-elements/artifacts/image.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/image.js +4 -0
- package/dist/esm/components/ai-elements/artifacts/image.js.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/web-preview.d.ts +31 -0
- package/dist/esm/components/ai-elements/artifacts/web-preview.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/web-preview.js +93 -0
- package/dist/esm/components/ai-elements/artifacts/web-preview.js.map +1 -0
- package/dist/esm/components/ai-elements/chat/conversation.d.ts +3 -0
- package/dist/esm/components/ai-elements/chat/conversation.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/chat/conversation.js +32 -0
- package/dist/esm/components/ai-elements/chat/conversation.js.map +1 -0
- package/dist/esm/components/ai-elements/chat/message.d.ts +3 -0
- package/dist/esm/components/ai-elements/chat/message.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/chat/message.js +138 -0
- package/dist/esm/components/ai-elements/chat/message.js.map +1 -0
- package/dist/esm/components/ai-elements/chat/prompt-input.d.ts +144 -0
- package/dist/esm/components/ai-elements/chat/prompt-input.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/chat/prompt-input.js +622 -0
- package/dist/esm/components/ai-elements/chat/prompt-input.js.map +1 -0
- package/dist/esm/components/ai-elements/chat/sources.d.ts +11 -0
- package/dist/esm/components/ai-elements/chat/sources.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/chat/sources.js +23 -0
- package/dist/esm/components/ai-elements/chat/sources.js.map +1 -0
- package/dist/esm/components/ai-elements/chat/suggestion.d.ts +5 -0
- package/dist/esm/components/ai-elements/chat/suggestion.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/chat/suggestion.js +12 -0
- package/dist/esm/components/ai-elements/chat/suggestion.js.map +1 -0
- package/dist/esm/components/ai-elements/decision/approval.d.ts +51 -0
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/decision/approval.js +95 -0
- package/dist/esm/components/ai-elements/decision/approval.js.map +1 -0
- package/dist/esm/components/ai-elements/decision/decision-request.d.ts +31 -0
- package/dist/esm/components/ai-elements/decision/decision-request.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/decision/decision-request.js +135 -0
- package/dist/esm/components/ai-elements/decision/decision-request.js.map +1 -0
- package/dist/esm/components/ai-elements/execution/confirmation.d.ts +10 -0
- package/dist/esm/components/ai-elements/execution/confirmation.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/execution/confirmation.js +59 -0
- package/dist/esm/components/ai-elements/execution/confirmation.js.map +1 -0
- package/dist/esm/components/ai-elements/execution/queue.d.ts +3 -0
- package/dist/esm/components/ai-elements/execution/queue.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/execution/queue.js +90 -0
- package/dist/esm/components/ai-elements/execution/queue.js.map +1 -0
- package/dist/esm/components/ai-elements/execution/task.d.ts +3 -0
- package/dist/esm/components/ai-elements/execution/task.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/execution/task.js +25 -0
- package/dist/esm/components/ai-elements/execution/task.js.map +1 -0
- package/dist/esm/components/ai-elements/execution/tool.d.ts +3 -0
- package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/execution/tool.js +87 -0
- package/dist/esm/components/ai-elements/execution/tool.js.map +1 -0
- package/dist/esm/components/ai-elements/graph/canvas.d.ts +10 -0
- package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/graph/canvas.js +5 -0
- package/dist/esm/components/ai-elements/graph/canvas.js.map +1 -0
- package/dist/esm/components/ai-elements/graph/connection.d.ts +3 -0
- package/dist/esm/components/ai-elements/graph/connection.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/graph/connection.js +4 -0
- package/dist/esm/components/ai-elements/graph/connection.js.map +1 -0
- package/dist/esm/components/ai-elements/graph/controls.d.ts +6 -0
- package/dist/esm/components/ai-elements/graph/controls.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/graph/controls.js +11 -0
- package/dist/esm/components/ai-elements/graph/controls.js.map +1 -0
- package/dist/esm/components/ai-elements/graph/edge.d.ts +13 -0
- package/dist/esm/components/ai-elements/graph/edge.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/graph/edge.js +88 -0
- package/dist/esm/components/ai-elements/graph/edge.js.map +1 -0
- package/dist/esm/components/ai-elements/graph/node.d.ts +23 -0
- package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/graph/node.js +11 -0
- package/dist/esm/components/ai-elements/graph/node.js.map +1 -0
- package/dist/esm/components/ai-elements/graph/panel.d.ts +7 -0
- package/dist/esm/components/ai-elements/graph/panel.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/graph/panel.js +14 -0
- package/dist/esm/components/ai-elements/graph/panel.js.map +1 -0
- package/dist/esm/components/ai-elements/graph/toolbar.d.ts +7 -0
- package/dist/esm/components/ai-elements/graph/toolbar.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/graph/toolbar.js +5 -0
- package/dist/esm/components/ai-elements/graph/toolbar.js.map +1 -0
- package/dist/esm/components/ai-elements/meta/agent.d.ts +100 -0
- package/dist/esm/components/ai-elements/meta/agent.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/meta/agent.js +111 -0
- package/dist/esm/components/ai-elements/meta/agent.js.map +1 -0
- package/dist/esm/components/ai-elements/meta/context.d.ts +33 -0
- package/dist/esm/components/ai-elements/meta/context.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/meta/context.js +195 -0
- package/dist/esm/components/ai-elements/meta/context.js.map +1 -0
- package/dist/esm/components/ai-elements/meta/model-selector.d.ts +36 -0
- package/dist/esm/components/ai-elements/meta/model-selector.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/meta/model-selector.js +22 -0
- package/dist/esm/components/ai-elements/meta/model-selector.js.map +1 -0
- package/dist/esm/components/ai-elements/meta/open-in-chat.d.ts +15 -0
- package/dist/esm/components/ai-elements/meta/open-in-chat.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/meta/open-in-chat.js +111 -0
- package/dist/esm/components/ai-elements/meta/open-in-chat.js.map +1 -0
- package/dist/esm/components/ai-elements/shared/loader.d.ts +5 -0
- package/dist/esm/components/ai-elements/shared/loader.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/shared/loader.js +5 -0
- package/dist/esm/components/ai-elements/shared/loader.js.map +1 -0
- package/dist/esm/components/ai-elements/shared/shimmer.d.ts +11 -0
- package/dist/esm/components/ai-elements/shared/shimmer.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/shared/shimmer.js +19 -0
- package/dist/esm/components/ai-elements/shared/shimmer.js.map +1 -0
- package/dist/esm/components/ai-elements/stream/execution-stream.d.ts +24 -0
- package/dist/esm/components/ai-elements/stream/execution-stream.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/stream/execution-stream.js +41 -0
- package/dist/esm/components/ai-elements/stream/execution-stream.js.map +1 -0
- package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts +29 -0
- package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/trace/chain-of-thought.js +69 -0
- package/dist/esm/components/ai-elements/trace/chain-of-thought.js.map +1 -0
- package/dist/esm/components/ai-elements/trace/checkpoint.d.ts +14 -0
- package/dist/esm/components/ai-elements/trace/checkpoint.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/trace/checkpoint.js +21 -0
- package/dist/esm/components/ai-elements/trace/checkpoint.js.map +1 -0
- package/dist/esm/components/ai-elements/trace/inline-citation.d.ts +38 -0
- package/dist/esm/components/ai-elements/trace/inline-citation.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/trace/inline-citation.js +81 -0
- package/dist/esm/components/ai-elements/trace/inline-citation.js.map +1 -0
- package/dist/esm/components/ai-elements/trace/plan.d.ts +19 -0
- package/dist/esm/components/ai-elements/trace/plan.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/trace/plan.js +42 -0
- package/dist/esm/components/ai-elements/trace/plan.js.map +1 -0
- package/dist/esm/components/ai-elements/trace/reasoning.d.ts +16 -0
- package/dist/esm/components/ai-elements/trace/reasoning.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/trace/reasoning.js +89 -0
- package/dist/esm/components/ai-elements/trace/reasoning.js.map +1 -0
- package/dist/esm/components/app/app-layout-main-container.d.ts +4 -0
- package/dist/esm/components/app/app-layout-main-container.d.ts.map +1 -0
- package/dist/esm/components/app/app-layout-main-container.js +22 -0
- package/dist/esm/components/app/app-layout-main-container.js.map +1 -0
- package/dist/esm/components/app/public-layout-main-container.d.ts +4 -0
- package/dist/esm/components/app/public-layout-main-container.d.ts.map +1 -0
- package/dist/esm/components/app/public-layout-main-container.js +10 -0
- package/dist/esm/components/app/public-layout-main-container.js.map +1 -0
- package/dist/esm/components/billing/billing-format.utils.d.ts +21 -0
- package/dist/esm/components/billing/billing-format.utils.d.ts.map +1 -0
- package/dist/esm/components/billing/billing-format.utils.js +35 -0
- package/dist/esm/components/billing/billing-format.utils.js.map +1 -0
- package/dist/esm/components/billing/billing-invoice-history.d.ts +13 -0
- package/dist/esm/components/billing/billing-invoice-history.d.ts.map +1 -0
- package/dist/esm/components/billing/billing-invoice-history.js +55 -0
- package/dist/esm/components/billing/billing-invoice-history.js.map +1 -0
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts +13 -0
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +1 -0
- package/dist/esm/components/billing/billing-plan-change-preview.js +44 -0
- package/dist/esm/components/billing/billing-plan-change-preview.js.map +1 -0
- package/dist/esm/components/billing/billing-portal-link.d.ts +10 -0
- package/dist/esm/components/billing/billing-portal-link.d.ts.map +1 -0
- package/dist/esm/components/billing/billing-portal-link.js +35 -0
- package/dist/esm/components/billing/billing-portal-link.js.map +1 -0
- package/dist/esm/components/billing/billing-pricing-table.d.ts +16 -0
- package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -0
- package/dist/esm/components/billing/billing-pricing-table.js +74 -0
- package/dist/esm/components/billing/billing-pricing-table.js.map +1 -0
- package/dist/esm/components/billing/billing-promotion-code-input.d.ts +10 -0
- package/dist/esm/components/billing/billing-promotion-code-input.d.ts.map +1 -0
- package/dist/esm/components/billing/billing-promotion-code-input.js +68 -0
- package/dist/esm/components/billing/billing-promotion-code-input.js.map +1 -0
- package/dist/esm/components/billing/billing-subscription-status.d.ts +13 -0
- package/dist/esm/components/billing/billing-subscription-status.d.ts.map +1 -0
- package/dist/esm/components/billing/billing-subscription-status.js +58 -0
- package/dist/esm/components/billing/billing-subscription-status.js.map +1 -0
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts +13 -0
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -0
- package/dist/esm/components/billing/billing-usage-dashboard.js +49 -0
- package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -0
- package/dist/esm/components/data-display/avatar.d.ts +3 -0
- package/dist/esm/components/data-display/avatar.d.ts.map +1 -0
- package/dist/esm/components/data-display/avatar.js +24 -0
- package/dist/esm/components/data-display/avatar.js.map +1 -0
- package/dist/esm/components/data-display/badge.d.ts +5 -0
- package/dist/esm/components/data-display/badge.d.ts.map +1 -0
- package/dist/esm/components/data-display/badge.js +24 -0
- package/dist/esm/components/data-display/badge.js.map +1 -0
- package/dist/esm/components/data-display/description-list.d.ts +5 -0
- package/dist/esm/components/data-display/description-list.d.ts.map +1 -0
- package/dist/esm/components/data-display/description-list.js +36 -0
- package/dist/esm/components/data-display/description-list.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.d.ts +17 -0
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js +93 -0
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-boolean.d.ts +19 -0
- package/dist/esm/components/data-display/formatters/display-field-boolean.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-boolean.js +53 -0
- package/dist/esm/components/data-display/formatters/display-field-boolean.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-code.d.ts +22 -0
- package/dist/esm/components/data-display/formatters/display-field-code.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-code.js +90 -0
- package/dist/esm/components/data-display/formatters/display-field-code.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-date.d.ts +13 -0
- package/dist/esm/components/data-display/formatters/display-field-date.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-date.js +16 -0
- package/dist/esm/components/data-display/formatters/display-field-date.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts +13 -0
- package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-datetime.js +16 -0
- package/dist/esm/components/data-display/formatters/display-field-datetime.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-duration.d.ts +16 -0
- package/dist/esm/components/data-display/formatters/display-field-duration.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-duration.js +36 -0
- package/dist/esm/components/data-display/formatters/display-field-duration.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-enum.d.ts +16 -0
- package/dist/esm/components/data-display/formatters/display-field-enum.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-enum.js +80 -0
- package/dist/esm/components/data-display/formatters/display-field-enum.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file-audio.d.ts +14 -0
- package/dist/esm/components/data-display/formatters/display-field-file-audio.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file-audio.js +33 -0
- package/dist/esm/components/data-display/formatters/display-field-file-audio.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts +14 -0
- package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file-document.js +57 -0
- package/dist/esm/components/data-display/formatters/display-field-file-document.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.d.ts +17 -0
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.js +87 -0
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file-image.d.ts +15 -0
- package/dist/esm/components/data-display/formatters/display-field-file-image.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file-image.js +48 -0
- package/dist/esm/components/data-display/formatters/display-field-file-image.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file-video.d.ts +14 -0
- package/dist/esm/components/data-display/formatters/display-field-file-video.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file-video.js +34 -0
- package/dist/esm/components/data-display/formatters/display-field-file-video.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file.d.ts +33 -0
- package/dist/esm/components/data-display/formatters/display-field-file.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file.js +240 -0
- package/dist/esm/components/data-display/formatters/display-field-file.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-format.utils.d.ts +43 -0
- package/dist/esm/components/data-display/formatters/display-field-format.utils.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-format.utils.js +113 -0
- package/dist/esm/components/data-display/formatters/display-field-format.utils.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-money.d.ts +19 -0
- package/dist/esm/components/data-display/formatters/display-field-money.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-money.js +88 -0
- package/dist/esm/components/data-display/formatters/display-field-money.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-number.d.ts +16 -0
- package/dist/esm/components/data-display/formatters/display-field-number.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-number.js +87 -0
- package/dist/esm/components/data-display/formatters/display-field-number.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-phone.d.ts +15 -0
- package/dist/esm/components/data-display/formatters/display-field-phone.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-phone.js +31 -0
- package/dist/esm/components/data-display/formatters/display-field-phone.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.d.ts +16 -0
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.js +117 -0
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-date.d.ts +13 -0
- package/dist/esm/components/data-display/formatters/display-field-range-date.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-date.js +35 -0
- package/dist/esm/components/data-display/formatters/display-field-range-date.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.d.ts +13 -0
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.js +35 -0
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-money.d.ts +16 -0
- package/dist/esm/components/data-display/formatters/display-field-range-money.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-money.js +83 -0
- package/dist/esm/components/data-display/formatters/display-field-range-money.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-number.d.ts +13 -0
- package/dist/esm/components/data-display/formatters/display-field-range-number.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-number.js +35 -0
- package/dist/esm/components/data-display/formatters/display-field-range-number.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-time.d.ts +13 -0
- package/dist/esm/components/data-display/formatters/display-field-range-time.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-range-time.js +38 -0
- package/dist/esm/components/data-display/formatters/display-field-range-time.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-string.d.ts +16 -0
- package/dist/esm/components/data-display/formatters/display-field-string.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-string.js +86 -0
- package/dist/esm/components/data-display/formatters/display-field-string.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-time.d.ts +13 -0
- package/dist/esm/components/data-display/formatters/display-field-time.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-time.js +20 -0
- package/dist/esm/components/data-display/formatters/display-field-time.js.map +1 -0
- package/dist/esm/components/feedback/celebration-overlay.d.ts +20 -0
- package/dist/esm/components/feedback/celebration-overlay.d.ts.map +1 -0
- package/dist/esm/components/feedback/celebration-overlay.js +46 -0
- package/dist/esm/components/feedback/celebration-overlay.js.map +1 -0
- package/dist/esm/components/feedback/danger-zone.d.ts +4 -0
- package/dist/esm/components/feedback/danger-zone.d.ts.map +1 -0
- package/dist/esm/components/feedback/danger-zone.js +16 -0
- package/dist/esm/components/feedback/danger-zone.js.map +1 -0
- package/dist/esm/components/feedback/empty-state.d.ts +14 -0
- package/dist/esm/components/feedback/empty-state.d.ts.map +1 -0
- package/dist/esm/components/feedback/empty-state.js +24 -0
- package/dist/esm/components/feedback/empty-state.js.map +1 -0
- package/dist/esm/components/feedback/error-display.d.ts +5 -0
- package/dist/esm/components/feedback/error-display.d.ts.map +1 -0
- package/dist/esm/components/feedback/error-display.js +38 -0
- package/dist/esm/components/feedback/error-display.js.map +1 -0
- package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts +13 -0
- package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -0
- package/dist/esm/components/feedback/features/feature-limit-indicator.js +19 -0
- package/dist/esm/components/feedback/features/feature-limit-indicator.js.map +1 -0
- package/dist/esm/components/feedback/features/feature-lock-badge.d.ts +10 -0
- package/dist/esm/components/feedback/features/feature-lock-badge.d.ts.map +1 -0
- package/dist/esm/components/feedback/features/feature-lock-badge.js +29 -0
- package/dist/esm/components/feedback/features/feature-lock-badge.js.map +1 -0
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.d.ts +10 -0
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.d.ts.map +1 -0
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.js +6 -0
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.js.map +1 -0
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts +12 -0
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts.map +1 -0
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.js +45 -0
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.js.map +1 -0
- package/dist/esm/components/feedback/loading-overlay.d.ts +13 -0
- package/dist/esm/components/feedback/loading-overlay.d.ts.map +1 -0
- package/dist/esm/components/feedback/loading-overlay.js +19 -0
- package/dist/esm/components/feedback/loading-overlay.js.map +1 -0
- package/dist/esm/components/feedback/loading-spinner.d.ts +11 -0
- package/dist/esm/components/feedback/loading-spinner.d.ts.map +1 -0
- package/dist/esm/components/feedback/loading-spinner.js +17 -0
- package/dist/esm/components/feedback/loading-spinner.js.map +1 -0
- package/dist/esm/components/feedback/notification-center.d.ts +14 -0
- package/dist/esm/components/feedback/notification-center.d.ts.map +1 -0
- package/dist/esm/components/feedback/notification-center.js +45 -0
- package/dist/esm/components/feedback/notification-center.js.map +1 -0
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts +5 -0
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -0
- package/dist/esm/components/feedback/operations-confirm-critical.js +23 -0
- package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -0
- package/dist/esm/components/feedback/progress.d.ts +5 -0
- package/dist/esm/components/feedback/progress.d.ts.map +1 -0
- package/dist/esm/components/feedback/progress.js +22 -0
- package/dist/esm/components/feedback/progress.js.map +1 -0
- package/dist/esm/components/feedback/skeleton.d.ts +4 -0
- package/dist/esm/components/feedback/skeleton.d.ts.map +1 -0
- package/dist/esm/components/feedback/skeleton.js +10 -0
- package/dist/esm/components/feedback/skeleton.js.map +1 -0
- package/dist/esm/components/feedback/toast.d.ts +5 -0
- package/dist/esm/components/feedback/toast.d.ts.map +1 -0
- package/dist/esm/components/feedback/toast.js +12 -0
- package/dist/esm/components/feedback/toast.js.map +1 -0
- package/dist/esm/components/form/autosave-indicator.d.ts +15 -0
- package/dist/esm/components/form/autosave-indicator.d.ts.map +1 -0
- package/dist/esm/components/form/autosave-indicator.js +43 -0
- package/dist/esm/components/form/autosave-indicator.js.map +1 -0
- package/dist/esm/components/form/chromes/field.d.ts +23 -0
- package/dist/esm/components/form/chromes/field.d.ts.map +1 -0
- package/dist/esm/components/form/chromes/field.js +84 -0
- package/dist/esm/components/form/chromes/field.js.map +1 -0
- package/dist/esm/components/form/chromes/form-primitive.d.ts +14 -0
- package/dist/esm/components/form/chromes/form-primitive.d.ts.map +1 -0
- package/dist/esm/components/form/chromes/form-primitive.js +38 -0
- package/dist/esm/components/form/chromes/form-primitive.js.map +1 -0
- package/dist/esm/components/form/combobox.d.ts +6 -0
- package/dist/esm/components/form/combobox.d.ts.map +1 -0
- package/dist/esm/components/form/combobox.js +138 -0
- package/dist/esm/components/form/combobox.js.map +1 -0
- package/dist/esm/components/form/controls/boolean/checkbox.d.ts +3 -0
- package/dist/esm/components/form/controls/boolean/checkbox.d.ts.map +1 -0
- package/dist/esm/components/form/controls/boolean/checkbox.js +49 -0
- package/dist/esm/components/form/controls/boolean/checkbox.js.map +1 -0
- package/dist/esm/components/form/controls/boolean/switch.d.ts +3 -0
- package/dist/esm/components/form/controls/boolean/switch.d.ts.map +1 -0
- package/dist/esm/components/form/controls/boolean/switch.js +56 -0
- package/dist/esm/components/form/controls/boolean/switch.js.map +1 -0
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.d.ts +5 -0
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.d.ts.map +1 -0
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.js +63 -0
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.js.map +1 -0
- package/dist/esm/components/form/controls/boolean/toggle.d.ts +5 -0
- package/dist/esm/components/form/controls/boolean/toggle.d.ts.map +1 -0
- package/dist/esm/components/form/controls/boolean/toggle.js +41 -0
- package/dist/esm/components/form/controls/boolean/toggle.js.map +1 -0
- package/dist/esm/components/form/controls/date-time/calendar.d.ts +6 -0
- package/dist/esm/components/form/controls/date-time/calendar.d.ts.map +1 -0
- package/dist/esm/components/form/controls/date-time/calendar.js +129 -0
- package/dist/esm/components/form/controls/date-time/calendar.js.map +1 -0
- package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts +11 -0
- package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -0
- package/dist/esm/components/form/controls/date-time/date-range-picker.js +89 -0
- package/dist/esm/components/form/controls/date-time/date-range-picker.js.map +1 -0
- package/dist/esm/components/form/controls/date-time/datepicker.d.ts +5 -0
- package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -0
- package/dist/esm/components/form/controls/date-time/datepicker.js +62 -0
- package/dist/esm/components/form/controls/date-time/datepicker.js.map +1 -0
- package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts +11 -0
- package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -0
- package/dist/esm/components/form/controls/date-time/datetime-picker.js +161 -0
- package/dist/esm/components/form/controls/date-time/datetime-picker.js.map +1 -0
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts +11 -0
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -0
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.js +200 -0
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.js.map +1 -0
- package/dist/esm/components/form/controls/date-time/time-picker.d.ts +11 -0
- package/dist/esm/components/form/controls/date-time/time-picker.d.ts.map +1 -0
- package/dist/esm/components/form/controls/date-time/time-picker.js +169 -0
- package/dist/esm/components/form/controls/date-time/time-picker.js.map +1 -0
- package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts +11 -0
- package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -0
- package/dist/esm/components/form/controls/date-time/time-range-picker.js +232 -0
- package/dist/esm/components/form/controls/date-time/time-range-picker.js.map +1 -0
- package/dist/esm/components/form/controls/enum/radio.d.ts +7 -0
- package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -0
- package/dist/esm/components/form/controls/enum/radio.js +65 -0
- package/dist/esm/components/form/controls/enum/radio.js.map +1 -0
- package/dist/esm/components/form/controls/enum/select-multiple.d.ts +7 -0
- package/dist/esm/components/form/controls/enum/select-multiple.d.ts.map +1 -0
- package/dist/esm/components/form/controls/enum/select-multiple.js +59 -0
- package/dist/esm/components/form/controls/enum/select-multiple.js.map +1 -0
- package/dist/esm/components/form/controls/enum/select.d.ts +27 -0
- package/dist/esm/components/form/controls/enum/select.d.ts.map +1 -0
- package/dist/esm/components/form/controls/enum/select.js +98 -0
- package/dist/esm/components/form/controls/enum/select.js.map +1 -0
- package/dist/esm/components/form/controls/enum/toggle-group.d.ts +3 -0
- package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -0
- package/dist/esm/components/form/controls/enum/toggle-group.js +41 -0
- package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -0
- package/dist/esm/components/form/controls/file/file-upload.d.ts +52 -0
- package/dist/esm/components/form/controls/file/file-upload.d.ts.map +1 -0
- package/dist/esm/components/form/controls/file/file-upload.js +230 -0
- package/dist/esm/components/form/controls/file/file-upload.js.map +1 -0
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts +16 -0
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -0
- package/dist/esm/components/form/controls/form-field-checkbox-group.js +131 -0
- package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -0
- package/dist/esm/components/form/controls/input-group.d.ts +10 -0
- package/dist/esm/components/form/controls/input-group.d.ts.map +1 -0
- package/dist/esm/components/form/controls/input-group.js +76 -0
- package/dist/esm/components/form/controls/input-group.js.map +1 -0
- package/dist/esm/components/form/controls/input.d.ts +3 -0
- package/dist/esm/components/form/controls/input.d.ts.map +1 -0
- package/dist/esm/components/form/controls/input.js +76 -0
- package/dist/esm/components/form/controls/input.js.map +1 -0
- package/dist/esm/components/form/controls/number/slider.d.ts +13 -0
- package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -0
- package/dist/esm/components/form/controls/number/slider.js +114 -0
- package/dist/esm/components/form/controls/number/slider.js.map +1 -0
- package/dist/esm/components/form/controls/string/color-input.d.ts +5 -0
- package/dist/esm/components/form/controls/string/color-input.d.ts.map +1 -0
- package/dist/esm/components/form/controls/string/color-input.js +49 -0
- package/dist/esm/components/form/controls/string/color-input.js.map +1 -0
- package/dist/esm/components/form/controls/string/input-otp.d.ts +3 -0
- package/dist/esm/components/form/controls/string/input-otp.d.ts.map +1 -0
- package/dist/esm/components/form/controls/string/input-otp.js +35 -0
- package/dist/esm/components/form/controls/string/input-otp.js.map +1 -0
- package/dist/esm/components/form/controls/string/password-input.d.ts +16 -0
- package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -0
- package/dist/esm/components/form/controls/string/password-input.js +54 -0
- package/dist/esm/components/form/controls/string/password-input.js.map +1 -0
- package/dist/esm/components/form/controls/string/textarea.d.ts +3 -0
- package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -0
- package/dist/esm/components/form/controls/string/textarea.js +51 -0
- package/dist/esm/components/form/controls/string/textarea.js.map +1 -0
- package/dist/esm/components/layout/aspect-ratio.d.ts +5 -0
- package/dist/esm/components/layout/aspect-ratio.d.ts.map +1 -0
- package/dist/esm/components/layout/aspect-ratio.js +8 -0
- package/dist/esm/components/layout/aspect-ratio.js.map +1 -0
- package/dist/esm/components/layout/carousel.d.ts +3 -0
- package/dist/esm/components/layout/carousel.d.ts.map +1 -0
- package/dist/esm/components/layout/carousel.js +107 -0
- package/dist/esm/components/layout/carousel.js.map +1 -0
- package/dist/esm/components/layout/divider.d.ts +4 -0
- package/dist/esm/components/layout/divider.d.ts.map +1 -0
- package/dist/esm/components/layout/divider.js +15 -0
- package/dist/esm/components/layout/divider.js.map +1 -0
- package/dist/esm/components/layout/resizable.d.ts +3 -0
- package/dist/esm/components/layout/resizable.d.ts.map +1 -0
- package/dist/esm/components/layout/resizable.js +16 -0
- package/dist/esm/components/layout/resizable.js.map +1 -0
- package/dist/esm/components/layout/scroll-area.d.ts +3 -0
- package/dist/esm/components/layout/scroll-area.d.ts.map +1 -0
- package/dist/esm/components/layout/scroll-area.js +22 -0
- package/dist/esm/components/layout/scroll-area.js.map +1 -0
- package/dist/esm/components/layout/separator.d.ts +5 -0
- package/dist/esm/components/layout/separator.d.ts.map +1 -0
- package/dist/esm/components/layout/separator.js +15 -0
- package/dist/esm/components/layout/separator.js.map +1 -0
- package/dist/esm/components/navigation/app-level/action-sheet.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/action-sheet.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/action-sheet.js +59 -0
- package/dist/esm/components/navigation/app-level/action-sheet.js.map +1 -0
- package/dist/esm/components/navigation/app-level/activity-bar.d.ts +16 -0
- package/dist/esm/components/navigation/app-level/activity-bar.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/activity-bar.js +33 -0
- package/dist/esm/components/navigation/app-level/activity-bar.js.map +1 -0
- package/dist/esm/components/navigation/app-level/command-menu.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/command-menu.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/command-menu.js +26 -0
- package/dist/esm/components/navigation/app-level/command-menu.js.map +1 -0
- package/dist/esm/components/navigation/app-level/control-panel.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/control-panel.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/control-panel.js +48 -0
- package/dist/esm/components/navigation/app-level/control-panel.js.map +1 -0
- package/dist/esm/components/navigation/app-level/menu-user-org.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/menu-user-org.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/menu-user-org.js +89 -0
- package/dist/esm/components/navigation/app-level/menu-user-org.js.map +1 -0
- package/dist/esm/components/navigation/app-level/menubar.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/menubar.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/menubar.js +73 -0
- package/dist/esm/components/navigation/app-level/menubar.js.map +1 -0
- package/dist/esm/components/navigation/app-level/navigation-back.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/navigation-back.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/navigation-back.js +17 -0
- package/dist/esm/components/navigation/app-level/navigation-back.js.map +1 -0
- package/dist/esm/components/navigation/app-level/navigation-rail.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/navigation-rail.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/navigation-rail.js +36 -0
- package/dist/esm/components/navigation/app-level/navigation-rail.js.map +1 -0
- package/dist/esm/components/navigation/app-level/notification-center.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/notification-center.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/notification-center.js +91 -0
- package/dist/esm/components/navigation/app-level/notification-center.js.map +1 -0
- package/dist/esm/components/navigation/app-level/quick-action-button.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/quick-action-button.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/quick-action-button.js +34 -0
- package/dist/esm/components/navigation/app-level/quick-action-button.js.map +1 -0
- package/dist/esm/components/navigation/app-level/quick-switcher.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/quick-switcher.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/quick-switcher.js +33 -0
- package/dist/esm/components/navigation/app-level/quick-switcher.js.map +1 -0
- package/dist/esm/components/navigation/app-level/sidebar.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/sidebar.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/sidebar.js +146 -0
- package/dist/esm/components/navigation/app-level/sidebar.js.map +1 -0
- package/dist/esm/components/navigation/app-level/status-bar.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/status-bar.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/status-bar.js +66 -0
- package/dist/esm/components/navigation/app-level/status-bar.js.map +1 -0
- package/dist/esm/components/navigation/app-level/toolbar.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/toolbar.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/toolbar.js +19 -0
- package/dist/esm/components/navigation/app-level/toolbar.js.map +1 -0
- package/dist/esm/components/navigation/app-level/utility-panel.d.ts +4 -0
- package/dist/esm/components/navigation/app-level/utility-panel.d.ts.map +1 -0
- package/dist/esm/components/navigation/app-level/utility-panel.js +54 -0
- package/dist/esm/components/navigation/app-level/utility-panel.js.map +1 -0
- package/dist/esm/components/navigation/breadcrumb.d.ts +3 -0
- package/dist/esm/components/navigation/breadcrumb.d.ts.map +1 -0
- package/dist/esm/components/navigation/breadcrumb.js +46 -0
- package/dist/esm/components/navigation/breadcrumb.js.map +1 -0
- package/dist/esm/components/navigation/command.d.ts +19 -0
- package/dist/esm/components/navigation/command.d.ts.map +1 -0
- package/dist/esm/components/navigation/command.js +66 -0
- package/dist/esm/components/navigation/command.js.map +1 -0
- package/dist/esm/components/navigation/menu-bar.d.ts +41 -0
- package/dist/esm/components/navigation/menu-bar.d.ts.map +1 -0
- package/dist/esm/components/navigation/menu-bar.js +114 -0
- package/dist/esm/components/navigation/menu-bar.js.map +1 -0
- package/dist/esm/components/navigation/navbar.d.ts +3 -0
- package/dist/esm/components/navigation/navbar.d.ts.map +1 -0
- package/dist/esm/components/navigation/navbar.js +70 -0
- package/dist/esm/components/navigation/navbar.js.map +1 -0
- package/dist/esm/components/navigation/sidebar.d.ts +3 -0
- package/dist/esm/components/navigation/sidebar.d.ts.map +1 -0
- package/dist/esm/components/navigation/sidebar.js +247 -0
- package/dist/esm/components/navigation/sidebar.js.map +1 -0
- package/dist/esm/components/overlays/containers/alert-dialog.d.ts +4 -0
- package/dist/esm/components/overlays/containers/alert-dialog.d.ts.map +1 -0
- package/dist/esm/components/overlays/containers/alert-dialog.js +70 -0
- package/dist/esm/components/overlays/containers/alert-dialog.js.map +1 -0
- package/dist/esm/components/overlays/containers/alert.d.ts +3 -0
- package/dist/esm/components/overlays/containers/alert.d.ts.map +1 -0
- package/dist/esm/components/overlays/containers/alert.js +54 -0
- package/dist/esm/components/overlays/containers/alert.js.map +1 -0
- package/dist/esm/components/overlays/containers/dialog.d.ts +4 -0
- package/dist/esm/components/overlays/containers/dialog.d.ts.map +1 -0
- package/dist/esm/components/overlays/containers/dialog.js +57 -0
- package/dist/esm/components/overlays/containers/dialog.js.map +1 -0
- package/dist/esm/components/overlays/containers/drawer.d.ts +4 -0
- package/dist/esm/components/overlays/containers/drawer.d.ts.map +1 -0
- package/dist/esm/components/overlays/containers/drawer.js +51 -0
- package/dist/esm/components/overlays/containers/drawer.js.map +1 -0
- package/dist/esm/components/overlays/containers/sheet.d.ts +4 -0
- package/dist/esm/components/overlays/containers/sheet.d.ts.map +1 -0
- package/dist/esm/components/overlays/containers/sheet.js +61 -0
- package/dist/esm/components/overlays/containers/sheet.js.map +1 -0
- package/dist/esm/components/overlays/floating/context-menu.d.ts +26 -0
- package/dist/esm/components/overlays/floating/context-menu.d.ts.map +1 -0
- package/dist/esm/components/overlays/floating/context-menu.js +120 -0
- package/dist/esm/components/overlays/floating/context-menu.js.map +1 -0
- package/dist/esm/components/overlays/floating/dropdown-menu.d.ts +34 -0
- package/dist/esm/components/overlays/floating/dropdown-menu.d.ts.map +1 -0
- package/dist/esm/components/overlays/floating/dropdown-menu.js +123 -0
- package/dist/esm/components/overlays/floating/dropdown-menu.js.map +1 -0
- package/dist/esm/components/overlays/floating/hover-card.d.ts +3 -0
- package/dist/esm/components/overlays/floating/hover-card.d.ts.map +1 -0
- package/dist/esm/components/overlays/floating/hover-card.js +22 -0
- package/dist/esm/components/overlays/floating/hover-card.js.map +1 -0
- package/dist/esm/components/overlays/floating/popover.d.ts +35 -0
- package/dist/esm/components/overlays/floating/popover.d.ts.map +1 -0
- package/dist/esm/components/overlays/floating/popover.js +35 -0
- package/dist/esm/components/overlays/floating/popover.js.map +1 -0
- package/dist/esm/components/overlays/floating/tooltip.d.ts +3 -0
- package/dist/esm/components/overlays/floating/tooltip.d.ts.map +1 -0
- package/dist/esm/components/overlays/floating/tooltip.js +28 -0
- package/dist/esm/components/overlays/floating/tooltip.js.map +1 -0
- package/dist/esm/components/sections/accordion.d.ts +3 -0
- package/dist/esm/components/sections/accordion.d.ts.map +1 -0
- package/dist/esm/components/sections/accordion.js +27 -0
- package/dist/esm/components/sections/accordion.js.map +1 -0
- package/dist/esm/components/sections/card.d.ts +3 -0
- package/dist/esm/components/sections/card.d.ts.map +1 -0
- package/dist/esm/components/sections/card.js +48 -0
- package/dist/esm/components/sections/card.js.map +1 -0
- package/dist/esm/components/sections/collapsible.d.ts +3 -0
- package/dist/esm/components/sections/collapsible.d.ts.map +1 -0
- package/dist/esm/components/sections/collapsible.js +14 -0
- package/dist/esm/components/sections/collapsible.js.map +1 -0
- package/dist/esm/components/sections/pagination.d.ts +3 -0
- package/dist/esm/components/sections/pagination.d.ts.map +1 -0
- package/dist/esm/components/sections/pagination.js +45 -0
- package/dist/esm/components/sections/pagination.js.map +1 -0
- package/dist/esm/components/sections/stacked-layout.d.ts +3 -0
- package/dist/esm/components/sections/stacked-layout.d.ts.map +1 -0
- package/dist/esm/components/sections/stacked-layout.js +77 -0
- package/dist/esm/components/sections/stacked-layout.js.map +1 -0
- package/dist/esm/components/sections/stepper.d.ts +3 -0
- package/dist/esm/components/sections/stepper.d.ts.map +1 -0
- package/dist/esm/components/sections/stepper.js +70 -0
- package/dist/esm/components/sections/stepper.js.map +1 -0
- package/dist/esm/components/sections/table.d.ts +3 -0
- package/dist/esm/components/sections/table.d.ts.map +1 -0
- package/dist/esm/components/sections/table.js +52 -0
- package/dist/esm/components/sections/table.js.map +1 -0
- package/dist/esm/components/sections/tabs.d.ts +3 -0
- package/dist/esm/components/sections/tabs.d.ts.map +1 -0
- package/dist/esm/components/sections/tabs.js +31 -0
- package/dist/esm/components/sections/tabs.js.map +1 -0
- package/dist/esm/components/typography/heading.d.ts +5 -0
- package/dist/esm/components/typography/heading.d.ts.map +1 -0
- package/dist/esm/components/typography/heading.js +23 -0
- package/dist/esm/components/typography/heading.js.map +1 -0
- package/dist/esm/components/typography/label.d.ts +5 -0
- package/dist/esm/components/typography/label.d.ts.map +1 -0
- package/dist/esm/components/typography/label.js +17 -0
- package/dist/esm/components/typography/label.js.map +1 -0
- package/dist/esm/components/typography/link.d.ts +5 -0
- package/dist/esm/components/typography/link.d.ts.map +1 -0
- package/dist/esm/components/typography/link.js +72 -0
- package/dist/esm/components/typography/link.js.map +1 -0
- package/dist/esm/components/typography/text.d.ts +10 -0
- package/dist/esm/components/typography/text.d.ts.map +1 -0
- package/dist/esm/components/typography/text.js +36 -0
- package/dist/esm/components/typography/text.js.map +1 -0
- package/dist/esm/components/typography/truncated-text.d.ts +17 -0
- package/dist/esm/components/typography/truncated-text.d.ts.map +1 -0
- package/dist/esm/components/typography/truncated-text.js +45 -0
- package/dist/esm/components/typography/truncated-text.js.map +1 -0
- package/dist/esm/config/billing-shell.presets.d.ts +7 -0
- package/dist/esm/config/billing-shell.presets.d.ts.map +1 -0
- package/dist/esm/config/billing-shell.presets.js +54 -0
- package/dist/esm/config/billing-shell.presets.js.map +1 -0
- package/dist/esm/config/default-hotkeys.preset.d.ts +15 -0
- package/dist/esm/config/default-hotkeys.preset.d.ts.map +1 -0
- package/dist/esm/config/default-hotkeys.preset.js +51 -0
- package/dist/esm/config/default-hotkeys.preset.js.map +1 -0
- package/dist/esm/config/index.d.ts +9 -0
- package/dist/esm/config/index.d.ts.map +1 -0
- package/dist/esm/config/index.js +9 -0
- package/dist/esm/config/index.js.map +1 -0
- package/dist/esm/config/preset-design-system.d.ts +1498 -0
- package/dist/esm/config/preset-design-system.d.ts.map +1 -0
- package/dist/esm/config/preset-design-system.js +581 -0
- package/dist/esm/config/preset-design-system.js.map +1 -0
- package/dist/esm/config/preset-error-pages.d.ts +52 -0
- package/dist/esm/config/preset-error-pages.d.ts.map +1 -0
- package/dist/esm/config/preset-error-pages.js +190 -0
- package/dist/esm/config/preset-error-pages.js.map +1 -0
- package/dist/esm/config/preset-kits.d.ts +129 -0
- package/dist/esm/config/preset-kits.d.ts.map +1 -0
- package/dist/esm/config/preset-kits.js +290 -0
- package/dist/esm/config/preset-kits.js.map +1 -0
- package/dist/esm/config/preset-navigation.d.ts +91 -0
- package/dist/esm/config/preset-navigation.d.ts.map +1 -0
- package/dist/esm/config/preset-navigation.js +304 -0
- package/dist/esm/config/preset-navigation.js.map +1 -0
- package/dist/esm/config/preset-resources.d.ts +10 -0
- package/dist/esm/config/preset-resources.d.ts.map +1 -0
- package/dist/esm/config/preset-resources.js +10 -0
- package/dist/esm/config/preset-resources.js.map +1 -0
- package/dist/esm/config/preset-shell.d.ts +69 -0
- package/dist/esm/config/preset-shell.d.ts.map +1 -0
- package/dist/esm/config/preset-shell.js +244 -0
- package/dist/esm/config/preset-shell.js.map +1 -0
- package/dist/esm/config/preset-utils.d.ts +51 -0
- package/dist/esm/config/preset-utils.d.ts.map +1 -0
- package/dist/esm/config/preset-utils.js +127 -0
- package/dist/esm/config/preset-utils.js.map +1 -0
- package/dist/esm/config/presets.d.ts +111 -0
- package/dist/esm/config/presets.d.ts.map +1 -0
- package/dist/esm/config/presets.js +286 -0
- package/dist/esm/config/presets.js.map +1 -0
- package/dist/esm/config/resources/application-layout-templates.d.ts +14 -0
- package/dist/esm/config/resources/application-layout-templates.d.ts.map +1 -0
- package/dist/esm/config/resources/application-layout-templates.js +40 -0
- package/dist/esm/config/resources/application-layout-templates.js.map +1 -0
- package/dist/esm/config/resources/application.resource-presets.d.ts +15 -0
- package/dist/esm/config/resources/application.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/application.resource-presets.js +159 -0
- package/dist/esm/config/resources/application.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/billing-layout-templates.d.ts +14 -0
- package/dist/esm/config/resources/billing-layout-templates.d.ts.map +1 -0
- package/dist/esm/config/resources/billing-layout-templates.js +24 -0
- package/dist/esm/config/resources/billing-layout-templates.js.map +1 -0
- package/dist/esm/config/resources/billing.resource-presets.d.ts +26 -0
- package/dist/esm/config/resources/billing.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/billing.resource-presets.js +528 -0
- package/dist/esm/config/resources/billing.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/email-layout-templates.d.ts +8 -0
- package/dist/esm/config/resources/email-layout-templates.d.ts.map +1 -0
- package/dist/esm/config/resources/email-layout-templates.js +22 -0
- package/dist/esm/config/resources/email-layout-templates.js.map +1 -0
- package/dist/esm/config/resources/email.resource-presets.d.ts +12 -0
- package/dist/esm/config/resources/email.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/email.resource-presets.js +134 -0
- package/dist/esm/config/resources/email.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/guidance-layout-templates.d.ts +9 -0
- package/dist/esm/config/resources/guidance-layout-templates.d.ts.map +1 -0
- package/dist/esm/config/resources/guidance-layout-templates.js +25 -0
- package/dist/esm/config/resources/guidance-layout-templates.js.map +1 -0
- package/dist/esm/config/resources/guidance.resource-presets.d.ts +5 -0
- package/dist/esm/config/resources/guidance.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/guidance.resource-presets.js +198 -0
- package/dist/esm/config/resources/guidance.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/identity-layout-templates.d.ts +16 -0
- package/dist/esm/config/resources/identity-layout-templates.d.ts.map +1 -0
- package/dist/esm/config/resources/identity-layout-templates.js +46 -0
- package/dist/esm/config/resources/identity-layout-templates.js.map +1 -0
- package/dist/esm/config/resources/identity.resource-presets.d.ts +17 -0
- package/dist/esm/config/resources/identity.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/identity.resource-presets.js +216 -0
- package/dist/esm/config/resources/identity.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/index.d.ts +22 -0
- package/dist/esm/config/resources/index.d.ts.map +1 -0
- package/dist/esm/config/resources/index.js +39 -0
- package/dist/esm/config/resources/index.js.map +1 -0
- package/dist/esm/config/resources/infrastructure.resource-presets.d.ts +15 -0
- package/dist/esm/config/resources/infrastructure.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/infrastructure.resource-presets.js +109 -0
- package/dist/esm/config/resources/infrastructure.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/organizations-layout-templates.d.ts +26 -0
- package/dist/esm/config/resources/organizations-layout-templates.d.ts.map +1 -0
- package/dist/esm/config/resources/organizations-layout-templates.js +76 -0
- package/dist/esm/config/resources/organizations-layout-templates.js.map +1 -0
- package/dist/esm/config/resources/organizations.resource-presets.d.ts +14 -0
- package/dist/esm/config/resources/organizations.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/organizations.resource-presets.js +253 -0
- package/dist/esm/config/resources/organizations.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/resource.config.utils.d.ts +11 -0
- package/dist/esm/config/resources/resource.config.utils.d.ts.map +1 -0
- package/dist/esm/config/resources/resource.config.utils.js +14 -0
- package/dist/esm/config/resources/resource.config.utils.js.map +1 -0
- package/dist/esm/config/resources/security-siem-templates.d.ts +14 -0
- package/dist/esm/config/resources/security-siem-templates.d.ts.map +1 -0
- package/dist/esm/config/resources/security-siem-templates.js +17 -0
- package/dist/esm/config/resources/security-siem-templates.js.map +1 -0
- package/dist/esm/config/resources/security.resource-presets.d.ts +18 -0
- package/dist/esm/config/resources/security.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/security.resource-presets.js +543 -0
- package/dist/esm/config/resources/security.resource-presets.js.map +1 -0
- package/dist/esm/index.d.ts +169 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +183 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/lottie/lottie.content.definitions.d.ts +10 -0
- package/dist/esm/lottie/lottie.content.definitions.d.ts.map +1 -0
- package/dist/esm/lottie/lottie.content.definitions.js +10 -0
- package/dist/esm/lottie/lottie.content.definitions.js.map +1 -0
- package/dist/esm/lottie/lottie.definitions.d.ts +27 -0
- package/dist/esm/lottie/lottie.definitions.d.ts.map +1 -0
- package/dist/esm/lottie/lottie.definitions.js +45 -0
- package/dist/esm/lottie/lottie.definitions.js.map +1 -0
- package/dist/esm/registration/register-common-enums.d.ts +15 -0
- package/dist/esm/registration/register-common-enums.d.ts.map +1 -0
- package/dist/esm/registration/register-common-enums.js +138 -0
- package/dist/esm/registration/register-common-enums.js.map +1 -0
- package/dist/esm/registration/register-default-animations.d.ts +9 -0
- package/dist/esm/registration/register-default-animations.d.ts.map +1 -0
- package/dist/esm/registration/register-default-animations.js +24 -0
- package/dist/esm/registration/register-default-animations.js.map +1 -0
- package/dist/esm/registration/register-default-icons.d.ts +6 -0
- package/dist/esm/registration/register-default-icons.d.ts.map +1 -0
- package/dist/esm/registration/register-default-icons.js +130 -0
- package/dist/esm/registration/register-default-icons.js.map +1 -0
- package/dist/esm/registration/register-default-presets.d.ts +2 -0
- package/dist/esm/registration/register-default-presets.d.ts.map +1 -0
- package/dist/esm/registration/register-default-presets.js +440 -0
- package/dist/esm/registration/register-default-presets.js.map +1 -0
- package/dist/esm/themes/glass.theme.d.ts +3 -0
- package/dist/esm/themes/glass.theme.d.ts.map +1 -0
- package/dist/esm/themes/glass.theme.js +420 -0
- package/dist/esm/themes/glass.theme.js.map +1 -0
- package/dist/esm/themes/neo-brutalist.theme.d.ts +3 -0
- package/dist/esm/themes/neo-brutalist.theme.d.ts.map +1 -0
- package/dist/esm/themes/neo-brutalist.theme.js +400 -0
- package/dist/esm/themes/neo-brutalist.theme.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +131 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* PlanChangePreview (Preset)
|
|
4
|
+
*
|
|
5
|
+
* Shows prorated cost breakdown before a user commits to a plan change.
|
|
6
|
+
* Data comes from the provider's upcoming invoice API.
|
|
7
|
+
*
|
|
8
|
+
* Formatting: Uses useI18n() for locale-aware formatting
|
|
9
|
+
* of dates and monetary amounts, respecting user/org regional preferences.
|
|
10
|
+
*/
|
|
11
|
+
import { FrontendComponentType, SurfaceVariant, TypographyVariant, UIBehavior } from '@wildo-ai/presets-components-models';
|
|
12
|
+
import { Alert, AlertDescription, Button, ButtonVariants_Variant, cn, IconSize, Skeleton, StandardIconReference, useI18n, useIconRegistry, useUI } from '@wildo-ai/saas-frontend-lib';
|
|
13
|
+
import { useMemo } from 'react';
|
|
14
|
+
import { useFormatMoney } from './billing-format.utils.js';
|
|
15
|
+
// ── Component ───────────────────────────────────────────────────────
|
|
16
|
+
export function PlanChangePreview({ amount, lineItems, periodStart, onConfirm, onCancel, isConfirming, isLoading, error, }) {
|
|
17
|
+
const { getRecipe } = useUI();
|
|
18
|
+
const { makeTrComponent, formatDate, isReady } = useI18n({
|
|
19
|
+
component: FrontendComponentType.LOW_LEVEL_BILLING_PLAN_CHANGE_PREVIEW,
|
|
20
|
+
});
|
|
21
|
+
const { renderIcon } = useIconRegistry();
|
|
22
|
+
const formatMoney = useFormatMoney();
|
|
23
|
+
const surfaceRecipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.BASE);
|
|
24
|
+
const headingRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.HEADING);
|
|
25
|
+
const descriptionRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
|
|
26
|
+
const t = useMemo(() => makeTrComponent(FrontendComponentType.LOW_LEVEL_BILLING_PLAN_CHANGE_PREVIEW), [makeTrComponent]);
|
|
27
|
+
const isCredit = amount.amount < 0n;
|
|
28
|
+
/** Create an absolute value MoneyValue for display */
|
|
29
|
+
const absAmount = useMemo(() => ({
|
|
30
|
+
amount: isCredit ? -amount.amount : amount.amount,
|
|
31
|
+
currency: amount.currency,
|
|
32
|
+
decimals: amount.decimals,
|
|
33
|
+
}), [amount, isCredit]);
|
|
34
|
+
if (error) {
|
|
35
|
+
return (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: error }) }));
|
|
36
|
+
}
|
|
37
|
+
if (isLoading) {
|
|
38
|
+
return (_jsxs("div", { className: cn("p-card max-w-md mx-auto", surfaceRecipe.base), children: [_jsx(Skeleton, { className: "h-5 w-40 mb-section" }), _jsx("div", { className: "space-y-element mb-section", children: [0, 1, 2].map(i => (_jsxs("div", { className: "flex justify-between", children: [_jsx(Skeleton, { className: "h-4 w-32" }), _jsx(Skeleton, { className: "h-4 w-16" })] }, i))) }), _jsx("div", { className: "border-t border-border my-section" }), _jsxs("div", { className: "flex justify-between items-center mb-section", children: [_jsx(Skeleton, { className: "h-4 w-28" }), _jsx(Skeleton, { className: "h-6 w-20" })] }), _jsxs("div", { className: "flex gap-element", children: [_jsx(Skeleton, { className: "flex-1 h-10 rounded-md" }), _jsx(Skeleton, { className: "flex-1 h-10 rounded-md" })] })] }));
|
|
39
|
+
}
|
|
40
|
+
if (!isReady)
|
|
41
|
+
return null;
|
|
42
|
+
return (_jsxs("div", { className: cn("p-card max-w-md mx-auto", surfaceRecipe.base), children: [_jsx("h3", { className: cn(headingRecipe.base, headingRecipe.sizes?.md, "mb-section"), children: t('title') }), lineItems.length > 0 && (_jsx("div", { className: "space-y-element mb-section", children: lineItems.map((item, idx) => (_jsxs("div", { className: cn("flex justify-between", descriptionRecipe.base), children: [_jsx("span", { className: descriptionRecipe.base, children: item.description }), _jsx("span", { className: cn("font-medium", item.amount.amount < 0n ? 'text-success' : 'text-foreground'), children: formatMoney(item.amount) })] }, idx))) })), _jsx("div", { className: "border-t border-border my-section" }), _jsxs("div", { className: "flex justify-between items-center mb-section", children: [_jsx("span", { className: cn(descriptionRecipe.base, "font-medium text-foreground"), children: isCredit ? t('creditApplied') : t('additionalCharge') }), _jsx("span", { className: cn("text-xl font-bold", isCredit ? 'text-success' : 'text-foreground'), children: formatMoney(absAmount) })] }), periodStart && (_jsxs("div", { className: cn("flex items-center gap-2 mb-section", descriptionRecipe.base), children: [renderIcon(StandardIconReference.CALENDAR, { size: IconSize.SM }), _jsxs("span", { children: [t('effectiveDate'), ": ", formatDate(periodStart)] })] })), _jsxs("div", { className: "flex gap-element", children: [_jsx(Button, { variant: ButtonVariants_Variant.GHOST, className: "flex-1", onClick: onCancel, disabled: isConfirming, children: t('cancel') }), _jsx(Button, { variant: ButtonVariants_Variant.DEFAULT, className: "flex-1", onClick: onConfirm, disabled: isConfirming, children: t('confirmChange') })] })] }));
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=billing-plan-change-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-plan-change-preview.js","sourceRoot":"","sources":["../../../../src/components/billing/billing-plan-change-preview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BillingPortalLink (Preset)
|
|
3
|
+
*
|
|
4
|
+
* Simple card/button that links to the provider's Customer Portal
|
|
5
|
+
* for managing payment methods, invoices, billing address, and cancellation.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import type { BillingPortalLinkProps } from '@wildo-ai/saas-frontend-lib';
|
|
9
|
+
export declare function BillingPortalLink({ onOpenPortal, isLoading, error, }: BillingPortalLinkProps): React.JSX.Element | null;
|
|
10
|
+
//# sourceMappingURL=billing-portal-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-portal-link.d.ts","sourceRoot":"","sources":["../../../../src/components/billing/billing-portal-link.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAO1E,wBAAgB,iBAAiB,CAAC,EAChC,YAAY,EACZ,SAAS,EACT,KAAK,GACN,EAAE,sBAAsB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA2DnD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* BillingPortalLink (Preset)
|
|
4
|
+
*
|
|
5
|
+
* Simple card/button that links to the provider's Customer Portal
|
|
6
|
+
* for managing payment methods, invoices, billing address, and cancellation.
|
|
7
|
+
*/
|
|
8
|
+
import { useMemo } from 'react';
|
|
9
|
+
import { FrontendComponentType, UIBehavior, SurfaceVariant, TypographyVariant } from '@wildo-ai/presets-components-models';
|
|
10
|
+
import { cn, useI18n, useIconRegistry, StandardIconReference, IconSize, useUI } from '@wildo-ai/saas-frontend-lib';
|
|
11
|
+
import { Button, ButtonVariants_Variant } from '@wildo-ai/saas-frontend-lib';
|
|
12
|
+
import { Skeleton } from '@wildo-ai/saas-frontend-lib';
|
|
13
|
+
import { Alert, AlertDescription } from '@wildo-ai/saas-frontend-lib';
|
|
14
|
+
// ── Component ───────────────────────────────────────────────────────
|
|
15
|
+
export function BillingPortalLink({ onOpenPortal, isLoading, error, }) {
|
|
16
|
+
const { getRecipe } = useUI();
|
|
17
|
+
const { makeTrComponent, isReady } = useI18n({
|
|
18
|
+
component: FrontendComponentType.LOW_LEVEL_BILLING_PORTAL_LINK,
|
|
19
|
+
});
|
|
20
|
+
const { renderIcon } = useIconRegistry();
|
|
21
|
+
const surfaceRecipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.BASE);
|
|
22
|
+
const headingRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.LABEL);
|
|
23
|
+
const descriptionRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
|
|
24
|
+
const t = useMemo(() => makeTrComponent(FrontendComponentType.LOW_LEVEL_BILLING_PORTAL_LINK), [makeTrComponent]);
|
|
25
|
+
if (error) {
|
|
26
|
+
return (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: error }) }));
|
|
27
|
+
}
|
|
28
|
+
if (isLoading) {
|
|
29
|
+
return (_jsx("div", { className: cn("p-card", surfaceRecipe.base), children: _jsxs("div", { className: "flex flex-col gap-card sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("div", { className: "space-y-1 flex-1 min-w-0", children: [_jsx(Skeleton, { className: "h-4 w-32 mb-1" }), _jsx(Skeleton, { className: "h-4 w-48" })] }), _jsx(Skeleton, { className: "h-9 w-36 shrink-0 rounded-md" })] }) }));
|
|
30
|
+
}
|
|
31
|
+
if (!isReady)
|
|
32
|
+
return null;
|
|
33
|
+
return (_jsx("div", { className: cn("p-card", surfaceRecipe.base), children: _jsxs("div", { className: "flex flex-col gap-card sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("h4", { className: cn(headingRecipe.base, headingRecipe.sizes?.sm), children: t('manageBilling') }), _jsx("p", { className: descriptionRecipe.base, children: t('description') })] }), _jsxs(Button, { variant: ButtonVariants_Variant.LINK, onClick: onOpenPortal, disabled: isLoading, className: "shrink-0", children: [renderIcon(StandardIconReference.EXTERNAL_LINK, { size: IconSize.SM }), t('manageBilling')] })] }) }));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=billing-portal-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-portal-link.js","sourceRoot":"","sources":["../../../../src/components/billing/billing-portal-link.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PricingTable (Preset)
|
|
3
|
+
*
|
|
4
|
+
* Responsive plan comparison table. Reads product definitions to display
|
|
5
|
+
* plan options with features, pricing, and CTAs.
|
|
6
|
+
*
|
|
7
|
+
* DELEGATION PRINCIPLE: Clicking a plan triggers `onSelectPlan` which
|
|
8
|
+
* opens Stripe Checkout (hosted page) — no payment UI is rendered here.
|
|
9
|
+
*
|
|
10
|
+
* Formatting: Uses useI18n() for locale-aware formatting
|
|
11
|
+
* of monetary amounts and numbers, respecting user/org regional preferences.
|
|
12
|
+
*/
|
|
13
|
+
import React from 'react';
|
|
14
|
+
import type { PricingTableProps } from '@wildo-ai/saas-frontend-lib';
|
|
15
|
+
export declare function PricingTable({ plans, currentPlanKey, onSelectPlan, showIntervalToggle, isLoading, error, }: PricingTableProps): React.JSX.Element | null;
|
|
16
|
+
//# sourceMappingURL=billing-pricing-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-pricing-table.d.ts","sourceRoot":"","sources":["../../../../src/components/billing/billing-pricing-table.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAA4D,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAmB/H,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,cAAc,EACd,YAAY,EACZ,kBAAyB,EACzB,SAAS,EACT,KAAK,GACN,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA6N9C"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* PricingTable (Preset)
|
|
4
|
+
*
|
|
5
|
+
* Responsive plan comparison table. Reads product definitions to display
|
|
6
|
+
* plan options with features, pricing, and CTAs.
|
|
7
|
+
*
|
|
8
|
+
* DELEGATION PRINCIPLE: Clicking a plan triggers `onSelectPlan` which
|
|
9
|
+
* opens Stripe Checkout (hosted page) — no payment UI is rendered here.
|
|
10
|
+
*
|
|
11
|
+
* Formatting: Uses useI18n() for locale-aware formatting
|
|
12
|
+
* of monetary amounts and numbers, respecting user/org regional preferences.
|
|
13
|
+
*/
|
|
14
|
+
import { useMemo, useState } from 'react';
|
|
15
|
+
import { FrontendComponentType, UIBehavior, SurfaceVariant, IndicatorVariant, TypographyVariant, ButtonSize } from '@wildo-ai/presets-components-models';
|
|
16
|
+
import { cn, useI18n, useIconRegistry, StandardIconReference, IconSize, useUI, Button, ButtonVariants_Variant, Skeleton, Alert, AlertDescription, } from '@wildo-ai/saas-frontend-lib';
|
|
17
|
+
import { useFormatMoney } from './billing-format.utils.js';
|
|
18
|
+
// ── Component ───────────────────────────────────────────────────────
|
|
19
|
+
export function PricingTable({ plans, currentPlanKey, onSelectPlan, showIntervalToggle = true, isLoading, error, }) {
|
|
20
|
+
const { getRecipe } = useUI();
|
|
21
|
+
const { makeTrComponent, isReady } = useI18n({
|
|
22
|
+
component: FrontendComponentType.LOW_LEVEL_BILLING_PRICING_TABLE,
|
|
23
|
+
keys: ['billing_products', 'billing_features', 'billing_limits'],
|
|
24
|
+
});
|
|
25
|
+
const { renderIcon } = useIconRegistry();
|
|
26
|
+
const formatMoney = useFormatMoney();
|
|
27
|
+
const surfaceRecipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.BASE);
|
|
28
|
+
const indicatorInfoRecipe = getRecipe(UIBehavior.INDICATOR, IndicatorVariant.INFO);
|
|
29
|
+
const indicatorNeutralRecipe = getRecipe(UIBehavior.INDICATOR, IndicatorVariant.NEUTRAL);
|
|
30
|
+
const headingRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.HEADING);
|
|
31
|
+
const descriptionRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
|
|
32
|
+
const t = useMemo(() => makeTrComponent(FrontendComponentType.LOW_LEVEL_BILLING_PRICING_TABLE), [makeTrComponent]);
|
|
33
|
+
const [selectedInterval, setSelectedInterval] = useState('month');
|
|
34
|
+
// Sort plans by sortOrder
|
|
35
|
+
const sortedPlans = useMemo(() => [...plans].sort((a, b) => a.sortOrder - b.sortOrder), [plans]);
|
|
36
|
+
// Check if any plan has yearly prices
|
|
37
|
+
const hasYearlyPrices = useMemo(() => plans.some(p => p.prices.some(pr => pr.interval === 'year')), [plans]);
|
|
38
|
+
const getDisplayPrice = (plan) => {
|
|
39
|
+
// Find the price for the selected interval
|
|
40
|
+
const matchingPrice = plan.prices.find(pr => pr.interval === selectedInterval);
|
|
41
|
+
if (matchingPrice)
|
|
42
|
+
return matchingPrice;
|
|
43
|
+
// Fallback to default price
|
|
44
|
+
const defaultPrice = plan.prices.find(pr => pr.isDefault);
|
|
45
|
+
return defaultPrice ?? plan.prices[0];
|
|
46
|
+
};
|
|
47
|
+
const isFreePrice = (money) => money.amount === 0n;
|
|
48
|
+
const getButtonLabel = (plan) => {
|
|
49
|
+
if (plan.isCurrent)
|
|
50
|
+
return t('currentPlan');
|
|
51
|
+
if (currentPlanKey) {
|
|
52
|
+
const currentPlan = plans.find(p => p.key === currentPlanKey);
|
|
53
|
+
if (currentPlan && plan.sortOrder > currentPlan.sortOrder)
|
|
54
|
+
return t('upgradePlan');
|
|
55
|
+
if (currentPlan && plan.sortOrder < currentPlan.sortOrder)
|
|
56
|
+
return t('downgradePlan');
|
|
57
|
+
}
|
|
58
|
+
return t('selectPlan');
|
|
59
|
+
};
|
|
60
|
+
if (error) {
|
|
61
|
+
return (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: error }) }));
|
|
62
|
+
}
|
|
63
|
+
if (isLoading) {
|
|
64
|
+
return (_jsxs("div", { className: "w-full", children: [_jsx("div", { className: "text-center mb-section", children: _jsx(Skeleton, { className: "h-8 w-48 mx-auto mb-element" }) }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-card max-w-7xl mx-auto", children: [0, 1, 2].map(i => (_jsxs("div", { className: cn("relative p-card flex flex-col", surfaceRecipe.base), children: [_jsx(Skeleton, { className: "h-5 w-24 mb-element" }), _jsx(Skeleton, { className: "h-10 w-32 my-section" }), _jsx(Skeleton, { className: "h-10 w-full rounded-md mb-section" }), _jsxs("div", { className: "space-y-element flex-1", children: [_jsx(Skeleton, { className: "h-4 w-28" }), [0, 1, 2, 3].map(j => (_jsx(Skeleton, { className: "h-4 w-full" }, j)))] })] }, i))) })] }));
|
|
65
|
+
}
|
|
66
|
+
if (!isReady)
|
|
67
|
+
return null;
|
|
68
|
+
return (_jsxs("div", { className: "w-full", children: [_jsx("div", { className: "text-center mb-section", children: _jsx("h2", { className: cn(headingRecipe.base, "text-3xl mb-element"), children: t('title') }) }), showIntervalToggle && hasYearlyPrices && (_jsxs("div", { className: "flex items-center justify-center gap-element mb-section", role: "radiogroup", "aria-label": t('intervalToggleLabel'), children: [_jsx(Button, { variant: selectedInterval === 'month' ? ButtonVariants_Variant.DEFAULT : ButtonVariants_Variant.GHOST, size: ButtonSize.SM, role: "radio", "aria-checked": selectedInterval === 'month', onClick: () => setSelectedInterval('month'), children: t('monthlyToggle') }), _jsx(Button, { variant: selectedInterval === 'year' ? ButtonVariants_Variant.DEFAULT : ButtonVariants_Variant.GHOST, size: ButtonSize.SM, role: "radio", "aria-checked": selectedInterval === 'year', onClick: () => setSelectedInterval('year'), children: t('yearlyToggle') })] })), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-card max-w-7xl mx-auto", children: sortedPlans.map(plan => {
|
|
69
|
+
const priceEntry = getDisplayPrice(plan);
|
|
70
|
+
const isCurrent = plan.key === currentPlanKey;
|
|
71
|
+
return (_jsxs("div", { className: cn("relative p-card flex flex-col", surfaceRecipe.base, plan.isPopular && "border-primary shadow-[var(--shadow-lg)] ring-1 ring-primary", isCurrent && "bg-primary/5"), children: [plan.isPopular && (_jsx("div", { className: "absolute -top-3 inset-x-0 flex justify-center", children: _jsx("span", { className: cn("inline-flex items-center px-3 py-1", indicatorInfoRecipe.base, "rounded-full"), children: t('mostPopularBadge') }) })), isCurrent && (_jsx("div", { className: "absolute -top-3 inset-x-0 flex justify-center", children: _jsxs("span", { className: cn("inline-flex items-center px-3 py-1", indicatorNeutralRecipe.base, "rounded-full"), children: [renderIcon(StandardIconReference.CHECK, { size: IconSize.SM, className: 'me-1' }), t('currentPlanBadge')] }) })), _jsx("h3", { className: cn(headingRecipe.base, headingRecipe.sizes?.md, "mt-element"), children: plan.name }), plan.description && (_jsx("p", { className: cn(descriptionRecipe.base, "mt-1"), children: plan.description })), _jsx("div", { className: "my-section", children: plan.isFree || (priceEntry && isFreePrice(priceEntry.price)) ? (_jsx("div", { className: cn(headingRecipe.base, "text-4xl"), children: t('freePlanLabel') })) : priceEntry ? (_jsxs("div", { className: "flex items-baseline gap-1", children: [_jsx("span", { className: cn(headingRecipe.base, "text-4xl"), children: formatMoney(priceEntry.price) }), _jsx("span", { className: cn(descriptionRecipe.base), children: priceEntry.interval === 'year' ? t('perYear') : t('perMonth') })] })) : null }), plan.trialDays && plan.trialDays > 0 && !isCurrent && (_jsx("p", { className: "text-xs text-center text-primary font-medium mb-element", children: t('trialDays', { days: plan.trialDays }) })), _jsx(Button, { variant: isCurrent ? ButtonVariants_Variant.SECONDARY : plan.isPopular ? ButtonVariants_Variant.ACCENT : ButtonVariants_Variant.SECONDARY, className: "w-full mb-section", disabled: isCurrent, onClick: () => priceEntry && onSelectPlan(plan.key, priceEntry.priceId), children: getButtonLabel(plan) }), _jsxs("div", { className: "flex-1 space-y-element", children: [_jsx("p", { className: cn(descriptionRecipe.base, "font-medium"), children: t('featuresIncluded') }), _jsxs("ul", { className: "space-y-1.5", children: [plan.grantedFeatures.map(feature => (_jsxs("li", { className: cn("flex items-start gap-2", descriptionRecipe.base), children: [renderIcon(StandardIconReference.CHECK, { size: IconSize.SM, className: 'text-primary mt-0.5 shrink-0' }), _jsx("span", { children: feature.label })] }, feature.id))), plan.grantedLimits.map(limit => (_jsxs("li", { className: cn("flex items-start gap-2", descriptionRecipe.base), children: [renderIcon(StandardIconReference.CHECK, { size: IconSize.SM, className: 'text-primary mt-0.5 shrink-0' }), _jsxs("span", { children: [limit.label, ": ", limit.value === -1 ? t('unlimited') : t('limitDisplay', { value: limit.value })] })] }, limit.id)))] })] })] }, plan.key));
|
|
72
|
+
}) })] }));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=billing-pricing-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-pricing-table.js","sourceRoot":"","sources":["../../../../src/components/billing/billing-pricing-table.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PromotionCodeInput (Preset)
|
|
3
|
+
*
|
|
4
|
+
* Coupon/promo code entry field for the checkout flow.
|
|
5
|
+
* Validates the code and shows success/error states.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import type { PromotionCodeInputProps } from '@wildo-ai/saas-frontend-lib';
|
|
9
|
+
export declare function PromotionCodeInput({ onApply, onRemove, appliedCode, disabled, billingError, }: PromotionCodeInputProps): React.JSX.Element | null;
|
|
10
|
+
//# sourceMappingURL=billing-promotion-code-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-promotion-code-input.d.ts","sourceRoot":"","sources":["../../../../src/components/billing/billing-promotion-code-input.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAA4B,MAAM,OAAO,CAAC;AAejD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAI3E,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,YAAY,GACb,EAAE,uBAAuB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAiHpD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* PromotionCodeInput (Preset)
|
|
4
|
+
*
|
|
5
|
+
* Coupon/promo code entry field for the checkout flow.
|
|
6
|
+
* Validates the code and shows success/error states.
|
|
7
|
+
*/
|
|
8
|
+
import { useMemo, useState } from 'react';
|
|
9
|
+
import { FrontendComponentType, UIBehavior, IndicatorVariant, ButtonSize } from '@wildo-ai/presets-components-models';
|
|
10
|
+
import { cn, useI18n, useIconRegistry, StandardIconReference, IconSize, useUI, Button, ButtonVariants_Variant, InputRoot, Alert, AlertDescription, } from '@wildo-ai/saas-frontend-lib';
|
|
11
|
+
// ── Component ───────────────────────────────────────────────────────
|
|
12
|
+
export function PromotionCodeInput({ onApply, onRemove, appliedCode, disabled, billingError, }) {
|
|
13
|
+
const { getRecipe } = useUI();
|
|
14
|
+
const { makeTrComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_BILLING_PROMOTION_CODE_INPUT });
|
|
15
|
+
const { renderIcon } = useIconRegistry();
|
|
16
|
+
const indicatorSuccessRecipe = getRecipe(UIBehavior.INDICATOR, IndicatorVariant.SUCCESS);
|
|
17
|
+
const t = useMemo(() => makeTrComponent(FrontendComponentType.LOW_LEVEL_BILLING_PROMOTION_CODE_INPUT), [makeTrComponent]);
|
|
18
|
+
const [inputValue, setInputValue] = useState('');
|
|
19
|
+
const [isApplying, setIsApplying] = useState(false);
|
|
20
|
+
const [error, setError] = useState(null);
|
|
21
|
+
const handleApply = async () => {
|
|
22
|
+
if (!inputValue.trim())
|
|
23
|
+
return;
|
|
24
|
+
setIsApplying(true);
|
|
25
|
+
setError(null);
|
|
26
|
+
try {
|
|
27
|
+
const success = await onApply(inputValue.trim());
|
|
28
|
+
if (!success) {
|
|
29
|
+
setError(t('invalid'));
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
setInputValue('');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
const message = err instanceof Error ? err.message : undefined;
|
|
37
|
+
setError(message || t('invalid'));
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
setIsApplying(false);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const handleRemove = () => {
|
|
44
|
+
setError(null);
|
|
45
|
+
setInputValue('');
|
|
46
|
+
onRemove?.();
|
|
47
|
+
};
|
|
48
|
+
const handleKeyDown = (e) => {
|
|
49
|
+
if (e.key === 'Enter') {
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
void handleApply();
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
if (billingError) {
|
|
55
|
+
return (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: billingError }) }));
|
|
56
|
+
}
|
|
57
|
+
if (!isReady)
|
|
58
|
+
return null;
|
|
59
|
+
if (appliedCode) {
|
|
60
|
+
return (_jsxs("div", { className: cn("flex items-center gap-2 px-3 py-2", indicatorSuccessRecipe.base), children: [renderIcon(StandardIconReference.CHECK, { size: IconSize.SM }), _jsxs("span", { className: "flex-1 text-sm font-medium", children: [appliedCode, " \u2014 ", t('applied')] }), onRemove && (_jsx(Button, { variant: ButtonVariants_Variant.GHOST, size: ButtonSize.SM, onClick: handleRemove, children: t('remove') }))] }));
|
|
61
|
+
}
|
|
62
|
+
const inputId = 'billing-promo-code-input';
|
|
63
|
+
return (_jsxs("div", { className: "space-y-1", children: [_jsxs("div", { className: "flex gap-2", children: [_jsx(InputRoot, { id: inputId, type: "text", className: "flex-1", placeholder: t('placeholder'), value: inputValue, onChange: e => {
|
|
64
|
+
setInputValue(e.target.value);
|
|
65
|
+
setError(null);
|
|
66
|
+
}, onKeyDown: handleKeyDown, disabled: disabled || isApplying, "aria-label": t('placeholder'), "aria-invalid": error != null, "aria-describedby": error ? `${inputId}-error` : undefined }), _jsx(Button, { variant: ButtonVariants_Variant.SECONDARY, onClick: handleApply, disabled: disabled || isApplying || !inputValue.trim(), children: t('apply') })] }), error && (_jsx("p", { id: `${inputId}-error`, className: "text-xs text-destructive", role: "alert", children: error }))] }));
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=billing-promotion-code-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-promotion-code-input.js","sourceRoot":"","sources":["../../../../src/components/billing/billing-promotion-code-input.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SubscriptionStatus (Preset)
|
|
3
|
+
*
|
|
4
|
+
* Displays current subscription state: plan name, status badge,
|
|
5
|
+
* period dates, and a "Manage billing" link to the Customer Portal.
|
|
6
|
+
*
|
|
7
|
+
* Formatting: Uses useI18n() for locale-aware formatting
|
|
8
|
+
* of dates and monetary amounts, respecting user/org regional preferences.
|
|
9
|
+
*/
|
|
10
|
+
import React from 'react';
|
|
11
|
+
import type { SubscriptionStatusProps } from '@wildo-ai/saas-frontend-lib';
|
|
12
|
+
export declare function SubscriptionStatus({ status, planName, currentPeriodEnd, cancelAtPeriodEnd, trialEnd, nextPayment, onManageBilling, isLoading, error, }: SubscriptionStatusProps): React.JSX.Element | null;
|
|
13
|
+
//# sourceMappingURL=billing-subscription-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-subscription-status.d.ts","sourceRoot":"","sources":["../../../../src/components/billing/billing-subscription-status.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAA+B,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAoC3E,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,eAAe,EACf,SAAS,EACT,KAAK,GACN,EAAE,uBAAuB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAiIpD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* SubscriptionStatus (Preset)
|
|
4
|
+
*
|
|
5
|
+
* Displays current subscription state: plan name, status badge,
|
|
6
|
+
* period dates, and a "Manage billing" link to the Customer Portal.
|
|
7
|
+
*
|
|
8
|
+
* Formatting: Uses useI18n() for locale-aware formatting
|
|
9
|
+
* of dates and monetary amounts, respecting user/org regional preferences.
|
|
10
|
+
*/
|
|
11
|
+
import { useMemo, useCallback } from 'react';
|
|
12
|
+
import { FrontendComponentType, UIBehavior, SurfaceVariant, IndicatorVariant, TypographyVariant } from '@wildo-ai/presets-components-models';
|
|
13
|
+
import { cn, useI18n, useIconRegistry, StandardIconReference, IconSize, useUI, Button, ButtonVariants_Variant, Skeleton, Alert, AlertDescription, } from '@wildo-ai/saas-frontend-lib';
|
|
14
|
+
import { useFormatMoney } from './billing-format.utils.js';
|
|
15
|
+
const STATUS_BADGE_CONFIG = {
|
|
16
|
+
active: { labelKey: 'activeBadge', indicatorVariant: IndicatorVariant.SUCCESS },
|
|
17
|
+
trialing: { labelKey: 'trialBadge', indicatorVariant: IndicatorVariant.INFO },
|
|
18
|
+
past_due: { labelKey: 'pastDueBadge', indicatorVariant: IndicatorVariant.WARNING },
|
|
19
|
+
canceled: { labelKey: 'cancelledBadge', indicatorVariant: IndicatorVariant.ERROR },
|
|
20
|
+
incomplete: { labelKey: 'incompleteBadge', indicatorVariant: IndicatorVariant.NEUTRAL },
|
|
21
|
+
incomplete_expired: { labelKey: 'incompleteBadge', indicatorVariant: IndicatorVariant.NEUTRAL },
|
|
22
|
+
unpaid: { labelKey: 'pastDueBadge', indicatorVariant: IndicatorVariant.WARNING },
|
|
23
|
+
paused: { labelKey: 'incompleteBadge', indicatorVariant: IndicatorVariant.NEUTRAL },
|
|
24
|
+
};
|
|
25
|
+
// ── Component ───────────────────────────────────────────────────────
|
|
26
|
+
export function SubscriptionStatus({ status, planName, currentPeriodEnd, cancelAtPeriodEnd, trialEnd, nextPayment, onManageBilling, isLoading, error, }) {
|
|
27
|
+
const { getRecipe } = useUI();
|
|
28
|
+
const { makeTrComponent, formatDate, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_BILLING_SUBSCRIPTION_STATUS });
|
|
29
|
+
const { renderIcon } = useIconRegistry();
|
|
30
|
+
const formatMoney = useFormatMoney();
|
|
31
|
+
const surfaceRecipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.BASE);
|
|
32
|
+
const headingRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.HEADING);
|
|
33
|
+
const descriptionRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
|
|
34
|
+
const t = useMemo(() => makeTrComponent(FrontendComponentType.LOW_LEVEL_BILLING_SUBSCRIPTION_STATUS), [makeTrComponent]);
|
|
35
|
+
const badgeConfig = status ? STATUS_BADGE_CONFIG[status] ?? STATUS_BADGE_CONFIG.incomplete : null;
|
|
36
|
+
const formatDisplayDate = useCallback((date) => {
|
|
37
|
+
if (!date)
|
|
38
|
+
return '';
|
|
39
|
+
return formatDate(date);
|
|
40
|
+
}, [formatDate]);
|
|
41
|
+
if (error) {
|
|
42
|
+
return (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: error }) }));
|
|
43
|
+
}
|
|
44
|
+
if (isLoading) {
|
|
45
|
+
return (_jsxs("div", { className: cn("p-card", surfaceRecipe.base), children: [_jsxs("div", { className: "flex items-center justify-between mb-section", children: [_jsx(Skeleton, { className: "h-5 w-36" }), _jsx(Skeleton, { className: "h-5 w-16 rounded-full" })] }), _jsx(Skeleton, { className: "h-7 w-48 mb-section" }), _jsxs("div", { className: "space-y-element mb-section", children: [_jsx(Skeleton, { className: "h-4 w-44" }), _jsx(Skeleton, { className: "h-4 w-52" })] }), _jsx(Skeleton, { className: "h-10 w-36 rounded-md" })] }));
|
|
46
|
+
}
|
|
47
|
+
if (!isReady)
|
|
48
|
+
return null;
|
|
49
|
+
const badgeRecipe = badgeConfig ? getRecipe(UIBehavior.INDICATOR, badgeConfig.indicatorVariant) : null;
|
|
50
|
+
return (_jsxs("div", { className: cn("p-card", surfaceRecipe.base), children: [_jsxs("div", { className: "flex items-center justify-between mb-section", children: [_jsx("h3", { className: cn(headingRecipe.base, headingRecipe.sizes?.md), children: t('title') }), badgeConfig && badgeRecipe && (_jsx("span", { className: cn("inline-flex items-center px-2.5 py-0.5", badgeRecipe.base, "rounded-full"), children: t(badgeConfig.labelKey) }))] }), planName && (_jsx("div", { className: "mb-section", children: _jsx("p", { className: cn(headingRecipe.base, "text-2xl"), children: t('planName', { name: planName }) }) })), _jsxs("div", { className: cn("space-y-element mb-section", descriptionRecipe.base), children: [status === 'trialing' && trialEnd && (_jsxs("div", { className: "flex items-center gap-2", children: [renderIcon(StandardIconReference.CALENDAR, { size: IconSize.SM }), _jsxs("span", { children: [t('trialEndsOn'), " ", formatDisplayDate(trialEnd)] })] })), currentPeriodEnd && (_jsxs("div", { className: "flex items-center gap-2", children: [renderIcon(StandardIconReference.CALENDAR, { size: IconSize.SM }), _jsx("span", { children: cancelAtPeriodEnd
|
|
51
|
+
? `${t('endsOn')} ${formatDisplayDate(currentPeriodEnd)}`
|
|
52
|
+
: `${t('renewsOn')} ${formatDisplayDate(currentPeriodEnd)}` })] })), cancelAtPeriodEnd && (_jsxs("div", { className: "flex items-center gap-2 text-warning", children: [renderIcon(StandardIconReference.WARNING, { size: IconSize.SM }), _jsx("span", { children: t('cancelAtPeriodEnd') })] })), nextPayment && currentPeriodEnd && !cancelAtPeriodEnd && (_jsxs("div", { className: "flex items-center gap-2", children: [renderIcon(StandardIconReference.CREDIT_CARD, { size: IconSize.SM }), _jsx("span", { children: t('nextPayment', {
|
|
53
|
+
amount: formatMoney(nextPayment),
|
|
54
|
+
currency: nextPayment.currency,
|
|
55
|
+
date: formatDisplayDate(currentPeriodEnd),
|
|
56
|
+
}) })] }))] }), onManageBilling && (_jsxs(Button, { variant: ButtonVariants_Variant.SECONDARY, onClick: onManageBilling, children: [renderIcon(StandardIconReference.EXTERNAL_LINK, { size: IconSize.SM }), t('manageBilling')] }))] }));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=billing-subscription-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-subscription-status.js","sourceRoot":"","sources":["../../../../src/components/billing/billing-subscription-status.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UsageDashboard (Preset)
|
|
3
|
+
*
|
|
4
|
+
* Displays usage/consumption overview for metered products and credit pool balances.
|
|
5
|
+
* Reads from UsageSummary data provided by BillingContext.
|
|
6
|
+
*
|
|
7
|
+
* Formatting: Uses useI18n() for locale-aware formatting
|
|
8
|
+
* of numbers, respecting user/org regional preferences.
|
|
9
|
+
*/
|
|
10
|
+
import React from 'react';
|
|
11
|
+
import type { UsageDashboardProps } from '@wildo-ai/saas-frontend-lib';
|
|
12
|
+
export declare function UsageDashboard({ products, creditPools, onTopUp, isLoading, error, }: UsageDashboardProps): React.JSX.Element | null;
|
|
13
|
+
//# sourceMappingURL=billing-usage-dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-usage-dashboard.d.ts","sourceRoot":"","sources":["../../../../src/components/billing/billing-usage-dashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAevC,OAAO,KAAK,EAAmD,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAIxH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,KAAK,GACN,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA+KhD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* UsageDashboard (Preset)
|
|
4
|
+
*
|
|
5
|
+
* Displays usage/consumption overview for metered products and credit pool balances.
|
|
6
|
+
* Reads from UsageSummary data provided by BillingContext.
|
|
7
|
+
*
|
|
8
|
+
* Formatting: Uses useI18n() for locale-aware formatting
|
|
9
|
+
* of numbers, respecting user/org regional preferences.
|
|
10
|
+
*/
|
|
11
|
+
import { useMemo } from 'react';
|
|
12
|
+
import { FrontendComponentType, UIBehavior, SurfaceVariant, TypographyVariant, ButtonSize } from '@wildo-ai/presets-components-models';
|
|
13
|
+
import { cn, useI18n, useIconRegistry, StandardIconReference, IconSize, useUI, Button, ButtonVariants_Variant, Skeleton, Alert, AlertDescription, } from '@wildo-ai/saas-frontend-lib';
|
|
14
|
+
// ── Component ───────────────────────────────────────────────────────
|
|
15
|
+
export function UsageDashboard({ products, creditPools, onTopUp, isLoading, error, }) {
|
|
16
|
+
const { getRecipe } = useUI();
|
|
17
|
+
const { makeTrComponent, formatNumber, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_BILLING_USAGE_DASHBOARD });
|
|
18
|
+
const { renderIcon } = useIconRegistry();
|
|
19
|
+
const surfaceRecipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.BASE);
|
|
20
|
+
const headingRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.HEADING);
|
|
21
|
+
const descriptionRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
|
|
22
|
+
const t = useMemo(() => makeTrComponent(FrontendComponentType.LOW_LEVEL_BILLING_USAGE_DASHBOARD), [makeTrComponent]);
|
|
23
|
+
if (error) {
|
|
24
|
+
return (_jsx(Alert, { variant: "destructive", children: _jsx(AlertDescription, { children: error }) }));
|
|
25
|
+
}
|
|
26
|
+
if (isLoading) {
|
|
27
|
+
return (_jsxs("div", { className: "space-y-section", children: [_jsx(Skeleton, { className: "h-5 w-36" }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-card", children: [0, 1].map(i => (_jsxs("div", { className: cn("p-card", surfaceRecipe.base), children: [_jsx(Skeleton, { className: "h-4 w-28 mb-element" }), _jsx(Skeleton, { className: "h-7 w-20 mb-element" }), _jsx(Skeleton, { className: "h-2 w-full rounded-full" })] }, i))) })] }));
|
|
28
|
+
}
|
|
29
|
+
if (!isReady)
|
|
30
|
+
return null;
|
|
31
|
+
const isEmpty = products.length === 0 && creditPools.length === 0;
|
|
32
|
+
return (_jsxs("div", { className: "space-y-section", children: [_jsx("h3", { className: cn(headingRecipe.base, headingRecipe.sizes?.md), children: t('title') }), isEmpty && (_jsx("div", { className: cn("p-card text-center", surfaceRecipe.base), children: _jsx("p", { className: descriptionRecipe.base, children: t('noUsageData') }) })), products.length > 0 && (_jsxs("div", { className: "space-y-card", children: [_jsx("p", { className: cn(descriptionRecipe.base, "font-medium"), children: t('currentPeriod') }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-card", children: products.map(product => {
|
|
33
|
+
const usagePercentage = product.limit
|
|
34
|
+
? Math.min(100, Math.round((product.currentPeriodUsage / product.limit) * 100))
|
|
35
|
+
: null;
|
|
36
|
+
const trend = product.previousPeriodUsage != null && product.previousPeriodUsage > 0
|
|
37
|
+
? Math.round(((product.currentPeriodUsage - product.previousPeriodUsage) / product.previousPeriodUsage) * 100)
|
|
38
|
+
: null;
|
|
39
|
+
return (_jsxs("div", { className: cn("p-card", surfaceRecipe.base), children: [_jsxs("div", { className: "flex items-center justify-between mb-element", children: [_jsx("h4", { className: cn(descriptionRecipe.base, "font-medium text-foreground"), children: product.productName }), trend !== null && (_jsx("span", { className: cn("text-xs font-medium", trend >= 0 ? 'text-success' : 'text-destructive'), children: t('trendVsPrevious', { percentage: `${trend >= 0 ? '+' : ''}${trend}%` }) }))] }), _jsx("div", { className: cn(headingRecipe.base, "text-2xl mb-element"), children: product.limit
|
|
40
|
+
? t('usageOf', { current: formatNumber(product.currentPeriodUsage), limit: formatNumber(product.limit) })
|
|
41
|
+
: formatNumber(product.currentPeriodUsage) }), usagePercentage !== null && (_jsx("div", { className: "h-2 bg-muted-foreground/20 rounded-full overflow-hidden", role: "progressbar", "aria-valuenow": product.currentPeriodUsage, "aria-valuemin": 0, "aria-valuemax": product.limit ?? 100, "aria-label": t('productUsageAriaLabel', { product: product.productName, current: formatNumber(product.currentPeriodUsage), limit: formatNumber(product.limit ?? 0) }), children: _jsx("div", { className: cn("h-full rounded-full duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-default)] transition-[width] motion-reduce:transition-none", usagePercentage >= 100 ? 'bg-destructive' : usagePercentage >= 80 ? 'bg-warning' : 'bg-primary'), style: { width: `${usagePercentage}%` } }) }))] }, product.productKey));
|
|
42
|
+
}) })] })), creditPools.length > 0 && (_jsxs("div", { className: "space-y-card", children: [_jsx("p", { className: cn(descriptionRecipe.base, "font-medium"), children: t('creditsTitle') }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-card", children: creditPools.map(pool => {
|
|
43
|
+
const usagePercentage = pool.totalPurchased > 0
|
|
44
|
+
? Math.round((pool.totalConsumed / pool.totalPurchased) * 100)
|
|
45
|
+
: 0;
|
|
46
|
+
return (_jsxs("div", { className: cn("p-card", surfaceRecipe.base), children: [_jsx("h4", { className: cn(descriptionRecipe.base, "font-medium text-foreground mb-section"), children: pool.poolName }), _jsxs("div", { className: "space-y-element", children: [_jsxs("div", { className: cn("flex justify-between", descriptionRecipe.base), children: [_jsx("span", { className: descriptionRecipe.base, children: t('availableCredits') }), _jsx("span", { className: cn("font-semibold text-foreground"), children: formatNumber(pool.available) })] }), _jsxs("div", { className: cn("flex justify-between", descriptionRecipe.base), children: [_jsx("span", { className: descriptionRecipe.base, children: t('totalPurchased') }), _jsx("span", { className: "text-foreground", children: formatNumber(pool.totalPurchased) })] }), _jsxs("div", { className: cn("flex justify-between", descriptionRecipe.base), children: [_jsx("span", { className: descriptionRecipe.base, children: t('totalConsumed') }), _jsx("span", { className: "text-foreground", children: formatNumber(pool.totalConsumed) })] })] }), pool.totalPurchased > 0 && (_jsx("div", { className: "mt-element h-2 bg-muted-foreground/20 rounded-full overflow-hidden", role: "progressbar", "aria-valuenow": pool.totalConsumed, "aria-valuemin": 0, "aria-valuemax": pool.totalPurchased, "aria-label": t('creditPoolAriaLabel', { pool: pool.poolName, consumed: formatNumber(pool.totalConsumed), total: formatNumber(pool.totalPurchased) }), children: _jsx("div", { className: cn("h-full rounded-full duration-[var(--motion-duration-fast)] ease-[var(--motion-easing-default)] transition-[width] motion-reduce:transition-none", usagePercentage >= 90 ? 'bg-destructive' : usagePercentage >= 70 ? 'bg-warning' : 'bg-primary'), style: { width: `${usagePercentage}%` } }) })), onTopUp && (_jsxs(Button, { variant: ButtonVariants_Variant.SECONDARY, size: ButtonSize.SM, className: "mt-section w-full", onClick: () => onTopUp(pool.poolKey), children: [renderIcon(StandardIconReference.PLUS, { size: IconSize.SM }), t('topUpCredits')] }))] }, pool.poolKey));
|
|
47
|
+
}) })] }))] }));
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=billing-usage-dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-usage-dashboard.js","sourceRoot":"","sources":["../../../../src/components/billing/billing-usage-dashboard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/avatar.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAwDjE,eAAO,MAAM,MAAM,gBAAqG,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
4
|
+
import { createCompoundPreset, cn, useUI } from "@wildo-ai/saas-frontend-lib";
|
|
5
|
+
import { UIBehavior, SurfaceVariant } from "@wildo-ai/presets-components-models";
|
|
6
|
+
function AvatarRoot({ className, ...props }) {
|
|
7
|
+
return (_jsx(AvatarPrimitive.Root, { "data-slot": "avatar", className: cn(
|
|
8
|
+
// Structure
|
|
9
|
+
"relative flex size-8 shrink-0 overflow-hidden rounded-full", className), ...props }));
|
|
10
|
+
}
|
|
11
|
+
function AvatarImage({ className, ...props }) {
|
|
12
|
+
return (_jsx(AvatarPrimitive.Image, { "data-slot": "avatar-image", className: cn("aspect-square size-full", className), ...props }));
|
|
13
|
+
}
|
|
14
|
+
function AvatarFallback({ className, ...props }) {
|
|
15
|
+
const { getRecipe } = useUI();
|
|
16
|
+
const recipe = getRecipe(UIBehavior.SURFACE, SurfaceVariant.INSET);
|
|
17
|
+
return (_jsx(AvatarPrimitive.Fallback, { "data-slot": "avatar-fallback", className: cn(
|
|
18
|
+
// Structure
|
|
19
|
+
"flex size-full items-center justify-center rounded-full",
|
|
20
|
+
// Style from SURFACE.INSET recipe (muted background)
|
|
21
|
+
recipe.base, className), ...props }));
|
|
22
|
+
}
|
|
23
|
+
export const Avatar = createCompoundPreset(AvatarRoot, { Image: AvatarImage, Fallback: AvatarFallback });
|
|
24
|
+
//# sourceMappingURL=avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../../src/components/data-display/avatar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAGzD,OAAO,EAAE,oBAAoB,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAEhF,SAAS,UAAU,CAAC,EAClB,SAAS,EACT,GAAG,KAAK,EAC0C;IAClD,OAAO,CACL,KAAC,eAAe,CAAC,IAAI,iBACT,QAAQ,EAClB,SAAS,EAAE,EAAE;QACX,YAAY;QACZ,4DAA4D,EAC5D,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EAC2C;IACnD,OAAO,CACL,KAAC,eAAe,CAAC,KAAK,iBACV,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,KAC/C,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EAC8C;IACtD,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,CAAA;IAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;IAElE,OAAO,CACL,KAAC,eAAe,CAAC,QAAQ,iBACb,iBAAiB,EAC3B,SAAS,EAAE,EAAE;QACX,YAAY;QACZ,yDAAyD;QACzD,qDAAqD;QACrD,MAAM,CAAC,IAAI,EACX,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,oBAAoB,CAAiB,UAAU,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../../src/components/data-display/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAyB,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAkBpF,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAmB,EACnB,OAAe,EACf,GAAG,KAAK,EACT,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAoBhC;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
|