@sero-ai/ui 0.3.0 → 0.3.2
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/components/ai-elements/agent.cjs +89 -0
- package/dist/components/ai-elements/agent.d.cts +32 -0
- package/dist/components/ai-elements/agent.d.ts +32 -0
- package/dist/components/ai-elements/agent.js +89 -0
- package/dist/components/ai-elements/artifact.cjs +121 -0
- package/dist/components/ai-elements/artifact.d.cts +29 -0
- package/dist/components/ai-elements/artifact.d.ts +29 -0
- package/dist/components/ai-elements/artifact.js +121 -0
- package/dist/components/ai-elements/attachments.cjs +283 -0
- package/dist/components/ai-elements/attachments.d.cts +60 -0
- package/dist/components/ai-elements/attachments.d.ts +60 -0
- package/dist/components/ai-elements/attachments.js +283 -0
- package/dist/components/ai-elements/audio-player.cjs +174 -0
- package/dist/components/ai-elements/audio-player.d.cts +33 -0
- package/dist/components/ai-elements/audio-player.d.ts +33 -0
- package/dist/components/ai-elements/audio-player.js +174 -0
- package/dist/components/ai-elements/canvas.cjs +23 -0
- package/dist/components/ai-elements/canvas.d.cts +10 -0
- package/dist/components/ai-elements/canvas.d.ts +10 -0
- package/dist/components/ai-elements/canvas.js +23 -0
- package/dist/components/ai-elements/chain-of-thought.cjs +170 -0
- package/dist/components/ai-elements/chain-of-thought.d.cts +37 -0
- package/dist/components/ai-elements/chain-of-thought.d.ts +37 -0
- package/dist/components/ai-elements/chain-of-thought.js +170 -0
- package/dist/components/ai-elements/checkpoint.cjs +49 -0
- package/dist/components/ai-elements/checkpoint.d.cts +18 -0
- package/dist/components/ai-elements/checkpoint.d.ts +18 -0
- package/dist/components/ai-elements/checkpoint.js +49 -0
- package/dist/components/ai-elements/code-block.cjs +380 -0
- package/dist/components/ai-elements/code-block.d.cts +51 -0
- package/dist/components/ai-elements/code-block.d.ts +51 -0
- package/dist/components/ai-elements/code-block.js +380 -0
- package/dist/components/ai-elements/commit.cjs +337 -0
- package/dist/components/ai-elements/commit.d.cts +71 -0
- package/dist/components/ai-elements/commit.d.ts +71 -0
- package/dist/components/ai-elements/commit.js +337 -0
- package/dist/components/ai-elements/confirmation.cjs +82 -0
- package/dist/components/ai-elements/confirmation.d.cts +54 -0
- package/dist/components/ai-elements/confirmation.d.ts +54 -0
- package/dist/components/ai-elements/confirmation.js +82 -0
- package/dist/components/ai-elements/connection.cjs +33 -0
- package/dist/components/ai-elements/connection.d.cts +5 -0
- package/dist/components/ai-elements/connection.d.ts +5 -0
- package/dist/components/ai-elements/connection.js +33 -0
- package/dist/components/ai-elements/context.cjs +329 -0
- package/dist/components/ai-elements/context.d.cts +39 -0
- package/dist/components/ai-elements/context.d.ts +39 -0
- package/dist/components/ai-elements/context.js +329 -0
- package/dist/components/ai-elements/controls.cjs +18 -0
- package/dist/components/ai-elements/controls.d.cts +8 -0
- package/dist/components/ai-elements/controls.d.ts +8 -0
- package/dist/components/ai-elements/controls.js +18 -0
- package/dist/components/ai-elements/conversation.cjs +124 -0
- package/dist/components/ai-elements/conversation.d.cts +32 -0
- package/dist/components/ai-elements/conversation.d.ts +32 -0
- package/dist/components/ai-elements/conversation.js +124 -0
- package/dist/components/ai-elements/edge.cjs +116 -0
- package/dist/components/ai-elements/edge.d.cts +9 -0
- package/dist/components/ai-elements/edge.d.ts +9 -0
- package/dist/components/ai-elements/edge.js +116 -0
- package/dist/components/ai-elements/environment-variables.cjs +227 -0
- package/dist/components/ai-elements/environment-variables.d.cts +45 -0
- package/dist/components/ai-elements/environment-variables.d.ts +45 -0
- package/dist/components/ai-elements/environment-variables.js +227 -0
- package/dist/components/ai-elements/file-tree.cjs +217 -0
- package/dist/components/ai-elements/file-tree.d.cts +30 -0
- package/dist/components/ai-elements/file-tree.d.ts +30 -0
- package/dist/components/ai-elements/file-tree.js +217 -0
- package/dist/components/ai-elements/image.cjs +22 -0
- package/dist/components/ai-elements/image.d.cts +10 -0
- package/dist/components/ai-elements/image.d.ts +10 -0
- package/dist/components/ai-elements/image.js +22 -0
- package/dist/components/ai-elements/inline-citation.cjs +223 -0
- package/dist/components/ai-elements/inline-citation.d.cts +47 -0
- package/dist/components/ai-elements/inline-citation.d.ts +47 -0
- package/dist/components/ai-elements/inline-citation.js +223 -0
- package/dist/components/ai-elements/jsx-preview.cjs +176 -0
- package/dist/components/ai-elements/jsx-preview.d.cts +31 -0
- package/dist/components/ai-elements/jsx-preview.d.ts +31 -0
- package/dist/components/ai-elements/jsx-preview.js +176 -0
- package/dist/components/ai-elements/message.cjs +287 -0
- package/dist/components/ai-elements/message.d.cts +46 -0
- package/dist/components/ai-elements/message.d.ts +46 -0
- package/dist/components/ai-elements/message.js +287 -0
- package/dist/components/ai-elements/mic-selector.cjs +275 -0
- package/dist/components/ai-elements/mic-selector.d.cts +54 -0
- package/dist/components/ai-elements/mic-selector.d.ts +54 -0
- package/dist/components/ai-elements/mic-selector.js +275 -0
- package/dist/components/ai-elements/model-selector.cjs +100 -0
- package/dist/components/ai-elements/model-selector.d.cts +41 -0
- package/dist/components/ai-elements/model-selector.d.ts +41 -0
- package/dist/components/ai-elements/model-selector.js +100 -0
- package/dist/components/ai-elements/node.cjs +54 -0
- package/dist/components/ai-elements/node.d.cts +25 -0
- package/dist/components/ai-elements/node.d.ts +25 -0
- package/dist/components/ai-elements/node.js +54 -0
- package/dist/components/ai-elements/open-in-chat.cjs +353 -0
- package/dist/components/ai-elements/open-in-chat.d.cts +33 -0
- package/dist/components/ai-elements/open-in-chat.d.ts +33 -0
- package/dist/components/ai-elements/open-in-chat.js +353 -0
- package/dist/components/ai-elements/package-info.cjs +171 -0
- package/dist/components/ai-elements/package-info.d.cts +32 -0
- package/dist/components/ai-elements/package-info.d.ts +32 -0
- package/dist/components/ai-elements/package-info.js +171 -0
- package/dist/components/ai-elements/panel.cjs +16 -0
- package/dist/components/ai-elements/panel.d.cts +8 -0
- package/dist/components/ai-elements/panel.d.ts +8 -0
- package/dist/components/ai-elements/panel.js +16 -0
- package/dist/components/ai-elements/persona.cjs +202 -0
- package/dist/components/ai-elements/persona.d.cts +50 -0
- package/dist/components/ai-elements/persona.d.ts +50 -0
- package/dist/components/ai-elements/persona.js +202 -0
- package/dist/components/ai-elements/plan.cjs +90 -0
- package/dist/components/ai-elements/plan.d.cts +30 -0
- package/dist/components/ai-elements/plan.d.ts +30 -0
- package/dist/components/ai-elements/plan.js +90 -0
- package/dist/components/ai-elements/prompt-input-context.cjs +161 -0
- package/dist/components/ai-elements/prompt-input-context.d.cts +58 -0
- package/dist/components/ai-elements/prompt-input-context.d.ts +58 -0
- package/dist/components/ai-elements/prompt-input-context.js +161 -0
- package/dist/components/ai-elements/prompt-input-elements.cjs +246 -0
- package/dist/components/ai-elements/prompt-input-elements.d.cts +88 -0
- package/dist/components/ai-elements/prompt-input-elements.d.ts +88 -0
- package/dist/components/ai-elements/prompt-input-elements.js +246 -0
- package/dist/components/ai-elements/prompt-input-textarea.cjs +89 -0
- package/dist/components/ai-elements/prompt-input-textarea.d.cts +11 -0
- package/dist/components/ai-elements/prompt-input-textarea.d.ts +11 -0
- package/dist/components/ai-elements/prompt-input-textarea.js +89 -0
- package/dist/components/ai-elements/prompt-input.cjs +306 -0
- package/dist/components/ai-elements/prompt-input.d.cts +39 -0
- package/dist/components/ai-elements/prompt-input.d.ts +39 -0
- package/dist/components/ai-elements/prompt-input.js +306 -0
- package/dist/components/ai-elements/queue.cjs +193 -0
- package/dist/components/ai-elements/queue.d.cts +68 -0
- package/dist/components/ai-elements/queue.d.ts +68 -0
- package/dist/components/ai-elements/queue.js +193 -0
- package/dist/components/ai-elements/reasoning.cjs +178 -0
- package/dist/components/ai-elements/reasoning.d.cts +31 -0
- package/dist/components/ai-elements/reasoning.d.ts +31 -0
- package/dist/components/ai-elements/reasoning.js +178 -0
- package/dist/components/ai-elements/sandbox.cjs +114 -0
- package/dist/components/ai-elements/sandbox.d.cts +31 -0
- package/dist/components/ai-elements/sandbox.d.ts +31 -0
- package/dist/components/ai-elements/sandbox.js +114 -0
- package/dist/components/ai-elements/schema-display.cjs +330 -0
- package/dist/components/ai-elements/schema-display.d.cts +61 -0
- package/dist/components/ai-elements/schema-display.d.ts +61 -0
- package/dist/components/ai-elements/schema-display.js +330 -0
- package/dist/components/ai-elements/shimmer.cjs +55 -0
- package/dist/components/ai-elements/shimmer.d.cts +14 -0
- package/dist/components/ai-elements/shimmer.d.ts +14 -0
- package/dist/components/ai-elements/shimmer.js +55 -0
- package/dist/components/ai-elements/snippet.cjs +105 -0
- package/dist/components/ai-elements/snippet.d.cts +25 -0
- package/dist/components/ai-elements/snippet.d.ts +25 -0
- package/dist/components/ai-elements/snippet.js +105 -0
- package/dist/components/ai-elements/sources.cjs +70 -0
- package/dist/components/ai-elements/sources.d.cts +17 -0
- package/dist/components/ai-elements/sources.d.ts +17 -0
- package/dist/components/ai-elements/sources.js +70 -0
- package/dist/components/ai-elements/speech-input.cjs +207 -0
- package/dist/components/ai-elements/speech-input.d.cts +59 -0
- package/dist/components/ai-elements/speech-input.d.ts +59 -0
- package/dist/components/ai-elements/speech-input.js +207 -0
- package/dist/components/ai-elements/stack-trace.cjs +403 -0
- package/dist/components/ai-elements/stack-trace.d.cts +45 -0
- package/dist/components/ai-elements/stack-trace.d.ts +45 -0
- package/dist/components/ai-elements/stack-trace.js +403 -0
- package/dist/components/ai-elements/suggestion.cjs +46 -0
- package/dist/components/ai-elements/suggestion.d.cts +17 -0
- package/dist/components/ai-elements/suggestion.d.ts +17 -0
- package/dist/components/ai-elements/suggestion.js +46 -0
- package/dist/components/ai-elements/task.cjs +62 -0
- package/dist/components/ai-elements/task.d.cts +19 -0
- package/dist/components/ai-elements/task.d.ts +19 -0
- package/dist/components/ai-elements/task.js +62 -0
- package/dist/components/ai-elements/terminal.cjs +220 -0
- package/dist/components/ai-elements/terminal.d.cts +33 -0
- package/dist/components/ai-elements/terminal.d.ts +33 -0
- package/dist/components/ai-elements/terminal.js +220 -0
- package/dist/components/ai-elements/test-results.cjs +376 -0
- package/dist/components/ai-elements/test-results.d.cts +62 -0
- package/dist/components/ai-elements/test-results.d.ts +62 -0
- package/dist/components/ai-elements/test-results.js +376 -0
- package/dist/components/ai-elements/tool.cjs +130 -0
- package/dist/components/ai-elements/tool.d.cts +36 -0
- package/dist/components/ai-elements/tool.d.ts +36 -0
- package/dist/components/ai-elements/tool.js +130 -0
- package/dist/components/ai-elements/toolbar.cjs +17 -0
- package/dist/components/ai-elements/toolbar.d.cts +8 -0
- package/dist/components/ai-elements/toolbar.d.ts +8 -0
- package/dist/components/ai-elements/toolbar.js +17 -0
- package/dist/components/ai-elements/transcription.cjs +92 -0
- package/dist/components/ai-elements/transcription.d.cts +19 -0
- package/dist/components/ai-elements/transcription.d.ts +19 -0
- package/dist/components/ai-elements/transcription.js +92 -0
- package/dist/components/ai-elements/voice-selector-accent.cjs +11 -0
- package/dist/components/ai-elements/voice-selector-accent.d.cts +10 -0
- package/dist/components/ai-elements/voice-selector-accent.d.ts +10 -0
- package/dist/components/ai-elements/voice-selector-accent.js +11 -0
- package/dist/components/ai-elements/voice-selector.cjs +246 -0
- package/dist/components/ai-elements/voice-selector.d.cts +66 -0
- package/dist/components/ai-elements/voice-selector.d.ts +66 -0
- package/dist/components/ai-elements/voice-selector.js +246 -0
- package/dist/components/ai-elements/web-preview.cjs +237 -0
- package/dist/components/ai-elements/web-preview.d.cts +40 -0
- package/dist/components/ai-elements/web-preview.d.ts +40 -0
- package/dist/components/ai-elements/web-preview.js +237 -0
- package/dist/components/model-selection/available-model-picker.cjs +172 -0
- package/dist/components/model-selection/available-model-picker.d.cts +18 -0
- package/dist/components/model-selection/available-model-picker.d.ts +18 -0
- package/dist/components/model-selection/available-model-picker.js +172 -0
- package/dist/components/model-selection/model-warning-list.cjs +24 -0
- package/dist/components/model-selection/model-warning-list.d.cts +10 -0
- package/dist/components/model-selection/model-warning-list.d.ts +10 -0
- package/dist/components/model-selection/model-warning-list.js +24 -0
- package/dist/components/model-selection/thinking-level-picker.cjs +39 -0
- package/dist/components/model-selection/thinking-level-picker.d.cts +14 -0
- package/dist/components/model-selection/thinking-level-picker.d.ts +14 -0
- package/dist/components/model-selection/thinking-level-picker.js +39 -0
- package/dist/components/ui/accordion.cjs +64 -0
- package/dist/components/ui/accordion.d.cts +10 -0
- package/dist/components/ui/accordion.d.ts +10 -0
- package/dist/components/ui/accordion.js +64 -0
- package/dist/components/ui/alert-dialog.cjs +178 -0
- package/dist/components/ui/alert-dialog.d.cts +23 -0
- package/dist/components/ui/alert-dialog.d.ts +23 -0
- package/dist/components/ui/alert-dialog.js +178 -0
- package/dist/components/ui/alert.cjs +66 -0
- package/dist/components/ui/alert.d.cts +13 -0
- package/dist/components/ui/alert.d.ts +13 -0
- package/dist/components/ui/alert.js +66 -0
- package/dist/components/ui/aspect-ratio.cjs +11 -0
- package/dist/components/ui/aspect-ratio.d.cts +6 -0
- package/dist/components/ui/aspect-ratio.d.ts +6 -0
- package/dist/components/ui/aspect-ratio.js +11 -0
- package/dist/components/ui/avatar.cjs +103 -0
- package/dist/components/ui/avatar.d.cts +14 -0
- package/dist/components/ui/avatar.d.ts +14 -0
- package/dist/components/ui/avatar.js +103 -0
- package/dist/components/ui/badge.cjs +43 -0
- package/dist/components/ui/badge.d.cts +13 -0
- package/dist/components/ui/badge.d.ts +13 -0
- package/dist/components/ui/badge.js +43 -0
- package/dist/components/ui/breadcrumb.cjs +103 -0
- package/dist/components/ui/breadcrumb.d.cts +14 -0
- package/dist/components/ui/breadcrumb.d.ts +14 -0
- package/dist/components/ui/breadcrumb.js +103 -0
- package/dist/components/ui/button-group.cjs +76 -0
- package/dist/components/ui/button-group.d.cts +17 -0
- package/dist/components/ui/button-group.d.ts +17 -0
- package/dist/components/ui/button-group.js +76 -0
- package/dist/components/ui/button.cjs +56 -0
- package/dist/components/ui/button.d.cts +14 -0
- package/dist/components/ui/button.d.ts +14 -0
- package/dist/components/ui/button.js +56 -0
- package/dist/components/ui/calendar.cjs +194 -0
- package/dist/components/ui/calendar.d.cts +13 -0
- package/dist/components/ui/calendar.d.ts +13 -0
- package/dist/components/ui/calendar.js +194 -0
- package/dist/components/ui/card.cjs +90 -0
- package/dist/components/ui/card.d.cts +12 -0
- package/dist/components/ui/card.d.ts +12 -0
- package/dist/components/ui/card.js +90 -0
- package/dist/components/ui/carousel.cjs +198 -0
- package/dist/components/ui/carousel.d.cts +24 -0
- package/dist/components/ui/carousel.d.ts +24 -0
- package/dist/components/ui/carousel.js +198 -0
- package/dist/components/ui/chart.cjs +242 -0
- package/dist/components/ui/chart.d.cts +43 -0
- package/dist/components/ui/chart.d.ts +43 -0
- package/dist/components/ui/chart.js +242 -0
- package/dist/components/ui/checkbox.cjs +32 -0
- package/dist/components/ui/checkbox.d.cts +7 -0
- package/dist/components/ui/checkbox.d.ts +7 -0
- package/dist/components/ui/checkbox.js +32 -0
- package/dist/components/ui/collapsible.cjs +34 -0
- package/dist/components/ui/collapsible.d.cts +8 -0
- package/dist/components/ui/collapsible.d.ts +8 -0
- package/dist/components/ui/collapsible.js +34 -0
- package/dist/components/ui/combobox.cjs +297 -0
- package/dist/components/ui/combobox.d.cts +27 -0
- package/dist/components/ui/combobox.d.ts +27 -0
- package/dist/components/ui/combobox.js +297 -0
- package/dist/components/ui/command.cjs +177 -0
- package/dist/components/ui/command.d.cts +22 -0
- package/dist/components/ui/command.d.ts +22 -0
- package/dist/components/ui/command.js +177 -0
- package/dist/components/ui/context-menu.cjs +224 -0
- package/dist/components/ui/context-menu.d.cts +28 -0
- package/dist/components/ui/context-menu.d.ts +28 -0
- package/dist/components/ui/context-menu.js +224 -0
- package/dist/components/ui/dialog.cjs +147 -0
- package/dist/components/ui/dialog.d.cts +20 -0
- package/dist/components/ui/dialog.d.ts +20 -0
- package/dist/components/ui/dialog.js +147 -0
- package/dist/components/ui/direction.cjs +15 -0
- package/dist/components/ui/direction.d.cts +10 -0
- package/dist/components/ui/direction.d.ts +10 -0
- package/dist/components/ui/direction.js +15 -0
- package/dist/components/ui/drawer.cjs +128 -0
- package/dist/components/ui/drawer.d.cts +16 -0
- package/dist/components/ui/drawer.d.ts +16 -0
- package/dist/components/ui/drawer.js +128 -0
- package/dist/components/ui/dropdown-menu.cjs +232 -0
- package/dist/components/ui/dropdown-menu.d.cts +28 -0
- package/dist/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/components/ui/dropdown-menu.js +232 -0
- package/dist/components/ui/empty.cjs +102 -0
- package/dist/components/ui/empty.d.cts +15 -0
- package/dist/components/ui/empty.d.ts +15 -0
- package/dist/components/ui/empty.js +102 -0
- package/dist/components/ui/field.cjs +230 -0
- package/dist/components/ui/field.d.cts +30 -0
- package/dist/components/ui/field.d.ts +30 -0
- package/dist/components/ui/field.js +230 -0
- package/dist/components/ui/form.cjs +121 -0
- package/dist/components/ui/form.d.cts +27 -0
- package/dist/components/ui/form.d.ts +27 -0
- package/dist/components/ui/form.js +121 -0
- package/dist/components/ui/hover-card.cjs +38 -0
- package/dist/components/ui/hover-card.d.cts +9 -0
- package/dist/components/ui/hover-card.d.ts +9 -0
- package/dist/components/ui/hover-card.js +38 -0
- package/dist/components/ui/input-group.cjs +154 -0
- package/dist/components/ui/input-group.d.cts +20 -0
- package/dist/components/ui/input-group.d.ts +20 -0
- package/dist/components/ui/input-group.js +154 -0
- package/dist/components/ui/input-otp.cjs +67 -0
- package/dist/components/ui/input-otp.d.cts +14 -0
- package/dist/components/ui/input-otp.d.ts +14 -0
- package/dist/components/ui/input-otp.js +67 -0
- package/dist/components/ui/input.cjs +23 -0
- package/dist/components/ui/input.d.cts +6 -0
- package/dist/components/ui/input.d.ts +6 -0
- package/dist/components/ui/input.js +23 -0
- package/dist/components/ui/item.cjs +187 -0
- package/dist/components/ui/item.d.cts +28 -0
- package/dist/components/ui/item.d.ts +28 -0
- package/dist/components/ui/item.js +187 -0
- package/dist/components/ui/kbd.cjs +31 -0
- package/dist/components/ui/kbd.d.cts +6 -0
- package/dist/components/ui/kbd.d.ts +6 -0
- package/dist/components/ui/kbd.js +31 -0
- package/dist/components/ui/label.cjs +22 -0
- package/dist/components/ui/label.d.cts +7 -0
- package/dist/components/ui/label.d.ts +7 -0
- package/dist/components/ui/label.js +22 -0
- package/dist/components/ui/menubar.cjs +252 -0
- package/dist/components/ui/menubar.d.cts +29 -0
- package/dist/components/ui/menubar.d.ts +29 -0
- package/dist/components/ui/menubar.js +252 -0
- package/dist/components/ui/native-select.cjs +63 -0
- package/dist/components/ui/native-select.d.cts +10 -0
- package/dist/components/ui/native-select.d.ts +10 -0
- package/dist/components/ui/native-select.js +63 -0
- package/dist/components/ui/navigation-menu.cjs +170 -0
- package/dist/components/ui/navigation-menu.d.cts +18 -0
- package/dist/components/ui/navigation-menu.d.ts +18 -0
- package/dist/components/ui/navigation-menu.js +170 -0
- package/dist/components/ui/pagination.cjs +122 -0
- package/dist/components/ui/pagination.d.cts +18 -0
- package/dist/components/ui/pagination.d.ts +18 -0
- package/dist/components/ui/pagination.js +122 -0
- package/dist/components/ui/plugin-safety-disclaimer.cjs +26 -0
- package/dist/components/ui/plugin-safety-disclaimer.d.cts +8 -0
- package/dist/components/ui/plugin-safety-disclaimer.d.ts +8 -0
- package/dist/components/ui/plugin-safety-disclaimer.js +26 -0
- package/dist/components/ui/popover.cjs +80 -0
- package/dist/components/ui/popover.d.cts +13 -0
- package/dist/components/ui/popover.d.ts +13 -0
- package/dist/components/ui/popover.js +80 -0
- package/dist/components/ui/progress.cjs +32 -0
- package/dist/components/ui/progress.d.cts +7 -0
- package/dist/components/ui/progress.d.ts +7 -0
- package/dist/components/ui/progress.js +32 -0
- package/dist/components/ui/radio-group.cjs +45 -0
- package/dist/components/ui/radio-group.d.cts +8 -0
- package/dist/components/ui/radio-group.d.ts +8 -0
- package/dist/components/ui/radio-group.js +45 -0
- package/dist/components/ui/resizable.cjs +47 -0
- package/dist/components/ui/resizable.d.cts +10 -0
- package/dist/components/ui/resizable.d.ts +10 -0
- package/dist/components/ui/resizable.js +47 -0
- package/dist/components/ui/scroll-area.cjs +60 -0
- package/dist/components/ui/scroll-area.d.cts +8 -0
- package/dist/components/ui/scroll-area.d.ts +8 -0
- package/dist/components/ui/scroll-area.js +60 -0
- package/dist/components/ui/search-input.cjs +39 -0
- package/dist/components/ui/search-input.d.cts +12 -0
- package/dist/components/ui/search-input.d.ts +12 -0
- package/dist/components/ui/search-input.js +39 -0
- package/dist/components/ui/select.cjs +179 -0
- package/dist/components/ui/select.d.cts +18 -0
- package/dist/components/ui/select.d.ts +18 -0
- package/dist/components/ui/select.js +179 -0
- package/dist/components/ui/separator.cjs +27 -0
- package/dist/components/ui/separator.d.cts +7 -0
- package/dist/components/ui/separator.d.ts +7 -0
- package/dist/components/ui/separator.js +27 -0
- package/dist/components/ui/sheet.cjs +129 -0
- package/dist/components/ui/sheet.d.cts +18 -0
- package/dist/components/ui/sheet.d.ts +18 -0
- package/dist/components/ui/sheet.js +129 -0
- package/dist/components/ui/sidebar.cjs +649 -0
- package/dist/components/ui/sidebar.d.cts +74 -0
- package/dist/components/ui/sidebar.d.ts +74 -0
- package/dist/components/ui/sidebar.js +649 -0
- package/dist/components/ui/skeleton.cjs +15 -0
- package/dist/components/ui/skeleton.d.cts +5 -0
- package/dist/components/ui/skeleton.d.ts +5 -0
- package/dist/components/ui/skeleton.js +15 -0
- package/dist/components/ui/slider.cjs +68 -0
- package/dist/components/ui/slider.d.cts +7 -0
- package/dist/components/ui/slider.d.ts +7 -0
- package/dist/components/ui/slider.js +68 -0
- package/dist/components/ui/sonner.cjs +38 -0
- package/dist/components/ui/sonner.d.cts +6 -0
- package/dist/components/ui/sonner.d.ts +6 -0
- package/dist/components/ui/sonner.js +38 -0
- package/dist/components/ui/spinner.cjs +17 -0
- package/dist/components/ui/spinner.d.cts +5 -0
- package/dist/components/ui/spinner.d.ts +5 -0
- package/dist/components/ui/spinner.js +17 -0
- package/dist/components/ui/switch.cjs +33 -0
- package/dist/components/ui/switch.d.cts +9 -0
- package/dist/components/ui/switch.d.ts +9 -0
- package/dist/components/ui/switch.js +33 -0
- package/dist/components/ui/table.cjs +115 -0
- package/dist/components/ui/table.d.cts +13 -0
- package/dist/components/ui/table.d.ts +13 -0
- package/dist/components/ui/table.js +115 -0
- package/dist/components/ui/tabs.cjs +92 -0
- package/dist/components/ui/tabs.d.cts +15 -0
- package/dist/components/ui/tabs.d.ts +15 -0
- package/dist/components/ui/tabs.js +92 -0
- package/dist/components/ui/textarea.cjs +20 -0
- package/dist/components/ui/textarea.d.cts +6 -0
- package/dist/components/ui/textarea.d.ts +6 -0
- package/dist/components/ui/textarea.js +20 -0
- package/dist/components/ui/toggle-group.cjs +69 -0
- package/dist/components/ui/toggle-group.d.cts +13 -0
- package/dist/components/ui/toggle-group.d.ts +13 -0
- package/dist/components/ui/toggle-group.js +69 -0
- package/dist/components/ui/toggle.cjs +44 -0
- package/dist/components/ui/toggle.d.cts +13 -0
- package/dist/components/ui/toggle.d.ts +13 -0
- package/dist/components/ui/toggle.js +44 -0
- package/dist/components/ui/tooltip.cjs +56 -0
- package/dist/components/ui/tooltip.d.cts +10 -0
- package/dist/components/ui/tooltip.d.ts +10 -0
- package/dist/components/ui/tooltip.js +56 -0
- package/dist/components/ui/tree.cjs +131 -0
- package/dist/components/ui/tree.d.cts +35 -0
- package/dist/components/ui/tree.d.ts +35 -0
- package/dist/components/ui/tree.js +131 -0
- package/dist/hooks/use-mobile.cjs +16 -0
- package/dist/hooks/use-mobile.d.cts +3 -0
- package/dist/hooks/use-mobile.d.ts +3 -0
- package/dist/hooks/use-mobile.js +16 -0
- package/dist/index.cjs +121 -15527
- package/dist/index.d.cts +145 -2246
- package/dist/index.d.ts +145 -2246
- package/dist/index.js +118 -14982
- package/dist/lib/utils.cjs +8 -0
- package/dist/lib/utils.d.cts +5 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.js +8 -0
- package/dist/styles/globals.css +438 -0
- package/dist/styles/plugin.css +4 -0
- package/dist/theme/apply-theme.cjs +221 -0
- package/dist/theme/apply-theme.d.cts +13 -0
- package/dist/theme/apply-theme.d.ts +13 -0
- package/dist/theme/apply-theme.js +221 -0
- package/dist/theme/index.cjs +2 -0
- package/dist/theme/index.d.cts +2 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/index.js +2 -0
- package/dist/theme/types.cjs +90 -0
- package/dist/theme/types.d.cts +133 -0
- package/dist/theme/types.d.ts +133 -0
- package/dist/theme/types.js +90 -0
- package/package.json +22 -5
- package/tsup.config.ts +18 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
3
|
+
var _reactusecontrollablestate = require('@radix-ui/react-use-controllable-state');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _voiceselectoraccent = require('./voice-selector-accent');
|
|
7
|
+
var _button = require('../ui/button');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
var _command = require('../ui/command');
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
var _dialog = require('../ui/dialog');
|
|
25
|
+
var _spinner = require('../ui/spinner');
|
|
26
|
+
var _utils = require('../../lib/utils');
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
var _lucidereact = require('lucide-react');
|
|
38
|
+
var _react = require('react');
|
|
39
|
+
const VoiceSelectorContext = _react.createContext.call(void 0,
|
|
40
|
+
null
|
|
41
|
+
);
|
|
42
|
+
const useVoiceSelector = () => {
|
|
43
|
+
const context = _react.use.call(void 0, VoiceSelectorContext);
|
|
44
|
+
if (!context) {
|
|
45
|
+
throw new Error(
|
|
46
|
+
"VoiceSelector components must be used within VoiceSelector"
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
return context;
|
|
50
|
+
};
|
|
51
|
+
const VoiceSelector = ({
|
|
52
|
+
value: valueProp,
|
|
53
|
+
defaultValue,
|
|
54
|
+
onValueChange,
|
|
55
|
+
open: openProp,
|
|
56
|
+
defaultOpen = false,
|
|
57
|
+
onOpenChange,
|
|
58
|
+
children,
|
|
59
|
+
...props
|
|
60
|
+
}) => {
|
|
61
|
+
const [value, setValue] = _reactusecontrollablestate.useControllableState.call(void 0, {
|
|
62
|
+
defaultProp: defaultValue,
|
|
63
|
+
onChange: onValueChange,
|
|
64
|
+
prop: valueProp
|
|
65
|
+
});
|
|
66
|
+
const [open, setOpen] = _reactusecontrollablestate.useControllableState.call(void 0, {
|
|
67
|
+
defaultProp: defaultOpen,
|
|
68
|
+
onChange: onOpenChange,
|
|
69
|
+
prop: openProp
|
|
70
|
+
});
|
|
71
|
+
const voiceSelectorContext = _react.useMemo.call(void 0,
|
|
72
|
+
() => ({ open, setOpen, setValue, value }),
|
|
73
|
+
[value, setValue, open, setOpen]
|
|
74
|
+
);
|
|
75
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VoiceSelectorContext.Provider, { value: voiceSelectorContext, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dialog.Dialog, { onOpenChange: setOpen, open, ...props, children }) });
|
|
76
|
+
};
|
|
77
|
+
const VoiceSelectorTrigger = (props) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dialog.DialogTrigger, { ...props });
|
|
78
|
+
const VoiceSelectorContent = ({
|
|
79
|
+
className,
|
|
80
|
+
children,
|
|
81
|
+
title = "Voice Selector",
|
|
82
|
+
...props
|
|
83
|
+
}) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
84
|
+
_dialog.DialogContent,
|
|
85
|
+
{
|
|
86
|
+
"aria-describedby": void 0,
|
|
87
|
+
className: _utils.cn.call(void 0, "p-0", className),
|
|
88
|
+
...props,
|
|
89
|
+
children: [
|
|
90
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _dialog.DialogTitle, { className: "sr-only", children: title }),
|
|
91
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _command.Command, { className: "**:data-[slot=command-input-wrapper]:h-auto", children })
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
const VoiceSelectorDialog = (props) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _command.CommandDialog, { ...props });
|
|
96
|
+
const VoiceSelectorInput = ({
|
|
97
|
+
className,
|
|
98
|
+
...props
|
|
99
|
+
}) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _command.CommandInput, { className: _utils.cn.call(void 0, "h-auto py-3.5", className), ...props });
|
|
100
|
+
const VoiceSelectorList = (props) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _command.CommandList, { ...props });
|
|
101
|
+
const VoiceSelectorEmpty = (props) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _command.CommandEmpty, { ...props });
|
|
102
|
+
const VoiceSelectorGroup = (props) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _command.CommandGroup, { ...props });
|
|
103
|
+
const VoiceSelectorItem = ({
|
|
104
|
+
className,
|
|
105
|
+
...props
|
|
106
|
+
}) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _command.CommandItem, { className: _utils.cn.call(void 0, "px-4 py-2", className), ...props });
|
|
107
|
+
const VoiceSelectorShortcut = (props) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _command.CommandShortcut, { ...props });
|
|
108
|
+
const VoiceSelectorSeparator = (props) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _command.CommandSeparator, { ...props });
|
|
109
|
+
const VoiceSelectorGender = ({
|
|
110
|
+
className,
|
|
111
|
+
value,
|
|
112
|
+
children,
|
|
113
|
+
...props
|
|
114
|
+
}) => {
|
|
115
|
+
let icon = null;
|
|
116
|
+
switch (value) {
|
|
117
|
+
case "male": {
|
|
118
|
+
icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.MarsIcon, { className: "size-4" });
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
case "female": {
|
|
122
|
+
icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.VenusIcon, { className: "size-4" });
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
case "transgender": {
|
|
126
|
+
icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.TransgenderIcon, { className: "size-4" });
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case "androgyne": {
|
|
130
|
+
icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.MarsStrokeIcon, { className: "size-4" });
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
case "non-binary": {
|
|
134
|
+
icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.NonBinaryIcon, { className: "size-4" });
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
case "intersex": {
|
|
138
|
+
icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.VenusAndMarsIcon, { className: "size-4" });
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
default: {
|
|
142
|
+
icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CircleSmallIcon, { className: "size-4" });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _utils.cn.call(void 0, "text-muted-foreground text-xs", className), ...props, children: _nullishCoalesce(children, () => ( icon)) });
|
|
146
|
+
};
|
|
147
|
+
const VoiceSelectorAge = ({
|
|
148
|
+
className,
|
|
149
|
+
...props
|
|
150
|
+
}) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
151
|
+
"span",
|
|
152
|
+
{
|
|
153
|
+
className: _utils.cn.call(void 0, "text-muted-foreground text-xs tabular-nums", className),
|
|
154
|
+
...props
|
|
155
|
+
}
|
|
156
|
+
);
|
|
157
|
+
const VoiceSelectorName = ({
|
|
158
|
+
className,
|
|
159
|
+
...props
|
|
160
|
+
}) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
161
|
+
"span",
|
|
162
|
+
{
|
|
163
|
+
className: _utils.cn.call(void 0, "flex-1 truncate text-left font-medium", className),
|
|
164
|
+
...props
|
|
165
|
+
}
|
|
166
|
+
);
|
|
167
|
+
const VoiceSelectorDescription = ({
|
|
168
|
+
className,
|
|
169
|
+
...props
|
|
170
|
+
}) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _utils.cn.call(void 0, "text-muted-foreground text-xs", className), ...props });
|
|
171
|
+
const VoiceSelectorAttributes = ({
|
|
172
|
+
className,
|
|
173
|
+
children,
|
|
174
|
+
...props
|
|
175
|
+
}) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _utils.cn.call(void 0, "flex items-center text-xs", className), ...props, children });
|
|
176
|
+
const VoiceSelectorBullet = ({
|
|
177
|
+
className,
|
|
178
|
+
...props
|
|
179
|
+
}) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
180
|
+
"span",
|
|
181
|
+
{
|
|
182
|
+
"aria-hidden": "true",
|
|
183
|
+
className: _utils.cn.call(void 0, "select-none text-border", className),
|
|
184
|
+
...props,
|
|
185
|
+
children: "\u2022"
|
|
186
|
+
}
|
|
187
|
+
);
|
|
188
|
+
const VoiceSelectorPreview = ({
|
|
189
|
+
className,
|
|
190
|
+
playing,
|
|
191
|
+
loading,
|
|
192
|
+
onPlay,
|
|
193
|
+
onClick,
|
|
194
|
+
...props
|
|
195
|
+
}) => {
|
|
196
|
+
const handleClick = _react.useCallback.call(void 0,
|
|
197
|
+
(event) => {
|
|
198
|
+
event.stopPropagation();
|
|
199
|
+
_optionalChain([onClick, 'optionalCall', _ => _(event)]);
|
|
200
|
+
_optionalChain([onPlay, 'optionalCall', _2 => _2()]);
|
|
201
|
+
},
|
|
202
|
+
[onClick, onPlay]
|
|
203
|
+
);
|
|
204
|
+
let icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.PlayIcon, { className: "size-3" });
|
|
205
|
+
if (loading) {
|
|
206
|
+
icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _spinner.Spinner, { className: "size-3" });
|
|
207
|
+
} else if (playing) {
|
|
208
|
+
icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.PauseIcon, { className: "size-3" });
|
|
209
|
+
}
|
|
210
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
211
|
+
_button.Button,
|
|
212
|
+
{
|
|
213
|
+
"aria-label": playing ? "Pause preview" : "Play preview",
|
|
214
|
+
className: _utils.cn.call(void 0, "size-6", className),
|
|
215
|
+
disabled: loading,
|
|
216
|
+
onClick: handleClick,
|
|
217
|
+
size: "icon-sm",
|
|
218
|
+
type: "button",
|
|
219
|
+
variant: "outline",
|
|
220
|
+
...props,
|
|
221
|
+
children: icon
|
|
222
|
+
}
|
|
223
|
+
);
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
exports.VoiceSelector = VoiceSelector; exports.VoiceSelectorAccent = _voiceselectoraccent.VoiceSelectorAccent; exports.VoiceSelectorAge = VoiceSelectorAge; exports.VoiceSelectorAttributes = VoiceSelectorAttributes; exports.VoiceSelectorBullet = VoiceSelectorBullet; exports.VoiceSelectorContent = VoiceSelectorContent; exports.VoiceSelectorDescription = VoiceSelectorDescription; exports.VoiceSelectorDialog = VoiceSelectorDialog; exports.VoiceSelectorEmpty = VoiceSelectorEmpty; exports.VoiceSelectorGender = VoiceSelectorGender; exports.VoiceSelectorGroup = VoiceSelectorGroup; exports.VoiceSelectorInput = VoiceSelectorInput; exports.VoiceSelectorItem = VoiceSelectorItem; exports.VoiceSelectorList = VoiceSelectorList; exports.VoiceSelectorName = VoiceSelectorName; exports.VoiceSelectorPreview = VoiceSelectorPreview; exports.VoiceSelectorSeparator = VoiceSelectorSeparator; exports.VoiceSelectorShortcut = VoiceSelectorShortcut; exports.VoiceSelectorTrigger = VoiceSelectorTrigger; exports.useVoiceSelector = useVoiceSelector;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ComponentProps, ReactNode } from 'react';
|
|
3
|
+
export { VoiceSelectorAccent, VoiceSelectorAccentProps } from './voice-selector-accent.cjs';
|
|
4
|
+
import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from '../ui/command.cjs';
|
|
5
|
+
import { Dialog, DialogContent, DialogTrigger } from '../ui/dialog.cjs';
|
|
6
|
+
import 'cmdk';
|
|
7
|
+
import 'radix-ui';
|
|
8
|
+
|
|
9
|
+
interface VoiceSelectorContextValue {
|
|
10
|
+
value: string | undefined;
|
|
11
|
+
setValue: (value: string | undefined) => void;
|
|
12
|
+
open: boolean;
|
|
13
|
+
setOpen: (open: boolean) => void;
|
|
14
|
+
}
|
|
15
|
+
declare const useVoiceSelector: () => VoiceSelectorContextValue;
|
|
16
|
+
type VoiceSelectorProps = ComponentProps<typeof Dialog> & {
|
|
17
|
+
value?: string;
|
|
18
|
+
defaultValue?: string;
|
|
19
|
+
onValueChange?: (value: string | undefined) => void;
|
|
20
|
+
};
|
|
21
|
+
declare const VoiceSelector: ({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, children, ...props }: VoiceSelectorProps) => react_jsx_runtime.JSX.Element;
|
|
22
|
+
type VoiceSelectorTriggerProps = ComponentProps<typeof DialogTrigger>;
|
|
23
|
+
declare const VoiceSelectorTrigger: (props: VoiceSelectorTriggerProps) => react_jsx_runtime.JSX.Element;
|
|
24
|
+
type VoiceSelectorContentProps = ComponentProps<typeof DialogContent> & {
|
|
25
|
+
title?: ReactNode;
|
|
26
|
+
};
|
|
27
|
+
declare const VoiceSelectorContent: ({ className, children, title, ...props }: VoiceSelectorContentProps) => react_jsx_runtime.JSX.Element;
|
|
28
|
+
type VoiceSelectorDialogProps = ComponentProps<typeof CommandDialog>;
|
|
29
|
+
declare const VoiceSelectorDialog: (props: VoiceSelectorDialogProps) => react_jsx_runtime.JSX.Element;
|
|
30
|
+
type VoiceSelectorInputProps = ComponentProps<typeof CommandInput>;
|
|
31
|
+
declare const VoiceSelectorInput: ({ className, ...props }: VoiceSelectorInputProps) => react_jsx_runtime.JSX.Element;
|
|
32
|
+
type VoiceSelectorListProps = ComponentProps<typeof CommandList>;
|
|
33
|
+
declare const VoiceSelectorList: (props: VoiceSelectorListProps) => react_jsx_runtime.JSX.Element;
|
|
34
|
+
type VoiceSelectorEmptyProps = ComponentProps<typeof CommandEmpty>;
|
|
35
|
+
declare const VoiceSelectorEmpty: (props: VoiceSelectorEmptyProps) => react_jsx_runtime.JSX.Element;
|
|
36
|
+
type VoiceSelectorGroupProps = ComponentProps<typeof CommandGroup>;
|
|
37
|
+
declare const VoiceSelectorGroup: (props: VoiceSelectorGroupProps) => react_jsx_runtime.JSX.Element;
|
|
38
|
+
type VoiceSelectorItemProps = ComponentProps<typeof CommandItem>;
|
|
39
|
+
declare const VoiceSelectorItem: ({ className, ...props }: VoiceSelectorItemProps) => react_jsx_runtime.JSX.Element;
|
|
40
|
+
type VoiceSelectorShortcutProps = ComponentProps<typeof CommandShortcut>;
|
|
41
|
+
declare const VoiceSelectorShortcut: (props: VoiceSelectorShortcutProps) => react_jsx_runtime.JSX.Element;
|
|
42
|
+
type VoiceSelectorSeparatorProps = ComponentProps<typeof CommandSeparator>;
|
|
43
|
+
declare const VoiceSelectorSeparator: (props: VoiceSelectorSeparatorProps) => react_jsx_runtime.JSX.Element;
|
|
44
|
+
type VoiceSelectorGenderProps = ComponentProps<"span"> & {
|
|
45
|
+
value?: "male" | "female" | "transgender" | "androgyne" | "non-binary" | "intersex";
|
|
46
|
+
};
|
|
47
|
+
declare const VoiceSelectorGender: ({ className, value, children, ...props }: VoiceSelectorGenderProps) => react_jsx_runtime.JSX.Element;
|
|
48
|
+
|
|
49
|
+
type VoiceSelectorAgeProps = ComponentProps<"span">;
|
|
50
|
+
declare const VoiceSelectorAge: ({ className, ...props }: VoiceSelectorAgeProps) => react_jsx_runtime.JSX.Element;
|
|
51
|
+
type VoiceSelectorNameProps = ComponentProps<"span">;
|
|
52
|
+
declare const VoiceSelectorName: ({ className, ...props }: VoiceSelectorNameProps) => react_jsx_runtime.JSX.Element;
|
|
53
|
+
type VoiceSelectorDescriptionProps = ComponentProps<"span">;
|
|
54
|
+
declare const VoiceSelectorDescription: ({ className, ...props }: VoiceSelectorDescriptionProps) => react_jsx_runtime.JSX.Element;
|
|
55
|
+
type VoiceSelectorAttributesProps = ComponentProps<"div">;
|
|
56
|
+
declare const VoiceSelectorAttributes: ({ className, children, ...props }: VoiceSelectorAttributesProps) => react_jsx_runtime.JSX.Element;
|
|
57
|
+
type VoiceSelectorBulletProps = ComponentProps<"span">;
|
|
58
|
+
declare const VoiceSelectorBullet: ({ className, ...props }: VoiceSelectorBulletProps) => react_jsx_runtime.JSX.Element;
|
|
59
|
+
type VoiceSelectorPreviewProps = Omit<ComponentProps<"button">, "children"> & {
|
|
60
|
+
playing?: boolean;
|
|
61
|
+
loading?: boolean;
|
|
62
|
+
onPlay?: () => void;
|
|
63
|
+
};
|
|
64
|
+
declare const VoiceSelectorPreview: ({ className, playing, loading, onPlay, onClick, ...props }: VoiceSelectorPreviewProps) => react_jsx_runtime.JSX.Element;
|
|
65
|
+
|
|
66
|
+
export { VoiceSelector, VoiceSelectorAge, type VoiceSelectorAgeProps, VoiceSelectorAttributes, type VoiceSelectorAttributesProps, VoiceSelectorBullet, type VoiceSelectorBulletProps, VoiceSelectorContent, type VoiceSelectorContentProps, VoiceSelectorDescription, type VoiceSelectorDescriptionProps, VoiceSelectorDialog, type VoiceSelectorDialogProps, VoiceSelectorEmpty, type VoiceSelectorEmptyProps, VoiceSelectorGender, type VoiceSelectorGenderProps, VoiceSelectorGroup, type VoiceSelectorGroupProps, VoiceSelectorInput, type VoiceSelectorInputProps, VoiceSelectorItem, type VoiceSelectorItemProps, VoiceSelectorList, type VoiceSelectorListProps, VoiceSelectorName, type VoiceSelectorNameProps, VoiceSelectorPreview, type VoiceSelectorPreviewProps, type VoiceSelectorProps, VoiceSelectorSeparator, type VoiceSelectorSeparatorProps, VoiceSelectorShortcut, type VoiceSelectorShortcutProps, VoiceSelectorTrigger, type VoiceSelectorTriggerProps, useVoiceSelector };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ComponentProps, ReactNode } from 'react';
|
|
3
|
+
export { VoiceSelectorAccent, VoiceSelectorAccentProps } from './voice-selector-accent.js';
|
|
4
|
+
import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from '../ui/command.js';
|
|
5
|
+
import { Dialog, DialogContent, DialogTrigger } from '../ui/dialog.js';
|
|
6
|
+
import 'cmdk';
|
|
7
|
+
import 'radix-ui';
|
|
8
|
+
|
|
9
|
+
interface VoiceSelectorContextValue {
|
|
10
|
+
value: string | undefined;
|
|
11
|
+
setValue: (value: string | undefined) => void;
|
|
12
|
+
open: boolean;
|
|
13
|
+
setOpen: (open: boolean) => void;
|
|
14
|
+
}
|
|
15
|
+
declare const useVoiceSelector: () => VoiceSelectorContextValue;
|
|
16
|
+
type VoiceSelectorProps = ComponentProps<typeof Dialog> & {
|
|
17
|
+
value?: string;
|
|
18
|
+
defaultValue?: string;
|
|
19
|
+
onValueChange?: (value: string | undefined) => void;
|
|
20
|
+
};
|
|
21
|
+
declare const VoiceSelector: ({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, children, ...props }: VoiceSelectorProps) => react_jsx_runtime.JSX.Element;
|
|
22
|
+
type VoiceSelectorTriggerProps = ComponentProps<typeof DialogTrigger>;
|
|
23
|
+
declare const VoiceSelectorTrigger: (props: VoiceSelectorTriggerProps) => react_jsx_runtime.JSX.Element;
|
|
24
|
+
type VoiceSelectorContentProps = ComponentProps<typeof DialogContent> & {
|
|
25
|
+
title?: ReactNode;
|
|
26
|
+
};
|
|
27
|
+
declare const VoiceSelectorContent: ({ className, children, title, ...props }: VoiceSelectorContentProps) => react_jsx_runtime.JSX.Element;
|
|
28
|
+
type VoiceSelectorDialogProps = ComponentProps<typeof CommandDialog>;
|
|
29
|
+
declare const VoiceSelectorDialog: (props: VoiceSelectorDialogProps) => react_jsx_runtime.JSX.Element;
|
|
30
|
+
type VoiceSelectorInputProps = ComponentProps<typeof CommandInput>;
|
|
31
|
+
declare const VoiceSelectorInput: ({ className, ...props }: VoiceSelectorInputProps) => react_jsx_runtime.JSX.Element;
|
|
32
|
+
type VoiceSelectorListProps = ComponentProps<typeof CommandList>;
|
|
33
|
+
declare const VoiceSelectorList: (props: VoiceSelectorListProps) => react_jsx_runtime.JSX.Element;
|
|
34
|
+
type VoiceSelectorEmptyProps = ComponentProps<typeof CommandEmpty>;
|
|
35
|
+
declare const VoiceSelectorEmpty: (props: VoiceSelectorEmptyProps) => react_jsx_runtime.JSX.Element;
|
|
36
|
+
type VoiceSelectorGroupProps = ComponentProps<typeof CommandGroup>;
|
|
37
|
+
declare const VoiceSelectorGroup: (props: VoiceSelectorGroupProps) => react_jsx_runtime.JSX.Element;
|
|
38
|
+
type VoiceSelectorItemProps = ComponentProps<typeof CommandItem>;
|
|
39
|
+
declare const VoiceSelectorItem: ({ className, ...props }: VoiceSelectorItemProps) => react_jsx_runtime.JSX.Element;
|
|
40
|
+
type VoiceSelectorShortcutProps = ComponentProps<typeof CommandShortcut>;
|
|
41
|
+
declare const VoiceSelectorShortcut: (props: VoiceSelectorShortcutProps) => react_jsx_runtime.JSX.Element;
|
|
42
|
+
type VoiceSelectorSeparatorProps = ComponentProps<typeof CommandSeparator>;
|
|
43
|
+
declare const VoiceSelectorSeparator: (props: VoiceSelectorSeparatorProps) => react_jsx_runtime.JSX.Element;
|
|
44
|
+
type VoiceSelectorGenderProps = ComponentProps<"span"> & {
|
|
45
|
+
value?: "male" | "female" | "transgender" | "androgyne" | "non-binary" | "intersex";
|
|
46
|
+
};
|
|
47
|
+
declare const VoiceSelectorGender: ({ className, value, children, ...props }: VoiceSelectorGenderProps) => react_jsx_runtime.JSX.Element;
|
|
48
|
+
|
|
49
|
+
type VoiceSelectorAgeProps = ComponentProps<"span">;
|
|
50
|
+
declare const VoiceSelectorAge: ({ className, ...props }: VoiceSelectorAgeProps) => react_jsx_runtime.JSX.Element;
|
|
51
|
+
type VoiceSelectorNameProps = ComponentProps<"span">;
|
|
52
|
+
declare const VoiceSelectorName: ({ className, ...props }: VoiceSelectorNameProps) => react_jsx_runtime.JSX.Element;
|
|
53
|
+
type VoiceSelectorDescriptionProps = ComponentProps<"span">;
|
|
54
|
+
declare const VoiceSelectorDescription: ({ className, ...props }: VoiceSelectorDescriptionProps) => react_jsx_runtime.JSX.Element;
|
|
55
|
+
type VoiceSelectorAttributesProps = ComponentProps<"div">;
|
|
56
|
+
declare const VoiceSelectorAttributes: ({ className, children, ...props }: VoiceSelectorAttributesProps) => react_jsx_runtime.JSX.Element;
|
|
57
|
+
type VoiceSelectorBulletProps = ComponentProps<"span">;
|
|
58
|
+
declare const VoiceSelectorBullet: ({ className, ...props }: VoiceSelectorBulletProps) => react_jsx_runtime.JSX.Element;
|
|
59
|
+
type VoiceSelectorPreviewProps = Omit<ComponentProps<"button">, "children"> & {
|
|
60
|
+
playing?: boolean;
|
|
61
|
+
loading?: boolean;
|
|
62
|
+
onPlay?: () => void;
|
|
63
|
+
};
|
|
64
|
+
declare const VoiceSelectorPreview: ({ className, playing, loading, onPlay, onClick, ...props }: VoiceSelectorPreviewProps) => react_jsx_runtime.JSX.Element;
|
|
65
|
+
|
|
66
|
+
export { VoiceSelector, VoiceSelectorAge, type VoiceSelectorAgeProps, VoiceSelectorAttributes, type VoiceSelectorAttributesProps, VoiceSelectorBullet, type VoiceSelectorBulletProps, VoiceSelectorContent, type VoiceSelectorContentProps, VoiceSelectorDescription, type VoiceSelectorDescriptionProps, VoiceSelectorDialog, type VoiceSelectorDialogProps, VoiceSelectorEmpty, type VoiceSelectorEmptyProps, VoiceSelectorGender, type VoiceSelectorGenderProps, VoiceSelectorGroup, type VoiceSelectorGroupProps, VoiceSelectorInput, type VoiceSelectorInputProps, VoiceSelectorItem, type VoiceSelectorItemProps, VoiceSelectorList, type VoiceSelectorListProps, VoiceSelectorName, type VoiceSelectorNameProps, VoiceSelectorPreview, type VoiceSelectorPreviewProps, type VoiceSelectorProps, VoiceSelectorSeparator, type VoiceSelectorSeparatorProps, VoiceSelectorShortcut, type VoiceSelectorShortcutProps, VoiceSelectorTrigger, type VoiceSelectorTriggerProps, useVoiceSelector };
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
|
4
|
+
import {
|
|
5
|
+
VoiceSelectorAccent
|
|
6
|
+
} from "./voice-selector-accent";
|
|
7
|
+
import { Button } from "../ui/button";
|
|
8
|
+
import {
|
|
9
|
+
Command,
|
|
10
|
+
CommandDialog,
|
|
11
|
+
CommandEmpty,
|
|
12
|
+
CommandGroup,
|
|
13
|
+
CommandInput,
|
|
14
|
+
CommandItem,
|
|
15
|
+
CommandList,
|
|
16
|
+
CommandSeparator,
|
|
17
|
+
CommandShortcut
|
|
18
|
+
} from "../ui/command";
|
|
19
|
+
import {
|
|
20
|
+
Dialog,
|
|
21
|
+
DialogContent,
|
|
22
|
+
DialogTitle,
|
|
23
|
+
DialogTrigger
|
|
24
|
+
} from "../ui/dialog";
|
|
25
|
+
import { Spinner } from "../ui/spinner";
|
|
26
|
+
import { cn } from "../../lib/utils";
|
|
27
|
+
import {
|
|
28
|
+
CircleSmallIcon,
|
|
29
|
+
MarsIcon,
|
|
30
|
+
MarsStrokeIcon,
|
|
31
|
+
NonBinaryIcon,
|
|
32
|
+
PauseIcon,
|
|
33
|
+
PlayIcon,
|
|
34
|
+
TransgenderIcon,
|
|
35
|
+
VenusAndMarsIcon,
|
|
36
|
+
VenusIcon
|
|
37
|
+
} from "lucide-react";
|
|
38
|
+
import { createContext, useCallback, use, useMemo } from "react";
|
|
39
|
+
const VoiceSelectorContext = createContext(
|
|
40
|
+
null
|
|
41
|
+
);
|
|
42
|
+
const useVoiceSelector = () => {
|
|
43
|
+
const context = use(VoiceSelectorContext);
|
|
44
|
+
if (!context) {
|
|
45
|
+
throw new Error(
|
|
46
|
+
"VoiceSelector components must be used within VoiceSelector"
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
return context;
|
|
50
|
+
};
|
|
51
|
+
const VoiceSelector = ({
|
|
52
|
+
value: valueProp,
|
|
53
|
+
defaultValue,
|
|
54
|
+
onValueChange,
|
|
55
|
+
open: openProp,
|
|
56
|
+
defaultOpen = false,
|
|
57
|
+
onOpenChange,
|
|
58
|
+
children,
|
|
59
|
+
...props
|
|
60
|
+
}) => {
|
|
61
|
+
const [value, setValue] = useControllableState({
|
|
62
|
+
defaultProp: defaultValue,
|
|
63
|
+
onChange: onValueChange,
|
|
64
|
+
prop: valueProp
|
|
65
|
+
});
|
|
66
|
+
const [open, setOpen] = useControllableState({
|
|
67
|
+
defaultProp: defaultOpen,
|
|
68
|
+
onChange: onOpenChange,
|
|
69
|
+
prop: openProp
|
|
70
|
+
});
|
|
71
|
+
const voiceSelectorContext = useMemo(
|
|
72
|
+
() => ({ open, setOpen, setValue, value }),
|
|
73
|
+
[value, setValue, open, setOpen]
|
|
74
|
+
);
|
|
75
|
+
return /* @__PURE__ */ jsx(VoiceSelectorContext.Provider, { value: voiceSelectorContext, children: /* @__PURE__ */ jsx(Dialog, { onOpenChange: setOpen, open, ...props, children }) });
|
|
76
|
+
};
|
|
77
|
+
const VoiceSelectorTrigger = (props) => /* @__PURE__ */ jsx(DialogTrigger, { ...props });
|
|
78
|
+
const VoiceSelectorContent = ({
|
|
79
|
+
className,
|
|
80
|
+
children,
|
|
81
|
+
title = "Voice Selector",
|
|
82
|
+
...props
|
|
83
|
+
}) => /* @__PURE__ */ jsxs(
|
|
84
|
+
DialogContent,
|
|
85
|
+
{
|
|
86
|
+
"aria-describedby": void 0,
|
|
87
|
+
className: cn("p-0", className),
|
|
88
|
+
...props,
|
|
89
|
+
children: [
|
|
90
|
+
/* @__PURE__ */ jsx(DialogTitle, { className: "sr-only", children: title }),
|
|
91
|
+
/* @__PURE__ */ jsx(Command, { className: "**:data-[slot=command-input-wrapper]:h-auto", children })
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
const VoiceSelectorDialog = (props) => /* @__PURE__ */ jsx(CommandDialog, { ...props });
|
|
96
|
+
const VoiceSelectorInput = ({
|
|
97
|
+
className,
|
|
98
|
+
...props
|
|
99
|
+
}) => /* @__PURE__ */ jsx(CommandInput, { className: cn("h-auto py-3.5", className), ...props });
|
|
100
|
+
const VoiceSelectorList = (props) => /* @__PURE__ */ jsx(CommandList, { ...props });
|
|
101
|
+
const VoiceSelectorEmpty = (props) => /* @__PURE__ */ jsx(CommandEmpty, { ...props });
|
|
102
|
+
const VoiceSelectorGroup = (props) => /* @__PURE__ */ jsx(CommandGroup, { ...props });
|
|
103
|
+
const VoiceSelectorItem = ({
|
|
104
|
+
className,
|
|
105
|
+
...props
|
|
106
|
+
}) => /* @__PURE__ */ jsx(CommandItem, { className: cn("px-4 py-2", className), ...props });
|
|
107
|
+
const VoiceSelectorShortcut = (props) => /* @__PURE__ */ jsx(CommandShortcut, { ...props });
|
|
108
|
+
const VoiceSelectorSeparator = (props) => /* @__PURE__ */ jsx(CommandSeparator, { ...props });
|
|
109
|
+
const VoiceSelectorGender = ({
|
|
110
|
+
className,
|
|
111
|
+
value,
|
|
112
|
+
children,
|
|
113
|
+
...props
|
|
114
|
+
}) => {
|
|
115
|
+
let icon = null;
|
|
116
|
+
switch (value) {
|
|
117
|
+
case "male": {
|
|
118
|
+
icon = /* @__PURE__ */ jsx(MarsIcon, { className: "size-4" });
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
case "female": {
|
|
122
|
+
icon = /* @__PURE__ */ jsx(VenusIcon, { className: "size-4" });
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
case "transgender": {
|
|
126
|
+
icon = /* @__PURE__ */ jsx(TransgenderIcon, { className: "size-4" });
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case "androgyne": {
|
|
130
|
+
icon = /* @__PURE__ */ jsx(MarsStrokeIcon, { className: "size-4" });
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
case "non-binary": {
|
|
134
|
+
icon = /* @__PURE__ */ jsx(NonBinaryIcon, { className: "size-4" });
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
case "intersex": {
|
|
138
|
+
icon = /* @__PURE__ */ jsx(VenusAndMarsIcon, { className: "size-4" });
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
default: {
|
|
142
|
+
icon = /* @__PURE__ */ jsx(CircleSmallIcon, { className: "size-4" });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground text-xs", className), ...props, children: children ?? icon });
|
|
146
|
+
};
|
|
147
|
+
const VoiceSelectorAge = ({
|
|
148
|
+
className,
|
|
149
|
+
...props
|
|
150
|
+
}) => /* @__PURE__ */ jsx(
|
|
151
|
+
"span",
|
|
152
|
+
{
|
|
153
|
+
className: cn("text-muted-foreground text-xs tabular-nums", className),
|
|
154
|
+
...props
|
|
155
|
+
}
|
|
156
|
+
);
|
|
157
|
+
const VoiceSelectorName = ({
|
|
158
|
+
className,
|
|
159
|
+
...props
|
|
160
|
+
}) => /* @__PURE__ */ jsx(
|
|
161
|
+
"span",
|
|
162
|
+
{
|
|
163
|
+
className: cn("flex-1 truncate text-left font-medium", className),
|
|
164
|
+
...props
|
|
165
|
+
}
|
|
166
|
+
);
|
|
167
|
+
const VoiceSelectorDescription = ({
|
|
168
|
+
className,
|
|
169
|
+
...props
|
|
170
|
+
}) => /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground text-xs", className), ...props });
|
|
171
|
+
const VoiceSelectorAttributes = ({
|
|
172
|
+
className,
|
|
173
|
+
children,
|
|
174
|
+
...props
|
|
175
|
+
}) => /* @__PURE__ */ jsx("div", { className: cn("flex items-center text-xs", className), ...props, children });
|
|
176
|
+
const VoiceSelectorBullet = ({
|
|
177
|
+
className,
|
|
178
|
+
...props
|
|
179
|
+
}) => /* @__PURE__ */ jsx(
|
|
180
|
+
"span",
|
|
181
|
+
{
|
|
182
|
+
"aria-hidden": "true",
|
|
183
|
+
className: cn("select-none text-border", className),
|
|
184
|
+
...props,
|
|
185
|
+
children: "\u2022"
|
|
186
|
+
}
|
|
187
|
+
);
|
|
188
|
+
const VoiceSelectorPreview = ({
|
|
189
|
+
className,
|
|
190
|
+
playing,
|
|
191
|
+
loading,
|
|
192
|
+
onPlay,
|
|
193
|
+
onClick,
|
|
194
|
+
...props
|
|
195
|
+
}) => {
|
|
196
|
+
const handleClick = useCallback(
|
|
197
|
+
(event) => {
|
|
198
|
+
event.stopPropagation();
|
|
199
|
+
onClick?.(event);
|
|
200
|
+
onPlay?.();
|
|
201
|
+
},
|
|
202
|
+
[onClick, onPlay]
|
|
203
|
+
);
|
|
204
|
+
let icon = /* @__PURE__ */ jsx(PlayIcon, { className: "size-3" });
|
|
205
|
+
if (loading) {
|
|
206
|
+
icon = /* @__PURE__ */ jsx(Spinner, { className: "size-3" });
|
|
207
|
+
} else if (playing) {
|
|
208
|
+
icon = /* @__PURE__ */ jsx(PauseIcon, { className: "size-3" });
|
|
209
|
+
}
|
|
210
|
+
return /* @__PURE__ */ jsx(
|
|
211
|
+
Button,
|
|
212
|
+
{
|
|
213
|
+
"aria-label": playing ? "Pause preview" : "Play preview",
|
|
214
|
+
className: cn("size-6", className),
|
|
215
|
+
disabled: loading,
|
|
216
|
+
onClick: handleClick,
|
|
217
|
+
size: "icon-sm",
|
|
218
|
+
type: "button",
|
|
219
|
+
variant: "outline",
|
|
220
|
+
...props,
|
|
221
|
+
children: icon
|
|
222
|
+
}
|
|
223
|
+
);
|
|
224
|
+
};
|
|
225
|
+
export {
|
|
226
|
+
VoiceSelector,
|
|
227
|
+
VoiceSelectorAccent,
|
|
228
|
+
VoiceSelectorAge,
|
|
229
|
+
VoiceSelectorAttributes,
|
|
230
|
+
VoiceSelectorBullet,
|
|
231
|
+
VoiceSelectorContent,
|
|
232
|
+
VoiceSelectorDescription,
|
|
233
|
+
VoiceSelectorDialog,
|
|
234
|
+
VoiceSelectorEmpty,
|
|
235
|
+
VoiceSelectorGender,
|
|
236
|
+
VoiceSelectorGroup,
|
|
237
|
+
VoiceSelectorInput,
|
|
238
|
+
VoiceSelectorItem,
|
|
239
|
+
VoiceSelectorList,
|
|
240
|
+
VoiceSelectorName,
|
|
241
|
+
VoiceSelectorPreview,
|
|
242
|
+
VoiceSelectorSeparator,
|
|
243
|
+
VoiceSelectorShortcut,
|
|
244
|
+
VoiceSelectorTrigger,
|
|
245
|
+
useVoiceSelector
|
|
246
|
+
};
|