@verbb/plugin-kit-react 1.0.0
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/CHANGELOG.md +5 -0
- package/LICENSE.md +21 -0
- package/README.md +31 -0
- package/dist/_virtual/_rolldown/runtime.js +34 -0
- package/dist/components/Button.d.ts +26 -0
- package/dist/components/Button.d.ts.map +1 -0
- package/dist/components/Button.js +148 -0
- package/dist/components/Button.js.map +1 -0
- package/dist/components/ButtonGroup.d.ts +11 -0
- package/dist/components/ButtonGroup.d.ts.map +1 -0
- package/dist/components/ButtonGroup.js +59 -0
- package/dist/components/ButtonGroup.js.map +1 -0
- package/dist/components/Calendar.d.ts +11 -0
- package/dist/components/Calendar.d.ts.map +1 -0
- package/dist/components/Calendar.js +133 -0
- package/dist/components/Calendar.js.map +1 -0
- package/dist/components/Checkbox.d.ts +5 -0
- package/dist/components/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox.js +41 -0
- package/dist/components/Checkbox.js.map +1 -0
- package/dist/components/CheckboxInput.d.ts +14 -0
- package/dist/components/CheckboxInput.d.ts.map +1 -0
- package/dist/components/CheckboxInput.js +31 -0
- package/dist/components/CheckboxInput.js.map +1 -0
- package/dist/components/CheckboxSelect.d.ts +19 -0
- package/dist/components/CheckboxSelect.d.ts.map +1 -0
- package/dist/components/CheckboxSelect.js +63 -0
- package/dist/components/CheckboxSelect.js.map +1 -0
- package/dist/components/ColorInput.d.ts +14 -0
- package/dist/components/ColorInput.d.ts.map +1 -0
- package/dist/components/ColorInput.js +148 -0
- package/dist/components/ColorInput.js.map +1 -0
- package/dist/components/Combobox.d.ts +40 -0
- package/dist/components/Combobox.d.ts.map +1 -0
- package/dist/components/Combobox.js +393 -0
- package/dist/components/Combobox.js.map +1 -0
- package/dist/components/ComboboxInput.d.ts +28 -0
- package/dist/components/ComboboxInput.d.ts.map +1 -0
- package/dist/components/ComboboxInput.js +165 -0
- package/dist/components/ComboboxInput.js.map +1 -0
- package/dist/components/Command.d.ts +26 -0
- package/dist/components/Command.d.ts.map +1 -0
- package/dist/components/Command.js +94 -0
- package/dist/components/Command.js.map +1 -0
- package/dist/components/CopyButton.d.ts +9 -0
- package/dist/components/CopyButton.d.ts.map +1 -0
- package/dist/components/CopyButton.js +40 -0
- package/dist/components/CopyButton.js.map +1 -0
- package/dist/components/DatePicker.d.ts +9 -0
- package/dist/components/DatePicker.d.ts.map +1 -0
- package/dist/components/DatePicker.js +46 -0
- package/dist/components/DatePicker.js.map +1 -0
- package/dist/components/Dialog.d.ts +21 -0
- package/dist/components/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog.js +179 -0
- package/dist/components/Dialog.js.map +1 -0
- package/dist/components/DropdownMenu.d.ts +47 -0
- package/dist/components/DropdownMenu.d.ts.map +1 -0
- package/dist/components/DropdownMenu.js +240 -0
- package/dist/components/DropdownMenu.js.map +1 -0
- package/dist/components/EditableTable.d.ts +28 -0
- package/dist/components/EditableTable.d.ts.map +1 -0
- package/dist/components/EditableTable.js +145 -0
- package/dist/components/EditableTable.js.map +1 -0
- package/dist/components/FadeIn.d.ts +12 -0
- package/dist/components/FadeIn.d.ts.map +1 -0
- package/dist/components/FadeIn.js +24 -0
- package/dist/components/FadeIn.js.map +1 -0
- package/dist/components/Input.d.ts +9 -0
- package/dist/components/Input.d.ts.map +1 -0
- package/dist/components/Input.js +43 -0
- package/dist/components/Input.js.map +1 -0
- package/dist/components/InputGroup.d.ts +20 -0
- package/dist/components/InputGroup.d.ts.map +1 -0
- package/dist/components/InputGroup.js +111 -0
- package/dist/components/InputGroup.js.map +1 -0
- package/dist/components/Label.d.ts +4 -0
- package/dist/components/Label.d.ts.map +1 -0
- package/dist/components/Label.js +15 -0
- package/dist/components/Label.js.map +1 -0
- package/dist/components/Lightswitch.d.ts +9 -0
- package/dist/components/Lightswitch.d.ts.map +1 -0
- package/dist/components/Lightswitch.js +56 -0
- package/dist/components/Lightswitch.js.map +1 -0
- package/dist/components/Markdown.d.ts +11 -0
- package/dist/components/Markdown.d.ts.map +1 -0
- package/dist/components/Markdown.js +46 -0
- package/dist/components/Markdown.js.map +1 -0
- package/dist/components/MenuButton.d.ts +40 -0
- package/dist/components/MenuButton.d.ts.map +1 -0
- package/dist/components/MenuButton.js +122 -0
- package/dist/components/MenuButton.js.map +1 -0
- package/dist/components/ModalTabs.d.ts +8 -0
- package/dist/components/ModalTabs.d.ts.map +1 -0
- package/dist/components/ModalTabs.js +37 -0
- package/dist/components/ModalTabs.js.map +1 -0
- package/dist/components/PaneTabs.d.ts +8 -0
- package/dist/components/PaneTabs.d.ts.map +1 -0
- package/dist/components/PaneTabs.js +37 -0
- package/dist/components/PaneTabs.js.map +1 -0
- package/dist/components/Popover.d.ts +12 -0
- package/dist/components/Popover.d.ts.map +1 -0
- package/dist/components/Popover.js +70 -0
- package/dist/components/Popover.js.map +1 -0
- package/dist/components/RadioGroup.d.ts +6 -0
- package/dist/components/RadioGroup.d.ts.map +1 -0
- package/dist/components/RadioGroup.js +34 -0
- package/dist/components/RadioGroup.js.map +1 -0
- package/dist/components/ScrollArea.d.ts +16 -0
- package/dist/components/ScrollArea.d.ts.map +1 -0
- package/dist/components/ScrollArea.js +47 -0
- package/dist/components/ScrollArea.js.map +1 -0
- package/dist/components/Select.d.ts +23 -0
- package/dist/components/Select.d.ts.map +1 -0
- package/dist/components/Select.js +205 -0
- package/dist/components/Select.js.map +1 -0
- package/dist/components/SelectInput.d.ts +33 -0
- package/dist/components/SelectInput.d.ts.map +1 -0
- package/dist/components/SelectInput.js +85 -0
- package/dist/components/SelectInput.js.map +1 -0
- package/dist/components/Separator.d.ts +4 -0
- package/dist/components/Separator.d.ts.map +1 -0
- package/dist/components/Separator.js +17 -0
- package/dist/components/Separator.js.map +1 -0
- package/dist/components/SlideUp.d.ts +12 -0
- package/dist/components/SlideUp.d.ts.map +1 -0
- package/dist/components/SlideUp.js +36 -0
- package/dist/components/SlideUp.js.map +1 -0
- package/dist/components/Slot.d.ts +6 -0
- package/dist/components/Slot.d.ts.map +1 -0
- package/dist/components/Slot.js +52 -0
- package/dist/components/Slot.js.map +1 -0
- package/dist/components/Spinner.d.ts +9 -0
- package/dist/components/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner.js +43 -0
- package/dist/components/Spinner.js.map +1 -0
- package/dist/components/Status.d.ts +8 -0
- package/dist/components/Status.d.ts.map +1 -0
- package/dist/components/Status.js +55 -0
- package/dist/components/Status.js.map +1 -0
- package/dist/components/Table.d.ts +10 -0
- package/dist/components/Table.d.ts.map +1 -0
- package/dist/components/Table.js +64 -0
- package/dist/components/Table.js.map +1 -0
- package/dist/components/Tabs.d.ts +8 -0
- package/dist/components/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs.js +37 -0
- package/dist/components/Tabs.js.map +1 -0
- package/dist/components/Textarea.d.ts +8 -0
- package/dist/components/Textarea.d.ts.map +1 -0
- package/dist/components/Textarea.js +26 -0
- package/dist/components/Textarea.js.map +1 -0
- package/dist/components/TimePicker.d.ts +9 -0
- package/dist/components/TimePicker.d.ts.map +1 -0
- package/dist/components/TimePicker.js +40 -0
- package/dist/components/TimePicker.js.map +1 -0
- package/dist/components/TiptapContent.d.ts +9 -0
- package/dist/components/TiptapContent.d.ts.map +1 -0
- package/dist/components/TiptapContent.js +24 -0
- package/dist/components/TiptapContent.js.map +1 -0
- package/dist/components/TiptapEditor.d.ts +41 -0
- package/dist/components/TiptapEditor.d.ts.map +1 -0
- package/dist/components/TiptapEditor.js +555 -0
- package/dist/components/TiptapEditor.js.map +1 -0
- package/dist/components/TiptapInput.d.ts +15 -0
- package/dist/components/TiptapInput.d.ts.map +1 -0
- package/dist/components/TiptapInput.js +138 -0
- package/dist/components/TiptapInput.js.map +1 -0
- package/dist/components/Toggle.d.ts +9 -0
- package/dist/components/Toggle.d.ts.map +1 -0
- package/dist/components/Toggle.js +48 -0
- package/dist/components/Toggle.js.map +1 -0
- package/dist/components/ToggleGroup.d.ts +11 -0
- package/dist/components/ToggleGroup.d.ts.map +1 -0
- package/dist/components/ToggleGroup.js +70 -0
- package/dist/components/ToggleGroup.js.map +1 -0
- package/dist/components/Tooltip.d.ts +9 -0
- package/dist/components/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip.js +51 -0
- package/dist/components/Tooltip.js.map +1 -0
- package/dist/components/VirtualizedScrollArea.d.ts +25 -0
- package/dist/components/VirtualizedScrollArea.d.ts.map +1 -0
- package/dist/components/VirtualizedScrollArea.js +80 -0
- package/dist/components/VirtualizedScrollArea.js.map +1 -0
- package/dist/components/editable-table/RowDataCells.d.ts +3 -0
- package/dist/components/editable-table/RowDataCells.d.ts.map +1 -0
- package/dist/components/editable-table/RowDataCells.js +33 -0
- package/dist/components/editable-table/RowDataCells.js.map +1 -0
- package/dist/components/editable-table/TableCell.d.ts +13 -0
- package/dist/components/editable-table/TableCell.d.ts.map +1 -0
- package/dist/components/editable-table/TableCell.js +415 -0
- package/dist/components/editable-table/TableCell.js.map +1 -0
- package/dist/components/editable-table/TableRow.d.ts +3 -0
- package/dist/components/editable-table/TableRow.d.ts.map +1 -0
- package/dist/components/editable-table/TableRow.js +163 -0
- package/dist/components/editable-table/TableRow.js.map +1 -0
- package/dist/components/editable-table/helpers.d.ts +12 -0
- package/dist/components/editable-table/helpers.d.ts.map +1 -0
- package/dist/components/editable-table/helpers.js +23 -0
- package/dist/components/editable-table/helpers.js.map +1 -0
- package/dist/components/editable-table/index.d.ts +4 -0
- package/dist/components/editable-table/index.d.ts.map +1 -0
- package/dist/components/editable-table/index.js +4 -0
- package/dist/components/editable-table/types.d.ts +43 -0
- package/dist/components/editable-table/types.d.ts.map +1 -0
- package/dist/components/editable-table/types.js +0 -0
- package/dist/components/editable-table/useEditableTableCellChange.d.ts +17 -0
- package/dist/components/editable-table/useEditableTableCellChange.d.ts.map +1 -0
- package/dist/components/editable-table/useEditableTableCellChange.js +152 -0
- package/dist/components/editable-table/useEditableTableCellChange.js.map +1 -0
- package/dist/components/editable-table/useEditableTableDnd.d.ts +18 -0
- package/dist/components/editable-table/useEditableTableDnd.d.ts.map +1 -0
- package/dist/components/editable-table/useEditableTableDnd.js +55 -0
- package/dist/components/editable-table/useEditableTableDnd.js.map +1 -0
- package/dist/components/editable-table/useEditableTableRows.d.ts +17 -0
- package/dist/components/editable-table/useEditableTableRows.d.ts.map +1 -0
- package/dist/components/editable-table/useEditableTableRows.js +108 -0
- package/dist/components/editable-table/useEditableTableRows.js.map +1 -0
- package/dist/components/index.d.ts +45 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +45 -0
- package/dist/components/tiptap/InlineVariablePickerPopover.d.ts +24 -0
- package/dist/components/tiptap/InlineVariablePickerPopover.d.ts.map +1 -0
- package/dist/components/tiptap/InlineVariablePickerPopover.js +63 -0
- package/dist/components/tiptap/InlineVariablePickerPopover.js.map +1 -0
- package/dist/components/tiptap/InsertLinkDialog.d.ts +14 -0
- package/dist/components/tiptap/InsertLinkDialog.d.ts.map +1 -0
- package/dist/components/tiptap/InsertLinkDialog.js +145 -0
- package/dist/components/tiptap/InsertLinkDialog.js.map +1 -0
- package/dist/components/tiptap/LinkBubbleMenu.d.ts +10 -0
- package/dist/components/tiptap/LinkBubbleMenu.d.ts.map +1 -0
- package/dist/components/tiptap/LinkBubbleMenu.js +106 -0
- package/dist/components/tiptap/LinkBubbleMenu.js.map +1 -0
- package/dist/components/tiptap/LinkDropdown.d.ts +53 -0
- package/dist/components/tiptap/LinkDropdown.d.ts.map +1 -0
- package/dist/components/tiptap/LinkDropdown.js +155 -0
- package/dist/components/tiptap/LinkDropdown.js.map +1 -0
- package/dist/components/tiptap/VariableCommandList.d.ts +37 -0
- package/dist/components/tiptap/VariableCommandList.d.ts.map +1 -0
- package/dist/components/tiptap/VariableCommandList.js +166 -0
- package/dist/components/tiptap/VariableCommandList.js.map +1 -0
- package/dist/components/tiptap/VariableDropdown.d.ts +33 -0
- package/dist/components/tiptap/VariableDropdown.d.ts.map +1 -0
- package/dist/components/tiptap/VariableDropdown.js +121 -0
- package/dist/components/tiptap/VariableDropdown.js.map +1 -0
- package/dist/components/tiptap/VariablePickerContext.d.ts +38 -0
- package/dist/components/tiptap/VariablePickerContext.d.ts.map +1 -0
- package/dist/components/tiptap/VariablePickerContext.js +30 -0
- package/dist/components/tiptap/VariablePickerContext.js.map +1 -0
- package/dist/components/tiptap/VariableTag.d.ts +6 -0
- package/dist/components/tiptap/VariableTag.d.ts.map +1 -0
- package/dist/components/tiptap/VariableTag.js +153 -0
- package/dist/components/tiptap/VariableTag.js.map +1 -0
- package/dist/components/tiptap/VariableTagView.d.ts +3 -0
- package/dist/components/tiptap/VariableTagView.d.ts.map +1 -0
- package/dist/components/tiptap/VariableTagView.js +445 -0
- package/dist/components/tiptap/VariableTagView.js.map +1 -0
- package/dist/components/tiptap/VariableTransformControls.d.ts +37 -0
- package/dist/components/tiptap/VariableTransformControls.d.ts.map +1 -0
- package/dist/components/tiptap/VariableTransformControls.js +157 -0
- package/dist/components/tiptap/VariableTransformControls.js.map +1 -0
- package/dist/components/tiptap/editorConfig.d.ts +15 -0
- package/dist/components/tiptap/editorConfig.d.ts.map +1 -0
- package/dist/components/tiptap/editorConfig.js +191 -0
- package/dist/components/tiptap/editorConfig.js.map +1 -0
- package/dist/components/tiptap/useInlineVariablePicker.d.ts +34 -0
- package/dist/components/tiptap/useInlineVariablePicker.d.ts.map +1 -0
- package/dist/components/tiptap/useInlineVariablePicker.js +240 -0
- package/dist/components/tiptap/useInlineVariablePicker.js.map +1 -0
- package/dist/components/tiptap/useVariablePicker.d.ts +28 -0
- package/dist/components/tiptap/useVariablePicker.d.ts.map +1 -0
- package/dist/components/tiptap/useVariablePicker.js +122 -0
- package/dist/components/tiptap/useVariablePicker.js.map +1 -0
- package/dist/components/tiptap/variablePickerUtils.d.ts +11 -0
- package/dist/components/tiptap/variablePickerUtils.d.ts.map +1 -0
- package/dist/components/tiptap/variablePickerUtils.js +63 -0
- package/dist/components/tiptap/variablePickerUtils.js.map +1 -0
- package/dist/components/tiptap/variableSerialization.d.ts +49 -0
- package/dist/components/tiptap/variableSerialization.d.ts.map +1 -0
- package/dist/components/tiptap/variableSerialization.js +250 -0
- package/dist/components/tiptap/variableSerialization.js.map +1 -0
- package/dist/css/core.css +288 -0
- package/dist/css/style.css +295 -0
- package/dist/forms/Field.d.ts +37 -0
- package/dist/forms/Field.d.ts.map +1 -0
- package/dist/forms/Field.js +159 -0
- package/dist/forms/Field.js.map +1 -0
- package/dist/forms/SchemaFormEngine.d.ts +23 -0
- package/dist/forms/SchemaFormEngine.d.ts.map +1 -0
- package/dist/forms/SchemaFormEngine.js +444 -0
- package/dist/forms/SchemaFormEngine.js.map +1 -0
- package/dist/forms/components/FieldWrap.d.ts +11 -0
- package/dist/forms/components/FieldWrap.d.ts.map +1 -0
- package/dist/forms/components/FieldWrap.js +84 -0
- package/dist/forms/components/FieldWrap.js.map +1 -0
- package/dist/forms/components/ModalTabs.d.ts +21 -0
- package/dist/forms/components/ModalTabs.d.ts.map +1 -0
- package/dist/forms/components/ModalTabs.js +84 -0
- package/dist/forms/components/ModalTabs.js.map +1 -0
- package/dist/forms/components/index.d.ts +3 -0
- package/dist/forms/components/index.d.ts.map +1 -0
- package/dist/forms/components/index.js +3 -0
- package/dist/forms/contexts/VariableCategoriesContext.d.ts +17 -0
- package/dist/forms/contexts/VariableCategoriesContext.d.ts.map +1 -0
- package/dist/forms/contexts/VariableCategoriesContext.js +18 -0
- package/dist/forms/contexts/VariableCategoriesContext.js.map +1 -0
- package/dist/forms/engine/FormStateStore.d.ts +24 -0
- package/dist/forms/engine/FormStateStore.d.ts.map +1 -0
- package/dist/forms/engine/FormStateStore.js +97 -0
- package/dist/forms/engine/FormStateStore.js.map +1 -0
- package/dist/forms/engine/SchemaIndex.d.ts +33 -0
- package/dist/forms/engine/SchemaIndex.d.ts.map +1 -0
- package/dist/forms/engine/SchemaIndex.js +21 -0
- package/dist/forms/engine/SchemaIndex.js.map +1 -0
- package/dist/forms/engine/ValidationEngine.d.ts +13 -0
- package/dist/forms/engine/ValidationEngine.d.ts.map +1 -0
- package/dist/forms/engine/ValidationEngine.js +155 -0
- package/dist/forms/engine/ValidationEngine.js.map +1 -0
- package/dist/forms/engine/buildGroupedMessage.d.ts +2 -0
- package/dist/forms/engine/buildGroupedMessage.d.ts.map +1 -0
- package/dist/forms/engine/buildGroupedMessage.js +20 -0
- package/dist/forms/engine/buildGroupedMessage.js.map +1 -0
- package/dist/forms/engine/context.d.ts +60 -0
- package/dist/forms/engine/context.d.ts.map +1 -0
- package/dist/forms/engine/context.js +12 -0
- package/dist/forms/engine/context.js.map +1 -0
- package/dist/forms/engine/rules/email.d.ts +2 -0
- package/dist/forms/engine/rules/email.d.ts.map +1 -0
- package/dist/forms/engine/rules/email.js +11 -0
- package/dist/forms/engine/rules/email.js.map +1 -0
- package/dist/forms/engine/rules/emailOrVariable.d.ts +2 -0
- package/dist/forms/engine/rules/emailOrVariable.d.ts.map +1 -0
- package/dist/forms/engine/rules/emailOrVariable.js +13 -0
- package/dist/forms/engine/rules/emailOrVariable.js.map +1 -0
- package/dist/forms/engine/rules/handle.d.ts +2 -0
- package/dist/forms/engine/rules/handle.d.ts.map +1 -0
- package/dist/forms/engine/rules/handle.js +12 -0
- package/dist/forms/engine/rules/handle.js.map +1 -0
- package/dist/forms/engine/rules/index.d.ts +9 -0
- package/dist/forms/engine/rules/index.d.ts.map +1 -0
- package/dist/forms/engine/rules/index.js +35 -0
- package/dist/forms/engine/rules/index.js.map +1 -0
- package/dist/forms/engine/rules/max.d.ts +2 -0
- package/dist/forms/engine/rules/max.d.ts.map +1 -0
- package/dist/forms/engine/rules/max.js +16 -0
- package/dist/forms/engine/rules/max.js.map +1 -0
- package/dist/forms/engine/rules/min.d.ts +2 -0
- package/dist/forms/engine/rules/min.d.ts.map +1 -0
- package/dist/forms/engine/rules/min.js +16 -0
- package/dist/forms/engine/rules/min.js.map +1 -0
- package/dist/forms/engine/rules/required.d.ts +2 -0
- package/dist/forms/engine/rules/required.d.ts.map +1 -0
- package/dist/forms/engine/rules/required.js +11 -0
- package/dist/forms/engine/rules/required.js.map +1 -0
- package/dist/forms/engine/rules/uniqueHandle.d.ts +9 -0
- package/dist/forms/engine/rules/uniqueHandle.d.ts.map +1 -0
- package/dist/forms/engine/rules/uniqueHandle.js +95 -0
- package/dist/forms/engine/rules/uniqueHandle.js.map +1 -0
- package/dist/forms/engine/rules/utils.d.ts +3 -0
- package/dist/forms/engine/rules/utils.d.ts.map +1 -0
- package/dist/forms/engine/rules/utils.js +21 -0
- package/dist/forms/engine/rules/utils.js.map +1 -0
- package/dist/forms/fields/CalculationsField.d.ts +24 -0
- package/dist/forms/fields/CalculationsField.d.ts.map +1 -0
- package/dist/forms/fields/CalculationsField.js +215 -0
- package/dist/forms/fields/CalculationsField.js.map +1 -0
- package/dist/forms/fields/CalculationsToolbar.d.ts +17 -0
- package/dist/forms/fields/CalculationsToolbar.d.ts.map +1 -0
- package/dist/forms/fields/CalculationsToolbar.js +130 -0
- package/dist/forms/fields/CalculationsToolbar.js.map +1 -0
- package/dist/forms/fields/CheckboxSelectField.d.ts +19 -0
- package/dist/forms/fields/CheckboxSelectField.d.ts.map +1 -0
- package/dist/forms/fields/CheckboxSelectField.js +30 -0
- package/dist/forms/fields/CheckboxSelectField.js.map +1 -0
- package/dist/forms/fields/ColorField.d.ts +15 -0
- package/dist/forms/fields/ColorField.d.ts.map +1 -0
- package/dist/forms/fields/ColorField.js +30 -0
- package/dist/forms/fields/ColorField.js.map +1 -0
- package/dist/forms/fields/ComboboxField.d.ts +23 -0
- package/dist/forms/fields/ComboboxField.d.ts.map +1 -0
- package/dist/forms/fields/ComboboxField.js +38 -0
- package/dist/forms/fields/ComboboxField.js.map +1 -0
- package/dist/forms/fields/DateTimeField.d.ts +14 -0
- package/dist/forms/fields/DateTimeField.d.ts.map +1 -0
- package/dist/forms/fields/DateTimeField.js +53 -0
- package/dist/forms/fields/DateTimeField.js.map +1 -0
- package/dist/forms/fields/EditableTableField.d.ts +22 -0
- package/dist/forms/fields/EditableTableField.d.ts.map +1 -0
- package/dist/forms/fields/EditableTableField.js +37 -0
- package/dist/forms/fields/EditableTableField.js.map +1 -0
- package/dist/forms/fields/ElementSelectField.d.ts +20 -0
- package/dist/forms/fields/ElementSelectField.d.ts.map +1 -0
- package/dist/forms/fields/ElementSelectField.js +215 -0
- package/dist/forms/fields/ElementSelectField.js.map +1 -0
- package/dist/forms/fields/GroupField.d.ts +19 -0
- package/dist/forms/fields/GroupField.d.ts.map +1 -0
- package/dist/forms/fields/GroupField.js +50 -0
- package/dist/forms/fields/GroupField.js.map +1 -0
- package/dist/forms/fields/HandleField.d.ts +20 -0
- package/dist/forms/fields/HandleField.d.ts.map +1 -0
- package/dist/forms/fields/HandleField.js +70 -0
- package/dist/forms/fields/HandleField.js.map +1 -0
- package/dist/forms/fields/LightswitchField.d.ts +14 -0
- package/dist/forms/fields/LightswitchField.d.ts.map +1 -0
- package/dist/forms/fields/LightswitchField.js +29 -0
- package/dist/forms/fields/LightswitchField.js.map +1 -0
- package/dist/forms/fields/ListField.d.ts +17 -0
- package/dist/forms/fields/ListField.d.ts.map +1 -0
- package/dist/forms/fields/ListField.js +51 -0
- package/dist/forms/fields/ListField.js.map +1 -0
- package/dist/forms/fields/NumberField.d.ts +17 -0
- package/dist/forms/fields/NumberField.d.ts.map +1 -0
- package/dist/forms/fields/NumberField.js +33 -0
- package/dist/forms/fields/NumberField.js.map +1 -0
- package/dist/forms/fields/RadioGroupField.d.ts +25 -0
- package/dist/forms/fields/RadioGroupField.d.ts.map +1 -0
- package/dist/forms/fields/RadioGroupField.js +102 -0
- package/dist/forms/fields/RadioGroupField.js.map +1 -0
- package/dist/forms/fields/RichTextField.d.ts +23 -0
- package/dist/forms/fields/RichTextField.d.ts.map +1 -0
- package/dist/forms/fields/RichTextField.js +50 -0
- package/dist/forms/fields/RichTextField.js.map +1 -0
- package/dist/forms/fields/SelectField.d.ts +25 -0
- package/dist/forms/fields/SelectField.d.ts.map +1 -0
- package/dist/forms/fields/SelectField.js +73 -0
- package/dist/forms/fields/SelectField.js.map +1 -0
- package/dist/forms/fields/StaticTableField.d.ts +34 -0
- package/dist/forms/fields/StaticTableField.d.ts.map +1 -0
- package/dist/forms/fields/StaticTableField.js +128 -0
- package/dist/forms/fields/StaticTableField.js.map +1 -0
- package/dist/forms/fields/TextField.d.ts +16 -0
- package/dist/forms/fields/TextField.d.ts.map +1 -0
- package/dist/forms/fields/TextField.js +31 -0
- package/dist/forms/fields/TextField.js.map +1 -0
- package/dist/forms/fields/TextareaField.d.ts +17 -0
- package/dist/forms/fields/TextareaField.d.ts.map +1 -0
- package/dist/forms/fields/TextareaField.js +32 -0
- package/dist/forms/fields/TextareaField.js.map +1 -0
- package/dist/forms/fields/VariablePickerField.d.ts +21 -0
- package/dist/forms/fields/VariablePickerField.d.ts.map +1 -0
- package/dist/forms/fields/VariablePickerField.js +49 -0
- package/dist/forms/fields/VariablePickerField.js.map +1 -0
- package/dist/forms/index.d.ts +8 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +10 -0
- package/dist/forms/registry.d.ts +8 -0
- package/dist/forms/registry.d.ts.map +1 -0
- package/dist/forms/registry.js +76 -0
- package/dist/forms/registry.js.map +1 -0
- package/dist/forms/store/element-store.d.ts +11 -0
- package/dist/forms/store/element-store.d.ts.map +1 -0
- package/dist/forms/store/element-store.js +41 -0
- package/dist/forms/store/element-store.js.map +1 -0
- package/dist/forms/useEditableTableFieldBinding.d.ts +13 -0
- package/dist/forms/useEditableTableFieldBinding.d.ts.map +1 -0
- package/dist/forms/useEditableTableFieldBinding.js +91 -0
- package/dist/forms/useEditableTableFieldBinding.js.map +1 -0
- package/dist/forms/useEngineField.d.ts +9 -0
- package/dist/forms/useEngineField.d.ts.map +1 -0
- package/dist/forms/useEngineField.js +32 -0
- package/dist/forms/useEngineField.js.map +1 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/useKeyboardShortcuts.d.ts +14 -0
- package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/hooks/useKeyboardShortcuts.js +67 -0
- package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/hooks/useTranslation.d.ts +3 -0
- package/dist/hooks/useTranslation.d.ts.map +1 -0
- package/dist/hooks/useTranslation.js +12 -0
- package/dist/hooks/useTranslation.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +15 -0
- package/dist/node_modules/@babel/runtime/helpers/arrayLikeToArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +15 -0
- package/dist/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/classCallCheck.js +13 -0
- package/dist/node_modules/@babel/runtime/helpers/classCallCheck.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/createClass.js +21 -0
- package/dist/node_modules/@babel/runtime/helpers/createClass.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/defineProperty.js +20 -0
- package/dist/node_modules/@babel/runtime/helpers/defineProperty.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/interopRequireDefault.js +13 -0
- package/dist/node_modules/@babel/runtime/helpers/interopRequireDefault.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/iterableToArray.js +13 -0
- package/dist/node_modules/@babel/runtime/helpers/iterableToArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/nonIterableSpread.js +13 -0
- package/dist/node_modules/@babel/runtime/helpers/nonIterableSpread.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/toConsumableArray.js +21 -0
- package/dist/node_modules/@babel/runtime/helpers/toConsumableArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js +22 -0
- package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/toPropertyKey.js +18 -0
- package/dist/node_modules/@babel/runtime/helpers/toPropertyKey.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/typeof.js +18 -0
- package/dist/node_modules/@babel/runtime/helpers/typeof.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +19 -0
- package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -0
- package/dist/node_modules/jexl/dist/Expression.js +84 -0
- package/dist/node_modules/jexl/dist/Expression.js.map +1 -0
- package/dist/node_modules/jexl/dist/Jexl.js +165 -0
- package/dist/node_modules/jexl/dist/Jexl.js.map +1 -0
- package/dist/node_modules/jexl/dist/Lexer.js +152 -0
- package/dist/node_modules/jexl/dist/Lexer.js.map +1 -0
- package/dist/node_modules/jexl/dist/PromiseSync.js +87 -0
- package/dist/node_modules/jexl/dist/PromiseSync.js.map +1 -0
- package/dist/node_modules/jexl/dist/evaluator/Evaluator.js +98 -0
- package/dist/node_modules/jexl/dist/evaluator/Evaluator.js.map +1 -0
- package/dist/node_modules/jexl/dist/evaluator/handlers.js +162 -0
- package/dist/node_modules/jexl/dist/evaluator/handlers.js.map +1 -0
- package/dist/node_modules/jexl/dist/grammar.js +195 -0
- package/dist/node_modules/jexl/dist/grammar.js.map +1 -0
- package/dist/node_modules/jexl/dist/parser/Parser.js +135 -0
- package/dist/node_modules/jexl/dist/parser/Parser.js.map +1 -0
- package/dist/node_modules/jexl/dist/parser/handlers.js +205 -0
- package/dist/node_modules/jexl/dist/parser/handlers.js.map +1 -0
- package/dist/node_modules/jexl/dist/parser/states.js +158 -0
- package/dist/node_modules/jexl/dist/parser/states.js.map +1 -0
- package/dist/types/global.d.d.ts +1 -0
- package/dist/types/global.d.js +0 -0
- package/dist/utils/classes.d.ts +18 -0
- package/dist/utils/classes.d.ts.map +1 -0
- package/dist/utils/classes.js +25 -0
- package/dist/utils/classes.js.map +1 -0
- package/dist/utils/config.d.ts +14 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +16 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/craftHostBridge.d.ts +16 -0
- package/dist/utils/craftHostBridge.d.ts.map +1 -0
- package/dist/utils/craftHostBridge.js +28 -0
- package/dist/utils/craftHostBridge.js.map +1 -0
- package/dist/utils/handle.d.ts +10 -0
- package/dist/utils/handle.d.ts.map +1 -0
- package/dist/utils/handle.js +51 -0
- package/dist/utils/handle.js.map +1 -0
- package/dist/utils/hostBridge.d.ts +40 -0
- package/dist/utils/hostBridge.d.ts.map +1 -0
- package/dist/utils/hostBridge.js +35 -0
- package/dist/utils/hostBridge.js.map +1 -0
- package/dist/utils/index.d.ts +18 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +66 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/portal.d.ts +17 -0
- package/dist/utils/portal.d.ts.map +1 -0
- package/dist/utils/portal.js +51 -0
- package/dist/utils/portal.js.map +1 -0
- package/dist/utils/schema.d.ts +17 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +56 -0
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/schemaFieldNames.d.ts +2 -0
- package/dist/utils/schemaFieldNames.d.ts.map +1 -0
- package/dist/utils/schemaFieldNames.js +16 -0
- package/dist/utils/schemaFieldNames.js.map +1 -0
- package/dist/utils/schemaIndex.d.ts +6 -0
- package/dist/utils/schemaIndex.d.ts.map +1 -0
- package/dist/utils/schemaIndex.js +31 -0
- package/dist/utils/schemaIndex.js.map +1 -0
- package/dist/utils/schemaIndexCache.d.ts +6 -0
- package/dist/utils/schemaIndexCache.d.ts.map +1 -0
- package/dist/utils/schemaIndexCache.js +32 -0
- package/dist/utils/schemaIndexCache.js.map +1 -0
- package/dist/utils/schemaNormalize.d.ts +13 -0
- package/dist/utils/schemaNormalize.d.ts.map +1 -0
- package/dist/utils/schemaNormalize.js +17 -0
- package/dist/utils/schemaNormalize.js.map +1 -0
- package/dist/utils/store.d.ts +7 -0
- package/dist/utils/store.d.ts.map +1 -0
- package/dist/utils/store.js +6 -0
- package/dist/utils/store.js.map +1 -0
- package/dist/utils/timeOptions.d.ts +6 -0
- package/dist/utils/timeOptions.d.ts.map +1 -0
- package/dist/utils/timeOptions.js +42 -0
- package/dist/utils/timeOptions.js.map +1 -0
- package/dist/utils/tiptap.d.ts +13 -0
- package/dist/utils/tiptap.d.ts.map +1 -0
- package/dist/utils/tiptap.js +39 -0
- package/dist/utils/tiptap.js.map +1 -0
- package/dist/utils/translation.d.ts +5 -0
- package/dist/utils/translation.d.ts.map +1 -0
- package/dist/utils/translation.js +21 -0
- package/dist/utils/translation.js.map +1 -0
- package/dist/utils/validation.d.ts +4 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +253 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +167 -0
- package/vite-dev.mjs +56 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboboxInput.js","names":[],"sources":["../../src/components/ComboboxInput.tsx"],"sourcesContent":["import {\n Fragment, useCallback, useEffect, useMemo, useRef, useState,\n} from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { Spinner } from '@verbb/plugin-kit-react/components';\nimport {\n Combobox,\n ComboboxPrimitiveInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxList,\n ComboboxItem,\n ComboboxValue,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxHighlightedText,\n useComboboxAnchor,\n} from '@verbb/plugin-kit-react/components/Combobox';\n\nexport type ComboboxInputOption = {\n label: string;\n value: string | number;\n [key: string]: unknown;\n};\n\nexport type ComboboxInputProps = {\n options?: ComboboxInputOption[];\n fetchOptions?: () => Promise<ComboboxInputOption[]>;\n value?: string | number | Array<string | number> | null;\n onValueChange?: (value: string | number | Array<string | number> | null) => void;\n multiple?: boolean;\n disabled?: boolean;\n placeholder?: string;\n emptyMessage?: string;\n className?: string;\n contentClassName?: string;\n withLoadingIndicator?: boolean;\n showClear?: boolean;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n onInputValueChange?: (value: string) => void;\n cacheKey?: string;\n cacheTtlMs?: number;\n disableCache?: boolean;\n};\n\ntype CacheEntry = {\n options: ComboboxInputOption[];\n expiresAt: number;\n};\n\nconst optionsCache = new Map<string, CacheEntry>();\n\nconst toStringValue = (value: unknown): string => {\n return String(value ?? '');\n};\n\nexport const ComboboxInput = ({\n options,\n fetchOptions,\n value = null,\n onValueChange,\n multiple = false,\n disabled = false,\n placeholder = 'Select an option',\n emptyMessage = 'No options found.',\n className,\n contentClassName,\n withLoadingIndicator = true,\n showClear = true,\n open,\n defaultOpen,\n onOpenChange,\n onInputValueChange,\n cacheKey,\n cacheTtlMs = 5 * 60 * 1000,\n disableCache = false,\n}: ComboboxInputProps) => {\n const [fetchedOptions, setFetchedOptions] = useState<ComboboxInputOption[] | null>(null);\n const [loading, setLoading] = useState(false);\n const [internalOpen, setInternalOpen] = useState(Boolean(defaultOpen));\n const [searchValue, setSearchValue] = useState('');\n const hasLoadedRef = useRef(false);\n const anchor = useComboboxAnchor();\n const isMultiple = multiple;\n const isOpen = open ?? internalOpen;\n\n const resolvedOptions = useMemo(() => {\n return fetchedOptions ?? options ?? [];\n }, [fetchedOptions, options]);\n\n const resolveCachedOptions = useCallback(() => {\n if (disableCache || !cacheKey) {\n return null;\n }\n\n const cached = optionsCache.get(cacheKey);\n if (!cached) {\n return null;\n }\n\n if (cached.expiresAt <= Date.now()) {\n optionsCache.delete(cacheKey);\n return null;\n }\n\n return cached.options;\n }, [cacheKey, disableCache]);\n\n const persistCachedOptions = useCallback((nextOptions: ComboboxInputOption[]) => {\n if (disableCache || !cacheKey) {\n return;\n }\n\n optionsCache.set(cacheKey, {\n options: nextOptions,\n expiresAt: Date.now() + cacheTtlMs,\n });\n }, [cacheKey, cacheTtlMs, disableCache]);\n\n useEffect(() => {\n if (!fetchOptions || !isOpen) {\n return;\n }\n\n const cachedOptions = resolveCachedOptions();\n if (cachedOptions) {\n setFetchedOptions(cachedOptions);\n hasLoadedRef.current = true;\n return;\n }\n\n if (hasLoadedRef.current && fetchedOptions) {\n return;\n }\n\n let isMounted = true;\n\n const loadOptions = async() => {\n setLoading(true);\n\n try {\n const fetchedOptions = await fetchOptions();\n\n if (isMounted) {\n setFetchedOptions(fetchedOptions);\n persistCachedOptions(fetchedOptions);\n hasLoadedRef.current = true;\n }\n } catch (error) {\n console.error('Failed to load combobox options:', error);\n } finally {\n if (isMounted) {\n setLoading(false);\n }\n }\n };\n\n loadOptions();\n\n return () => {\n isMounted = false;\n };\n }, [fetchOptions, fetchedOptions, isOpen, persistCachedOptions, resolveCachedOptions]);\n\n const selectedValue = useMemo(() => {\n if (isMultiple) {\n const selectedValues = Array.isArray(value) ? new Set(value.map((item) => { return toStringValue(item); })) : new Set<string>();\n return resolvedOptions.filter((option) => { return selectedValues.has(toStringValue(option.value)); });\n }\n\n return resolvedOptions.find((option) => { return toStringValue(option.value) === toStringValue(value); }) ?? null;\n }, [isMultiple, resolvedOptions, value]);\n\n const handleChange = (nextValue: unknown) => {\n if (!onValueChange) {\n return;\n }\n\n if (isMultiple) {\n const nextItems = Array.isArray(nextValue) ? nextValue : [];\n onValueChange(nextItems.map((item) => { return item.value; }));\n return;\n }\n\n onValueChange(nextValue?.value ?? null);\n };\n\n return (\n <div className=\"flex items-center gap-2\">\n <Combobox\n multiple={isMultiple}\n items={resolvedOptions}\n value={selectedValue as ComponentProps<typeof Combobox>['value']}\n onValueChange={handleChange}\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={(nextOpen) => {\n setInternalOpen(nextOpen);\n onOpenChange?.(nextOpen);\n\n if (!nextOpen) {\n setSearchValue('');\n }\n }}\n onInputValueChange={(nextValue) => {\n const nextSearchValue = String(nextValue ?? '');\n setSearchValue(nextSearchValue);\n onInputValueChange?.(nextSearchValue);\n }}\n itemToStringLabel={(item) => { return (item as ComboboxInputOption | null)?.label ?? ''; }}\n itemToStringValue={(item) => { return toStringValue((item as ComboboxInputOption | null)?.value); }}\n disabled={disabled}\n >\n {isMultiple ? (\n <ComboboxChips ref={anchor} className={className}>\n <ComboboxValue>\n {(items) => {\n return (\n <Fragment>\n {items.map((item) => {\n return (\n <ComboboxChip key={toStringValue(item.value)}>\n {item.label}\n </ComboboxChip>\n );\n })}\n <ComboboxChipsInput placeholder={placeholder} />\n </Fragment>\n );\n }}\n </ComboboxValue>\n </ComboboxChips>\n ) : (\n <ComboboxPrimitiveInput\n className={className}\n placeholder={placeholder}\n showClear={showClear}\n disabled={disabled}\n />\n )}\n\n <ComboboxContent\n anchor={isMultiple ? anchor : undefined}\n className={contentClassName}\n >\n <ComboboxEmpty>{emptyMessage}</ComboboxEmpty>\n <ComboboxList>\n {(item) => {\n return (\n <ComboboxItem key={toStringValue(item.value)} value={item}>\n <ComboboxHighlightedText text={item.label} search={searchValue} />\n </ComboboxItem>\n );\n }}\n </ComboboxList>\n </ComboboxContent>\n </Combobox>\n\n {withLoadingIndicator && loading && <Spinner size=\"xs\" />}\n </div>\n );\n};\n"],"mappings":";;;;;;AAsDA,IAAM,+BAAe,IAAI,KAAyB;AAElD,IAAM,iBAAiB,UAA2B;AAC9C,QAAO,OAAO,SAAS,GAAG;;AAG9B,IAAa,iBAAiB,EAC1B,SACA,cACA,QAAQ,MACR,eACA,WAAW,OACX,WAAW,OACX,cAAc,oBACd,eAAe,qBACf,WACA,kBACA,uBAAuB,MACvB,YAAY,MACZ,MACA,aACA,cACA,oBACA,UACA,aAAa,MAAS,KACtB,eAAe,YACO;CACtB,MAAM,CAAC,gBAAgB,qBAAqB,SAAuC,KAAK;CACxF,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAC7C,MAAM,CAAC,cAAc,mBAAmB,SAAS,QAAQ,YAAY,CAAC;CACtE,MAAM,CAAC,aAAa,kBAAkB,SAAS,GAAG;CAClD,MAAM,eAAe,OAAO,MAAM;CAClC,MAAM,SAAS,mBAAmB;CAClC,MAAM,aAAa;CACnB,MAAM,SAAS,QAAQ;CAEvB,MAAM,kBAAkB,cAAc;AAClC,SAAO,kBAAkB,WAAW,EAAE;IACvC,CAAC,gBAAgB,QAAQ,CAAC;CAE7B,MAAM,uBAAuB,kBAAkB;AAC3C,MAAI,gBAAgB,CAAC,SACjB,QAAO;EAGX,MAAM,SAAS,aAAa,IAAI,SAAS;AACzC,MAAI,CAAC,OACD,QAAO;AAGX,MAAI,OAAO,aAAa,KAAK,KAAK,EAAE;AAChC,gBAAa,OAAO,SAAS;AAC7B,UAAO;;AAGX,SAAO,OAAO;IACf,CAAC,UAAU,aAAa,CAAC;CAE5B,MAAM,uBAAuB,aAAa,gBAAuC;AAC7E,MAAI,gBAAgB,CAAC,SACjB;AAGJ,eAAa,IAAI,UAAU;GACvB,SAAS;GACT,WAAW,KAAK,KAAK,GAAG;GAC3B,CAAC;IACH;EAAC;EAAU;EAAY;EAAa,CAAC;AAExC,iBAAgB;AACZ,MAAI,CAAC,gBAAgB,CAAC,OAClB;EAGJ,MAAM,gBAAgB,sBAAsB;AAC5C,MAAI,eAAe;AACf,qBAAkB,cAAc;AAChC,gBAAa,UAAU;AACvB;;AAGJ,MAAI,aAAa,WAAW,eACxB;EAGJ,IAAI,YAAY;EAEhB,MAAM,cAAc,YAAW;AAC3B,cAAW,KAAK;AAEhB,OAAI;IACA,MAAM,iBAAiB,MAAM,cAAc;AAE3C,QAAI,WAAW;AACX,uBAAkB,eAAe;AACjC,0BAAqB,eAAe;AACpC,kBAAa,UAAU;;YAEtB,OAAO;AACZ,YAAQ,MAAM,oCAAoC,MAAM;aAClD;AACN,QAAI,UACA,YAAW,MAAM;;;AAK7B,eAAa;AAEb,eAAa;AACT,eAAY;;IAEjB;EAAC;EAAc;EAAgB;EAAQ;EAAsB;EAAqB,CAAC;CAEtF,MAAM,gBAAgB,cAAc;AAChC,MAAI,YAAY;GACZ,MAAM,iBAAiB,MAAM,QAAQ,MAAM,GAAG,IAAI,IAAI,MAAM,KAAK,SAAS;AAAE,WAAO,cAAc,KAAK;KAAI,CAAC,mBAAG,IAAI,KAAa;AAC/H,UAAO,gBAAgB,QAAQ,WAAW;AAAE,WAAO,eAAe,IAAI,cAAc,OAAO,MAAM,CAAC;KAAI;;AAG1G,SAAO,gBAAgB,MAAM,WAAW;AAAE,UAAO,cAAc,OAAO,MAAM,KAAK,cAAc,MAAM;IAAI,IAAI;IAC9G;EAAC;EAAY;EAAiB;EAAM,CAAC;CAExC,MAAM,gBAAgB,cAAuB;AACzC,MAAI,CAAC,cACD;AAGJ,MAAI,YAAY;AAEZ,kBADkB,MAAM,QAAQ,UAAU,GAAG,YAAY,EAAE,EACnC,KAAK,SAAS;AAAE,WAAO,KAAK;KAAS,CAAC;AAC9D;;AAGJ,gBAAc,WAAW,SAAS,KAAK;;AAG3C,QACI,qBAAC,OAAD;EAAK,WAAU;YAAf,CACI,qBAAC,UAAD;GACI,UAAU;GACV,OAAO;GACP,OAAO;GACP,eAAe;GACT;GACO;GACb,eAAe,aAAa;AACxB,oBAAgB,SAAS;AACzB,mBAAe,SAAS;AAExB,QAAI,CAAC,SACD,gBAAe,GAAG;;GAG1B,qBAAqB,cAAc;IAC/B,MAAM,kBAAkB,OAAO,aAAa,GAAG;AAC/C,mBAAe,gBAAgB;AAC/B,yBAAqB,gBAAgB;;GAEzC,oBAAoB,SAAS;AAAE,WAAQ,MAAqC,SAAS;;GACrF,oBAAoB,SAAS;AAAE,WAAO,cAAe,MAAqC,MAAM;;GACtF;aAtBd,CAwBK,aACG,oBAAC,eAAD;IAAe,KAAK;IAAmB;cACnC,oBAAC,eAAD,EAAA,WACM,UAAU;AACR,YACI,qBAAC,UAAD,EAAA,UAAA,CACK,MAAM,KAAK,SAAS;AACjB,aACI,oBAAC,cAAD,EAAA,UACK,KAAK,OACK,EAFI,cAAc,KAAK,MAAM,CAE7B;OAErB,EACF,oBAAC,oBAAD,EAAiC,aAAe,CAAA,CACzC,EAAA,CAAA;OAGP,CAAA;IACJ,CAAA,GAEhB,oBAAC,wBAAD;IACe;IACE;IACF;IACD;IACZ,CAAA,EAGN,qBAAC,iBAAD;IACI,QAAQ,aAAa,SAAS,KAAA;IAC9B,WAAW;cAFf,CAII,oBAAC,eAAD,EAAA,UAAgB,cAA6B,CAAA,EAC7C,oBAAC,cAAD,EAAA,WACM,SAAS;AACP,YACI,oBAAC,cAAD;MAA8C,OAAO;gBACjD,oBAAC,yBAAD;OAAyB,MAAM,KAAK;OAAO,QAAQ;OAAe,CAAA;MACvD,EAFI,cAAc,KAAK,MAAM,CAE7B;OAGZ,CAAA,CACD;MACX;MAEV,wBAAwB,WAAW,oBAAC,SAAD,EAAS,MAAK,MAAO,CAAA,CACvD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { default as React, ComponentProps } from 'react';
|
|
2
|
+
import { Command as CommandPrimitive, useCommandState } from 'cmdk';
|
|
3
|
+
import { Dialog } from '.';
|
|
4
|
+
declare function Command({ className, ...props }: ComponentProps<typeof CommandPrimitive>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function CommandDialog({ title, description, children, showCloseButton, ...props }: ComponentProps<typeof Dialog> & {
|
|
6
|
+
title?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
showCloseButton?: boolean;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function CommandInput({ className, ...props }: ComponentProps<typeof CommandPrimitive.Input>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
declare const CommandList: React.ForwardRefExoticComponent<Omit<{
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
} & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
14
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
15
|
+
} & {
|
|
16
|
+
asChild?: boolean;
|
|
17
|
+
}, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
18
|
+
label?: string;
|
|
19
|
+
} & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
declare function CommandEmpty({ ...props }: ComponentProps<typeof CommandPrimitive.Empty>): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
declare function CommandGroup({ className, ...props }: ComponentProps<typeof CommandPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
declare function CommandSeparator({ className, ...props }: ComponentProps<typeof CommandPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
declare function CommandItem({ className, ...props }: ComponentProps<typeof CommandPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
declare function CommandShortcut({ className, ...props }: ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export { Command, CommandDialog, useCommandState, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };
|
|
26
|
+
//# sourceMappingURL=Command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../src/components/Command.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,cAAc,EAAkB,MAAM,OAAO,CAAC;AAG9D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEpE,OAAO,EACH,MAAM,EACT,MAAM,oCAAoC,CAAC;AAI5C,iBAAS,OAAO,CAAC,EACb,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,2CAkBzC;AAED,iBAAS,aAAa,CAAC,EACnB,KAAyB,EACzB,WAA8C,EAC9C,QAAQ,EACR,eAAsB,EACtB,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC5B,2CAyBA;AAED,iBAAS,YAAY,CAAC,EAClB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAyB/C;AAED,QAAA,MAAM,WAAW;;;;;;;;sFAoBf,CAAC;AAEH,iBAAS,YAAY,CAAC,EAClB,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAc/C;AAED,iBAAS,YAAY,CAAC,EAClB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CA4B/C;AAED,iBAAS,gBAAgB,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,2CAmBnD;AAED,iBAAS,WAAW,CAAC,EACjB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAmB9C;AAED,iBAAS,eAAe,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,MAAM,CAAC,2CAexB;AAED,OAAO,EACH,OAAO,EACP,aAAa,EACb,eAAe,EACf,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,GACnB,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { cn } from "../utils/classes.js";
|
|
2
|
+
import "../utils/index.js";
|
|
3
|
+
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "./Dialog.js";
|
|
4
|
+
import "./index.js";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
8
|
+
import { faSearch } from "@fortawesome/pro-solid-svg-icons";
|
|
9
|
+
import { Command as Command$1, useCommandState } from "cmdk";
|
|
10
|
+
//#region src/components/Command.tsx
|
|
11
|
+
function Command({ className, ...props }) {
|
|
12
|
+
return /* @__PURE__ */ jsx(Command$1, {
|
|
13
|
+
"data-slot": "command",
|
|
14
|
+
className: cn("flex h-full w-full flex-col", "text-xs", "rounded shadow-md focus:shadow-md", className),
|
|
15
|
+
...props
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", children, showCloseButton = true, ...props }) {
|
|
19
|
+
return /* @__PURE__ */ jsxs(Dialog, {
|
|
20
|
+
...props,
|
|
21
|
+
children: [/* @__PURE__ */ jsxs(DialogHeader, {
|
|
22
|
+
className: "sr-only",
|
|
23
|
+
children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), /* @__PURE__ */ jsx(DialogDescription, { children: description })]
|
|
24
|
+
}), /* @__PURE__ */ jsx(DialogContent, {
|
|
25
|
+
className: "p-0 shadow-lg",
|
|
26
|
+
showCloseButton,
|
|
27
|
+
children: /* @__PURE__ */ jsx(Command, {
|
|
28
|
+
className: cn("[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5", "[&_[cmdk-group-heading]]:font-medium", "[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5"),
|
|
29
|
+
children
|
|
30
|
+
})
|
|
31
|
+
})]
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function CommandInput({ className, ...props }) {
|
|
35
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
36
|
+
"data-slot": "command-input-wrapper",
|
|
37
|
+
className: "flex items-center border-b border-slate-150 px-2",
|
|
38
|
+
children: [/* @__PURE__ */ jsx(FontAwesomeIcon, {
|
|
39
|
+
icon: faSearch,
|
|
40
|
+
className: "mr-2 size-3 shrink-0 opacity-50"
|
|
41
|
+
}), /* @__PURE__ */ jsx(Command$1.Input, {
|
|
42
|
+
"data-slot": "command-input",
|
|
43
|
+
className: cn("flex w-full py-2.5", "rounded-md text-xs", "shadow-none outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
44
|
+
...props
|
|
45
|
+
})]
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
var CommandList = React.forwardRef(({ className, ...props }, ref) => {
|
|
49
|
+
return /* @__PURE__ */ jsx(Command$1.List, {
|
|
50
|
+
ref,
|
|
51
|
+
"data-slot": "command-list",
|
|
52
|
+
className: cn("max-h-[300px] overflow-y-auto", className),
|
|
53
|
+
...props
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
function CommandEmpty({ ...props }) {
|
|
57
|
+
return /* @__PURE__ */ jsx(Command$1.Empty, {
|
|
58
|
+
"data-slot": "command-empty",
|
|
59
|
+
className: cn("pt-4 pb-3 text-center", "text-xs"),
|
|
60
|
+
...props
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function CommandGroup({ className, ...props }) {
|
|
64
|
+
return /* @__PURE__ */ jsx(Command$1.Group, {
|
|
65
|
+
"data-slot": "command-group",
|
|
66
|
+
className: cn("text-xs", "text-gray-600", "**:[[cmdk-group-heading]]:text-gray-500", "overflow-hidden", "py-1", "**:[[cmdk-group-heading]]:px-2", "**:[[cmdk-group-heading]]:py-1", "**:[[cmdk-group-heading]]:text-[11px]", "**:[[cmdk-group-heading]]:font-medium", className),
|
|
67
|
+
...props
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function CommandSeparator({ className, ...props }) {
|
|
71
|
+
return /* @__PURE__ */ jsx(Command$1.Separator, {
|
|
72
|
+
"data-slot": "command-separator",
|
|
73
|
+
className: cn("pointer-events-none", "h-px", "bg-slate-200", className),
|
|
74
|
+
...props
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function CommandItem({ className, ...props }) {
|
|
78
|
+
return /* @__PURE__ */ jsx(Command$1.Item, {
|
|
79
|
+
"data-slot": "command-item",
|
|
80
|
+
className: cn("relative flex gap-2 items-center px-2 py-1.5", "text-xs data-[selected=true]:bg-slate-100", "cursor-default select-none outline-hidden data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50", "[&_svg]:pointer-events-none [&_svg]:not([class*=\"size-\"]):size-3 [&_svg]:shrink-0", className),
|
|
81
|
+
...props
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
function CommandShortcut({ className, ...props }) {
|
|
85
|
+
return /* @__PURE__ */ jsx("span", {
|
|
86
|
+
"data-slot": "command-shortcut",
|
|
87
|
+
className: cn("ml-auto", "text-xs tracking-widest", className),
|
|
88
|
+
...props
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
//#endregion
|
|
92
|
+
export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, useCommandState };
|
|
93
|
+
|
|
94
|
+
//# sourceMappingURL=Command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Command.js","names":[],"sources":["../../src/components/Command.tsx"],"sourcesContent":["import React, { ComponentProps, type ReactNode } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSearch } from '@fortawesome/pro-solid-svg-icons';\nimport { Command as CommandPrimitive, useCommandState } from 'cmdk';\n\nimport {\n Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle,\n} from '@verbb/plugin-kit-react/components';\n\nimport { cn } from '@verbb/plugin-kit-react/utils';\n\nfunction Command({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n // Layout\n 'flex h-full w-full flex-col',\n\n 'text-xs',\n\n // Appearance\n 'rounded shadow-md focus:shadow-md',\n\n className,\n )}\n {...props}\n />\n );\n};\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n showCloseButton = true,\n ...props\n}: ComponentProps<typeof Dialog> & {\n title?: string\n description?: string\n showCloseButton?: boolean\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n\n <DialogContent\n className=\"p-0 shadow-lg\"\n showCloseButton={showCloseButton}\n >\n <Command className={cn(\n // Layout\n '[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5',\n\n // Appearance\n '[&_[cmdk-group-heading]]:font-medium',\n '[&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5',\n )}>\n {children as ReactNode}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nfunction CommandInput({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className=\"flex items-center border-b border-slate-150 px-2\"\n >\n <FontAwesomeIcon icon={faSearch} className=\"mr-2 size-3 shrink-0 opacity-50\" />\n\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n // Layout\n 'flex w-full py-2.5',\n\n // Appearance\n 'rounded-md text-xs',\n\n // State\n 'shadow-none outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n );\n};\n\nconst CommandList = React.forwardRef<\n HTMLDivElement,\n ComponentProps<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => {\n return (\n <CommandPrimitive.List\n ref={ref}\n data-slot=\"command-list\"\n className={cn(\n // Layout\n 'max-h-[300px] overflow-y-auto',\n\n // Appearance\n // 'text-xs',\n\n className,\n )}\n {...props}\n />\n );\n});\n\nfunction CommandEmpty({\n ...props\n}: ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn(\n // Layout\n 'pt-4 pb-3 text-center',\n\n // Appearance\n 'text-xs',\n )}\n {...props}\n />\n );\n};\n\nfunction CommandGroup({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n // Layout\n // 'my-1',\n\n 'text-xs',\n \"text-gray-600\",\n \"**:[[cmdk-group-heading]]:text-gray-500\",\n \"overflow-hidden\",\n 'py-1',\n '**:[[cmdk-group-heading]]:px-2',\n '**:[[cmdk-group-heading]]:py-1',\n '**:[[cmdk-group-heading]]:text-[11px]',\n '**:[[cmdk-group-heading]]:font-medium',\n\n\n // Appearance\n // '[&_[cmdk-group-heading]]:px-2',\n // '[&_[cmdk-group-heading]]:text-[11px]',\n // '[&_[cmdk-group-heading]]:text-slate-700',\n className,\n )}\n {...props}\n />\n );\n};\n\nfunction CommandSeparator({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn(\n // Reset\n 'pointer-events-none',\n\n // Layout\n 'h-px',\n\n // Theme\n 'bg-slate-200',\n\n className,\n )}\n {...props}\n />\n );\n};\n\nfunction CommandItem({\n className,\n ...props\n}: ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n // Layout\n 'relative flex gap-2 items-center px-2 py-1.5',\n\n // Appearance\n 'text-xs data-[selected=true]:bg-slate-100',\n\n // State\n 'cursor-default select-none outline-hidden data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50',\n '[&_svg]:pointer-events-none [&_svg]:not([class*=\"size-\"]):size-3 [&_svg]:shrink-0',\n className,\n )}\n {...props}\n />\n );\n};\n\nfunction CommandShortcut({\n className,\n ...props\n}: ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n // Layout\n 'ml-auto',\n\n // Appearance\n 'text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n );\n};\n\nexport {\n Command,\n CommandDialog,\n useCommandState,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n"],"mappings":";;;;;;;;;;AAWA,SAAS,QAAQ,EACb,WACA,GAAG,SACqC;AACxC,QACI,oBAAC,WAAD;EACI,aAAU;EACV,WAAW,GAEP,+BAEA,WAGA,qCAEA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,cAAc,EACnB,QAAQ,mBACR,cAAc,kCACd,UACA,kBAAkB,MAClB,GAAG,SAKJ;AACC,QACI,qBAAC,QAAD;EAAQ,GAAI;YAAZ,CACI,qBAAC,cAAD;GAAc,WAAU;aAAxB,CACI,oBAAC,aAAD,EAAA,UAAc,OAAoB,CAAA,EAClC,oBAAC,mBAAD,EAAA,UAAoB,aAAgC,CAAA,CACzC;MAEf,oBAAC,eAAD;GACI,WAAU;GACO;aAEjB,oBAAC,SAAD;IAAS,WAAW,GAEhB,yHAGA,wCACA,oKACH;IACI;IACK,CAAA;GACE,CAAA,CACX;;;AAIjB,SAAS,aAAa,EAClB,WACA,GAAG,SAC2C;AAC9C,QACI,qBAAC,OAAD;EACI,aAAU;EACV,WAAU;YAFd,CAII,oBAAC,iBAAD;GAAiB,MAAM;GAAU,WAAU;GAAoC,CAAA,EAE/E,oBAAC,UAAiB,OAAlB;GACI,aAAU;GACV,WAAW,GAEP,sBAGA,sBAGA,8EACA,UACH;GACD,GAAI;GACN,CAAA,CACA;;;AAId,IAAM,cAAc,MAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAAQ;AAChC,QACI,oBAAC,UAAiB,MAAlB;EACS;EACL,aAAU;EACV,WAAW,GAEP,iCAKA,UACH;EACD,GAAI;EACN,CAAA;EAER;AAEF,SAAS,aAAa,EAClB,GAAG,SAC2C;AAC9C,QACI,oBAAC,UAAiB,OAAlB;EACI,aAAU;EACV,WAAW,GAEP,yBAGA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,aAAa,EAClB,WACA,GAAG,SAC2C;AAC9C,QACI,oBAAC,UAAiB,OAAlB;EACI,aAAU;EACV,WAAW,GAIP,WACA,iBACA,2CACA,mBACA,QACA,kCACA,kCACA,yCACA,yCAOA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,iBAAiB,EACtB,WACA,GAAG,SAC+C;AAClD,QACI,oBAAC,UAAiB,WAAlB;EACI,aAAU;EACV,WAAW,GAEP,uBAGA,QAGA,gBAEA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,YAAY,EACjB,WACA,GAAG,SAC0C;AAC7C,QACI,oBAAC,UAAiB,MAAlB;EACI,aAAU;EACV,WAAW,GAEP,gDAGA,6CAGA,sHACA,uFACA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,gBAAgB,EACrB,WACA,GAAG,SACoB;AACvB,QACI,oBAAC,QAAD;EACI,aAAU;EACV,WAAW,GAEP,WAGA,2BACA,UACH;EACD,GAAI;EACN,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function copyToClipboardWithMeta(value: any): Promise<void>;
|
|
2
|
+
export declare function CopyButton({ value, className, variant, ...props }: {
|
|
3
|
+
value: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
src?: string;
|
|
6
|
+
variant?: 'link' | 'none' | 'default' | 'primary' | 'secondary' | 'dashed' | 'outline' | 'transparent' | 'ghost';
|
|
7
|
+
event?: Event;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=CopyButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../src/components/CopyButton.tsx"],"names":[],"mappings":"AAOA,wBAAsB,uBAAuB,CAAC,KAAK,KAAA,iBAElD;AAED,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,SAAS,EACT,OAAuB,EACvB,GAAG,KAAK,EACX,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC;IACjH,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB,2CA+BA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { cn } from "../utils/classes.js";
|
|
2
|
+
import "../utils/index.js";
|
|
3
|
+
import { Button } from "./Button.js";
|
|
4
|
+
import { useEffect, useState } from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
7
|
+
import { faCheck, faClipboard } from "@fortawesome/pro-solid-svg-icons";
|
|
8
|
+
//#region src/components/CopyButton.tsx
|
|
9
|
+
async function copyToClipboardWithMeta(value) {
|
|
10
|
+
await navigator.clipboard.writeText(value);
|
|
11
|
+
}
|
|
12
|
+
function CopyButton({ value, className, variant = "transparent", ...props }) {
|
|
13
|
+
const [hasCopied, setHasCopied] = useState(false);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
const timeoutId = window.setTimeout(() => {
|
|
16
|
+
setHasCopied(false);
|
|
17
|
+
}, 2e3);
|
|
18
|
+
return () => {
|
|
19
|
+
window.clearTimeout(timeoutId);
|
|
20
|
+
};
|
|
21
|
+
}, [hasCopied]);
|
|
22
|
+
return /* @__PURE__ */ jsxs(Button, {
|
|
23
|
+
size: "icon",
|
|
24
|
+
variant,
|
|
25
|
+
className: cn(className),
|
|
26
|
+
onClick: () => {
|
|
27
|
+
copyToClipboardWithMeta(value);
|
|
28
|
+
setHasCopied(true);
|
|
29
|
+
},
|
|
30
|
+
...props,
|
|
31
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
32
|
+
className: "sr-only",
|
|
33
|
+
children: "Copy"
|
|
34
|
+
}), hasCopied ? /* @__PURE__ */ jsx(FontAwesomeIcon, { icon: faCheck }) : /* @__PURE__ */ jsx(FontAwesomeIcon, { icon: faClipboard })]
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { CopyButton, copyToClipboardWithMeta };
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=CopyButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyButton.js","names":[],"sources":["../../src/components/CopyButton.tsx"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCheck, faClipboard } from '@fortawesome/pro-solid-svg-icons';\n\nimport { Button } from './Button';\nimport { cn } from '@verbb/plugin-kit-react/utils';\n\nexport async function copyToClipboardWithMeta(value) {\n await navigator.clipboard.writeText(value);\n}\n\nexport function CopyButton({\n value,\n className,\n variant = 'transparent',\n ...props\n}: {\n value: string;\n className?: string;\n src?: string;\n variant?: 'link' | 'none' | 'default' | 'primary' | 'secondary' | 'dashed' | 'outline' | 'transparent' | 'ghost';\n event?: Event;\n}) {\n const [hasCopied, setHasCopied] = useState(false);\n\n useEffect(() => {\n const timeoutId = window.setTimeout(() => {\n setHasCopied(false);\n }, 2000);\n\n return () => {\n window.clearTimeout(timeoutId);\n };\n }, [hasCopied]);\n\n return (\n <Button\n size=\"icon\"\n variant={variant}\n className={cn(\n className,\n )}\n onClick={() => {\n copyToClipboardWithMeta(value);\n\n setHasCopied(true);\n }}\n {...props}\n >\n <span className=\"sr-only\">Copy</span>\n {hasCopied ? <FontAwesomeIcon icon={faCheck} /> : <FontAwesomeIcon icon={faClipboard} />}\n </Button>\n );\n}\n"],"mappings":";;;;;;;;AAOA,eAAsB,wBAAwB,OAAO;AACjD,OAAM,UAAU,UAAU,UAAU,MAAM;;AAG9C,SAAgB,WAAW,EACvB,OACA,WACA,UAAU,eACV,GAAG,SAOJ;CACC,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;AAEjD,iBAAgB;EACZ,MAAM,YAAY,OAAO,iBAAiB;AACtC,gBAAa,MAAM;KACpB,IAAK;AAER,eAAa;AACT,UAAO,aAAa,UAAU;;IAEnC,CAAC,UAAU,CAAC;AAEf,QACI,qBAAC,QAAD;EACI,MAAK;EACI;EACT,WAAW,GACP,UACH;EACD,eAAe;AACX,2BAAwB,MAAM;AAE9B,gBAAa,KAAK;;EAEtB,GAAI;YAXR,CAaI,oBAAC,QAAD;GAAM,WAAU;aAAU;GAAW,CAAA,EACpC,YAAY,oBAAC,iBAAD,EAAiB,MAAM,SAAW,CAAA,GAAG,oBAAC,iBAAD,EAAiB,MAAM,aAAe,CAAA,CACnF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function DatePicker({ value, onValueChange, placeholder, className, disabled, isInvalid, ...props }: {
|
|
2
|
+
value: Date | string | null;
|
|
3
|
+
onValueChange?: (value: Date | undefined) => void;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
className?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
isInvalid?: boolean;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=DatePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/components/DatePicker.tsx"],"names":[],"mappings":"AAeA,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,aAAa,EACb,WAAgB,EAChB,SAAS,EACT,QAAgB,EAChB,SAAiB,EACjB,GAAG,KAAK,EACX,EAAE;IACC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,2CA8DA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { cn } from "../utils/classes.js";
|
|
2
|
+
import { hostFormatDate } from "../utils/hostBridge.js";
|
|
3
|
+
import "../utils/index.js";
|
|
4
|
+
import { Calendar } from "./Calendar.js";
|
|
5
|
+
import { Popover, PopoverContent, PopoverTrigger } from "./Popover.js";
|
|
6
|
+
import "./index.js";
|
|
7
|
+
import { Button } from "./Button.js";
|
|
8
|
+
import { useState } from "react";
|
|
9
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
11
|
+
import { faCalendar } from "@fortawesome/pro-solid-svg-icons";
|
|
12
|
+
//#region src/components/DatePicker.tsx
|
|
13
|
+
function DatePicker({ value, onValueChange, placeholder = "", className, disabled = false, isInvalid = false, ...props }) {
|
|
14
|
+
const [open, setOpen] = useState(false);
|
|
15
|
+
const date = value ? new Date(value) : void 0;
|
|
16
|
+
const handleSelect = (selectedDate) => {
|
|
17
|
+
onValueChange?.(selectedDate);
|
|
18
|
+
setOpen(false);
|
|
19
|
+
};
|
|
20
|
+
return /* @__PURE__ */ jsxs(Popover, {
|
|
21
|
+
open,
|
|
22
|
+
onOpenChange: setOpen,
|
|
23
|
+
children: [/* @__PURE__ */ jsx(PopoverTrigger, { render: /* @__PURE__ */ jsxs(Button, {
|
|
24
|
+
variant: "outline",
|
|
25
|
+
className: cn("min-h-[2.125rem] h-[2.125rem]", "w-[130px] px-[10px] !py-0", "!cursor-default", "justify-start text-left font-normal", "bg-transparent border border-slate-400", "hover:bg-slate-50!", "active:bg-slate-150!", "data-[popup-open]:bg-slate-150!", "[&>svg]:size-[14px]", isInvalid && ["border-rose-600!", "focus-visible:shadow-[0_0_0_1px_var(--color-rose-600),0_0_4px_0_hsl(from_var(--color-rose-600)_h_s_l/0.7)]!"], className),
|
|
26
|
+
disabled,
|
|
27
|
+
...props,
|
|
28
|
+
children: [/* @__PURE__ */ jsx(FontAwesomeIcon, {
|
|
29
|
+
icon: faCalendar,
|
|
30
|
+
className: cn("mr-1 text-gray-400")
|
|
31
|
+
}), date ? hostFormatDate(date) : placeholder]
|
|
32
|
+
}) }), /* @__PURE__ */ jsx(PopoverContent, {
|
|
33
|
+
className: cn("w-auto p-0!"),
|
|
34
|
+
children: /* @__PURE__ */ jsx(Calendar, {
|
|
35
|
+
mode: "single",
|
|
36
|
+
selected: date,
|
|
37
|
+
captionLayout: "dropdown",
|
|
38
|
+
onSelect: handleSelect
|
|
39
|
+
})
|
|
40
|
+
})]
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
export { DatePicker };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=DatePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatePicker.js","names":[],"sources":["../../src/components/DatePicker.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCalendar } from '@fortawesome/pro-solid-svg-icons';\n\nimport {\n Button,\n Calendar,\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from '@verbb/plugin-kit-react/components';\n\nimport { cn, hostFormatDate } from '@verbb/plugin-kit-react/utils';\n\nexport function DatePicker({\n value,\n onValueChange,\n placeholder = '',\n className,\n disabled = false,\n isInvalid = false,\n ...props\n}: {\n value: Date | string | null;\n onValueChange?: (value: Date | undefined) => void;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n isInvalid?: boolean;\n}) {\n const [open, setOpen] = useState(false);\n\n // Convert ISO date string to Date object for Calendar\n const date = value ? new Date(value) : undefined;\n\n const handleSelect = (selectedDate?: Date) => {\n onValueChange?.(selectedDate);\n setOpen(false);\n };\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger\n render={\n <Button\n variant=\"outline\"\n className={cn(\n 'min-h-[2.125rem] h-[2.125rem]',\n 'w-[130px] px-[10px] !py-0',\n '!cursor-default',\n 'justify-start text-left font-normal',\n 'bg-transparent border border-slate-400',\n 'hover:bg-slate-50!',\n 'active:bg-slate-150!',\n 'data-[popup-open]:bg-slate-150!',\n '[&>svg]:size-[14px]',\n\n isInvalid && [\n 'border-rose-600!',\n 'focus-visible:shadow-[0_0_0_1px_var(--color-rose-600),0_0_4px_0_hsl(from_var(--color-rose-600)_h_s_l/0.7)]!',\n ],\n className,\n )}\n disabled={disabled}\n {...props}\n >\n <FontAwesomeIcon\n icon={faCalendar}\n className={cn(\n 'mr-1 text-gray-400',\n )}\n />\n {date ? hostFormatDate(date) : placeholder}\n </Button>\n } />\n\n <PopoverContent\n className={cn(\n // Popover width and padding\n 'w-auto p-0!',\n )}\n >\n <Calendar\n mode=\"single\"\n selected={date}\n captionLayout=\"dropdown\"\n onSelect={handleSelect}\n />\n </PopoverContent>\n </Popover >\n );\n}\n"],"mappings":";;;;;;;;;;;;AAeA,SAAgB,WAAW,EACvB,OACA,eACA,cAAc,IACd,WACA,WAAW,OACX,YAAY,OACZ,GAAG,SAQJ;CACC,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CAGvC,MAAM,OAAO,QAAQ,IAAI,KAAK,MAAM,GAAG,KAAA;CAEvC,MAAM,gBAAgB,iBAAwB;AAC1C,kBAAgB,aAAa;AAC7B,UAAQ,MAAM;;AAGlB,QACI,qBAAC,SAAD;EAAe;EAAM,cAAc;YAAnC,CACI,oBAAC,gBAAD,EACI,QACI,qBAAC,QAAD;GACI,SAAQ;GACR,WAAW,GACP,iCACA,6BACA,mBACA,uCACA,0CACA,sBACA,wBACA,mCACA,uBAEA,aAAa,CACT,oBACA,8GACH,EACD,UACH;GACS;GACV,GAAI;aApBR,CAsBI,oBAAC,iBAAD;IACI,MAAM;IACN,WAAW,GACP,qBACH;IACH,CAAA,EACD,OAAO,eAAe,KAAK,GAAG,YAC1B;MACT,CAAA,EAER,oBAAC,gBAAD;GACI,WAAW,GAEP,cACH;aAED,oBAAC,UAAD;IACI,MAAK;IACL,UAAU;IACV,eAAc;IACd,UAAU;IACZ,CAAA;GACW,CAAA,CACV"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
|
+
import { Dialog as DialogPrimitive } from '@base-ui/react/dialog';
|
|
3
|
+
declare function Dialog({ ...props }: ComponentProps<typeof DialogPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function DialogTrigger({ ...props }: ComponentProps<typeof DialogPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function DialogPortal({ ...props }: ComponentProps<typeof DialogPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function DialogClose({ ...props }: ComponentProps<typeof DialogPrimitive.Close>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function DialogOverlay({ className, ...props }: ComponentProps<typeof DialogPrimitive.Backdrop>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function DialogContent({ className, children, showCloseButton, autoFocusFirstInput, portalClassName, portalContainer, ...props }: ComponentProps<typeof DialogPrimitive.Popup> & {
|
|
9
|
+
showCloseButton?: boolean;
|
|
10
|
+
autoFocusFirstInput?: boolean;
|
|
11
|
+
portalClassName?: string;
|
|
12
|
+
portalContainer?: HTMLElement | ShadowRoot | null;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare function DialogHeader({ className, showCloseButton, children, ...props }: ComponentProps<'div'> & {
|
|
15
|
+
showCloseButton?: boolean;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
declare function DialogFooter({ className, ...props }: ComponentProps<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
declare function DialogTitle({ className, ...props }: ComponentProps<typeof DialogPrimitive.Title>): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
declare function DialogDescription({ className, ...props }: ComponentProps<typeof DialogPrimitive.Description>): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export { Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription, };
|
|
21
|
+
//# sourceMappingURL=Dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/components/Dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAkC,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQlE,iBAAS,MAAM,CAAC,EACZ,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAE7C;AACD,iBAAS,aAAa,CAAC,EACnB,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAEhD;AACD,iBAAS,YAAY,CAAC,EAClB,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,2CAE/C;AACD,iBAAS,WAAW,CAAC,EACjB,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAE9C;AAED,iBAAS,aAAa,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,QAAQ,CAAC,2CAyCjD;AAED,iBAAS,aAAa,CAAC,EACnB,SAAS,EACT,QAAQ,EACR,eAAuB,EACvB,mBAA0B,EAC1B,eAAe,EACf,eAAe,EACf,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,GAAG;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,CAAA;CACpD,2CAgKA;AAED,iBAAS,YAAY,CAAC,EAClB,SAAS,EACT,eAAsB,EACtB,QAAQ,EACR,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC5B,2CA2CA;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,2CAkBnE;AAED,iBAAS,WAAW,CAAC,EACjB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAa9C;AAED,iBAAS,iBAAiB,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACX,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,2CAapD;AAED,OAAO,EACH,MAAM,EACN,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,iBAAiB,GACpB,CAAC"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { cn } from "../utils/classes.js";
|
|
2
|
+
import { getPortalClassName, getPortalContainer } from "../utils/portal.js";
|
|
3
|
+
import "../utils/index.js";
|
|
4
|
+
import { useTranslation } from "../hooks/useTranslation.js";
|
|
5
|
+
import "../hooks/index.js";
|
|
6
|
+
import { useCallback, useEffect, useRef } from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
|
9
|
+
import { faXmark } from "@fortawesome/pro-solid-svg-icons";
|
|
10
|
+
import { Dialog as Dialog$1 } from "@base-ui/react/dialog";
|
|
11
|
+
//#region src/components/Dialog.tsx
|
|
12
|
+
function Dialog({ ...props }) {
|
|
13
|
+
return /* @__PURE__ */ jsx(Dialog$1.Root, {
|
|
14
|
+
"data-slot": "dialog",
|
|
15
|
+
...props
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function DialogTrigger({ ...props }) {
|
|
19
|
+
return /* @__PURE__ */ jsx(Dialog$1.Trigger, {
|
|
20
|
+
"data-slot": "dialog-trigger",
|
|
21
|
+
...props
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
function DialogPortal({ ...props }) {
|
|
25
|
+
return /* @__PURE__ */ jsx(Dialog$1.Portal, {
|
|
26
|
+
"data-slot": "dialog-portal",
|
|
27
|
+
...props
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function DialogClose({ ...props }) {
|
|
31
|
+
return /* @__PURE__ */ jsx(Dialog$1.Close, {
|
|
32
|
+
"data-slot": "dialog-close",
|
|
33
|
+
...props
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function DialogOverlay({ className, ...props }) {
|
|
37
|
+
return /* @__PURE__ */ jsx(Dialog$1.Backdrop, {
|
|
38
|
+
"data-slot": "dialog-overlay",
|
|
39
|
+
forceRender: true,
|
|
40
|
+
className: cn("fixed isolate z-50 inset-0", "bg-gray-900/20", "data-[open]:animate-in data-[closed]:animate-out", "data-[closed]:fade-out-0 data-[open]:fade-in-0", className),
|
|
41
|
+
onPointerDown: (event) => {
|
|
42
|
+
const { target } = event;
|
|
43
|
+
if (target instanceof HTMLElement && target.classList.contains("modal-shade")) {
|
|
44
|
+
event.preventDefault();
|
|
45
|
+
event.stopPropagation();
|
|
46
|
+
}
|
|
47
|
+
if (target instanceof HTMLElement && target.closest(".modal")) {
|
|
48
|
+
event.preventDefault();
|
|
49
|
+
event.stopPropagation();
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
...props
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function DialogContent({ className, children, showCloseButton = false, autoFocusFirstInput = true, portalClassName, portalContainer, ...props }) {
|
|
56
|
+
const resolvedPortalClassName = getPortalClassName(portalClassName);
|
|
57
|
+
const resolvedPortalContainer = getPortalContainer(portalContainer);
|
|
58
|
+
const t = useTranslation();
|
|
59
|
+
const contentRef = useRef(null);
|
|
60
|
+
const findFirstInput = useCallback((root) => {
|
|
61
|
+
const focusSelector = [
|
|
62
|
+
"input:not([type=\"hidden\"]):not([disabled])",
|
|
63
|
+
"textarea:not([disabled])",
|
|
64
|
+
"select:not([disabled])"
|
|
65
|
+
].join(", ");
|
|
66
|
+
return root.querySelector(focusSelector);
|
|
67
|
+
}, []);
|
|
68
|
+
const focusFirstInput = useCallback((root) => {
|
|
69
|
+
const candidate = findFirstInput(root);
|
|
70
|
+
if (!candidate) return false;
|
|
71
|
+
if (candidate instanceof HTMLInputElement || candidate instanceof HTMLTextAreaElement) {
|
|
72
|
+
if (candidate.value.length > 0) return true;
|
|
73
|
+
}
|
|
74
|
+
candidate.focus?.();
|
|
75
|
+
if (candidate instanceof HTMLInputElement || candidate instanceof HTMLTextAreaElement) {
|
|
76
|
+
const cursorPosition = candidate.value.length;
|
|
77
|
+
window.setTimeout(() => {
|
|
78
|
+
candidate.setSelectionRange?.(cursorPosition, cursorPosition);
|
|
79
|
+
}, 0);
|
|
80
|
+
}
|
|
81
|
+
return true;
|
|
82
|
+
}, [findFirstInput]);
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
if (!autoFocusFirstInput) return;
|
|
85
|
+
const root = contentRef.current;
|
|
86
|
+
if (!root) return;
|
|
87
|
+
let attemptCount = 0;
|
|
88
|
+
const maxAttempts = 10;
|
|
89
|
+
const attemptFocus = () => {
|
|
90
|
+
const activeElement = document.activeElement;
|
|
91
|
+
if (activeElement && root.contains(activeElement)) {
|
|
92
|
+
if (activeElement.matches("input, textarea, select")) return;
|
|
93
|
+
}
|
|
94
|
+
if (focusFirstInput(root)) return;
|
|
95
|
+
attemptCount += 1;
|
|
96
|
+
if (attemptCount < maxAttempts) window.setTimeout(attemptFocus, 50);
|
|
97
|
+
};
|
|
98
|
+
const frame = window.requestAnimationFrame(attemptFocus);
|
|
99
|
+
return () => {
|
|
100
|
+
window.cancelAnimationFrame(frame);
|
|
101
|
+
};
|
|
102
|
+
}, [
|
|
103
|
+
autoFocusFirstInput,
|
|
104
|
+
children,
|
|
105
|
+
focusFirstInput
|
|
106
|
+
]);
|
|
107
|
+
return /* @__PURE__ */ jsxs(DialogPortal, {
|
|
108
|
+
"data-slot": "dialog-portal",
|
|
109
|
+
className: resolvedPortalClassName,
|
|
110
|
+
container: resolvedPortalContainer,
|
|
111
|
+
children: [/* @__PURE__ */ jsx(DialogOverlay, { "data-slot": "dialog-overlay" }), /* @__PURE__ */ jsxs(Dialog$1.Popup, {
|
|
112
|
+
"data-slot": "dialog-content",
|
|
113
|
+
ref: contentRef,
|
|
114
|
+
initialFocus: () => {
|
|
115
|
+
if (!autoFocusFirstInput) return false;
|
|
116
|
+
const root = contentRef.current;
|
|
117
|
+
if (!root) return true;
|
|
118
|
+
return !focusFirstInput(root);
|
|
119
|
+
},
|
|
120
|
+
className: cn("fixed z-50 left-[50%] top-[50%] w-full max-w-5xl", "flex flex-col", "bg-white", "rounded-lg", "shadow-modal", "translate-x-[-50%] translate-y-[-50%]", "data-[open]:animate-in data-[closed]:animate-out", "data-[closed]:fade-out-0 data-[open]:fade-in-0", "data-[closed]:zoom-out-95 data-[open]:zoom-in-95", className),
|
|
121
|
+
...props,
|
|
122
|
+
children: [showCloseButton && /* @__PURE__ */ jsxs(Dialog$1.Close, {
|
|
123
|
+
"data-slot": "dialog-close",
|
|
124
|
+
className: cn("absolute right-4 top-4 rounded-sm cursor-pointer", "opacity-70 ring-offset-background transition-opacity", "hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", "data-[open]:bg-blue-500 data-[open]:text-white"),
|
|
125
|
+
children: [/* @__PURE__ */ jsx(FontAwesomeIcon, {
|
|
126
|
+
icon: faXmark,
|
|
127
|
+
className: "size-4.5"
|
|
128
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
129
|
+
className: "sr-only",
|
|
130
|
+
children: t("Close")
|
|
131
|
+
})]
|
|
132
|
+
}), children]
|
|
133
|
+
})]
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
function DialogHeader({ className, showCloseButton = true, children, ...props }) {
|
|
137
|
+
const t = useTranslation();
|
|
138
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
139
|
+
"data-slot": "dialog-header",
|
|
140
|
+
className: cn("relative flex flex-col space-y-1.5", "text-left", "rounded-t-lg", "gap-1", "bg-[#f3f7fb] py-4 px-4", "border-b border-b-gray-150", className),
|
|
141
|
+
...props,
|
|
142
|
+
children: [showCloseButton && /* @__PURE__ */ jsxs(Dialog$1.Close, {
|
|
143
|
+
"data-slot": "dialog-close",
|
|
144
|
+
className: cn("absolute right-4 top-[50%] translate-y-[-50%] rounded-sm cursor-pointer", "opacity-70 ring-offset-background transition-opacity", "hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none", "data-[open]:bg-blue-500 data-[open]:text-white"),
|
|
145
|
+
children: [/* @__PURE__ */ jsx(FontAwesomeIcon, {
|
|
146
|
+
icon: faXmark,
|
|
147
|
+
className: "size-4.5"
|
|
148
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
149
|
+
className: "sr-only",
|
|
150
|
+
children: t("Close")
|
|
151
|
+
})]
|
|
152
|
+
}), children]
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
function DialogFooter({ className, ...props }) {
|
|
156
|
+
return /* @__PURE__ */ jsx("div", {
|
|
157
|
+
"data-slot": "dialog-footer",
|
|
158
|
+
className: cn("flex flex-row justify-end", "rounded-b-lg", "bg-[#e4edf6] py-[10px] px-4", "border-t border-t-gray-150", className),
|
|
159
|
+
...props
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
function DialogTitle({ className, ...props }) {
|
|
163
|
+
return /* @__PURE__ */ jsx(Dialog$1.Title, {
|
|
164
|
+
"data-slot": "dialog-title",
|
|
165
|
+
className: cn("text-[15px] font-semibold leading-none m-0", className),
|
|
166
|
+
...props
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
function DialogDescription({ className, ...props }) {
|
|
170
|
+
return /* @__PURE__ */ jsx(Dialog$1.Description, {
|
|
171
|
+
"data-slot": "dialog-description",
|
|
172
|
+
className: cn("text-xs text-gray-500", className),
|
|
173
|
+
...props
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
//#endregion
|
|
177
|
+
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
|
|
178
|
+
|
|
179
|
+
//# sourceMappingURL=Dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dialog.js","names":[],"sources":["../../src/components/Dialog.tsx"],"sourcesContent":["import { ComponentProps, useCallback, useEffect, useRef } from 'react';\nimport { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faXmark } from '@fortawesome/pro-solid-svg-icons';\n\nimport { cn, getPortalClassName, getPortalContainer } from '@verbb/plugin-kit-react/utils';\nimport { useTranslation } from '@verbb/plugin-kit-react/hooks';\n\nfunction Dialog({\n ...props\n}: ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\nfunction DialogTrigger({\n ...props\n}: ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\nfunction DialogPortal({\n ...props\n}: ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\nfunction DialogClose({\n ...props\n}: ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: ComponentProps<typeof DialogPrimitive.Backdrop>) {\n return (\n <DialogPrimitive.Backdrop\n data-slot=\"dialog-overlay\"\n forceRender\n className={cn(\n // Reset\n 'fixed isolate z-50 inset-0',\n\n // Ensure we play well with Craft's modals\n // 'z-[99]',\n\n // Theme\n 'bg-gray-900/20',\n\n // State\n 'data-[open]:animate-in data-[closed]:animate-out',\n 'data-[closed]:fade-out-0 data-[open]:fade-in-0',\n\n // \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n\n className,\n )}\n onPointerDown={(event) => {\n const { target } = event;\n\n // If we've got a Garnish modal open, allow that to take focus. Includes the shade and the modal content.\n if (target instanceof HTMLElement && target.classList.contains('modal-shade')) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n // If we've got a Garnish modal open, allow that to take focus. Includes the shade and the modal content.\n if (target instanceof HTMLElement && target.closest('.modal')) {\n event.preventDefault();\n event.stopPropagation();\n }\n }}\n {...props}\n />\n );\n};\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = false,\n autoFocusFirstInput = true,\n portalClassName,\n portalContainer,\n ...props\n}: ComponentProps<typeof DialogPrimitive.Popup> & {\n showCloseButton?: boolean\n autoFocusFirstInput?: boolean\n portalClassName?: string\n portalContainer?: HTMLElement | ShadowRoot | null\n}) {\n const resolvedPortalClassName = getPortalClassName(portalClassName);\n const resolvedPortalContainer = getPortalContainer(portalContainer);\n const t = useTranslation();\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const findFirstInput = useCallback((root: HTMLElement): HTMLElement | null => {\n const focusSelector = [\n 'input:not([type=\"hidden\"]):not([disabled])',\n 'textarea:not([disabled])',\n 'select:not([disabled])',\n ].join(', ');\n\n return root.querySelector<HTMLElement>(focusSelector);\n }, []);\n\n const focusFirstInput = useCallback((root: HTMLElement): boolean => {\n const candidate = findFirstInput(root);\n\n if (!candidate) {\n return false;\n }\n\n // Do not autofocus a pre-populated input/textarea, and do not\n // fall through to later fields.\n if (candidate instanceof HTMLInputElement || candidate instanceof HTMLTextAreaElement) {\n if (candidate.value.length > 0) {\n return true;\n }\n }\n\n candidate.focus?.();\n\n // Place a caret for text-like inputs so users can type immediately.\n if (candidate instanceof HTMLInputElement || candidate instanceof HTMLTextAreaElement) {\n const cursorPosition = candidate.value.length;\n\n window.setTimeout(() => {\n candidate.setSelectionRange?.(cursorPosition, cursorPosition);\n }, 0);\n }\n\n return true;\n }, [findFirstInput]);\n\n useEffect(() => {\n if (!autoFocusFirstInput) {\n return;\n }\n\n const root = contentRef.current;\n\n if (!root) {\n return;\n }\n\n let attemptCount = 0;\n const maxAttempts = 10;\n\n const attemptFocus = () => {\n const activeElement = document.activeElement as HTMLElement | null;\n\n // Stop once an input inside this dialog is already focused.\n if (activeElement && root.contains(activeElement)) {\n if (activeElement.matches('input, textarea, select')) {\n return;\n }\n }\n\n if (focusFirstInput(root)) {\n return;\n }\n\n attemptCount += 1;\n\n if (attemptCount < maxAttempts) {\n window.setTimeout(attemptFocus, 50);\n }\n };\n\n // Defer one frame to allow lazy schema hydration to mount fields.\n const frame = window.requestAnimationFrame(attemptFocus);\n\n return () => {\n window.cancelAnimationFrame(frame);\n };\n }, [autoFocusFirstInput, children, focusFirstInput]);\n\n return (\n <DialogPortal\n data-slot=\"dialog-portal\"\n className={resolvedPortalClassName}\n container={resolvedPortalContainer}\n >\n <DialogOverlay data-slot=\"dialog-overlay\" />\n\n <DialogPrimitive.Popup\n data-slot=\"dialog-content\"\n ref={contentRef}\n initialFocus={() => {\n if (!autoFocusFirstInput) {\n return false;\n }\n\n const root = contentRef.current;\n\n if (!root) {\n return true;\n }\n\n return !focusFirstInput(root);\n }}\n className={cn(\n // Reset\n 'fixed z-50 left-[50%] top-[50%] w-full max-w-5xl',\n 'flex flex-col',\n\n // Ensure we play well with Craft's modals; nested dialogs stack above parent\n // 'z-[99] data-[nested]:z-[100]',\n\n // Theme\n 'bg-white',\n 'rounded-lg',\n 'shadow-modal',\n\n // Transform\n 'translate-x-[-50%] translate-y-[-50%]',\n\n // State Animations\n 'data-[open]:animate-in data-[closed]:animate-out',\n 'data-[closed]:fade-out-0 data-[open]:fade-in-0',\n 'data-[closed]:zoom-out-95 data-[open]:zoom-in-95',\n\n className,\n )}\n {...props}\n >\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className={cn(\n // Reset\n 'absolute right-4 top-4 rounded-sm cursor-pointer',\n\n // Theme\n 'opacity-70 ring-offset-background transition-opacity',\n\n // State\n 'hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none',\n 'data-[open]:bg-blue-500 data-[open]:text-white',\n )}\n >\n <FontAwesomeIcon icon={faXmark} className=\"size-4.5\" />\n <span className=\"sr-only\">{t('Close')}</span>\n </DialogPrimitive.Close>\n )}\n {children}\n </DialogPrimitive.Popup>\n </DialogPortal>\n );\n};\n\nfunction DialogHeader({\n className,\n showCloseButton = true,\n children,\n ...props\n}: ComponentProps<'div'> & {\n showCloseButton?: boolean\n}) {\n const t = useTranslation();\n\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\n // Reset\n 'relative flex flex-col space-y-1.5',\n 'text-left',\n 'rounded-t-lg',\n 'gap-1',\n\n // Theme\n 'bg-[#f3f7fb] py-4 px-4',\n 'border-b border-b-gray-150',\n\n className,\n )}\n {...props}\n >\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className={cn(\n // Reset\n 'absolute right-4 top-[50%] translate-y-[-50%] rounded-sm cursor-pointer',\n\n // Theme\n 'opacity-70 ring-offset-background transition-opacity',\n\n // State\n 'hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none',\n 'data-[open]:bg-blue-500 data-[open]:text-white',\n )}\n >\n <FontAwesomeIcon icon={faXmark} className=\"size-4.5\" />\n <span className=\"sr-only\">{t('Close')}</span>\n </DialogPrimitive.Close>\n )}\n {children}\n </div>\n );\n};\n\nfunction DialogFooter({ className, ...props }: ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n // Reset\n 'flex flex-row justify-end',\n 'rounded-b-lg',\n\n // Theme\n 'bg-[#e4edf6] py-[10px] px-4',\n 'border-t border-t-gray-150',\n\n className,\n )}\n {...props}\n />\n );\n};\n\nfunction DialogTitle({\n className,\n ...props\n}: ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\n // Reset\n 'text-[15px] font-semibold leading-none m-0',\n\n className,\n )}\n {...props}\n />\n );\n};\n\nfunction DialogDescription({\n className,\n ...props\n}: ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n // Reset\n 'text-xs text-gray-500',\n\n className,\n )}\n {...props}\n />\n );\n};\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n"],"mappings":";;;;;;;;;;;AASA,SAAS,OAAO,EACZ,GAAG,SACyC;AAC5C,QAAO,oBAAC,SAAgB,MAAjB;EAAsB,aAAU;EAAS,GAAI;EAAS,CAAA;;AAEjE,SAAS,cAAc,EACnB,GAAG,SAC4C;AAC/C,QAAO,oBAAC,SAAgB,SAAjB;EAAyB,aAAU;EAAiB,GAAI;EAAS,CAAA;;AAE5E,SAAS,aAAa,EAClB,GAAG,SAC2C;AAC9C,QAAO,oBAAC,SAAgB,QAAjB;EAAwB,aAAU;EAAgB,GAAI;EAAS,CAAA;;AAE1E,SAAS,YAAY,EACjB,GAAG,SAC0C;AAC7C,QAAO,oBAAC,SAAgB,OAAjB;EAAuB,aAAU;EAAe,GAAI;EAAS,CAAA;;AAGxE,SAAS,cAAc,EACnB,WACA,GAAG,SAC6C;AAChD,QACI,oBAAC,SAAgB,UAAjB;EACI,aAAU;EACV,aAAA;EACA,WAAW,GAEP,8BAMA,kBAGA,oDACA,kDAIA,UACH;EACD,gBAAgB,UAAU;GACtB,MAAM,EAAE,WAAW;AAGnB,OAAI,kBAAkB,eAAe,OAAO,UAAU,SAAS,cAAc,EAAE;AAC3E,UAAM,gBAAgB;AACtB,UAAM,iBAAiB;;AAI3B,OAAI,kBAAkB,eAAe,OAAO,QAAQ,SAAS,EAAE;AAC3D,UAAM,gBAAgB;AACtB,UAAM,iBAAiB;;;EAG/B,GAAI;EACN,CAAA;;AAIV,SAAS,cAAc,EACnB,WACA,UACA,kBAAkB,OAClB,sBAAsB,MACtB,iBACA,iBACA,GAAG,SAMJ;CACC,MAAM,0BAA0B,mBAAmB,gBAAgB;CACnE,MAAM,0BAA0B,mBAAmB,gBAAgB;CACnE,MAAM,IAAI,gBAAgB;CAC1B,MAAM,aAAa,OAA8B,KAAK;CAEtD,MAAM,iBAAiB,aAAa,SAA0C;EAC1E,MAAM,gBAAgB;GAClB;GACA;GACA;GACH,CAAC,KAAK,KAAK;AAEZ,SAAO,KAAK,cAA2B,cAAc;IACtD,EAAE,CAAC;CAEN,MAAM,kBAAkB,aAAa,SAA+B;EAChE,MAAM,YAAY,eAAe,KAAK;AAEtC,MAAI,CAAC,UACD,QAAO;AAKX,MAAI,qBAAqB,oBAAoB,qBAAqB;OAC1D,UAAU,MAAM,SAAS,EACzB,QAAO;;AAIf,YAAU,SAAS;AAGnB,MAAI,qBAAqB,oBAAoB,qBAAqB,qBAAqB;GACnF,MAAM,iBAAiB,UAAU,MAAM;AAEvC,UAAO,iBAAiB;AACpB,cAAU,oBAAoB,gBAAgB,eAAe;MAC9D,EAAE;;AAGT,SAAO;IACR,CAAC,eAAe,CAAC;AAEpB,iBAAgB;AACZ,MAAI,CAAC,oBACD;EAGJ,MAAM,OAAO,WAAW;AAExB,MAAI,CAAC,KACD;EAGJ,IAAI,eAAe;EACnB,MAAM,cAAc;EAEpB,MAAM,qBAAqB;GACvB,MAAM,gBAAgB,SAAS;AAG/B,OAAI,iBAAiB,KAAK,SAAS,cAAc;QACzC,cAAc,QAAQ,0BAA0B,CAChD;;AAIR,OAAI,gBAAgB,KAAK,CACrB;AAGJ,mBAAgB;AAEhB,OAAI,eAAe,YACf,QAAO,WAAW,cAAc,GAAG;;EAK3C,MAAM,QAAQ,OAAO,sBAAsB,aAAa;AAExD,eAAa;AACT,UAAO,qBAAqB,MAAM;;IAEvC;EAAC;EAAqB;EAAU;EAAgB,CAAC;AAEpD,QACI,qBAAC,cAAD;EACI,aAAU;EACV,WAAW;EACX,WAAW;YAHf,CAKI,oBAAC,eAAD,EAAe,aAAU,kBAAmB,CAAA,EAE5C,qBAAC,SAAgB,OAAjB;GACI,aAAU;GACV,KAAK;GACL,oBAAoB;AAChB,QAAI,CAAC,oBACD,QAAO;IAGX,MAAM,OAAO,WAAW;AAExB,QAAI,CAAC,KACD,QAAO;AAGX,WAAO,CAAC,gBAAgB,KAAK;;GAEjC,WAAW,GAEP,oDACA,iBAMA,YACA,cACA,gBAGA,yCAGA,oDACA,kDACA,oDAEA,UACH;GACD,GAAI;aAvCR,CAyCK,mBACG,qBAAC,SAAgB,OAAjB;IACI,aAAU;IACV,WAAW,GAEP,oDAGA,wDAGA,wHACA,iDACH;cAZL,CAcI,oBAAC,iBAAD;KAAiB,MAAM;KAAS,WAAU;KAAa,CAAA,EACvD,oBAAC,QAAD;KAAM,WAAU;eAAW,EAAE,QAAQ;KAAQ,CAAA,CACzB;OAE3B,SACmB;KACb;;;AAIvB,SAAS,aAAa,EAClB,WACA,kBAAkB,MAClB,UACA,GAAG,SAGJ;CACC,MAAM,IAAI,gBAAgB;AAE1B,QACI,qBAAC,OAAD;EACI,aAAU;EACV,WAAW,GAEP,sCACA,aACA,gBACA,SAGA,0BACA,8BAEA,UACH;EACD,GAAI;YAfR,CAiBK,mBACG,qBAAC,SAAgB,OAAjB;GACI,aAAU;GACV,WAAW,GAEP,2EAGA,wDAGA,wHACA,iDACH;aAZL,CAcI,oBAAC,iBAAD;IAAiB,MAAM;IAAS,WAAU;IAAa,CAAA,EACvD,oBAAC,QAAD;IAAM,WAAU;cAAW,EAAE,QAAQ;IAAQ,CAAA,CACzB;MAE3B,SACC;;;AAId,SAAS,aAAa,EAAE,WAAW,GAAG,SAAgC;AAClE,QACI,oBAAC,OAAD;EACI,aAAU;EACV,WAAW,GAEP,6BACA,gBAGA,+BACA,8BAEA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,YAAY,EACjB,WACA,GAAG,SAC0C;AAC7C,QACI,oBAAC,SAAgB,OAAjB;EACI,aAAU;EACV,WAAW,GAEP,8CAEA,UACH;EACD,GAAI;EACN,CAAA;;AAIV,SAAS,kBAAkB,EACvB,WACA,GAAG,SACgD;AACnD,QACI,oBAAC,SAAgB,aAAjB;EACI,aAAU;EACV,WAAW,GAEP,yBAEA,UACH;EACD,GAAI;EACN,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
|
+
import { Menu as MenuPrimitive } from '@base-ui/react/menu';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
declare const dropdownMenuItemVariants: (props?: ({
|
|
5
|
+
size?: "default" | "xs" | "sm" | "lg" | "xl" | null | undefined;
|
|
6
|
+
variant?: "default" | "destructive" | null | undefined;
|
|
7
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
8
|
+
declare const dropdownMenuLabelVariants: (props?: ({
|
|
9
|
+
size?: "default" | "xs" | "sm" | "lg" | "xl" | null | undefined;
|
|
10
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
11
|
+
type DropdownMenuSize = VariantProps<typeof dropdownMenuItemVariants>['size'];
|
|
12
|
+
declare function DropdownMenu({ size, children, ...props }: ComponentProps<typeof MenuPrimitive.Root> & {
|
|
13
|
+
size?: DropdownMenuSize;
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare function DropdownMenuPortal({ container, ...props }: ComponentProps<typeof MenuPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare function DropdownMenuTrigger({ size, ...props }: ComponentProps<typeof MenuPrimitive.Trigger> & {
|
|
17
|
+
size?: DropdownMenuSize;
|
|
18
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
declare function DropdownMenuContent({ align, alignOffset, side, sideOffset, className, portalClassName, portalContainer, ...props }: MenuPrimitive.Popup.Props & Pick<MenuPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'> & {
|
|
20
|
+
portalClassName?: string;
|
|
21
|
+
portalContainer?: HTMLElement | ShadowRoot | null;
|
|
22
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
declare function DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
declare function DropdownMenuLabel({ className, inset, size, ...props }: ComponentProps<typeof MenuPrimitive.GroupLabel> & VariantProps<typeof dropdownMenuLabelVariants> & {
|
|
25
|
+
inset?: boolean;
|
|
26
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
declare function DropdownMenuItem({ className, inset, size, variant, ...props }: ComponentProps<typeof MenuPrimitive.Item> & VariantProps<typeof dropdownMenuItemVariants> & {
|
|
28
|
+
inset?: boolean;
|
|
29
|
+
variant?: 'default' | 'destructive';
|
|
30
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
declare function DropdownMenuSub({ ...props }: ComponentProps<typeof MenuPrimitive.SubmenuRoot>): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
declare function DropdownMenuSubTrigger({ className, inset, children, size, ...props }: ComponentProps<typeof MenuPrimitive.SubmenuTrigger> & {
|
|
33
|
+
inset?: boolean;
|
|
34
|
+
size?: DropdownMenuSize;
|
|
35
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
declare function DropdownMenuSubContent({ align, alignOffset, side, sideOffset, className, ...props }: ComponentProps<typeof DropdownMenuContent>): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
declare function DropdownMenuCheckboxItem({ className, children, checked, inset, ...props }: MenuPrimitive.CheckboxItem.Props & {
|
|
38
|
+
inset?: boolean;
|
|
39
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
declare function DropdownMenuRadioGroup({ ...props }: ComponentProps<typeof MenuPrimitive.RadioGroup>): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
declare function DropdownMenuRadioItem({ className, children, inset, ...props }: MenuPrimitive.RadioItem.Props & {
|
|
42
|
+
inset?: boolean;
|
|
43
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
declare function DropdownMenuSeparator({ className, ...props }: MenuPrimitive.Separator.Props): import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
declare function DropdownMenuShortcut({ className, ...props }: ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
export { DropdownMenu, DropdownMenuPortal, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, };
|
|
47
|
+
//# sourceMappingURL=DropdownMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../src/components/DropdownMenu.tsx"],"names":[],"mappings":"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"}
|