@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,622 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { Button, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, HoverCard, HoverCardContent, HoverCardTrigger, InputGroup, InputGroupAddon, InputGroupButton, InputGroupTextarea, SelectRoot, SelectContent, SelectItem, SelectTrigger, SelectValue, cn, useIconRegistry, StandardIconReference, useI18n, useUI, createCompoundPreset, } from "@wildo-ai/saas-frontend-lib";
|
|
4
|
+
import { ButtonVariants_Variant } from "@wildo-ai/saas-frontend-lib";
|
|
5
|
+
import { FrontendComponentType, UIBehavior, TypographyVariant } from "@wildo-ai/presets-components-models";
|
|
6
|
+
import { HorizontalAlign } from "@wildo-ai/zod-decorators";
|
|
7
|
+
import { nanoid } from "nanoid";
|
|
8
|
+
import { Children, createContext, Fragment, useCallback, useContext, useEffect, useMemo, useRef, useState, } from "react";
|
|
9
|
+
const PromptInputController = createContext(null);
|
|
10
|
+
const ProviderAttachmentsContext = createContext(null);
|
|
11
|
+
const usePromptInputController = () => {
|
|
12
|
+
const ctx = useContext(PromptInputController);
|
|
13
|
+
if (!ctx) {
|
|
14
|
+
throw new Error("Wrap your component inside <PromptInputProvider> to use usePromptInputController().");
|
|
15
|
+
}
|
|
16
|
+
return ctx;
|
|
17
|
+
};
|
|
18
|
+
// Optional variants (do NOT throw). Useful for dual-mode components.
|
|
19
|
+
const useOptionalPromptInputController = () => useContext(PromptInputController);
|
|
20
|
+
const useProviderAttachments = () => {
|
|
21
|
+
const ctx = useContext(ProviderAttachmentsContext);
|
|
22
|
+
if (!ctx) {
|
|
23
|
+
throw new Error("Wrap your component inside <PromptInputProvider> to use useProviderAttachments().");
|
|
24
|
+
}
|
|
25
|
+
return ctx;
|
|
26
|
+
};
|
|
27
|
+
const useOptionalProviderAttachments = () => useContext(ProviderAttachmentsContext);
|
|
28
|
+
/**
|
|
29
|
+
* Optional global provider that lifts PromptInput state outside of PromptInput.
|
|
30
|
+
* If you don't use it, PromptInput stays fully self-managed.
|
|
31
|
+
*/
|
|
32
|
+
function AI_PromptInputProvider({ initialInput: initialTextInput = "", children, }) {
|
|
33
|
+
// ----- textInput state
|
|
34
|
+
const [textInput, setTextInput] = useState(initialTextInput);
|
|
35
|
+
const clearInput = useCallback(() => setTextInput(""), []);
|
|
36
|
+
// ----- attachments state (global when wrapped)
|
|
37
|
+
const [attachements, setAttachements] = useState([]);
|
|
38
|
+
const fileInputRef = useRef(null);
|
|
39
|
+
const openRef = useRef(() => { });
|
|
40
|
+
const add = useCallback((files) => {
|
|
41
|
+
const incoming = Array.from(files);
|
|
42
|
+
if (incoming.length === 0) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
setAttachements((prev) => prev.concat(incoming.map((file) => ({
|
|
46
|
+
id: nanoid(),
|
|
47
|
+
type: "file",
|
|
48
|
+
url: URL.createObjectURL(file),
|
|
49
|
+
mediaType: file.type,
|
|
50
|
+
filename: file.name,
|
|
51
|
+
}))));
|
|
52
|
+
}, []);
|
|
53
|
+
const remove = useCallback((id) => {
|
|
54
|
+
setAttachements((prev) => {
|
|
55
|
+
const found = prev.find((f) => f.id === id);
|
|
56
|
+
if (found?.url) {
|
|
57
|
+
URL.revokeObjectURL(found.url);
|
|
58
|
+
}
|
|
59
|
+
return prev.filter((f) => f.id !== id);
|
|
60
|
+
});
|
|
61
|
+
}, []);
|
|
62
|
+
const clear = useCallback(() => {
|
|
63
|
+
setAttachements((prev) => {
|
|
64
|
+
for (const f of prev) {
|
|
65
|
+
if (f.url) {
|
|
66
|
+
URL.revokeObjectURL(f.url);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return [];
|
|
70
|
+
});
|
|
71
|
+
}, []);
|
|
72
|
+
const openFileDialog = useCallback(() => {
|
|
73
|
+
openRef.current?.();
|
|
74
|
+
}, []);
|
|
75
|
+
const attachments = useMemo(() => ({
|
|
76
|
+
files: attachements,
|
|
77
|
+
add,
|
|
78
|
+
remove,
|
|
79
|
+
clear,
|
|
80
|
+
openFileDialog,
|
|
81
|
+
fileInputRef,
|
|
82
|
+
}), [attachements, add, remove, clear, openFileDialog]);
|
|
83
|
+
const __registerFileInput = useCallback((ref, open) => {
|
|
84
|
+
fileInputRef.current = ref.current;
|
|
85
|
+
openRef.current = open;
|
|
86
|
+
}, []);
|
|
87
|
+
const controller = useMemo(() => ({
|
|
88
|
+
textInput: {
|
|
89
|
+
value: textInput,
|
|
90
|
+
setInput: setTextInput,
|
|
91
|
+
clear: clearInput,
|
|
92
|
+
},
|
|
93
|
+
attachments,
|
|
94
|
+
__registerFileInput,
|
|
95
|
+
}), [textInput, clearInput, attachments, __registerFileInput]);
|
|
96
|
+
return (_jsx(PromptInputController.Provider, { value: controller, children: _jsx(ProviderAttachmentsContext.Provider, { value: attachments, children: children }) }));
|
|
97
|
+
}
|
|
98
|
+
// ============================================================================
|
|
99
|
+
// Component Context & Hooks
|
|
100
|
+
// ============================================================================
|
|
101
|
+
const LocalAttachmentsContext = createContext(null);
|
|
102
|
+
const usePromptInputAttachments = () => {
|
|
103
|
+
// Dual-mode: prefer provider if present, otherwise use local
|
|
104
|
+
const provider = useOptionalProviderAttachments();
|
|
105
|
+
const local = useContext(LocalAttachmentsContext);
|
|
106
|
+
const context = provider ?? local;
|
|
107
|
+
if (!context) {
|
|
108
|
+
throw new Error("usePromptInputAttachments must be used within a PromptInput or PromptInputProvider");
|
|
109
|
+
}
|
|
110
|
+
return context;
|
|
111
|
+
};
|
|
112
|
+
function AI_PromptInputAttachment({ data, className, ...props }) {
|
|
113
|
+
const attachments = usePromptInputAttachments();
|
|
114
|
+
const { renderIcon } = useIconRegistry();
|
|
115
|
+
const { tComponent, isReady } = useI18n({
|
|
116
|
+
component: FrontendComponentType.LOW_LEVEL_AI_PROMPT_INPUT,
|
|
117
|
+
});
|
|
118
|
+
const { getRecipe } = useUI();
|
|
119
|
+
const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
|
|
120
|
+
const filename = data.filename || "";
|
|
121
|
+
const mediaType = data.mediaType?.startsWith("image/") && data.url ? "image" : "file";
|
|
122
|
+
const isImage = mediaType === "image";
|
|
123
|
+
const attachmentLabel = filename || (isImage ? "Image" : "Attachment");
|
|
124
|
+
return (_jsxs(AI_PromptInputHoverCard, { children: [_jsx(HoverCardTrigger, { asChild: true, children: _jsxs("div", { className: cn("group relative flex h-8 cursor-default select-none items-center gap-1.5 rounded-md border border-border px-1.5 font-medium text-sm transition-all hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", className), ...props, children: [_jsxs("div", { className: "relative size-5 shrink-0", children: [_jsx("div", { className: "absolute inset-0 flex size-5 items-center justify-center overflow-hidden rounded bg-background transition-opacity group-hover:opacity-0", children: isImage ? (_jsx("img", { alt: filename || "attachment", className: "size-5 object-cover", height: 20, src: data.url, width: 20 })) : (_jsx("div", { className: cn(descRecipe.base, "flex size-5 items-center justify-center"), children: renderIcon(StandardIconReference.PAPERCLIP, { className: "size-3" }) })) }), _jsx(Button, { "aria-label": tComponent(FrontendComponentType.LOW_LEVEL_AI_PROMPT_INPUT, 'remove'), className: "absolute inset-0 size-5 cursor-pointer rounded p-0 opacity-0 transition-opacity group-hover:pointer-events-auto group-hover:opacity-100 [&>svg]:size-2.5", onClick: (e) => {
|
|
125
|
+
e.stopPropagation();
|
|
126
|
+
attachments.remove(data.id);
|
|
127
|
+
}, type: "button", variant: ButtonVariants_Variant.GHOST, children: renderIcon(StandardIconReference.CLOSE, { className: "size-2.5" }) })] }), _jsx("span", { className: "flex-1 truncate", children: attachmentLabel })] }, data.id) }), _jsx(AI_PromptInputHoverCardContent, { className: "w-auto p-card-sm", children: _jsxs("div", { className: "w-auto space-y-group", children: [isImage && (_jsx("div", { className: "flex max-h-96 w-96 items-center justify-center overflow-hidden rounded-md border", children: _jsx("img", { alt: filename || "attachment preview", className: "max-h-full max-w-full object-contain", height: 384, src: data.url, width: 448 }) })), _jsx("div", { className: "flex items-center gap-2.5", children: _jsxs("div", { className: "min-w-0 flex-1 space-y-item-xs px-0.5", children: [_jsx("h4", { className: "truncate font-semibold text-sm leading-none", children: filename || (isImage ? "Image" : "Attachment") }), data.mediaType && (_jsx("p", { className: cn(descRecipe.base, "truncate font-mono text-xs"), children: data.mediaType }))] }) })] }) })] }));
|
|
128
|
+
}
|
|
129
|
+
function AI_PromptInputAttachments({ children, className, ...props }) {
|
|
130
|
+
const attachments = usePromptInputAttachments();
|
|
131
|
+
if (!attachments.files.length) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
return (_jsx("div", { className: cn("flex flex-wrap items-center gap-element p-card-sm", className), ...props, children: attachments.files.map((file) => (_jsx(Fragment, { children: children(file) }, file.id))) }));
|
|
135
|
+
}
|
|
136
|
+
const AI_PromptInputActionAddAttachments = ({ label, ...props }) => {
|
|
137
|
+
const attachments = usePromptInputAttachments();
|
|
138
|
+
const { renderIcon } = useIconRegistry();
|
|
139
|
+
const { tComponent, isReady } = useI18n({
|
|
140
|
+
component: FrontendComponentType.LOW_LEVEL_AI_PROMPT_INPUT,
|
|
141
|
+
});
|
|
142
|
+
const labelText = label ?? tComponent(FrontendComponentType.LOW_LEVEL_AI_PROMPT_INPUT, 'uploadFiles');
|
|
143
|
+
return (_jsxs(DropdownMenuItem, { ...props, onSelect: (e) => {
|
|
144
|
+
e.preventDefault();
|
|
145
|
+
attachments.openFileDialog();
|
|
146
|
+
}, children: [renderIcon(StandardIconReference.IMAGE, { className: "me-2 size-4" }), " ", labelText] }));
|
|
147
|
+
};
|
|
148
|
+
const AI_PromptInputRoot = ({ className, accept, multiple, globalDrop, syncHiddenInput, maxFiles, maxFileSize, onError, onSubmit, children, ...props }) => {
|
|
149
|
+
// Try to use a provider controller if present
|
|
150
|
+
const controller = useOptionalPromptInputController();
|
|
151
|
+
const usingProvider = !!controller;
|
|
152
|
+
const { tComponent, isReady } = useI18n({
|
|
153
|
+
component: FrontendComponentType.LOW_LEVEL_AI_PROMPT_INPUT,
|
|
154
|
+
});
|
|
155
|
+
// Refs
|
|
156
|
+
const inputRef = useRef(null);
|
|
157
|
+
const anchorRef = useRef(null);
|
|
158
|
+
const formRef = useRef(null);
|
|
159
|
+
// Find nearest form to scope drag & drop
|
|
160
|
+
useEffect(() => {
|
|
161
|
+
const root = anchorRef.current?.closest("form");
|
|
162
|
+
if (root instanceof HTMLFormElement) {
|
|
163
|
+
formRef.current = root;
|
|
164
|
+
}
|
|
165
|
+
}, []);
|
|
166
|
+
// ----- Local attachments (only used when no provider)
|
|
167
|
+
const [items, setItems] = useState([]);
|
|
168
|
+
const files = usingProvider ? controller.attachments.files : items;
|
|
169
|
+
const openFileDialogLocal = useCallback(() => {
|
|
170
|
+
inputRef.current?.click();
|
|
171
|
+
}, []);
|
|
172
|
+
const matchesAccept = useCallback((f) => {
|
|
173
|
+
if (!accept || accept.trim() === "") {
|
|
174
|
+
return true;
|
|
175
|
+
}
|
|
176
|
+
if (accept.includes("image/*")) {
|
|
177
|
+
return f.type.startsWith("image/");
|
|
178
|
+
}
|
|
179
|
+
// NOTE: keep simple; expand as needed
|
|
180
|
+
return true;
|
|
181
|
+
}, [accept]);
|
|
182
|
+
const addLocal = useCallback((fileList) => {
|
|
183
|
+
const incoming = Array.from(fileList);
|
|
184
|
+
const accepted = incoming.filter((f) => matchesAccept(f));
|
|
185
|
+
if (incoming.length && accepted.length === 0) {
|
|
186
|
+
onError?.({
|
|
187
|
+
code: "accept",
|
|
188
|
+
message: "No files match the accepted types.",
|
|
189
|
+
});
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
const withinSize = (f) => maxFileSize ? f.size <= maxFileSize : true;
|
|
193
|
+
const sized = accepted.filter(withinSize);
|
|
194
|
+
if (accepted.length > 0 && sized.length === 0) {
|
|
195
|
+
onError?.({
|
|
196
|
+
code: "max_file_size",
|
|
197
|
+
message: "All files exceed the maximum size.",
|
|
198
|
+
});
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
setItems((prev) => {
|
|
202
|
+
const capacity = typeof maxFiles === "number"
|
|
203
|
+
? Math.max(0, maxFiles - prev.length)
|
|
204
|
+
: undefined;
|
|
205
|
+
const capped = typeof capacity === "number" ? sized.slice(0, capacity) : sized;
|
|
206
|
+
if (typeof capacity === "number" && sized.length > capacity) {
|
|
207
|
+
onError?.({
|
|
208
|
+
code: "max_files",
|
|
209
|
+
message: "Too many files. Some were not added.",
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
const next = [];
|
|
213
|
+
for (const file of capped) {
|
|
214
|
+
next.push({
|
|
215
|
+
id: nanoid(),
|
|
216
|
+
type: "file",
|
|
217
|
+
url: URL.createObjectURL(file),
|
|
218
|
+
mediaType: file.type,
|
|
219
|
+
filename: file.name,
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
return prev.concat(next);
|
|
223
|
+
});
|
|
224
|
+
}, [matchesAccept, maxFiles, maxFileSize, onError]);
|
|
225
|
+
const add = usingProvider
|
|
226
|
+
? (files) => controller.attachments.add(files)
|
|
227
|
+
: addLocal;
|
|
228
|
+
const remove = usingProvider
|
|
229
|
+
? (id) => controller.attachments.remove(id)
|
|
230
|
+
: (id) => setItems((prev) => {
|
|
231
|
+
const found = prev.find((file) => file.id === id);
|
|
232
|
+
if (found?.url) {
|
|
233
|
+
URL.revokeObjectURL(found.url);
|
|
234
|
+
}
|
|
235
|
+
return prev.filter((file) => file.id !== id);
|
|
236
|
+
});
|
|
237
|
+
const clear = usingProvider
|
|
238
|
+
? () => controller.attachments.clear()
|
|
239
|
+
: () => setItems((prev) => {
|
|
240
|
+
for (const file of prev) {
|
|
241
|
+
if (file.url) {
|
|
242
|
+
URL.revokeObjectURL(file.url);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return [];
|
|
246
|
+
});
|
|
247
|
+
const openFileDialog = usingProvider
|
|
248
|
+
? () => controller.attachments.openFileDialog()
|
|
249
|
+
: openFileDialogLocal;
|
|
250
|
+
// Let provider know about our hidden file input so external menus can call openFileDialog()
|
|
251
|
+
useEffect(() => {
|
|
252
|
+
if (!usingProvider)
|
|
253
|
+
return;
|
|
254
|
+
controller.__registerFileInput(inputRef, () => inputRef.current?.click());
|
|
255
|
+
}, [usingProvider, controller]);
|
|
256
|
+
// Note: File input cannot be programmatically set for security reasons
|
|
257
|
+
// The syncHiddenInput prop is no longer functional
|
|
258
|
+
useEffect(() => {
|
|
259
|
+
if (syncHiddenInput && inputRef.current && files.length === 0) {
|
|
260
|
+
inputRef.current.value = "";
|
|
261
|
+
}
|
|
262
|
+
}, [files, syncHiddenInput]);
|
|
263
|
+
// Attach drop handlers on nearest form and document (opt-in)
|
|
264
|
+
useEffect(() => {
|
|
265
|
+
const form = formRef.current;
|
|
266
|
+
if (!form)
|
|
267
|
+
return;
|
|
268
|
+
const onDragOver = (e) => {
|
|
269
|
+
if (e.dataTransfer?.types?.includes("Files")) {
|
|
270
|
+
e.preventDefault();
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
const onDrop = (e) => {
|
|
274
|
+
if (e.dataTransfer?.types?.includes("Files")) {
|
|
275
|
+
e.preventDefault();
|
|
276
|
+
}
|
|
277
|
+
if (e.dataTransfer?.files && e.dataTransfer.files.length > 0) {
|
|
278
|
+
add(e.dataTransfer.files);
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
form.addEventListener("dragover", onDragOver);
|
|
282
|
+
form.addEventListener("drop", onDrop);
|
|
283
|
+
return () => {
|
|
284
|
+
form.removeEventListener("dragover", onDragOver);
|
|
285
|
+
form.removeEventListener("drop", onDrop);
|
|
286
|
+
};
|
|
287
|
+
}, [add]);
|
|
288
|
+
useEffect(() => {
|
|
289
|
+
if (!globalDrop)
|
|
290
|
+
return;
|
|
291
|
+
const onDragOver = (e) => {
|
|
292
|
+
if (e.dataTransfer?.types?.includes("Files")) {
|
|
293
|
+
e.preventDefault();
|
|
294
|
+
}
|
|
295
|
+
};
|
|
296
|
+
const onDrop = (e) => {
|
|
297
|
+
if (e.dataTransfer?.types?.includes("Files")) {
|
|
298
|
+
e.preventDefault();
|
|
299
|
+
}
|
|
300
|
+
if (e.dataTransfer?.files && e.dataTransfer.files.length > 0) {
|
|
301
|
+
add(e.dataTransfer.files);
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
document.addEventListener("dragover", onDragOver);
|
|
305
|
+
document.addEventListener("drop", onDrop);
|
|
306
|
+
return () => {
|
|
307
|
+
document.removeEventListener("dragover", onDragOver);
|
|
308
|
+
document.removeEventListener("drop", onDrop);
|
|
309
|
+
};
|
|
310
|
+
}, [add, globalDrop]);
|
|
311
|
+
useEffect(() => () => {
|
|
312
|
+
if (!usingProvider) {
|
|
313
|
+
for (const f of files) {
|
|
314
|
+
if (f.url)
|
|
315
|
+
URL.revokeObjectURL(f.url);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}, [usingProvider, files]);
|
|
319
|
+
const handleChange = (event) => {
|
|
320
|
+
if (event.currentTarget.files) {
|
|
321
|
+
add(event.currentTarget.files);
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
const convertBlobUrlToDataUrl = async (url) => {
|
|
325
|
+
const response = await fetch(url);
|
|
326
|
+
const blob = await response.blob();
|
|
327
|
+
return new Promise((resolve, reject) => {
|
|
328
|
+
const reader = new FileReader();
|
|
329
|
+
reader.onloadend = () => resolve(reader.result);
|
|
330
|
+
reader.onerror = reject;
|
|
331
|
+
reader.readAsDataURL(blob);
|
|
332
|
+
});
|
|
333
|
+
};
|
|
334
|
+
const ctx = useMemo(() => ({
|
|
335
|
+
files: files.map((item) => ({ ...item, id: item.id })),
|
|
336
|
+
add,
|
|
337
|
+
remove,
|
|
338
|
+
clear,
|
|
339
|
+
openFileDialog,
|
|
340
|
+
fileInputRef: inputRef,
|
|
341
|
+
}), [files, add, remove, clear, openFileDialog]);
|
|
342
|
+
const handleSubmit = (event) => {
|
|
343
|
+
event.preventDefault();
|
|
344
|
+
const form = event.currentTarget;
|
|
345
|
+
const text = usingProvider
|
|
346
|
+
? controller.textInput.value
|
|
347
|
+
: (() => {
|
|
348
|
+
const formData = new FormData(form);
|
|
349
|
+
return formData.get("message") || "";
|
|
350
|
+
})();
|
|
351
|
+
// Reset form immediately after capturing text to avoid race condition
|
|
352
|
+
// where user input during async blob conversion would be lost
|
|
353
|
+
if (!usingProvider) {
|
|
354
|
+
form.reset();
|
|
355
|
+
}
|
|
356
|
+
// Convert blob URLs to data URLs asynchronously
|
|
357
|
+
Promise.all(files.map(async ({ id, ...item }) => {
|
|
358
|
+
if (item.url && item.url.startsWith("blob:")) {
|
|
359
|
+
return {
|
|
360
|
+
...item,
|
|
361
|
+
url: await convertBlobUrlToDataUrl(item.url),
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
return item;
|
|
365
|
+
})).then((convertedFiles) => {
|
|
366
|
+
try {
|
|
367
|
+
const result = onSubmit({ text, files: convertedFiles }, event);
|
|
368
|
+
// Handle both sync and async onSubmit
|
|
369
|
+
if (result instanceof Promise) {
|
|
370
|
+
result
|
|
371
|
+
.then(() => {
|
|
372
|
+
clear();
|
|
373
|
+
if (usingProvider) {
|
|
374
|
+
controller.textInput.clear();
|
|
375
|
+
}
|
|
376
|
+
})
|
|
377
|
+
.catch(() => {
|
|
378
|
+
// Don't clear on error - user may want to retry
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
// Sync function completed without throwing, clear attachments
|
|
383
|
+
clear();
|
|
384
|
+
if (usingProvider) {
|
|
385
|
+
controller.textInput.clear();
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
catch (error) {
|
|
390
|
+
// Don't clear on error - user may want to retry
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
};
|
|
394
|
+
// Render with or without local provider
|
|
395
|
+
const inner = (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": "true", className: "hidden", ref: anchorRef }), _jsx("input", { accept: accept, "aria-label": tComponent(FrontendComponentType.LOW_LEVEL_AI_PROMPT_INPUT, 'uploadFiles'), className: "hidden", multiple: multiple, onChange: handleChange, ref: inputRef, title: tComponent(FrontendComponentType.LOW_LEVEL_AI_PROMPT_INPUT, 'uploadFiles'), type: "file" }), _jsx("form", { className: cn("w-full", className), onSubmit: handleSubmit, ...props, children: _jsx(InputGroup, { className: "overflow-hidden", children: children }) })] }));
|
|
396
|
+
return usingProvider ? (inner) : (_jsx(LocalAttachmentsContext.Provider, { value: ctx, children: inner }));
|
|
397
|
+
};
|
|
398
|
+
const AI_PromptInputBody = ({ className, ...props }) => (_jsx("div", { className: cn("contents", className), ...props }));
|
|
399
|
+
const AI_PromptInputTextarea = ({ onChange, className, placeholder = "What would you like to know?", ...props }) => {
|
|
400
|
+
const controller = useOptionalPromptInputController();
|
|
401
|
+
const attachments = usePromptInputAttachments();
|
|
402
|
+
const [isComposing, setIsComposing] = useState(false);
|
|
403
|
+
const handleKeyDown = (e) => {
|
|
404
|
+
if (e.key === "Enter") {
|
|
405
|
+
if (isComposing || e.nativeEvent.isComposing) {
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
if (e.shiftKey) {
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
411
|
+
e.preventDefault();
|
|
412
|
+
// Check if the submit button is disabled before submitting
|
|
413
|
+
const form = e.currentTarget.form;
|
|
414
|
+
const submitButton = form?.querySelector('button[type="submit"]');
|
|
415
|
+
if (submitButton?.disabled) {
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
418
|
+
form?.requestSubmit();
|
|
419
|
+
}
|
|
420
|
+
// Remove last attachment when Backspace is pressed and textarea is empty
|
|
421
|
+
if (e.key === "Backspace" &&
|
|
422
|
+
e.currentTarget.value === "" &&
|
|
423
|
+
attachments.files.length > 0) {
|
|
424
|
+
e.preventDefault();
|
|
425
|
+
const lastAttachment = attachments.files.at(-1);
|
|
426
|
+
if (lastAttachment) {
|
|
427
|
+
attachments.remove(lastAttachment.id);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
};
|
|
431
|
+
const handlePaste = (event) => {
|
|
432
|
+
const items = event.clipboardData?.items;
|
|
433
|
+
if (!items) {
|
|
434
|
+
return;
|
|
435
|
+
}
|
|
436
|
+
const files = [];
|
|
437
|
+
for (const item of items) {
|
|
438
|
+
if (item.kind === "file") {
|
|
439
|
+
const file = item.getAsFile();
|
|
440
|
+
if (file) {
|
|
441
|
+
files.push(file);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
if (files.length > 0) {
|
|
446
|
+
event.preventDefault();
|
|
447
|
+
attachments.add(files);
|
|
448
|
+
}
|
|
449
|
+
};
|
|
450
|
+
const controlledProps = controller
|
|
451
|
+
? {
|
|
452
|
+
value: controller.textInput.value,
|
|
453
|
+
onChange: (e) => {
|
|
454
|
+
controller.textInput.setInput(e.currentTarget.value);
|
|
455
|
+
onChange?.(e);
|
|
456
|
+
},
|
|
457
|
+
}
|
|
458
|
+
: {
|
|
459
|
+
onChange,
|
|
460
|
+
};
|
|
461
|
+
return (_jsx(InputGroupTextarea, { className: cn("field-sizing-content max-h-48 min-h-16", className), name: "message", onCompositionEnd: () => setIsComposing(false), onCompositionStart: () => setIsComposing(true), onKeyDown: handleKeyDown, onPaste: handlePaste, placeholder: placeholder, ...props, ...controlledProps }));
|
|
462
|
+
};
|
|
463
|
+
const AI_PromptInputHeader = ({ className, ...props }) => (_jsx(InputGroupAddon, { align: "block-end", className: cn("order-first flex-wrap gap-item-xs", className), ...props }));
|
|
464
|
+
const AI_PromptInputFooter = ({ className, ...props }) => (_jsx(InputGroupAddon, { align: "block-end", className: cn("justify-between gap-item-xs", className), ...props }));
|
|
465
|
+
const AI_PromptInputTools = ({ className, ...props }) => (_jsx("div", { className: cn("flex items-center gap-item-xs", className), ...props }));
|
|
466
|
+
const AI_PromptInputButton = ({ variant = "ghost", className, size, ...props }) => {
|
|
467
|
+
const newSize = size ?? (Children.count(props.children) > 1 ? "sm" : "icon-sm");
|
|
468
|
+
return (_jsx(InputGroupButton, { className: cn(className), size: newSize, type: "button", variant: variant, ...props }));
|
|
469
|
+
};
|
|
470
|
+
const AI_PromptInputActionMenu = (props) => (_jsx(DropdownMenu, { ...props }));
|
|
471
|
+
const AI_PromptInputActionMenuTrigger = ({ className, children, ...props }) => {
|
|
472
|
+
const { renderIcon } = useIconRegistry();
|
|
473
|
+
return (_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(AI_PromptInputButton, { className: className, ...props, children: children ?? renderIcon(StandardIconReference.PLUS, { className: "size-4" }) }) }));
|
|
474
|
+
};
|
|
475
|
+
const AI_PromptInputActionMenuContent = ({ className, ...props }) => (_jsx(DropdownMenuContent, { align: HorizontalAlign.START, className: cn(className), ...props }));
|
|
476
|
+
const AI_PromptInputActionMenuItem = ({ className, ...props }) => (_jsx(DropdownMenuItem, { className: cn(className), ...props }));
|
|
477
|
+
const AI_PromptInputSubmit = ({ className, variant = "default", size = "icon-sm", status, children, ...props }) => {
|
|
478
|
+
const { renderIcon } = useIconRegistry();
|
|
479
|
+
const { tComponent, isReady } = useI18n({
|
|
480
|
+
component: FrontendComponentType.LOW_LEVEL_AI_PROMPT_INPUT,
|
|
481
|
+
});
|
|
482
|
+
let Icon = renderIcon(StandardIconReference.CORNER_DOWN_LEFT, { className: "size-4" });
|
|
483
|
+
if (status === "submitted") {
|
|
484
|
+
Icon = renderIcon(StandardIconReference.LOADER_2, { className: "size-4 animate-spin" });
|
|
485
|
+
}
|
|
486
|
+
else if (status === "streaming") {
|
|
487
|
+
Icon = renderIcon(StandardIconReference.SQUARE, { className: "size-4" });
|
|
488
|
+
}
|
|
489
|
+
else if (status === "error") {
|
|
490
|
+
Icon = renderIcon(StandardIconReference.CLOSE, { className: "size-4" });
|
|
491
|
+
}
|
|
492
|
+
return (_jsx(InputGroupButton, { "aria-label": tComponent(FrontendComponentType.LOW_LEVEL_AI_PROMPT_INPUT, 'submit'), className: cn(className), size: size, type: "submit", variant: variant, ...props, children: children ?? Icon }));
|
|
493
|
+
};
|
|
494
|
+
const AI_PromptInputSpeechButton = ({ className, textareaRef, onTranscriptionChange, ...props }) => {
|
|
495
|
+
const [isListening, setIsListening] = useState(false);
|
|
496
|
+
const [recognition, setRecognition] = useState(null);
|
|
497
|
+
const recognitionRef = useRef(null);
|
|
498
|
+
const { renderIcon } = useIconRegistry();
|
|
499
|
+
useEffect(() => {
|
|
500
|
+
if (typeof window !== "undefined" &&
|
|
501
|
+
("SpeechRecognition" in window || "webkitSpeechRecognition" in window)) {
|
|
502
|
+
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
|
|
503
|
+
const speechRecognition = new SpeechRecognition();
|
|
504
|
+
speechRecognition.continuous = true;
|
|
505
|
+
speechRecognition.interimResults = true;
|
|
506
|
+
speechRecognition.lang = "en-US";
|
|
507
|
+
speechRecognition.onstart = () => {
|
|
508
|
+
setIsListening(true);
|
|
509
|
+
};
|
|
510
|
+
speechRecognition.onend = () => {
|
|
511
|
+
setIsListening(false);
|
|
512
|
+
};
|
|
513
|
+
speechRecognition.onresult = (event) => {
|
|
514
|
+
let finalTranscript = "";
|
|
515
|
+
for (let i = event.resultIndex; i < event.results.length; i++) {
|
|
516
|
+
const result = event.results[i];
|
|
517
|
+
if (result.isFinal) {
|
|
518
|
+
finalTranscript += result[0]?.transcript ?? "";
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
if (finalTranscript && textareaRef?.current) {
|
|
522
|
+
const textarea = textareaRef.current;
|
|
523
|
+
const currentValue = textarea.value;
|
|
524
|
+
const newValue = currentValue + (currentValue ? " " : "") + finalTranscript;
|
|
525
|
+
textarea.value = newValue;
|
|
526
|
+
textarea.dispatchEvent(new Event("input", { bubbles: true }));
|
|
527
|
+
onTranscriptionChange?.(newValue);
|
|
528
|
+
}
|
|
529
|
+
};
|
|
530
|
+
speechRecognition.onerror = (event) => {
|
|
531
|
+
console.error("Speech recognition error:", event.error);
|
|
532
|
+
setIsListening(false);
|
|
533
|
+
};
|
|
534
|
+
recognitionRef.current = speechRecognition;
|
|
535
|
+
setRecognition(speechRecognition);
|
|
536
|
+
}
|
|
537
|
+
return () => {
|
|
538
|
+
if (recognitionRef.current) {
|
|
539
|
+
recognitionRef.current.stop();
|
|
540
|
+
}
|
|
541
|
+
};
|
|
542
|
+
}, [textareaRef, onTranscriptionChange]);
|
|
543
|
+
const toggleListening = useCallback(() => {
|
|
544
|
+
if (!recognition) {
|
|
545
|
+
return;
|
|
546
|
+
}
|
|
547
|
+
if (isListening) {
|
|
548
|
+
recognition.stop();
|
|
549
|
+
}
|
|
550
|
+
else {
|
|
551
|
+
recognition.start();
|
|
552
|
+
}
|
|
553
|
+
}, [recognition, isListening]);
|
|
554
|
+
return (_jsx(AI_PromptInputButton, { className: cn("relative transition-all duration-[var(--motion-duration-fast)]", isListening && "animate-pulse bg-accent text-accent-foreground", className), disabled: !recognition, onClick: toggleListening, ...props, children: renderIcon(StandardIconReference.MIC, { className: "size-4" }) }));
|
|
555
|
+
};
|
|
556
|
+
const AI_PromptInputSelect = (props) => (_jsx(SelectRoot, { ...props }));
|
|
557
|
+
const AI_PromptInputSelectTrigger = ({ className, ...props }) => {
|
|
558
|
+
const { getRecipe } = useUI();
|
|
559
|
+
const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
|
|
560
|
+
return (_jsx(SelectTrigger, { className: cn(descRecipe.base, "border-none bg-transparent font-medium shadow-none transition-colors", "hover:bg-accent hover:text-foreground aria-expanded:bg-accent aria-expanded:text-foreground", className), ...props }));
|
|
561
|
+
};
|
|
562
|
+
const AI_PromptInputSelectContent = ({ className, ...props }) => (_jsx(SelectContent, { className: cn(className), ...props }));
|
|
563
|
+
const AI_PromptInputSelectItem = ({ className, ...props }) => (_jsx(SelectItem, { className: cn(className), ...props }));
|
|
564
|
+
const AI_PromptInputSelectValue = ({ className, ...props }) => (_jsx(SelectValue, { className: cn(className), ...props }));
|
|
565
|
+
const AI_PromptInputHoverCard = ({ openDelay = 0, closeDelay = 0, ...props }) => (_jsx(HoverCard, { closeDelay: closeDelay, openDelay: openDelay, ...props }));
|
|
566
|
+
const AI_PromptInputHoverCardTrigger = (props) => _jsx(HoverCardTrigger, { ...props });
|
|
567
|
+
const AI_PromptInputHoverCardContent = ({ align = HorizontalAlign.START, ...props }) => (_jsx(HoverCardContent, { align: align, ...props }));
|
|
568
|
+
const AI_PromptInputTabsList = ({ className, ...props }) => _jsx("div", { className: cn(className), ...props });
|
|
569
|
+
const AI_PromptInputTab = ({ className, ...props }) => _jsx("div", { className: cn(className), ...props });
|
|
570
|
+
const AI_PromptInputTabLabel = ({ className, ...props }) => {
|
|
571
|
+
const { getRecipe } = useUI();
|
|
572
|
+
const descRecipe = getRecipe(UIBehavior.TYPOGRAPHY, TypographyVariant.DESCRIPTION);
|
|
573
|
+
return (_jsx("h3", { className: cn(descRecipe.base, "mb-element px-card-sm font-medium text-xs", className), ...props }));
|
|
574
|
+
};
|
|
575
|
+
const AI_PromptInputTabBody = ({ className, ...props }) => (_jsx("div", { className: cn("space-y-item-xs", className), ...props }));
|
|
576
|
+
const AI_PromptInputTabItem = ({ className, ...props }) => (_jsx("div", { className: cn("flex items-center gap-element px-card-sm py-card-sm text-xs hover:bg-accent", className), ...props }));
|
|
577
|
+
const AI_PromptInputCommand = ({ className, ...props }) => _jsx(Command, { className: cn(className), ...props });
|
|
578
|
+
const AI_PromptInputCommandInput = ({ className, ...props }) => (_jsx(CommandInput, { className: cn(className), ...props }));
|
|
579
|
+
const AI_PromptInputCommandList = ({ className, ...props }) => (_jsx(CommandList, { className: cn(className), ...props }));
|
|
580
|
+
const AI_PromptInputCommandEmpty = ({ className, ...props }) => (_jsx(CommandEmpty, { className: cn(className), ...props }));
|
|
581
|
+
const AI_PromptInputCommandGroup = ({ className, ...props }) => (_jsx(CommandGroup, { className: cn(className), ...props }));
|
|
582
|
+
const AI_PromptInputCommandItem = ({ className, ...props }) => (_jsx(CommandItem, { className: cn(className), ...props }));
|
|
583
|
+
const AI_PromptInputCommandSeparator = ({ className, ...props }) => (_jsx(CommandSeparator, { className: cn(className), ...props }));
|
|
584
|
+
export const AI_PromptInput = createCompoundPreset(AI_PromptInputRoot, {
|
|
585
|
+
Provider: AI_PromptInputProvider,
|
|
586
|
+
Attachment: AI_PromptInputAttachment,
|
|
587
|
+
Attachments: AI_PromptInputAttachments,
|
|
588
|
+
Body: AI_PromptInputBody,
|
|
589
|
+
Textarea: AI_PromptInputTextarea,
|
|
590
|
+
Header: AI_PromptInputHeader,
|
|
591
|
+
Footer: AI_PromptInputFooter,
|
|
592
|
+
Tools: AI_PromptInputTools,
|
|
593
|
+
Button: AI_PromptInputButton,
|
|
594
|
+
Submit: AI_PromptInputSubmit,
|
|
595
|
+
ActionMenu: AI_PromptInputActionMenu,
|
|
596
|
+
ActionMenuTrigger: AI_PromptInputActionMenuTrigger,
|
|
597
|
+
ActionMenuContent: AI_PromptInputActionMenuContent,
|
|
598
|
+
ActionMenuItem: AI_PromptInputActionMenuItem,
|
|
599
|
+
ActionAddAttachments: AI_PromptInputActionAddAttachments,
|
|
600
|
+
SpeechButton: AI_PromptInputSpeechButton,
|
|
601
|
+
Select: AI_PromptInputSelect,
|
|
602
|
+
SelectTrigger: AI_PromptInputSelectTrigger,
|
|
603
|
+
SelectContent: AI_PromptInputSelectContent,
|
|
604
|
+
SelectItem: AI_PromptInputSelectItem,
|
|
605
|
+
SelectValue: AI_PromptInputSelectValue,
|
|
606
|
+
Command: AI_PromptInputCommand,
|
|
607
|
+
CommandInput: AI_PromptInputCommandInput,
|
|
608
|
+
CommandList: AI_PromptInputCommandList,
|
|
609
|
+
CommandEmpty: AI_PromptInputCommandEmpty,
|
|
610
|
+
CommandGroup: AI_PromptInputCommandGroup,
|
|
611
|
+
CommandItem: AI_PromptInputCommandItem,
|
|
612
|
+
CommandSeparator: AI_PromptInputCommandSeparator,
|
|
613
|
+
HoverCard: AI_PromptInputHoverCard,
|
|
614
|
+
HoverCardTrigger: AI_PromptInputHoverCardTrigger,
|
|
615
|
+
HoverCardContent: AI_PromptInputHoverCardContent,
|
|
616
|
+
TabsList: AI_PromptInputTabsList,
|
|
617
|
+
Tab: AI_PromptInputTab,
|
|
618
|
+
TabLabel: AI_PromptInputTabLabel,
|
|
619
|
+
TabBody: AI_PromptInputTabBody,
|
|
620
|
+
TabItem: AI_PromptInputTabItem,
|
|
621
|
+
});
|
|
622
|
+
//# sourceMappingURL=prompt-input.js.map
|