@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,138 @@
|
|
|
1
|
+
import { cn } from "../utils/classes.js";
|
|
2
|
+
import "../utils/index.js";
|
|
3
|
+
import { contentToValue, dedupeVariableOptions, flattenVariableOptions, valueToContent } from "./tiptap/variableSerialization.js";
|
|
4
|
+
import { VariableDropdown } from "./tiptap/VariableDropdown.js";
|
|
5
|
+
import { VariablePickerProvider } from "./tiptap/VariablePickerContext.js";
|
|
6
|
+
import { InlineVariablePickerPopover } from "./tiptap/InlineVariablePickerPopover.js";
|
|
7
|
+
import { useInlineVariablePicker } from "./tiptap/useInlineVariablePicker.js";
|
|
8
|
+
import VariableTag_default from "./tiptap/VariableTag.js";
|
|
9
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
10
|
+
import Document from "@tiptap/extension-document";
|
|
11
|
+
import Text from "@tiptap/extension-text";
|
|
12
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
import { EditorContent, useEditor } from "@tiptap/react";
|
|
14
|
+
//#region src/components/TiptapInput.tsx
|
|
15
|
+
var OneLinerDocument = Document.extend({ content: "inline*" });
|
|
16
|
+
var TiptapInput = ({ value = "", onChange, className, isInvalid, disabled = false, readOnly = false, variableCategories = {}, variableCategoryLabels, variableCategoryOrder, variableTransformerRegistry, variablePickerTriggerCharacters = ["@"], ...props }) => {
|
|
17
|
+
const wrapperRef = useRef(null);
|
|
18
|
+
const [isVariablePickerOpen, setIsVariablePickerOpen] = useState(false);
|
|
19
|
+
const handleKeyDownRef = useRef(null);
|
|
20
|
+
const topLevelVariables = useMemo(() => {
|
|
21
|
+
return dedupeVariableOptions(Object.values(variableCategories ?? {}).flatMap((items) => {
|
|
22
|
+
return Array.isArray(items) ? items : [];
|
|
23
|
+
}));
|
|
24
|
+
}, [variableCategories]);
|
|
25
|
+
const variables = useMemo(() => {
|
|
26
|
+
return flattenVariableOptions(topLevelVariables);
|
|
27
|
+
}, [topLevelVariables]);
|
|
28
|
+
const editor = useEditor({
|
|
29
|
+
extensions: useMemo(() => {
|
|
30
|
+
return [
|
|
31
|
+
OneLinerDocument,
|
|
32
|
+
Text,
|
|
33
|
+
VariableTag_default.configure({})
|
|
34
|
+
];
|
|
35
|
+
}, []),
|
|
36
|
+
content: valueToContent(value, topLevelVariables, variables),
|
|
37
|
+
editable: !disabled && !readOnly,
|
|
38
|
+
editorProps: { handleKeyDown: (view, event) => {
|
|
39
|
+
return handleKeyDownRef.current?.(view, event) ?? false;
|
|
40
|
+
} },
|
|
41
|
+
onUpdate: ({ editor: ed }) => {
|
|
42
|
+
if (onChange) onChange(contentToValue(ed.getJSON().content));
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
const inlinePicker = useInlineVariablePicker(editor, {
|
|
46
|
+
variableCategories,
|
|
47
|
+
variableCategoryLabels,
|
|
48
|
+
variableCategoryOrder,
|
|
49
|
+
variablePickerTriggerCharacters,
|
|
50
|
+
disabled,
|
|
51
|
+
readOnly,
|
|
52
|
+
wrapperRef,
|
|
53
|
+
onOpenDropdown: () => {
|
|
54
|
+
return setIsVariablePickerOpen(true);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
handleKeyDownRef.current = inlinePicker.handleKeyDown;
|
|
59
|
+
}, [inlinePicker.handleKeyDown]);
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (!editor) return;
|
|
62
|
+
if (!readOnly && editor.isFocused) return;
|
|
63
|
+
const newContent = valueToContent(value, topLevelVariables, variables);
|
|
64
|
+
const currentContent = editor.getJSON();
|
|
65
|
+
if (JSON.stringify(newContent) !== JSON.stringify(currentContent)) queueMicrotask(() => {
|
|
66
|
+
const content = newContent ?? {
|
|
67
|
+
type: "doc",
|
|
68
|
+
content: []
|
|
69
|
+
};
|
|
70
|
+
editor.commands.setContent(content);
|
|
71
|
+
});
|
|
72
|
+
}, [
|
|
73
|
+
editor,
|
|
74
|
+
value,
|
|
75
|
+
readOnly,
|
|
76
|
+
topLevelVariables,
|
|
77
|
+
variables
|
|
78
|
+
]);
|
|
79
|
+
const hasVariables = variables.length > 0;
|
|
80
|
+
return /* @__PURE__ */ jsx(VariablePickerProvider, {
|
|
81
|
+
variableCategories,
|
|
82
|
+
variableCategoryLabels,
|
|
83
|
+
variableCategoryOrder,
|
|
84
|
+
variableTransformerRegistry,
|
|
85
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
86
|
+
ref: wrapperRef,
|
|
87
|
+
className: cn("relative", className),
|
|
88
|
+
children: [
|
|
89
|
+
/* @__PURE__ */ jsx(EditorContent, {
|
|
90
|
+
editor,
|
|
91
|
+
className: cn(!readOnly && [
|
|
92
|
+
"[&_.ProseMirror]:outline-none [&_.ProseMirror]:bg-clip-padding",
|
|
93
|
+
"[&_.ProseMirror]:rounded-sm",
|
|
94
|
+
"[&_.ProseMirror]:border [&_.ProseMirror]:border-[rgba(96,125,159,0.4)]",
|
|
95
|
+
"[&_.ProseMirror]:bg-[rgb(251,252,254)]",
|
|
96
|
+
"[&_.ProseMirror]:whitespace-pre-wrap",
|
|
97
|
+
"[&_.ProseMirror]:w-full [&_.ProseMirror]:h-[34px] [&_.ProseMirror]:px-2 [&_.ProseMirror]:pr-10 [&_.ProseMirror]:pt-[6px] [&_.ProseMirror]:text-sm",
|
|
98
|
+
"[&_.ProseMirror]:whitespace-nowrap [&_.ProseMirror]:overflow-x-auto [&_.ProseMirror]:overflow-y-hidden",
|
|
99
|
+
"[&_.ProseMirror]:[scrollbar-width:none] [&_.ProseMirror::-webkit-scrollbar]:hidden",
|
|
100
|
+
"[&_.ProseMirror]:placeholder:text-[#7c8793]",
|
|
101
|
+
"[&_.ProseMirror]:focus-visible:border-sky-600 [&_.ProseMirror]:focus-visible:shadow-[0_0_0_1px_var(--color-sky-600),0_0_4px_0_hsl(from_var(--color-sky-600)_h_s_l/0.7)]",
|
|
102
|
+
"[&_.ProseMirror]:disabled:cursor-not-allowed [&_.ProseMirror]:disabled:opacity-50"
|
|
103
|
+
], isInvalid && ["[&_.ProseMirror]:border-rose-600", "[&_.ProseMirror]: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)]"], "[&_.ProseMirror_p]:m-0 [&_.ProseMirror_p]:inline", "[&_.ProseMirror_p]:leading-tight", "[&_.ProseMirror-trailingBreak]:inline [&_.ProseMirror-trailingBreak]:leading-none [&_.ProseMirror-trailingBreak]:w-0 [&_.ProseMirror-trailingBreak]:h-0"),
|
|
104
|
+
...props
|
|
105
|
+
}),
|
|
106
|
+
hasVariables && !readOnly && /* @__PURE__ */ jsx(VariableDropdown, {
|
|
107
|
+
editor,
|
|
108
|
+
variableCategories,
|
|
109
|
+
variableCategoryLabels,
|
|
110
|
+
variableCategoryOrder,
|
|
111
|
+
triggerMode: "input",
|
|
112
|
+
open: isVariablePickerOpen,
|
|
113
|
+
onOpenChange: setIsVariablePickerOpen
|
|
114
|
+
}),
|
|
115
|
+
hasVariables && !readOnly && /* @__PURE__ */ jsx(InlineVariablePickerPopover, {
|
|
116
|
+
open: inlinePicker.state.open,
|
|
117
|
+
onOpenChange: (open) => {
|
|
118
|
+
if (!open) inlinePicker.closePicker();
|
|
119
|
+
},
|
|
120
|
+
position: {
|
|
121
|
+
top: inlinePicker.state.top,
|
|
122
|
+
left: inlinePicker.state.left
|
|
123
|
+
},
|
|
124
|
+
isChildMode: inlinePicker.filteredVariables.isChildMode,
|
|
125
|
+
query: inlinePicker.state.query,
|
|
126
|
+
onQueryChange: inlinePicker.setQuery,
|
|
127
|
+
filteredVariables: inlinePicker.filteredVariables,
|
|
128
|
+
onSelect: inlinePicker.handleSelect,
|
|
129
|
+
onBack: inlinePicker.goBack
|
|
130
|
+
})
|
|
131
|
+
]
|
|
132
|
+
})
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
//#endregion
|
|
136
|
+
export { TiptapInput };
|
|
137
|
+
|
|
138
|
+
//# sourceMappingURL=TiptapInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TiptapInput.js","names":[],"sources":["../../src/components/TiptapInput.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\nimport { useEditor, EditorContent } from '@tiptap/react';\n\nimport Document from '@tiptap/extension-document';\nimport Text from '@tiptap/extension-text';\n\nimport VariableTag from '@verbb/plugin-kit-react/components/tiptap/VariableTag';\nimport { VariableDropdown } from '@verbb/plugin-kit-react/components/tiptap/VariableDropdown';\nimport type { VariableTransformerRegistry } from '@verbb/plugin-kit-react/components/tiptap/VariablePickerContext';\nimport { VariablePickerProvider } from '@verbb/plugin-kit-react/components/tiptap/VariablePickerContext';\nimport { InlineVariablePickerPopover } from '@verbb/plugin-kit-react/components/tiptap/InlineVariablePickerPopover';\nimport { useInlineVariablePicker } from '@verbb/plugin-kit-react/components/tiptap/useInlineVariablePicker';\nimport {\n contentToValue,\n dedupeVariableOptions,\n flattenVariableOptions,\n valueToContent,\n} from '@verbb/plugin-kit-react/components/tiptap/variableSerialization';\n\nimport { cn } from '@verbb/plugin-kit-react/utils';\n\nconst OneLinerDocument = Document.extend({\n content: 'inline*',\n});\n\nexport const TiptapInput = ({\n value = '',\n onChange,\n className,\n isInvalid,\n disabled = false,\n readOnly = false,\n variableCategories = {},\n variableCategoryLabels,\n variableCategoryOrder,\n variableTransformerRegistry,\n variablePickerTriggerCharacters = ['@'],\n ...props\n}) => {\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const [isVariablePickerOpen, setIsVariablePickerOpen] = useState(false);\n const handleKeyDownRef = useRef<import('./tiptap/useInlineVariablePicker').InlineVariablePickerHandleKeyDown | null>(null);\n\n const topLevelVariables = useMemo(() => {\n const values = Object.values(variableCategories ?? {}).flatMap(items => {\n return Array.isArray(items) ? items : [];\n },\n );\n return dedupeVariableOptions(values);\n }, [variableCategories]);\n\n const variables = useMemo(() => {\n return flattenVariableOptions(topLevelVariables);\n }, [topLevelVariables]);\n\n const extensions = useMemo(\n () => {\n return [OneLinerDocument, Text, VariableTag.configure({})];\n },\n [],\n );\n\n const editor = useEditor({\n extensions,\n content: valueToContent(value, topLevelVariables, variables) as Parameters<typeof useEditor>[0]['content'],\n editable: !disabled && !readOnly,\n editorProps: {\n handleKeyDown: (view, event) => {\n return handleKeyDownRef.current?.(view, event) ?? false;\n },\n } as Parameters<typeof useEditor>[0]['editorProps'],\n onUpdate: ({ editor: ed }) => {\n if (onChange) {\n onChange(contentToValue(ed.getJSON().content));\n }\n },\n });\n\n const inlinePicker = useInlineVariablePicker(editor, {\n variableCategories,\n variableCategoryLabels,\n variableCategoryOrder,\n variablePickerTriggerCharacters,\n disabled,\n readOnly,\n wrapperRef,\n onOpenDropdown: () => {\n return setIsVariablePickerOpen(true);\n },\n });\n\n useEffect(() => {\n handleKeyDownRef.current = inlinePicker.handleKeyDown;\n }, [inlinePicker.handleKeyDown]);\n\n useEffect(() => {\n if (!editor) {\n return;\n }\n if (!readOnly && editor.isFocused) {\n return;\n }\n\n const newContent = valueToContent(value, topLevelVariables, variables);\n const currentContent = editor.getJSON();\n if (JSON.stringify(newContent) !== JSON.stringify(currentContent)) {\n queueMicrotask(() => {\n const content = newContent ?? { type: 'doc' as const, content: [] as const };\n editor.commands.setContent(content);\n });\n }\n }, [editor, value, readOnly, topLevelVariables, variables]);\n\n const hasVariables = variables.length > 0;\n\n return (\n <VariablePickerProvider\n variableCategories={variableCategories}\n variableCategoryLabels={variableCategoryLabels}\n variableCategoryOrder={variableCategoryOrder}\n variableTransformerRegistry={variableTransformerRegistry as VariableTransformerRegistry | undefined}\n >\n <div ref={wrapperRef} className={cn('relative', className)}>\n <EditorContent\n editor={editor}\n className={cn(\n !readOnly && [\n '[&_.ProseMirror]:outline-none [&_.ProseMirror]:bg-clip-padding',\n '[&_.ProseMirror]:rounded-sm',\n '[&_.ProseMirror]:border [&_.ProseMirror]:border-[rgba(96,125,159,0.4)]',\n '[&_.ProseMirror]:bg-[rgb(251,252,254)]',\n '[&_.ProseMirror]:whitespace-pre-wrap',\n '[&_.ProseMirror]:w-full [&_.ProseMirror]:h-[34px] [&_.ProseMirror]:px-2 [&_.ProseMirror]:pr-10 [&_.ProseMirror]:pt-[6px] [&_.ProseMirror]:text-sm',\n '[&_.ProseMirror]:whitespace-nowrap [&_.ProseMirror]:overflow-x-auto [&_.ProseMirror]:overflow-y-hidden',\n '[&_.ProseMirror]:[scrollbar-width:none] [&_.ProseMirror::-webkit-scrollbar]:hidden',\n '[&_.ProseMirror]:placeholder:text-[#7c8793]',\n '[&_.ProseMirror]:focus-visible:border-sky-600 [&_.ProseMirror]:focus-visible:shadow-[0_0_0_1px_var(--color-sky-600),0_0_4px_0_hsl(from_var(--color-sky-600)_h_s_l/0.7)]',\n '[&_.ProseMirror]:disabled:cursor-not-allowed [&_.ProseMirror]:disabled:opacity-50',\n ],\n isInvalid && [\n '[&_.ProseMirror]:border-rose-600',\n '[&_.ProseMirror]: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 '[&_.ProseMirror_p]:m-0 [&_.ProseMirror_p]:inline',\n '[&_.ProseMirror_p]:leading-tight',\n '[&_.ProseMirror-trailingBreak]:inline [&_.ProseMirror-trailingBreak]:leading-none [&_.ProseMirror-trailingBreak]:w-0 [&_.ProseMirror-trailingBreak]:h-0',\n )}\n {...props}\n />\n\n {hasVariables && !readOnly && (\n <VariableDropdown\n editor={editor}\n variableCategories={variableCategories}\n variableCategoryLabels={variableCategoryLabels}\n variableCategoryOrder={variableCategoryOrder}\n triggerMode=\"input\"\n open={isVariablePickerOpen}\n onOpenChange={setIsVariablePickerOpen}\n />\n )}\n\n {hasVariables && !readOnly && (\n <InlineVariablePickerPopover\n open={inlinePicker.state.open}\n onOpenChange={(open) => {\n if (!open) {\n inlinePicker.closePicker();\n }\n }}\n position={{ top: inlinePicker.state.top, left: inlinePicker.state.left }}\n isChildMode={inlinePicker.filteredVariables.isChildMode}\n query={inlinePicker.state.query}\n onQueryChange={inlinePicker.setQuery}\n filteredVariables={inlinePicker.filteredVariables}\n onSelect={inlinePicker.handleSelect}\n onBack={inlinePicker.goBack}\n />\n )}\n </div>\n </VariablePickerProvider>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAqBA,IAAM,mBAAmB,SAAS,OAAO,EACrC,SAAS,WACZ,CAAC;AAEF,IAAa,eAAe,EACxB,QAAQ,IACR,UACA,WACA,WACA,WAAW,OACX,WAAW,OACX,qBAAqB,EAAE,EACvB,wBACA,uBACA,6BACA,kCAAkC,CAAC,IAAI,EACvC,GAAG,YACD;CACF,MAAM,aAAa,OAA8B,KAAK;CACtD,MAAM,CAAC,sBAAsB,2BAA2B,SAAS,MAAM;CACvE,MAAM,mBAAmB,OAA4F,KAAK;CAE1H,MAAM,oBAAoB,cAAc;AAKpC,SAAO,sBAJQ,OAAO,OAAO,sBAAsB,EAAE,CAAC,CAAC,SAAQ,UAAS;AACpE,UAAO,MAAM,QAAQ,MAAM,GAAG,QAAQ,EAAE;IAGf,CAAO;IACrC,CAAC,mBAAmB,CAAC;CAExB,MAAM,YAAY,cAAc;AAC5B,SAAO,uBAAuB,kBAAkB;IACjD,CAAC,kBAAkB,CAAC;CASvB,MAAM,SAAS,UAAU;EACrB,YARe,cACT;AACF,UAAO;IAAC;IAAkB;IAAM,oBAAY,UAAU,EAAE,CAAC;IAAC;KAE9D,EAAE,CAIF;EACA,SAAS,eAAe,OAAO,mBAAmB,UAAU;EAC5D,UAAU,CAAC,YAAY,CAAC;EACxB,aAAa,EACT,gBAAgB,MAAM,UAAU;AAC5B,UAAO,iBAAiB,UAAU,MAAM,MAAM,IAAI;KAEzD;EACD,WAAW,EAAE,QAAQ,SAAS;AAC1B,OAAI,SACA,UAAS,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC;;EAGzD,CAAC;CAEF,MAAM,eAAe,wBAAwB,QAAQ;EACjD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,sBAAsB;AAClB,UAAO,wBAAwB,KAAK;;EAE3C,CAAC;AAEF,iBAAgB;AACZ,mBAAiB,UAAU,aAAa;IACzC,CAAC,aAAa,cAAc,CAAC;AAEhC,iBAAgB;AACZ,MAAI,CAAC,OACD;AAEJ,MAAI,CAAC,YAAY,OAAO,UACpB;EAGJ,MAAM,aAAa,eAAe,OAAO,mBAAmB,UAAU;EACtE,MAAM,iBAAiB,OAAO,SAAS;AACvC,MAAI,KAAK,UAAU,WAAW,KAAK,KAAK,UAAU,eAAe,CAC7D,sBAAqB;GACjB,MAAM,UAAU,cAAc;IAAE,MAAM;IAAgB,SAAS,EAAE;IAAW;AAC5E,UAAO,SAAS,WAAW,QAAQ;IACrC;IAEP;EAAC;EAAQ;EAAO;EAAU;EAAmB;EAAU,CAAC;CAE3D,MAAM,eAAe,UAAU,SAAS;AAExC,QACI,oBAAC,wBAAD;EACwB;EACI;EACD;EACM;YAE7B,qBAAC,OAAD;GAAK,KAAK;GAAY,WAAW,GAAG,YAAY,UAAU;aAA1D;IACI,oBAAC,eAAD;KACY;KACR,WAAW,GACP,CAAC,YAAY;MACT;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACH,EACD,aAAa,CACT,oCACA,8HACH,EACD,oDACA,oCACA,0JACH;KACD,GAAI;KACN,CAAA;IAED,gBAAgB,CAAC,YACd,oBAAC,kBAAD;KACY;KACY;KACI;KACD;KACvB,aAAY;KACZ,MAAM;KACN,cAAc;KAChB,CAAA;IAGL,gBAAgB,CAAC,YACd,oBAAC,6BAAD;KACI,MAAM,aAAa,MAAM;KACzB,eAAe,SAAS;AACpB,UAAI,CAAC,KACD,cAAa,aAAa;;KAGlC,UAAU;MAAE,KAAK,aAAa,MAAM;MAAK,MAAM,aAAa,MAAM;MAAM;KACxE,aAAa,aAAa,kBAAkB;KAC5C,OAAO,aAAa,MAAM;KAC1B,eAAe,aAAa;KAC5B,mBAAmB,aAAa;KAChC,UAAU,aAAa;KACvB,QAAQ,aAAa;KACvB,CAAA;IAEJ;;EACe,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Toggle as TogglePrimitive } from '@base-ui/react/toggle';
|
|
2
|
+
import { VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const toggleVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "outline" | null | undefined;
|
|
5
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
6
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
+
declare function Toggle({ className, variant, size, ...props }: TogglePrimitive.Props & VariantProps<typeof toggleVariants>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export { Toggle, toggleVariants };
|
|
9
|
+
//# sourceMappingURL=Toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toggle.d.ts","sourceRoot":"","sources":["../../src/components/Toggle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,cAAc;;;8EA4CnB,CAAC;AAEF,iBAAS,MAAM,CAAC,EACZ,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACX,EAAE,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,2CAQ7D;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { cn } from "../utils/classes.js";
|
|
2
|
+
import "../utils/index.js";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { Toggle as Toggle$1 } from "@base-ui/react/toggle";
|
|
6
|
+
//#region src/components/Toggle.tsx
|
|
7
|
+
var toggleVariants = cva([
|
|
8
|
+
"group/toggle inline-flex items-center justify-center gap-1 whitespace-nowrap rounded-lg",
|
|
9
|
+
"cursor-pointer",
|
|
10
|
+
"transition-all outline-none",
|
|
11
|
+
"hover:bg-slate-250",
|
|
12
|
+
"aria-pressed:bg-slate-250 data-[state=on]:bg-slate-250 data-[pressed]:bg-slate-250 data-[pressed=true]:bg-slate-250",
|
|
13
|
+
"focus-visible:shadow-[0_0_0_2px_var(--color-sky-600),0_0_5px_1px_hsl(from_var(--color-sky-600)_h_s_l/0.7)]",
|
|
14
|
+
"aria-invalid:border-rose-600 aria-invalid: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)]",
|
|
15
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
16
|
+
"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0"
|
|
17
|
+
], {
|
|
18
|
+
variants: {
|
|
19
|
+
variant: {
|
|
20
|
+
default: "bg-transparent",
|
|
21
|
+
outline: ["border border-slate-300 bg-transparent", "hover:bg-slate-250"]
|
|
22
|
+
},
|
|
23
|
+
size: {
|
|
24
|
+
default: "h-8 min-w-8 px-2",
|
|
25
|
+
sm: "h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-1.5 text-[0.8rem]",
|
|
26
|
+
lg: "h-9 min-w-9 px-2.5"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: {
|
|
30
|
+
variant: "default",
|
|
31
|
+
size: "default"
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
function Toggle({ className, variant = "default", size = "default", ...props }) {
|
|
35
|
+
return /* @__PURE__ */ jsx(Toggle$1, {
|
|
36
|
+
"data-slot": "toggle",
|
|
37
|
+
className: cn(toggleVariants({
|
|
38
|
+
variant,
|
|
39
|
+
size,
|
|
40
|
+
className
|
|
41
|
+
})),
|
|
42
|
+
...props
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//#endregion
|
|
46
|
+
export { Toggle, toggleVariants };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=Toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toggle.js","names":[],"sources":["../../src/components/Toggle.tsx"],"sourcesContent":["import { Toggle as TogglePrimitive } from '@base-ui/react/toggle';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@verbb/plugin-kit-react/utils';\n\nconst toggleVariants = cva(\n [\n // Layout\n 'group/toggle inline-flex items-center justify-center gap-1 whitespace-nowrap rounded-lg',\n 'cursor-pointer',\n\n // Interaction and state\n 'transition-all outline-none',\n 'hover:bg-slate-250',\n 'aria-pressed:bg-slate-250 data-[state=on]:bg-slate-250 data-[pressed]:bg-slate-250 data-[pressed=true]:bg-slate-250',\n\n // Focus and validation\n 'focus-visible:shadow-[0_0_0_2px_var(--color-sky-600),0_0_5px_1px_hsl(from_var(--color-sky-600)_h_s_l/0.7)]',\n 'aria-invalid:border-rose-600 aria-invalid: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 // Disabled\n 'disabled:pointer-events-none disabled:opacity-50',\n\n // Icons\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n ],\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline: [\n // Border style\n 'border border-slate-300 bg-transparent',\n\n // Hover parity\n 'hover:bg-slate-250',\n ],\n },\n size: {\n default: 'h-8 min-w-8 px-2',\n sm: 'h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-1.5 text-[0.8rem]',\n lg: 'h-9 min-w-9 px-2.5',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Toggle({\n className,\n variant = 'default',\n size = 'default',\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n"],"mappings":";;;;;;AAKA,IAAM,iBAAiB,IACnB;CAEI;CACA;CAGA;CACA;CACA;CAGA;CACA;CAGA;CAGA;CACH,EACD;CACI,UAAU;EACN,SAAS;GACL,SAAS;GACT,SAAS,CAEL,0CAGA,qBACH;GACJ;EACD,MAAM;GACF,SAAS;GACT,IAAI;GACJ,IAAI;GACP;EACJ;CACD,iBAAiB;EACb,SAAS;EACT,MAAM;EACT;CACJ,CACJ;AAED,SAAS,OAAO,EACZ,WACA,UAAU,WACV,OAAO,WACP,GAAG,SACyD;AAC5D,QACI,oBAAC,UAAD;EACI,aAAU;EACV,WAAW,GAAG,eAAe;GAAE;GAAS;GAAM;GAAW,CAAC,CAAC;EAC3D,GAAI;EACN,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Toggle as TogglePrimitive } from '@base-ui/react/toggle';
|
|
2
|
+
import { ToggleGroup as ToggleGroupPrimitive } from '@base-ui/react/toggle-group';
|
|
3
|
+
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
import { toggleVariants } from './Toggle';
|
|
5
|
+
declare function ToggleGroup({ className, variant, size, spacing, orientation, children, ...props }: ToggleGroupPrimitive.Props & VariantProps<typeof toggleVariants> & {
|
|
6
|
+
spacing?: number;
|
|
7
|
+
orientation?: 'horizontal' | 'vertical';
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function ToggleGroupItem({ className, children, variant, size, ...props }: TogglePrimitive.Props & VariantProps<typeof toggleVariants>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export { ToggleGroup, ToggleGroupItem };
|
|
11
|
+
//# sourceMappingURL=ToggleGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleGroup.d.ts","sourceRoot":"","sources":["../../src/components/ToggleGroup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAc3E,iBAAS,WAAW,CAAC,EACjB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAW,EACX,WAA0B,EAC1B,QAAQ,EACR,GAAG,KAAK,EACX,EAAE,oBAAoB,CAAC,KAAK,GACzB,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;CAC1C,2CAoCJ;AAED,iBAAS,eAAe,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACX,EAAE,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,2CAsC7D;AAED,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { cn } from "../utils/classes.js";
|
|
2
|
+
import "../utils/index.js";
|
|
3
|
+
import { toggleVariants } from "./Toggle.js";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { Toggle } from "@base-ui/react/toggle";
|
|
7
|
+
import { ToggleGroup as ToggleGroup$1 } from "@base-ui/react/toggle-group";
|
|
8
|
+
//#region src/components/ToggleGroup.tsx
|
|
9
|
+
var ToggleGroupContext = React$1.createContext({
|
|
10
|
+
size: "default",
|
|
11
|
+
variant: "default",
|
|
12
|
+
spacing: 0,
|
|
13
|
+
orientation: "horizontal"
|
|
14
|
+
});
|
|
15
|
+
function ToggleGroup({ className, variant, size, spacing = 0, orientation = "horizontal", children, ...props }) {
|
|
16
|
+
return /* @__PURE__ */ jsx(ToggleGroup$1, {
|
|
17
|
+
"data-slot": "toggle-group",
|
|
18
|
+
"data-variant": variant,
|
|
19
|
+
"data-size": size,
|
|
20
|
+
"data-spacing": spacing,
|
|
21
|
+
"data-orientation": orientation,
|
|
22
|
+
style: { "--gap": spacing },
|
|
23
|
+
className: cn([
|
|
24
|
+
"group/toggle-group flex w-fit flex-row items-center rounded-lg",
|
|
25
|
+
"data-[size=sm]:rounded-[min(var(--radius-md),10px)]",
|
|
26
|
+
"gap-[--spacing(var(--gap))]",
|
|
27
|
+
"data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch"
|
|
28
|
+
], className),
|
|
29
|
+
...props,
|
|
30
|
+
children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, {
|
|
31
|
+
value: {
|
|
32
|
+
variant,
|
|
33
|
+
size,
|
|
34
|
+
spacing,
|
|
35
|
+
orientation
|
|
36
|
+
},
|
|
37
|
+
children
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function ToggleGroupItem({ className, children, variant = "default", size = "default", ...props }) {
|
|
42
|
+
const context = React$1.useContext(ToggleGroupContext);
|
|
43
|
+
return /* @__PURE__ */ jsx(Toggle, {
|
|
44
|
+
"data-slot": "toggle-group-item",
|
|
45
|
+
"data-variant": context.variant || variant,
|
|
46
|
+
"data-size": context.size || size,
|
|
47
|
+
"data-spacing": context.spacing,
|
|
48
|
+
className: cn([
|
|
49
|
+
"shrink-0 focus:z-10 focus-visible:z-10",
|
|
50
|
+
"group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2",
|
|
51
|
+
"group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:first:rounded-l-lg",
|
|
52
|
+
"group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:first:rounded-t-lg",
|
|
53
|
+
"group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:last:rounded-r-lg",
|
|
54
|
+
"group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:last:rounded-b-lg",
|
|
55
|
+
"group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0",
|
|
56
|
+
"group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l",
|
|
57
|
+
"group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0",
|
|
58
|
+
"group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t"
|
|
59
|
+
], toggleVariants({
|
|
60
|
+
variant: context.variant || variant,
|
|
61
|
+
size: context.size || size
|
|
62
|
+
}), className),
|
|
63
|
+
...props,
|
|
64
|
+
children
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//#endregion
|
|
68
|
+
export { ToggleGroup, ToggleGroupItem };
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=ToggleGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleGroup.js","names":[],"sources":["../../src/components/ToggleGroup.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Toggle as TogglePrimitive } from '@base-ui/react/toggle';\nimport { ToggleGroup as ToggleGroupPrimitive } from '@base-ui/react/toggle-group';\nimport { type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@verbb/plugin-kit-react/utils';\nimport { toggleVariants } from '@verbb/plugin-kit-react/components/Toggle';\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: 'horizontal' | 'vertical'\n }\n>({\n size: 'default',\n variant: 'default',\n spacing: 0,\n orientation: 'horizontal',\n});\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = 'horizontal',\n children,\n ...props\n}: ToggleGroupPrimitive.Props &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: 'horizontal' | 'vertical'\n }) {\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ '--gap': spacing } as React.CSSProperties}\n className={cn(\n [\n // Layout\n 'group/toggle-group flex w-fit flex-row items-center rounded-lg',\n\n // Sizing\n 'data-[size=sm]:rounded-[min(var(--radius-md),10px)]',\n\n // Spacing\n 'gap-[--spacing(var(--gap))]',\n\n // Orientation (Base UI uses data-orientation, not data-vertical/data-horizontal)\n 'data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch',\n ],\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{\n variant, size, spacing, orientation,\n }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive>\n );\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = 'default',\n size = 'default',\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext);\n\n return (\n <TogglePrimitive\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n [\n // Base\n 'shrink-0 focus:z-10 focus-visible:z-10',\n\n // Unified control look when spacing is zero\n 'group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2',\n 'group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:first:rounded-l-lg',\n 'group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:first:rounded-t-lg',\n 'group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:last:rounded-r-lg',\n 'group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:last:rounded-b-lg',\n\n // Shared-outline border collapse when spacing is zero: single outer border + single divider between items\n 'group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0',\n 'group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l',\n 'group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0',\n 'group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t',\n ],\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className,\n )}\n {...props}\n >\n {children}\n </TogglePrimitive>\n );\n}\n\nexport { ToggleGroup, ToggleGroupItem };\n"],"mappings":";;;;;;;;AAQA,IAAM,qBAAqB,QAAM,cAK/B;CACE,MAAM;CACN,SAAS;CACT,SAAS;CACT,aAAa;CAChB,CAAC;AAEF,SAAS,YAAY,EACjB,WACA,SACA,MACA,UAAU,GACV,cAAc,cACd,UACA,GAAG,SAKA;AACH,QACI,oBAAC,eAAD;EACI,aAAU;EACV,gBAAc;EACd,aAAW;EACX,gBAAc;EACd,oBAAkB;EAClB,OAAO,EAAE,SAAS,SAAS;EAC3B,WAAW,GACP;GAEI;GAGA;GAGA;GAGA;GACH,EACD,UACH;EACD,GAAI;YAEJ,oBAAC,mBAAmB,UAApB;GACI,OAAO;IACH;IAAS;IAAM;IAAS;IAC3B;GAEA;GACyB,CAAA;EACX,CAAA;;AAI/B,SAAS,gBAAgB,EACrB,WACA,UACA,UAAU,WACV,OAAO,WACP,GAAG,SACyD;CAC5D,MAAM,UAAU,QAAM,WAAW,mBAAmB;AAEpD,QACI,oBAAC,QAAD;EACI,aAAU;EACV,gBAAc,QAAQ,WAAW;EACjC,aAAW,QAAQ,QAAQ;EAC3B,gBAAc,QAAQ;EACtB,WAAW,GACP;GAEI;GAGA;GACA;GACA;GACA;GACA;GAGA;GACA;GACA;GACA;GACH,EACD,eAAe;GACX,SAAS,QAAQ,WAAW;GAC5B,MAAM,QAAQ,QAAQ;GACzB,CAAC,EACF,UACH;EACD,GAAI;EAEH;EACa,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';
|
|
2
|
+
declare function TooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.Props): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare function Tooltip({ ...props }: TooltipPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function TooltipContent({ className, side, sideOffset, align, alignOffset, portalContainer, children, ...props }: TooltipPrimitive.Popup.Props & Pick<TooltipPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'> & {
|
|
6
|
+
portalContainer?: HTMLElement | ShadowRoot | null;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider, };
|
|
9
|
+
//# sourceMappingURL=Tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../src/components/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAIrE,iBAAS,eAAe,CAAC,EACrB,KAAS,EACT,GAAG,KAAK,EACX,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,2CAQjC;AAED,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,2CAMzD;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,2CAEnE;AAED,iBAAS,cAAc,CAAC,EACpB,SAAS,EACT,IAAY,EACZ,UAAc,EACd,KAAgB,EAChB,WAAe,EACf,eAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACX,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC3B,IAAI,CACA,gBAAgB,CAAC,UAAU,CAAC,KAAK,EACjC,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAClD,GAAG;IACA,eAAe,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,CAAA;CACpD,2CAqEJ;AAED,OAAO,EACH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,GAC3D,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { cn } from "../utils/classes.js";
|
|
2
|
+
import { getPortalContainer } from "../utils/portal.js";
|
|
3
|
+
import "../utils/index.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Tooltip as Tooltip$1 } from "@base-ui/react/tooltip";
|
|
6
|
+
//#region src/components/Tooltip.tsx
|
|
7
|
+
function TooltipProvider({ delay = 0, ...props }) {
|
|
8
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Provider, {
|
|
9
|
+
"data-slot": "tooltip-provider",
|
|
10
|
+
delay,
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
function Tooltip({ ...props }) {
|
|
15
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Provider, {
|
|
16
|
+
delay: 0,
|
|
17
|
+
children: /* @__PURE__ */ jsx(Tooltip$1.Root, {
|
|
18
|
+
"data-slot": "tooltip",
|
|
19
|
+
...props
|
|
20
|
+
})
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function TooltipTrigger({ ...props }) {
|
|
24
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Trigger, {
|
|
25
|
+
"data-slot": "tooltip-trigger",
|
|
26
|
+
...props
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function TooltipContent({ className, side = "top", sideOffset = 4, align = "center", alignOffset = 0, portalContainer, children, ...props }) {
|
|
30
|
+
const resolvedPortalContainer = getPortalContainer(portalContainer);
|
|
31
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Portal, {
|
|
32
|
+
container: resolvedPortalContainer,
|
|
33
|
+
children: /* @__PURE__ */ jsx(Tooltip$1.Positioner, {
|
|
34
|
+
align,
|
|
35
|
+
alignOffset,
|
|
36
|
+
side,
|
|
37
|
+
sideOffset,
|
|
38
|
+
className: "isolate z-250",
|
|
39
|
+
children: /* @__PURE__ */ jsxs(Tooltip$1.Popup, {
|
|
40
|
+
"data-slot": "tooltip-content",
|
|
41
|
+
className: cn("rounded-sm px-[8px] py-[4px] w-fit max-w-xs", "bg-[#1c2e36] text-white text-[12px]", "z-50 origin-(--transform-origin)", "data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95", "data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95", "data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", "data-[side=top]:slide-in-from-bottom-2", "data-[side=bottom]:slide-in-from-top-2", "data-[side=left]:slide-in-from-right-2", "data-[side=right]:slide-in-from-left-2", "data-[side=inline-start]:slide-in-from-right-2", "data-[side=inline-end]:slide-in-from-left-2", className),
|
|
42
|
+
...props,
|
|
43
|
+
children: [children, /* @__PURE__ */ jsx(Tooltip$1.Arrow, { className: cn("size-2.5 rotate-45 rounded-[2px]", "translate-y-[calc(-50%-2px)]", "bg-[#1c2e36] fill-[#1c2e36]", "z-50", "data-[side=top]:-bottom-2.5", "data-[side=bottom]:top-1", "data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2", "data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2", "data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2", "data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2") })]
|
|
44
|
+
})
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":[],"sources":["../../src/components/Tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip';\n\nimport { cn, getPortalContainer } from '@verbb/plugin-kit-react/utils';\n\nfunction TooltipProvider({\n delay = 0,\n ...props\n}: TooltipPrimitive.Provider.Props) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return (\n <TooltipPrimitive.Provider delay={0}>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipPrimitive.Provider>\n );\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n side = 'top',\n sideOffset = 4,\n align = 'center',\n alignOffset = 0,\n portalContainer,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n 'align' | 'alignOffset' | 'side' | 'sideOffset'\n > & {\n portalContainer?: HTMLElement | ShadowRoot | null\n }) {\n const resolvedPortalContainer = getPortalContainer(portalContainer);\n\n return (\n <TooltipPrimitive.Portal container={resolvedPortalContainer}>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-250\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n // Layout\n 'rounded-sm px-[8px] py-[4px] w-fit max-w-xs',\n\n // Theme\n 'bg-[#1c2e36] text-white text-[12px]',\n\n // Stacking\n 'z-50 origin-(--transform-origin)',\n\n // Open animation\n 'data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95',\n 'data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95',\n\n // Closed animation\n 'data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n\n // Side-specific slide animations\n 'data-[side=top]:slide-in-from-bottom-2',\n 'data-[side=bottom]:slide-in-from-top-2',\n 'data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2',\n 'data-[side=inline-start]:slide-in-from-right-2',\n 'data-[side=inline-end]:slide-in-from-left-2',\n\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow\n className={cn(\n // Shape\n 'size-2.5 rotate-45 rounded-[2px]',\n 'translate-y-[calc(-50%-2px)]',\n\n // Theme\n 'bg-[#1c2e36] fill-[#1c2e36]',\n\n // Stacking\n 'z-50',\n\n // Side-specific positioning\n 'data-[side=top]:-bottom-2.5',\n 'data-[side=bottom]:top-1',\n 'data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2',\n 'data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2',\n 'data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2',\n 'data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2',\n )}\n />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport {\n Tooltip, TooltipTrigger, TooltipContent, TooltipProvider,\n};\n"],"mappings":";;;;;;AAIA,SAAS,gBAAgB,EACrB,QAAQ,GACR,GAAG,SAC6B;AAChC,QACI,oBAAC,UAAiB,UAAlB;EACI,aAAU;EACH;EACP,GAAI;EACN,CAAA;;AAIV,SAAS,QAAQ,EAAE,GAAG,SAAsC;AACxD,QACI,oBAAC,UAAiB,UAAlB;EAA2B,OAAO;YAC9B,oBAAC,UAAiB,MAAlB;GAAuB,aAAU;GAAU,GAAI;GAAS,CAAA;EAChC,CAAA;;AAIpC,SAAS,eAAe,EAAE,GAAG,SAAyC;AAClE,QAAO,oBAAC,UAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;EAAS,CAAA;;AAG9E,SAAS,eAAe,EACpB,WACA,OAAO,OACP,aAAa,GACb,QAAQ,UACR,cAAc,GACd,iBACA,UACA,GAAG,SAOA;CACH,MAAM,0BAA0B,mBAAmB,gBAAgB;AAEnE,QACI,oBAAC,UAAiB,QAAlB;EAAyB,WAAW;YAChC,oBAAC,UAAiB,YAAlB;GACW;GACM;GACP;GACM;GACZ,WAAU;aAEV,qBAAC,UAAiB,OAAlB;IACI,aAAU;IACV,WAAW,GAEP,+CAGA,uCAGA,oCAGA,iEACA,iHAGA,0EAGA,0CACA,0CACA,0CACA,0CACA,kDACA,+CAEA,UACH;IACD,GAAI;cA7BR,CA+BK,UACD,oBAAC,UAAiB,OAAlB,EACI,WAAW,GAEP,oCACA,gCAGA,+BAGA,QAGA,+BACA,4BACA,yFACA,2FACA,iHACA,yGACH,EACH,CAAA,CACmB;;GACC,CAAA;EACR,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
interface VirtualizedScrollAreaProps<T> {
|
|
3
|
+
items: T[];
|
|
4
|
+
renderItem: (item: T, index: number) => React.ReactNode;
|
|
5
|
+
overscan?: number;
|
|
6
|
+
estimateSize: (index: number) => number;
|
|
7
|
+
getItemKey?: (index: number) => string | number;
|
|
8
|
+
listHeight: number;
|
|
9
|
+
enableDynamicHeights?: boolean;
|
|
10
|
+
nativeScroll?: boolean;
|
|
11
|
+
className?: string;
|
|
12
|
+
initialScroll?: {
|
|
13
|
+
index: number;
|
|
14
|
+
clickAfterScroll: boolean;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export interface VirtualizedScrollAreaRef {
|
|
18
|
+
scrollToIndex: (index: number, options?: {
|
|
19
|
+
align?: 'start' | 'center' | 'end';
|
|
20
|
+
behavior?: 'auto' | 'smooth';
|
|
21
|
+
}) => void;
|
|
22
|
+
}
|
|
23
|
+
declare function VirtualizedScrollArea<T>({ items, renderItem, overscan, estimateSize, getItemKey, listHeight, enableDynamicHeights, nativeScroll, initialScroll, className, ...props }: VirtualizedScrollAreaProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export { VirtualizedScrollArea };
|
|
25
|
+
//# sourceMappingURL=VirtualizedScrollArea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VirtualizedScrollArea.d.ts","sourceRoot":"","sources":["../../src/components/VirtualizedScrollArea.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,UAAU,0BAA0B,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAAC;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,gBAAgB,EAAE,OAAO,CAAC;KAC7B,CAAC;CACL;AAED,MAAM,WAAW,wBAAwB;IACrC,aAAa,EAAE,CACX,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;KAChC,KACA,IAAI,CAAC;CACb;AAED,iBAAS,qBAAqB,CAAC,CAAC,EAAE,EAC9B,KAAK,EACL,UAAU,EACV,QAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,oBAA4B,EAC5B,YAAoB,EACpB,aAAa,EACb,SAAS,EACT,GAAG,KAAK,EACX,EAAE,0BAA0B,CAAC,CAAC,CAAC,2CA2F/B;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { cn } from "../utils/classes.js";
|
|
2
|
+
import "../utils/index.js";
|
|
3
|
+
import { ScrollArea } from "./ScrollArea.js";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
7
|
+
//#region src/components/VirtualizedScrollArea.tsx
|
|
8
|
+
function VirtualizedScrollArea({ items, renderItem, overscan = 5, estimateSize, getItemKey, listHeight, enableDynamicHeights = false, nativeScroll = false, initialScroll, className, ...props }) {
|
|
9
|
+
const parentRef = React$1.useRef(null);
|
|
10
|
+
const initialScrollIndex = initialScroll?.index ?? -1;
|
|
11
|
+
const clickAfterInitialScroll = initialScroll?.clickAfterScroll ?? false;
|
|
12
|
+
const rowVirtualizer = useVirtualizer({
|
|
13
|
+
count: items.length,
|
|
14
|
+
getScrollElement: () => {
|
|
15
|
+
return parentRef.current;
|
|
16
|
+
},
|
|
17
|
+
estimateSize,
|
|
18
|
+
overscan,
|
|
19
|
+
getItemKey: getItemKey || ((index) => {
|
|
20
|
+
return index;
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
const virtualItems = rowVirtualizer.getVirtualItems();
|
|
24
|
+
React$1.useEffect(() => {
|
|
25
|
+
if (initialScrollIndex < 0) return;
|
|
26
|
+
rowVirtualizer.scrollToIndex(initialScrollIndex, {
|
|
27
|
+
align: "start",
|
|
28
|
+
behavior: "auto"
|
|
29
|
+
});
|
|
30
|
+
if (clickAfterInitialScroll) setTimeout(() => {
|
|
31
|
+
const renderedElement = (parentRef.current?.querySelector(`[data-virtual-index="${initialScrollIndex}"]`))?.children[0];
|
|
32
|
+
if (renderedElement instanceof HTMLElement) renderedElement.click();
|
|
33
|
+
}, 100);
|
|
34
|
+
}, [
|
|
35
|
+
clickAfterInitialScroll,
|
|
36
|
+
initialScrollIndex,
|
|
37
|
+
rowVirtualizer
|
|
38
|
+
]);
|
|
39
|
+
const innerContent = /* @__PURE__ */ jsx("div", {
|
|
40
|
+
style: {
|
|
41
|
+
height: `${rowVirtualizer.getTotalSize()}px`,
|
|
42
|
+
width: "100%",
|
|
43
|
+
position: "relative"
|
|
44
|
+
},
|
|
45
|
+
children: virtualItems.map((virtualItem) => {
|
|
46
|
+
return /* @__PURE__ */ jsx("div", {
|
|
47
|
+
"data-index": virtualItem.index,
|
|
48
|
+
"data-virtual-index": virtualItem.index,
|
|
49
|
+
ref: enableDynamicHeights ? rowVirtualizer.measureElement : void 0,
|
|
50
|
+
style: {
|
|
51
|
+
position: "absolute",
|
|
52
|
+
top: 0,
|
|
53
|
+
left: 0,
|
|
54
|
+
width: "100%",
|
|
55
|
+
height: enableDynamicHeights ? void 0 : `${virtualItem.size}px`,
|
|
56
|
+
transform: `translateY(${virtualItem.start}px)`
|
|
57
|
+
},
|
|
58
|
+
children: renderItem(items[virtualItem.index], virtualItem.index)
|
|
59
|
+
}, virtualItem.key);
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
if (nativeScroll) return /* @__PURE__ */ jsx("div", {
|
|
63
|
+
ref: parentRef,
|
|
64
|
+
className: cn("overflow-y-auto overflow-x-hidden", className),
|
|
65
|
+
style: { height: `${listHeight}px` },
|
|
66
|
+
children: innerContent
|
|
67
|
+
});
|
|
68
|
+
return /* @__PURE__ */ jsx(ScrollArea, {
|
|
69
|
+
size: "default",
|
|
70
|
+
style: { height: `${listHeight}px` },
|
|
71
|
+
viewPortRef: parentRef,
|
|
72
|
+
className,
|
|
73
|
+
...props,
|
|
74
|
+
children: innerContent
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//#endregion
|
|
78
|
+
export { VirtualizedScrollArea };
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=VirtualizedScrollArea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VirtualizedScrollArea.js","names":[],"sources":["../../src/components/VirtualizedScrollArea.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport * as React from 'react';\n\nimport { ScrollArea } from '@verbb/plugin-kit-react/components/ScrollArea';\nimport { cn } from '@verbb/plugin-kit-react/utils';\n\ninterface VirtualizedScrollAreaProps<T> {\n items: T[];\n renderItem: (item: T, index: number) => React.ReactNode;\n overscan?: number;\n estimateSize: (index: number) => number;\n getItemKey?: (index: number) => string | number;\n listHeight: number;\n enableDynamicHeights?: boolean;\n nativeScroll?: boolean;\n className?: string;\n initialScroll?: {\n index: number;\n clickAfterScroll: boolean;\n };\n}\n\nexport interface VirtualizedScrollAreaRef {\n scrollToIndex: (\n index: number,\n options?: {\n align?: 'start' | 'center' | 'end';\n behavior?: 'auto' | 'smooth';\n },\n ) => void;\n}\n\nfunction VirtualizedScrollArea<T>({\n items,\n renderItem,\n overscan = 5,\n estimateSize,\n getItemKey,\n listHeight,\n enableDynamicHeights = false,\n nativeScroll = false,\n initialScroll,\n className,\n ...props\n}: VirtualizedScrollAreaProps<T>) {\n const parentRef = React.useRef<HTMLDivElement>(null);\n const initialScrollIndex = initialScroll?.index ?? -1;\n const clickAfterInitialScroll = initialScroll?.clickAfterScroll ?? false;\n\n const rowVirtualizer = useVirtualizer({\n count: items.length,\n getScrollElement: () => { return parentRef.current; },\n estimateSize,\n overscan,\n getItemKey: getItemKey || ((index) => { return index; }),\n });\n\n const virtualItems = rowVirtualizer.getVirtualItems();\n React.useEffect(() => {\n if (initialScrollIndex < 0) {\n return;\n }\n rowVirtualizer.scrollToIndex(initialScrollIndex, {\n align: 'start',\n behavior: 'auto',\n });\n\n if (clickAfterInitialScroll) {\n // need to wait for the scroll to be completed\n setTimeout(() => {\n const targetElement = parentRef.current?.querySelector(\n `[data-virtual-index=\"${initialScrollIndex}\"]`,\n );\n const renderedElement = targetElement?.children[0];\n if (renderedElement instanceof HTMLElement) {\n renderedElement.click();\n }\n }, 100);\n }\n }, [clickAfterInitialScroll, initialScrollIndex, rowVirtualizer]);\n\n const innerContent = (\n <div\n style={{\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: '100%',\n position: 'relative',\n }}\n >\n {virtualItems.map((virtualItem) => {\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n data-virtual-index={virtualItem.index}\n ref={enableDynamicHeights ? rowVirtualizer.measureElement : undefined}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: enableDynamicHeights ? undefined : `${virtualItem.size}px`,\n transform: `translateY(${virtualItem.start}px)`,\n }}\n >\n {renderItem(items[virtualItem.index], virtualItem.index)}\n </div>\n );\n })}\n </div>\n );\n\n if (nativeScroll) {\n return (\n <div\n ref={parentRef}\n className={cn('overflow-y-auto overflow-x-hidden', className)}\n style={{ height: `${listHeight}px` }}\n >\n {innerContent}\n </div>\n );\n }\n\n return (\n <ScrollArea\n size=\"default\"\n style={{ height: `${listHeight}px` }}\n viewPortRef={parentRef as React.RefObject<HTMLDivElement>}\n className={className}\n {...props}\n >\n {innerContent}\n </ScrollArea>\n );\n};\n\nexport { VirtualizedScrollArea };\n"],"mappings":";;;;;;;AAgCA,SAAS,sBAAyB,EAC9B,OACA,YACA,WAAW,GACX,cACA,YACA,YACA,uBAAuB,OACvB,eAAe,OACf,eACA,WACA,GAAG,SAC2B;CAC9B,MAAM,YAAY,QAAM,OAAuB,KAAK;CACpD,MAAM,qBAAqB,eAAe,SAAS;CACnD,MAAM,0BAA0B,eAAe,oBAAoB;CAEnE,MAAM,iBAAiB,eAAe;EAClC,OAAO,MAAM;EACb,wBAAwB;AAAE,UAAO,UAAU;;EAC3C;EACA;EACA,YAAY,gBAAgB,UAAU;AAAE,UAAO;;EAClD,CAAC;CAEF,MAAM,eAAe,eAAe,iBAAiB;AACrD,SAAM,gBAAgB;AAClB,MAAI,qBAAqB,EACrB;AAEJ,iBAAe,cAAc,oBAAoB;GAC7C,OAAO;GACP,UAAU;GACb,CAAC;AAEF,MAAI,wBAEA,kBAAiB;GAIb,MAAM,mBAHgB,UAAU,SAAS,cACrC,wBAAwB,mBAAmB,IAC9C,GACsC,SAAS;AAChD,OAAI,2BAA2B,YAC3B,iBAAgB,OAAO;KAE5B,IAAI;IAEZ;EAAC;EAAyB;EAAoB;EAAe,CAAC;CAEjE,MAAM,eACF,oBAAC,OAAD;EACI,OAAO;GACH,QAAQ,GAAG,eAAe,cAAc,CAAC;GACzC,OAAO;GACP,UAAU;GACb;YAEA,aAAa,KAAK,gBAAgB;AAC/B,UACI,oBAAC,OAAD;IAEI,cAAY,YAAY;IACxB,sBAAoB,YAAY;IAChC,KAAK,uBAAuB,eAAe,iBAAiB,KAAA;IAC5D,OAAO;KACH,UAAU;KACV,KAAK;KACL,MAAM;KACN,OAAO;KACP,QAAQ,uBAAuB,KAAA,IAAY,GAAG,YAAY,KAAK;KAC/D,WAAW,cAAc,YAAY,MAAM;KAC9C;cAEA,WAAW,MAAM,YAAY,QAAQ,YAAY,MAAM;IACtD,EAdG,YAAY,IAcf;IAEZ;EACA,CAAA;AAGV,KAAI,aACA,QACI,oBAAC,OAAD;EACI,KAAK;EACL,WAAW,GAAG,qCAAqC,UAAU;EAC7D,OAAO,EAAE,QAAQ,GAAG,WAAW,KAAK;YAEnC;EACC,CAAA;AAId,QACI,oBAAC,YAAD;EACI,MAAK;EACL,OAAO,EAAE,QAAQ,GAAG,WAAW,KAAK;EACpC,aAAa;EACF;EACX,GAAI;YAEH;EACQ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RowDataCells.d.ts","sourceRoot":"","sources":["../../../src/components/editable-table/RowDataCells.jsx"],"names":[],"mappings":"AASA,8DAqCG;kBA9Ce,OAAO"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { cn } from "../../utils/classes.js";
|
|
2
|
+
import "../../utils/index.js";
|
|
3
|
+
import { TableCell } from "./TableCell.js";
|
|
4
|
+
import { TableCell as TableCell$1 } from "../Table.js";
|
|
5
|
+
import "../index.js";
|
|
6
|
+
import React from "react";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
//#region src/components/editable-table/RowDataCells.jsx
|
|
9
|
+
var isThinColumn = (column) => {
|
|
10
|
+
return Boolean(column?.thin || column?.type === "checkbox" || column?.type === "lightswitch" || column?.type === "radio");
|
|
11
|
+
};
|
|
12
|
+
var RowDataCells = React.memo(({ row, rowIndex, columns, columnsSignature, modifyColumn, getCellErrors, onUpdateCell }) => {
|
|
13
|
+
return columns.map((column) => {
|
|
14
|
+
return /* @__PURE__ */ jsx(TableCell$1, {
|
|
15
|
+
className: cn(column.className, isThinColumn(column) && "w-[1%] whitespace-nowrap"),
|
|
16
|
+
children: /* @__PURE__ */ jsx(TableCell, {
|
|
17
|
+
row,
|
|
18
|
+
rowIndex,
|
|
19
|
+
column,
|
|
20
|
+
value: row[column.name],
|
|
21
|
+
modifyColumn,
|
|
22
|
+
getCellErrors,
|
|
23
|
+
onUpdateCell
|
|
24
|
+
})
|
|
25
|
+
}, column.name);
|
|
26
|
+
});
|
|
27
|
+
}, (prevProps, nextProps) => {
|
|
28
|
+
return prevProps.row === nextProps.row && prevProps.rowIndex === nextProps.rowIndex && prevProps.columnsSignature === nextProps.columnsSignature && prevProps.getCellErrors === nextProps.getCellErrors;
|
|
29
|
+
});
|
|
30
|
+
//#endregion
|
|
31
|
+
export { RowDataCells };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=RowDataCells.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RowDataCells.js","names":[],"sources":["../../../src/components/editable-table/RowDataCells.jsx"],"sourcesContent":["import React from 'react';\nimport { TableCell as UITableCell } from '@verbb/plugin-kit-react/components';\nimport { cn } from '@verbb/plugin-kit-react/utils';\nimport { TableCell } from './TableCell';\n\nconst isThinColumn = (column) => {\n return Boolean(column?.thin || column?.type === 'checkbox' || column?.type === 'lightswitch' || column?.type === 'radio');\n};\n\nexport const RowDataCells = React.memo(({\n row,\n rowIndex,\n columns,\n columnsSignature,\n modifyColumn,\n getCellErrors,\n onUpdateCell,\n}) => {\n return columns.map((column) => {\n return (\n <UITableCell\n key={column.name}\n className={cn(\n column.className,\n isThinColumn(column) && 'w-[1%] whitespace-nowrap',\n )}\n >\n <TableCell\n row={row}\n rowIndex={rowIndex}\n column={column}\n value={row[column.name]}\n modifyColumn={modifyColumn}\n getCellErrors={getCellErrors}\n onUpdateCell={onUpdateCell}\n />\n </UITableCell>\n );\n });\n}, (prevProps, nextProps) => {\n return (\n prevProps.row === nextProps.row\n && prevProps.rowIndex === nextProps.rowIndex\n && prevProps.columnsSignature === nextProps.columnsSignature\n && prevProps.getCellErrors === nextProps.getCellErrors\n );\n});\n"],"mappings":";;;;;;;;AAKA,IAAM,gBAAgB,WAAW;AAC7B,QAAO,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,cAAc,QAAQ,SAAS,iBAAiB,QAAQ,SAAS,QAAQ;;AAG7H,IAAa,eAAe,MAAM,MAAM,EACpC,KACA,UACA,SACA,kBACA,cACA,eACA,mBACE;AACF,QAAO,QAAQ,KAAK,WAAW;AAC3B,SACI,oBAAC,aAAD;GAEI,WAAW,GACP,OAAO,WACP,aAAa,OAAO,IAAI,2BAC3B;aAED,oBAAC,WAAD;IACS;IACK;IACF;IACR,OAAO,IAAI,OAAO;IACJ;IACC;IACD;IAChB,CAAA;GACQ,EAfL,OAAO,KAeF;GAEpB;IACF,WAAW,cAAc;AACzB,QACI,UAAU,QAAQ,UAAU,OACzB,UAAU,aAAa,UAAU,YACjC,UAAU,qBAAqB,UAAU,oBACzC,UAAU,kBAAkB,UAAU;EAE/C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EditableTableColumn, EditableTableModifyColumn, EditableTableRow } from './types';
|
|
2
|
+
type Props = {
|
|
3
|
+
column: EditableTableColumn;
|
|
4
|
+
value: unknown;
|
|
5
|
+
row: EditableTableRow;
|
|
6
|
+
rowIndex: number;
|
|
7
|
+
modifyColumn?: EditableTableModifyColumn | null;
|
|
8
|
+
getCellErrors: (rowIndex: number, columnName: string) => unknown[];
|
|
9
|
+
onUpdateCell: (rowIndex: number, row: EditableTableRow, column: EditableTableColumn, newValue: unknown) => void;
|
|
10
|
+
};
|
|
11
|
+
export declare function TableCell({ column, value, row, rowIndex, modifyColumn, getCellErrors, onUpdateCell, }: Props): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<import('react').ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<import('react').ReactNode> | null | undefined> | null | undefined;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=TableCell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableCell.d.ts","sourceRoot":"","sources":["../../../src/components/editable-table/TableCell.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EACR,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EACnB,MAAM,SAAS,CAAC;AAEjB,KAAK,KAAK,GAAG;IACT,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,gBAAgB,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAChD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,EAAE,CAAC;IACnE,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CACnH,CAAC;AAwLF,wBAAgB,SAAS,CAAC,EACtB,MAAM,EACN,KAAK,EACL,GAAG,EACH,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,YAAY,GACf,EAAE,KAAK,2WAsQP"}
|