@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,80 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* DisplayFieldEnum Component
|
|
5
|
+
*
|
|
6
|
+
* Displays an enum value based on the enum UI decorator.
|
|
7
|
+
* Supports different display modes: text, badge, icon, card
|
|
8
|
+
*/
|
|
9
|
+
import * as React from "react";
|
|
10
|
+
import { cn, useI18n, useIconRegistry, IconSize, ICON_SIZE_MAP, Text, Badge, Card } from "@wildo-ai/saas-frontend-lib";
|
|
11
|
+
import { FrontendComponentType } from "@wildo-ai/presets-components-models";
|
|
12
|
+
import { EnumDisplayMode, getEnumUI } from "@wildo-ai/zod-decorators";
|
|
13
|
+
/**
|
|
14
|
+
* DisplayFieldEnum component
|
|
15
|
+
*
|
|
16
|
+
* Renders an enum value according to the display policy
|
|
17
|
+
*/
|
|
18
|
+
function DisplayFieldEnum({ schema, value, className, labels, }) {
|
|
19
|
+
const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_FORM_FIELD });
|
|
20
|
+
const { renderIcon } = useIconRegistry();
|
|
21
|
+
const enumUI = getEnumUI(schema);
|
|
22
|
+
const displayMode = enumUI?.display?.displayMode ?? EnumDisplayMode.TEXT;
|
|
23
|
+
const resolveColor = (enumValue, fallback) => {
|
|
24
|
+
return (enumUI?.values?.[enumValue]?.color
|
|
25
|
+
?? enumUI?.defaultColor
|
|
26
|
+
?? fallback);
|
|
27
|
+
};
|
|
28
|
+
const resolveIcon = (enumValue) => {
|
|
29
|
+
return (enumUI?.values?.[enumValue]?.icon
|
|
30
|
+
?? enumUI?.defaultIcon);
|
|
31
|
+
};
|
|
32
|
+
// Get display label for the value
|
|
33
|
+
const displayLabel = value ? (labels?.[value] ?? value) : null;
|
|
34
|
+
/**
|
|
35
|
+
* Render an `IconLike` — dispatches between string refs (via icon registry)
|
|
36
|
+
* and direct React component refs (via createElement).
|
|
37
|
+
*/
|
|
38
|
+
const renderIconLike = (icon, size, className) => {
|
|
39
|
+
if (typeof icon === 'string') {
|
|
40
|
+
return renderIcon(icon, { size, className });
|
|
41
|
+
}
|
|
42
|
+
const sizeInPixels = ICON_SIZE_MAP[size];
|
|
43
|
+
return React.createElement(icon, { size: sizeInPixels, className });
|
|
44
|
+
};
|
|
45
|
+
// Render the value content
|
|
46
|
+
const renderValue = () => {
|
|
47
|
+
// Handle null/undefined
|
|
48
|
+
if (value === null || value === undefined || value === '' || displayLabel === null) {
|
|
49
|
+
return _jsxs(_Fragment, { children: [_jsx(Text, { className: "text-muted-foreground italic", "aria-hidden": "true", children: "\u2014" }), _jsx("span", { className: "sr-only", children: tComponent(FrontendComponentType.LOW_LEVEL_FORM_FIELD, 'noValue') })] });
|
|
50
|
+
}
|
|
51
|
+
// Render based on display mode
|
|
52
|
+
switch (displayMode) {
|
|
53
|
+
case EnumDisplayMode.TEXT:
|
|
54
|
+
return _jsx(Text, { children: displayLabel });
|
|
55
|
+
case EnumDisplayMode.BADGE: {
|
|
56
|
+
const variant = resolveColor(value, 'secondary');
|
|
57
|
+
const icon = resolveIcon(value);
|
|
58
|
+
return (_jsxs(Badge, { variant: variant, className: cn(icon && 'inline-flex items-center gap-item-xs'), children: [icon ? renderIconLike(icon, IconSize.SM) : null, displayLabel] }));
|
|
59
|
+
}
|
|
60
|
+
case EnumDisplayMode.ICON: {
|
|
61
|
+
const iconVariant = resolveColor(value, 'outline');
|
|
62
|
+
const icon = resolveIcon(value);
|
|
63
|
+
if (icon) {
|
|
64
|
+
return (_jsxs(Badge, { variant: iconVariant, className: "gap-item-xs", children: [renderIconLike(icon, IconSize.SM), displayLabel] }));
|
|
65
|
+
}
|
|
66
|
+
return (_jsxs("span", { className: "inline-flex items-center gap-item-xs", children: [_jsx(Badge, { variant: iconVariant, className: "h-2.5 w-2.5 rounded-full p-0", "aria-hidden": "true" }), _jsx(Text, { children: displayLabel })] }));
|
|
67
|
+
}
|
|
68
|
+
case EnumDisplayMode.CARD:
|
|
69
|
+
return (_jsx(Card, { className: "inline-flex px-card-sm py-1.5", children: _jsx(Text, { className: "text-sm font-medium", children: displayLabel }) }));
|
|
70
|
+
default:
|
|
71
|
+
return _jsx(Text, { children: displayLabel });
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
// Label/description rendering is handled by the parent DisplayField (FIELD-01)
|
|
75
|
+
return _jsx("div", { className: className, children: renderValue() });
|
|
76
|
+
}
|
|
77
|
+
;
|
|
78
|
+
DisplayFieldEnum.displayName = "DisplayFieldEnum";
|
|
79
|
+
export { DisplayFieldEnum };
|
|
80
|
+
//# sourceMappingURL=display-field-enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-enum.js","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-enum.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DisplayFieldFileAudio Component
|
|
3
|
+
*
|
|
4
|
+
* Nature-specific display for audio files.
|
|
5
|
+
* Renders a compact HTML5 audio player with native controls
|
|
6
|
+
* and file metadata.
|
|
7
|
+
*
|
|
8
|
+
* Resolved via the component registry (LOW_LEVEL_DISPLAY_FIELD_FILE_AUDIO).
|
|
9
|
+
*/
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
import type { DisplayFieldFileAudioProps } from '@wildo-ai/saas-frontend-lib';
|
|
12
|
+
declare function DisplayFieldFileAudio({ metadata, fileId, className, showDownload, showSize, }: DisplayFieldFileAudioProps): React.JSX.Element;
|
|
13
|
+
export { DisplayFieldFileAudio };
|
|
14
|
+
//# sourceMappingURL=display-field-file-audio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-file-audio.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-file-audio.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAM7E,iBAAS,qBAAqB,CAAC,EAC7B,QAAQ,EACR,MAAM,EACN,SAAS,EACT,YAAmB,EACnB,QAAe,GAChB,EAAE,0BAA0B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmEhD;AAID,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* DisplayFieldFileAudio Component
|
|
5
|
+
*
|
|
6
|
+
* Nature-specific display for audio files.
|
|
7
|
+
* Renders a compact HTML5 audio player with native controls
|
|
8
|
+
* and file metadata.
|
|
9
|
+
*
|
|
10
|
+
* Resolved via the component registry (LOW_LEVEL_DISPLAY_FIELD_FILE_AUDIO).
|
|
11
|
+
*/
|
|
12
|
+
import * as React from "react";
|
|
13
|
+
import { Text, useIconRegistry, StandardIconReference, IconSize, useI18n } from "@wildo-ai/saas-frontend-lib";
|
|
14
|
+
import { FrontendComponentType } from "@wildo-ai/presets-components-models";
|
|
15
|
+
import { formatFileSize } from "@wildo-ai/zod-decorators";
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// COMPONENT
|
|
18
|
+
// =============================================================================
|
|
19
|
+
function DisplayFieldFileAudio({ metadata, fileId, className, showDownload = true, showSize = true, }) {
|
|
20
|
+
const { renderIcon } = useIconRegistry();
|
|
21
|
+
const { tComponent, isReady } = useI18n({ component: [FrontendComponentType.LOW_LEVEL_FORM_FIELD, FrontendComponentType.LOW_LEVEL_FORM_FIELD_FILE] });
|
|
22
|
+
const [audioError, setAudioError] = React.useState(false);
|
|
23
|
+
const audioUrl = metadata.url;
|
|
24
|
+
// No URL or audio failed — fallback to download card
|
|
25
|
+
if (audioError || !audioUrl) {
|
|
26
|
+
return (_jsxs("div", { className: `flex items-center gap-group p-card-sm rounded-md border bg-muted/30 ${className ?? ''}`, children: [_jsx("span", { "aria-hidden": "true", children: renderIcon(StandardIconReference.FILE_AUDIO, { size: IconSize.LG, className: "text-muted-foreground" }) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx(Text, { className: "font-medium truncate", children: metadata.filename }), _jsxs("div", { className: "flex items-center gap-group text-xs text-muted-foreground mt-0.5", children: [showSize && _jsx("span", { children: formatFileSize(metadata.size) }), metadata.extension && _jsx("span", { className: "uppercase", children: metadata.extension }), audioError && _jsx("span", { className: "text-destructive", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_AUDIO, 'audio_load_error') })] })] }), showDownload && audioUrl && (_jsx("a", { href: audioUrl, download: metadata.filename, className: "text-primary hover:underline text-sm shrink-0", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_AUDIO, 'download') }))] }));
|
|
27
|
+
}
|
|
28
|
+
return (_jsxs("div", { className: `flex items-center gap-group p-card-sm rounded-md border bg-muted/30 ${className ?? ''}`, children: [_jsx("span", { "aria-hidden": "true", children: renderIcon(StandardIconReference.FILE_AUDIO, { size: IconSize.LG, className: "text-muted-foreground" }) }), _jsxs("div", { className: "flex-1 min-w-0 space-y-item", children: [_jsxs("div", { className: "flex items-center gap-group", children: [_jsx(Text, { className: "font-medium truncate max-w-48", children: metadata.filename }), showSize && _jsx("span", { className: "text-xs text-muted-foreground", children: formatFileSize(metadata.size) }), metadata.extension && _jsx("span", { className: "text-xs text-muted-foreground uppercase", children: metadata.extension })] }), _jsxs("audio", { controls: true, preload: "metadata", className: "w-full h-8", onError: () => setAudioError(true), children: [_jsx("source", { src: audioUrl, type: metadata.mimeType }), tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_AUDIO, 'unsupported_format')] })] }), showDownload && (_jsx("a", { href: audioUrl, download: metadata.filename, className: "text-primary hover:underline text-sm shrink-0", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_AUDIO, 'download') }))] }));
|
|
29
|
+
}
|
|
30
|
+
;
|
|
31
|
+
DisplayFieldFileAudio.displayName = "DisplayFieldFileAudio";
|
|
32
|
+
export { DisplayFieldFileAudio };
|
|
33
|
+
//# sourceMappingURL=display-field-file-audio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-file-audio.js","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-file-audio.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DisplayFieldFileDocument Component
|
|
3
|
+
*
|
|
4
|
+
* Nature-specific display for document files (PDF, Office).
|
|
5
|
+
* - PDF: Embeds in an iframe using the browser's native PDF viewer.
|
|
6
|
+
* - Office docs: Enhanced file card with type-specific icon + download button.
|
|
7
|
+
*
|
|
8
|
+
* Resolved via the component registry (LOW_LEVEL_DISPLAY_FIELD_FILE_DOCUMENT).
|
|
9
|
+
*/
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
import type { DisplayFieldFileDocumentProps } from '@wildo-ai/saas-frontend-lib';
|
|
12
|
+
declare function DisplayFieldFileDocument({ metadata, fileId, className, showDownload, showSize, }: DisplayFieldFileDocumentProps): React.JSX.Element;
|
|
13
|
+
export { DisplayFieldFileDocument };
|
|
14
|
+
//# sourceMappingURL=display-field-file-document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-file-document.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-file-document.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAiChF,iBAAS,wBAAwB,CAAC,EAChC,QAAQ,EACR,MAAM,EACN,SAAS,EACT,YAAmB,EACnB,QAAe,GAChB,EAAE,6BAA6B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkEnD;AAID,OAAO,EAAE,wBAAwB,EAAE,CAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Text, useIconRegistry, StandardIconReference, IconSize, useI18n } from "@wildo-ai/saas-frontend-lib";
|
|
4
|
+
import { FrontendComponentType } from "@wildo-ai/presets-components-models";
|
|
5
|
+
import { formatFileSize } from "@wildo-ai/zod-decorators";
|
|
6
|
+
// =============================================================================
|
|
7
|
+
// HELPERS
|
|
8
|
+
// =============================================================================
|
|
9
|
+
/** Check if a MIME type is a PDF */
|
|
10
|
+
function isPdf(mimeType) {
|
|
11
|
+
return mimeType === 'application/pdf';
|
|
12
|
+
}
|
|
13
|
+
/** Get the appropriate icon for a document type */
|
|
14
|
+
function getDocumentIconRef(mimeType) {
|
|
15
|
+
if (isPdf(mimeType))
|
|
16
|
+
return StandardIconReference.FILE_TEXT;
|
|
17
|
+
if (mimeType.includes('spreadsheet') || mimeType.includes('excel'))
|
|
18
|
+
return StandardIconReference.FILE_SPREADSHEET;
|
|
19
|
+
if (mimeType.includes('presentation') || mimeType.includes('powerpoint'))
|
|
20
|
+
return StandardIconReference.FILE_PRESENTATION;
|
|
21
|
+
if (mimeType.includes('document') || mimeType.includes('word'))
|
|
22
|
+
return StandardIconReference.FILE_TEXT;
|
|
23
|
+
return StandardIconReference.FILE_TEXT;
|
|
24
|
+
}
|
|
25
|
+
/** Get a human-readable document type label */
|
|
26
|
+
function getDocumentTypeLabel(mimeType, extension) {
|
|
27
|
+
if (isPdf(mimeType))
|
|
28
|
+
return 'PDF';
|
|
29
|
+
if (mimeType.includes('spreadsheet') || mimeType.includes('excel'))
|
|
30
|
+
return extension?.toUpperCase() || 'Spreadsheet';
|
|
31
|
+
if (mimeType.includes('presentation') || mimeType.includes('powerpoint'))
|
|
32
|
+
return extension?.toUpperCase() || 'Presentation';
|
|
33
|
+
if (mimeType.includes('document') || mimeType.includes('word'))
|
|
34
|
+
return extension?.toUpperCase() || 'Document';
|
|
35
|
+
return extension?.toUpperCase() || 'Document';
|
|
36
|
+
}
|
|
37
|
+
// =============================================================================
|
|
38
|
+
// COMPONENT
|
|
39
|
+
// =============================================================================
|
|
40
|
+
function DisplayFieldFileDocument({ metadata, fileId, className, showDownload = true, showSize = true, }) {
|
|
41
|
+
const { renderIcon } = useIconRegistry();
|
|
42
|
+
const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_DOCUMENT });
|
|
43
|
+
const documentUrl = metadata.url;
|
|
44
|
+
const isPdfDocument = isPdf(metadata.mimeType);
|
|
45
|
+
const docIcon = getDocumentIconRef(metadata.mimeType);
|
|
46
|
+
const docTypeLabel = getDocumentTypeLabel(metadata.mimeType, metadata.extension);
|
|
47
|
+
// PDF with URL — render embedded viewer
|
|
48
|
+
if (isPdfDocument && documentUrl) {
|
|
49
|
+
return (_jsxs("div", { className: `space-y-item ${className ?? ''}`, children: [_jsx("div", { className: "w-full max-w-2xl rounded-md overflow-hidden border bg-muted/20", children: _jsx("iframe", { src: documentUrl, title: metadata.filename, className: "w-full h-96 border-0", loading: "lazy" }) }), _jsxs("div", { className: "flex items-center gap-group text-xs text-muted-foreground", children: [_jsx("span", { "aria-hidden": "true", children: renderIcon(docIcon, { size: IconSize.SM }) }), _jsx("span", { className: "font-medium text-foreground truncate max-w-48", children: metadata.filename }), _jsx("span", { className: "uppercase", children: docTypeLabel }), showSize && _jsx("span", { children: formatFileSize(metadata.size) }), showDownload && (_jsx("a", { href: documentUrl, download: metadata.filename, className: "text-primary hover:underline ms-auto shrink-0", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_DOCUMENT, 'download') }))] })] }));
|
|
50
|
+
}
|
|
51
|
+
// Non-PDF or no URL — enhanced file card with type-specific icon
|
|
52
|
+
return (_jsxs("div", { className: `flex items-center gap-group p-card-sm rounded-md border bg-muted/30 ${className ?? ''}`, children: [_jsx("span", { "aria-hidden": "true", children: renderIcon(docIcon, { size: IconSize.LG, className: "text-muted-foreground" }) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx(Text, { className: "font-medium truncate", children: metadata.filename }), _jsxs("div", { className: "flex items-center gap-group text-xs text-muted-foreground mt-0.5", children: [_jsx("span", { className: "uppercase", children: docTypeLabel }), showSize && _jsx("span", { children: formatFileSize(metadata.size) })] })] }), showDownload && documentUrl && (_jsx("a", { href: documentUrl, target: "_blank", rel: "noopener noreferrer", className: "text-primary hover:underline text-sm shrink-0", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_DOCUMENT, 'open_document') }))] }));
|
|
53
|
+
}
|
|
54
|
+
;
|
|
55
|
+
DisplayFieldFileDocument.displayName = "DisplayFieldFileDocument";
|
|
56
|
+
export { DisplayFieldFileDocument };
|
|
57
|
+
//# sourceMappingURL=display-field-file-document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-file-document.js","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-file-document.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DisplayFieldFileGallery Component
|
|
3
|
+
*
|
|
4
|
+
* Nature-specific display for multiple image files.
|
|
5
|
+
* Renders a thumbnail grid with click-to-enlarge lightbox
|
|
6
|
+
* and prev/next navigation.
|
|
7
|
+
*
|
|
8
|
+
* Used when: multiple: true + nature is IMAGE (or all files are images based on MIME).
|
|
9
|
+
* Non-image files in a mixed collection render as small icon cards within the grid.
|
|
10
|
+
*
|
|
11
|
+
* Resolved via the component registry (LOW_LEVEL_DISPLAY_FIELD_FILE_GALLERY).
|
|
12
|
+
*/
|
|
13
|
+
import * as React from "react";
|
|
14
|
+
import type { DisplayFieldFileGalleryProps } from '@wildo-ai/saas-frontend-lib';
|
|
15
|
+
declare function DisplayFieldFileGallery({ metadataList, fileIds, className, columns, showDownload, }: DisplayFieldFileGalleryProps): React.JSX.Element;
|
|
16
|
+
export { DisplayFieldFileGallery };
|
|
17
|
+
//# sourceMappingURL=display-field-file-gallery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-file-gallery.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-file-gallery.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA;AAc/E,iBAAS,uBAAuB,CAAC,EAC/B,YAAY,EACZ,OAAO,EACP,SAAS,EACT,OAAW,EACX,YAAmB,GACpB,EAAE,4BAA4B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgKlD;AAID,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* DisplayFieldFileGallery Component
|
|
5
|
+
*
|
|
6
|
+
* Nature-specific display for multiple image files.
|
|
7
|
+
* Renders a thumbnail grid with click-to-enlarge lightbox
|
|
8
|
+
* and prev/next navigation.
|
|
9
|
+
*
|
|
10
|
+
* Used when: multiple: true + nature is IMAGE (or all files are images based on MIME).
|
|
11
|
+
* Non-image files in a mixed collection render as small icon cards within the grid.
|
|
12
|
+
*
|
|
13
|
+
* Resolved via the component registry (LOW_LEVEL_DISPLAY_FIELD_FILE_GALLERY).
|
|
14
|
+
*/
|
|
15
|
+
import * as React from "react";
|
|
16
|
+
import { Text } from "@wildo-ai/saas-frontend-lib";
|
|
17
|
+
import { useIconRegistry, StandardIconReference, IconSize, useI18n } from "@wildo-ai/saas-frontend-lib";
|
|
18
|
+
import { FrontendComponentType } from "@wildo-ai/presets-components-models";
|
|
19
|
+
// =============================================================================
|
|
20
|
+
// HELPERS
|
|
21
|
+
// =============================================================================
|
|
22
|
+
function isImageMimeType(mimeType) {
|
|
23
|
+
return mimeType.startsWith('image/');
|
|
24
|
+
}
|
|
25
|
+
// =============================================================================
|
|
26
|
+
// COMPONENT
|
|
27
|
+
// =============================================================================
|
|
28
|
+
function DisplayFieldFileGallery({ metadataList, fileIds, className, columns = 4, showDownload = true, }) {
|
|
29
|
+
const { renderIcon } = useIconRegistry();
|
|
30
|
+
const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_GALLERY });
|
|
31
|
+
const [lightboxIndex, setLightboxIndex] = React.useState(null);
|
|
32
|
+
// Separate images from non-images for rendering strategy
|
|
33
|
+
const imageIndices = React.useMemo(() => metadataList.map((m, i) => isImageMimeType(m.mimeType) ? i : -1).filter(i => i >= 0), [metadataList]);
|
|
34
|
+
const imageCount = imageIndices.length;
|
|
35
|
+
// Navigate lightbox
|
|
36
|
+
const goToNext = React.useCallback(() => {
|
|
37
|
+
if (lightboxIndex === null)
|
|
38
|
+
return;
|
|
39
|
+
// Find next image index after current
|
|
40
|
+
const currentImagePos = imageIndices.indexOf(lightboxIndex);
|
|
41
|
+
if (currentImagePos < imageIndices.length - 1) {
|
|
42
|
+
setLightboxIndex(imageIndices[currentImagePos + 1]);
|
|
43
|
+
}
|
|
44
|
+
}, [lightboxIndex, imageIndices]);
|
|
45
|
+
const goToPrev = React.useCallback(() => {
|
|
46
|
+
if (lightboxIndex === null)
|
|
47
|
+
return;
|
|
48
|
+
const currentImagePos = imageIndices.indexOf(lightboxIndex);
|
|
49
|
+
if (currentImagePos > 0) {
|
|
50
|
+
setLightboxIndex(imageIndices[currentImagePos - 1]);
|
|
51
|
+
}
|
|
52
|
+
}, [lightboxIndex, imageIndices]);
|
|
53
|
+
// Keyboard navigation for lightbox
|
|
54
|
+
React.useEffect(() => {
|
|
55
|
+
if (lightboxIndex === null)
|
|
56
|
+
return;
|
|
57
|
+
const handleKeyDown = (e) => {
|
|
58
|
+
if (e.key === 'Escape')
|
|
59
|
+
setLightboxIndex(null);
|
|
60
|
+
if (e.key === 'ArrowRight')
|
|
61
|
+
goToNext();
|
|
62
|
+
if (e.key === 'ArrowLeft')
|
|
63
|
+
goToPrev();
|
|
64
|
+
};
|
|
65
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
66
|
+
return () => document.removeEventListener('keydown', handleKeyDown);
|
|
67
|
+
}, [lightboxIndex, goToNext, goToPrev]);
|
|
68
|
+
const gridClass = columns !== 4
|
|
69
|
+
? `grid gap-item`
|
|
70
|
+
: `grid gap-item grid-cols-2 sm:grid-cols-3 md:grid-cols-4`;
|
|
71
|
+
const gridStyle = columns !== 4
|
|
72
|
+
? { gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))` }
|
|
73
|
+
: undefined;
|
|
74
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: `space-y-item ${className ?? ''}`, children: [_jsxs(Text, { className: "text-xs text-muted-foreground", children: [tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_GALLERY, 'images_count', { count: imageCount }), metadataList.length > imageCount && ` + ${metadataList.length - imageCount} file${metadataList.length - imageCount !== 1 ? 's' : ''}`] }), _jsx("div", { className: gridClass, style: gridStyle, children: metadataList.map((meta, index) => {
|
|
75
|
+
const isImage = isImageMimeType(meta.mimeType);
|
|
76
|
+
const thumbUrl = meta.thumbnailUrl || meta.url;
|
|
77
|
+
if (isImage && thumbUrl) {
|
|
78
|
+
return (_jsx("button", { type: "button", onClick: () => setLightboxIndex(index), className: "aspect-square rounded-md overflow-hidden border bg-muted/20 cursor-zoom-in hover:ring-2 hover:ring-primary/30 transition-shadow focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "aria-label": `${meta.filename} — ${tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_GALLERY, 'click_to_browse')}`, children: _jsx("img", { src: thumbUrl, alt: meta.filename, className: "w-full h-full object-cover", loading: "lazy" }) }, fileIds[index]));
|
|
79
|
+
}
|
|
80
|
+
// Non-image file — render as icon card within grid
|
|
81
|
+
return (_jsxs("div", { className: "aspect-square rounded-md overflow-hidden border bg-muted/30 flex flex-col items-center justify-center gap-1 p-2", children: [_jsx("span", { "aria-hidden": "true", children: renderIcon(StandardIconReference.FILE, { size: IconSize.MD, className: "text-muted-foreground" }) }), _jsx(Text, { className: "text-xs text-muted-foreground truncate max-w-full text-center", children: meta.filename })] }, fileIds[index]));
|
|
82
|
+
}) })] }), lightboxIndex !== null && metadataList[lightboxIndex] && (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm", onClick: () => setLightboxIndex(null), role: "dialog", "aria-modal": "true", "aria-label": metadataList[lightboxIndex].filename, children: [_jsx("button", { type: "button", onClick: () => setLightboxIndex(null), className: "absolute top-4 right-4 text-white/80 hover:text-white z-10", "aria-label": tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_GALLERY, 'close'), children: renderIcon(StandardIconReference.CLOSE, { size: IconSize.LG, className: "text-white" }) }), imageIndices.indexOf(lightboxIndex) > 0 && (_jsx("button", { type: "button", onClick: (e) => { e.stopPropagation(); goToPrev(); }, className: "absolute left-4 top-1/2 -translate-y-1/2 text-white/80 hover:text-white z-10 p-2 rounded-full bg-black/40", "aria-label": tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_GALLERY, 'previous'), children: renderIcon(StandardIconReference.CHEVRON_LEFT, { size: IconSize.LG, className: "text-white" }) })), imageIndices.indexOf(lightboxIndex) < imageIndices.length - 1 && (_jsx("button", { type: "button", onClick: (e) => { e.stopPropagation(); goToNext(); }, className: "absolute right-4 top-1/2 -translate-y-1/2 text-white/80 hover:text-white z-10 p-2 rounded-full bg-black/40", "aria-label": tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_GALLERY, 'next'), children: renderIcon(StandardIconReference.CHEVRON_RIGHT, { size: IconSize.LG, className: "text-white" }) })), _jsx("img", { src: metadataList[lightboxIndex].url || metadataList[lightboxIndex].thumbnailUrl || '', alt: metadataList[lightboxIndex].filename, className: "max-w-[90vw] max-h-[85vh] object-contain rounded-md shadow-[var(--shadow-xl)]", onClick: (e) => e.stopPropagation() }), _jsxs("div", { className: "absolute bottom-4 left-1/2 -translate-x-1/2 text-white/80 text-sm bg-black/40 px-3 py-1 rounded-full", children: [imageIndices.indexOf(lightboxIndex) + 1, " / ", imageCount] })] }))] }));
|
|
83
|
+
}
|
|
84
|
+
;
|
|
85
|
+
DisplayFieldFileGallery.displayName = "DisplayFieldFileGallery";
|
|
86
|
+
export { DisplayFieldFileGallery };
|
|
87
|
+
//# sourceMappingURL=display-field-file-gallery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-file-gallery.js","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-file-gallery.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DisplayFieldFileImage Component
|
|
3
|
+
*
|
|
4
|
+
* Nature-specific display for image files.
|
|
5
|
+
* Renders a responsive preview with click-to-enlarge (lightbox),
|
|
6
|
+
* dimensions info, and download link.
|
|
7
|
+
*
|
|
8
|
+
* Resolved via the component registry (LOW_LEVEL_DISPLAY_FIELD_FILE_IMAGE),
|
|
9
|
+
* so custom apps can override with their own image display implementation.
|
|
10
|
+
*/
|
|
11
|
+
import * as React from "react";
|
|
12
|
+
import type { DisplayFieldFileImageProps } from '@wildo-ai/saas-frontend-lib';
|
|
13
|
+
declare function DisplayFieldFileImage({ metadata, fileId, className, showDownload, showSize, showDimensions, }: DisplayFieldFileImageProps): React.JSX.Element;
|
|
14
|
+
export { DisplayFieldFileImage };
|
|
15
|
+
//# sourceMappingURL=display-field-file-image.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-file-image.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-file-image.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAM7E,iBAAS,qBAAqB,CAAC,EAC7B,QAAQ,EACR,MAAM,EACN,SAAS,EACT,YAAmB,EACnB,QAAe,EACf,cAAqB,GACtB,EAAE,0BAA0B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAiHhD;AAID,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* DisplayFieldFileImage Component
|
|
5
|
+
*
|
|
6
|
+
* Nature-specific display for image files.
|
|
7
|
+
* Renders a responsive preview with click-to-enlarge (lightbox),
|
|
8
|
+
* dimensions info, and download link.
|
|
9
|
+
*
|
|
10
|
+
* Resolved via the component registry (LOW_LEVEL_DISPLAY_FIELD_FILE_IMAGE),
|
|
11
|
+
* so custom apps can override with their own image display implementation.
|
|
12
|
+
*/
|
|
13
|
+
import * as React from "react";
|
|
14
|
+
import { Text, useIconRegistry, StandardIconReference, IconSize, useI18n } from "@wildo-ai/saas-frontend-lib";
|
|
15
|
+
import { FrontendComponentType } from "@wildo-ai/presets-components-models";
|
|
16
|
+
import { formatFileSize } from "@wildo-ai/zod-decorators";
|
|
17
|
+
// =============================================================================
|
|
18
|
+
// COMPONENT
|
|
19
|
+
// =============================================================================
|
|
20
|
+
function DisplayFieldFileImage({ metadata, fileId, className, showDownload = true, showSize = true, showDimensions = true, }) {
|
|
21
|
+
const { renderIcon } = useIconRegistry();
|
|
22
|
+
const { tComponent, isReady } = useI18n({ component: [FrontendComponentType.LOW_LEVEL_FORM_FIELD, FrontendComponentType.LOW_LEVEL_FORM_FIELD_FILE] });
|
|
23
|
+
const [isLightboxOpen, setIsLightboxOpen] = React.useState(false);
|
|
24
|
+
const [imageError, setImageError] = React.useState(false);
|
|
25
|
+
// Close lightbox on Escape key — uses document listener to work regardless of focus
|
|
26
|
+
React.useEffect(() => {
|
|
27
|
+
if (!isLightboxOpen)
|
|
28
|
+
return;
|
|
29
|
+
const handleKeyDown = (e) => {
|
|
30
|
+
if (e.key === 'Escape')
|
|
31
|
+
setIsLightboxOpen(false);
|
|
32
|
+
};
|
|
33
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
34
|
+
return () => document.removeEventListener('keydown', handleKeyDown);
|
|
35
|
+
}, [isLightboxOpen]);
|
|
36
|
+
const imageUrl = metadata.url;
|
|
37
|
+
const thumbnailUrl = metadata.thumbnailUrl || metadata.url;
|
|
38
|
+
const hasDimensions = metadata.width !== undefined && metadata.height !== undefined;
|
|
39
|
+
// Image failed to load — fall back to file card with download link
|
|
40
|
+
if (imageError || !imageUrl) {
|
|
41
|
+
return (_jsxs("div", { className: `flex items-center gap-group p-card-sm rounded-md border bg-muted/30 ${className ?? ''}`, children: [_jsx("span", { "aria-hidden": "true", children: renderIcon(StandardIconReference.FILE_IMAGE, { size: IconSize.LG, className: "text-muted-foreground" }) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx(Text, { className: "font-medium truncate", children: metadata.filename }), _jsxs("div", { className: "flex items-center gap-group text-xs text-muted-foreground mt-0.5", children: [showSize && _jsx("span", { children: formatFileSize(metadata.size) }), hasDimensions && showDimensions && _jsxs("span", { children: [metadata.width, "\u00D7", metadata.height] }), imageError && _jsx("span", { className: "text-destructive", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_IMAGE, 'image_load_error') })] })] }), showDownload && imageUrl && (_jsx("a", { href: imageUrl, download: metadata.filename, className: "text-primary hover:underline text-sm shrink-0", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_IMAGE, 'download') }))] }));
|
|
42
|
+
}
|
|
43
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: `space-y-item ${className ?? ''}`, children: [_jsx("button", { type: "button", onClick: () => setIsLightboxOpen(true), className: "block w-full max-w-md cursor-zoom-in rounded-md overflow-hidden border bg-muted/20 hover:ring-2 hover:ring-primary/30 transition-shadow focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "aria-label": tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_IMAGE, 'click_to_enlarge'), children: _jsx("img", { src: thumbnailUrl, alt: metadata.filename, className: "w-full h-auto object-contain max-h-64", loading: "lazy", onError: () => setImageError(true) }) }), _jsxs("div", { className: "flex items-center gap-group text-xs text-muted-foreground", children: [_jsx("span", { className: "font-medium text-foreground truncate max-w-48", children: metadata.filename }), showSize && _jsx("span", { children: formatFileSize(metadata.size) }), hasDimensions && showDimensions && _jsxs("span", { children: [metadata.width, "\u00D7", metadata.height] }), metadata.extension && _jsx("span", { className: "uppercase", children: metadata.extension }), showDownload && (_jsx("a", { href: imageUrl, download: metadata.filename, className: "text-primary hover:underline ms-auto shrink-0", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_IMAGE, 'download') }))] })] }), isLightboxOpen && (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm", onClick: () => setIsLightboxOpen(false), role: "dialog", "aria-modal": "true", "aria-label": metadata.filename, children: [_jsx("button", { type: "button", onClick: () => setIsLightboxOpen(false), className: "absolute top-4 right-4 text-white/80 hover:text-white z-10", "aria-label": tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_IMAGE, 'close'), children: renderIcon(StandardIconReference.CLOSE, { size: IconSize.LG, className: "text-white" }) }), _jsx("img", { src: imageUrl, alt: metadata.filename, className: "max-w-[90vw] max-h-[90vh] object-contain rounded-md shadow-[var(--shadow-xl)]", onClick: (e) => e.stopPropagation() })] }))] }));
|
|
44
|
+
}
|
|
45
|
+
;
|
|
46
|
+
DisplayFieldFileImage.displayName = "DisplayFieldFileImage";
|
|
47
|
+
export { DisplayFieldFileImage };
|
|
48
|
+
//# sourceMappingURL=display-field-file-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-file-image.js","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-file-image.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DisplayFieldFileVideo Component
|
|
3
|
+
*
|
|
4
|
+
* Nature-specific display for video files.
|
|
5
|
+
* Renders an HTML5 video player with native controls,
|
|
6
|
+
* thumbnail poster, and download fallback for unsupported formats.
|
|
7
|
+
*
|
|
8
|
+
* Resolved via the component registry (LOW_LEVEL_DISPLAY_FIELD_FILE_VIDEO).
|
|
9
|
+
*/
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
import type { DisplayFieldFileVideoProps } from '@wildo-ai/saas-frontend-lib';
|
|
12
|
+
declare function DisplayFieldFileVideo({ metadata, fileId, className, showDownload, showSize, }: DisplayFieldFileVideoProps): React.JSX.Element;
|
|
13
|
+
export { DisplayFieldFileVideo };
|
|
14
|
+
//# sourceMappingURL=display-field-file-video.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-file-video.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-file-video.tsx"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAM7E,iBAAS,qBAAqB,CAAC,EAC7B,QAAQ,EACR,MAAM,EACN,SAAS,EACT,YAAmB,EACnB,QAAe,GAChB,EAAE,0BAA0B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgEhD;AAID,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* DisplayFieldFileVideo Component
|
|
5
|
+
*
|
|
6
|
+
* Nature-specific display for video files.
|
|
7
|
+
* Renders an HTML5 video player with native controls,
|
|
8
|
+
* thumbnail poster, and download fallback for unsupported formats.
|
|
9
|
+
*
|
|
10
|
+
* Resolved via the component registry (LOW_LEVEL_DISPLAY_FIELD_FILE_VIDEO).
|
|
11
|
+
*/
|
|
12
|
+
import * as React from "react";
|
|
13
|
+
import { Text, useIconRegistry, StandardIconReference, IconSize, useI18n } from "@wildo-ai/saas-frontend-lib";
|
|
14
|
+
import { FrontendComponentType } from "@wildo-ai/presets-components-models";
|
|
15
|
+
import { formatFileSize } from "@wildo-ai/zod-decorators";
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// COMPONENT
|
|
18
|
+
// =============================================================================
|
|
19
|
+
function DisplayFieldFileVideo({ metadata, fileId, className, showDownload = true, showSize = true, }) {
|
|
20
|
+
const { renderIcon } = useIconRegistry();
|
|
21
|
+
const { tComponent, isReady } = useI18n({ component: FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_VIDEO });
|
|
22
|
+
const [videoError, setVideoError] = React.useState(false);
|
|
23
|
+
const videoUrl = metadata.url;
|
|
24
|
+
const posterUrl = metadata.thumbnailUrl;
|
|
25
|
+
// No URL or video failed to load — fallback to card with download
|
|
26
|
+
if (videoError || !videoUrl) {
|
|
27
|
+
return (_jsxs("div", { className: `flex items-center gap-group p-card-sm rounded-md border bg-muted/30 ${className ?? ''}`, children: [_jsx("span", { "aria-hidden": "true", children: renderIcon(StandardIconReference.FILE_VIDEO, { size: IconSize.LG, className: "text-muted-foreground" }) }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx(Text, { className: "font-medium truncate", children: metadata.filename }), _jsxs("div", { className: "flex items-center gap-group text-xs text-muted-foreground mt-0.5", children: [showSize && _jsx("span", { children: formatFileSize(metadata.size) }), metadata.extension && _jsx("span", { className: "uppercase", children: metadata.extension }), videoError && _jsx("span", { className: "text-destructive", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_VIDEO, 'video_load_error') })] })] }), showDownload && videoUrl && (_jsx("a", { href: videoUrl, download: metadata.filename, className: "text-primary hover:underline text-sm shrink-0", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_VIDEO, 'download') }))] }));
|
|
28
|
+
}
|
|
29
|
+
return (_jsxs("div", { className: `space-y-item ${className ?? ''}`, children: [_jsx("div", { className: "w-full max-w-lg rounded-md overflow-hidden border bg-black", children: _jsxs("video", { controls: true, preload: "metadata", className: "w-full h-auto max-h-80", poster: posterUrl, onError: () => setVideoError(true), children: [_jsx("source", { src: videoUrl, type: metadata.mimeType }), _jsx(Text, { className: "p-card-sm text-muted-foreground", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_VIDEO, 'unsupported_format') })] }) }), _jsxs("div", { className: "flex items-center gap-group text-xs text-muted-foreground", children: [_jsx("span", { className: "font-medium text-foreground truncate max-w-48", children: metadata.filename }), showSize && _jsx("span", { children: formatFileSize(metadata.size) }), metadata.extension && _jsx("span", { className: "uppercase", children: metadata.extension }), showDownload && (_jsx("a", { href: videoUrl, download: metadata.filename, className: "text-primary hover:underline ms-auto shrink-0", children: tComponent(FrontendComponentType.LOW_LEVEL_DISPLAY_FIELD_FILE_VIDEO, 'download') }))] })] }));
|
|
30
|
+
}
|
|
31
|
+
;
|
|
32
|
+
DisplayFieldFileVideo.displayName = "DisplayFieldFileVideo";
|
|
33
|
+
export { DisplayFieldFileVideo };
|
|
34
|
+
//# sourceMappingURL=display-field-file-video.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-file-video.js","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-file-video.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,qBAAqB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAC7G,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,EAAqB,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG5E,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,SAAS,qBAAqB,CAAC,EAC7B,QAAQ,EACR,MAAM,EACN,SAAS,EACT,YAAY,GAAG,IAAI,EACnB,QAAQ,GAAG,IAAI,GACY;IAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,EAAE,SAAS,EAAE,qBAAqB,CAAC,kCAAkC,EAAE,CAAC,CAAA;IAEhH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAA;IAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAA;IAEvC,kEAAkE;IAClE,IAAI,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,CACL,eAAK,SAAS,EAAE,uEAAuE,SAAS,IAAI,EAAE,EAAE,aACtG,8BAAkB,MAAM,YACrB,UAAU,CAAC,qBAAqB,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC,GACnG,EACP,eAAK,SAAS,EAAC,gBAAgB,aAC7B,KAAC,IAAI,IAAC,SAAS,EAAC,sBAAsB,YAAE,QAAQ,CAAC,QAAQ,GAAQ,EACjE,eAAK,SAAS,EAAC,kEAAkE,aAC9E,QAAQ,IAAI,yBAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAQ,EACxD,QAAQ,CAAC,SAAS,IAAI,eAAM,SAAS,EAAC,WAAW,YAAE,QAAQ,CAAC,SAAS,GAAQ,EAC7E,UAAU,IAAI,eAAM,SAAS,EAAC,kBAAkB,YAAE,UAAU,CAAC,qBAAqB,CAAC,kCAAkC,EAAE,kBAAkB,CAAC,GAAQ,IAC/I,IACF,EACL,YAAY,IAAI,QAAQ,IAAI,CAC3B,YAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAC,+CAA+C,YACtG,UAAU,CAAC,qBAAqB,CAAC,kCAAkC,EAAE,UAAU,CAAC,GAC/E,CACL,IACG,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAE,gBAAgB,SAAS,IAAI,EAAE,EAAE,aAE/C,cAAK,SAAS,EAAC,4DAA4D,YACzE,iBACE,QAAQ,QACR,OAAO,EAAC,UAAU,EAClB,SAAS,EAAC,wBAAwB,EAClC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,aAElC,iBAAQ,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,GAAI,EAClD,KAAC,IAAI,IAAC,SAAS,EAAC,iCAAiC,YAC9C,UAAU,CAAC,qBAAqB,CAAC,kCAAkC,EAAE,oBAAoB,CAAC,GACtF,IACD,GACJ,EAGN,eAAK,SAAS,EAAC,2DAA2D,aACxE,eAAM,SAAS,EAAC,+CAA+C,YAAE,QAAQ,CAAC,QAAQ,GAAQ,EACzF,QAAQ,IAAI,yBAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAQ,EACxD,QAAQ,CAAC,SAAS,IAAI,eAAM,SAAS,EAAC,WAAW,YAAE,QAAQ,CAAC,SAAS,GAAQ,EAC7E,YAAY,IAAI,CACf,YAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAC,+CAA+C,YACtG,UAAU,CAAC,qBAAqB,CAAC,kCAAkC,EAAE,UAAU,CAAC,GAC/E,CACL,IACG,IACF,CACP,CAAA;AACH,CAAC;AAED,CAAC;AAAC,qBAAgF,CAAC,WAAW,GAAG,uBAAuB,CAAA;AAExH,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DisplayFieldFile Component
|
|
3
|
+
*
|
|
4
|
+
* Root display component for file fields. Acts as both:
|
|
5
|
+
* 1. Metadata fetcher — loads file metadata from server via authenticated httpOperations
|
|
6
|
+
* 2. Nature router — delegates rendering to nature-specific display components
|
|
7
|
+
*
|
|
8
|
+
* Nature routing priority:
|
|
9
|
+
* 1. Schema metadata `fileConfig.nature` (explicit, from z_file({ nature: FileNature.IMAGE }))
|
|
10
|
+
* 2. Fetched metadata MIME type detection (from server response)
|
|
11
|
+
* 3. Generic file card (fallback for unknown types / archives)
|
|
12
|
+
*
|
|
13
|
+
* For multiple images → gallery display. For mixed multiple → individual cards.
|
|
14
|
+
*
|
|
15
|
+
* Nature-specific sub-components are imported directly within this preset.
|
|
16
|
+
* Custom apps can override the entire file display by registering a new preset
|
|
17
|
+
* for LOW_LEVEL_DISPLAY_FIELD_FILE, or override individual nature renderers
|
|
18
|
+
* by registering for LOW_LEVEL_DISPLAY_FIELD_FILE_IMAGE etc. at the wrapper level.
|
|
19
|
+
*/
|
|
20
|
+
import * as React from "react";
|
|
21
|
+
import type { DisplayFieldFileProps } from '@wildo-ai/saas-frontend-lib';
|
|
22
|
+
/**
|
|
23
|
+
* DisplayFieldFile component
|
|
24
|
+
*
|
|
25
|
+
* Renders a file reference with:
|
|
26
|
+
* - Filename with link
|
|
27
|
+
* - File size
|
|
28
|
+
* - File type icon/badge
|
|
29
|
+
* - Download option
|
|
30
|
+
*/
|
|
31
|
+
declare function DisplayFieldFile({ schema, value, className, endpoints, showSize, showType, showDownload, httpOperations, }: DisplayFieldFileProps): React.JSX.Element;
|
|
32
|
+
export { DisplayFieldFile };
|
|
33
|
+
//# sourceMappingURL=display-field-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-field-file.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/formatters/display-field-file.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA0B9B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAoCxE;;;;;;;;GAQG;AACH,iBAAS,gBAAgB,CAAC,EACxB,MAAM,EACN,KAAK,EACL,SAAS,EACT,SAAS,EACT,QAAe,EACf,QAAe,EACf,YAAmB,EACnB,cAAc,GACf,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4T3C;AAID,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|