vlite3 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_virtual/_plugin-vue_export-helper.js +9 -0
- package/components/Accordion/Accordion.vue.d.ts +44 -0
- package/components/Accordion/Accordion.vue.js +95 -0
- package/components/Accordion/Accordion.vue2.js +4 -0
- package/components/Accordion/AccordionContent.vue.d.ts +22 -0
- package/components/Accordion/AccordionContent.vue.js +7 -0
- package/components/Accordion/AccordionContent.vue2.js +47 -0
- package/components/Accordion/AccordionItem.vue.d.ts +56 -0
- package/components/Accordion/AccordionItem.vue.js +115 -0
- package/components/Accordion/AccordionItem.vue2.js +4 -0
- package/components/Accordion/AccordionTrigger.vue.d.ts +43 -0
- package/components/Accordion/AccordionTrigger.vue.js +94 -0
- package/components/Accordion/AccordionTrigger.vue2.js +4 -0
- package/components/Accordion/index.d.ts +5 -0
- package/components/Accordion/types.d.ts +33 -0
- package/components/Alert.vue.d.ts +36 -0
- package/components/Alert.vue.js +84 -0
- package/components/Alert.vue2.js +4 -0
- package/components/Avatar.vue.d.ts +32 -0
- package/components/Avatar.vue.js +78 -0
- package/components/Avatar.vue2.js +4 -0
- package/components/AvatarUploader/AvatarUploader.vue.d.ts +32 -0
- package/components/AvatarUploader/AvatarUploader.vue.js +99 -0
- package/components/AvatarUploader/AvatarUploader.vue2.js +4 -0
- package/{src/components/AvatarUploader/index.ts → components/AvatarUploader/index.d.ts} +2 -2
- package/components/Badge.vue.d.ts +25 -0
- package/components/Badge.vue.js +27 -0
- package/components/Badge.vue2.js +4 -0
- package/components/Button.vue.d.ts +26 -0
- package/components/Button.vue.js +107 -0
- package/components/Button.vue2.js +4 -0
- package/components/ButtonGroup.vue.d.ts +29 -0
- package/components/ButtonGroup.vue.js +7 -0
- package/components/ButtonGroup.vue2.js +30 -0
- package/components/Carousel/Carousel.vue.d.ts +847 -0
- package/components/Carousel/Carousel.vue.js +7 -0
- package/components/Carousel/Carousel.vue2.js +68 -0
- package/components/Carousel/index.d.ts +2 -0
- package/components/Carousel/types.d.ts +24 -0
- package/components/CheckBox.vue.d.ts +27 -0
- package/components/CheckBox.vue.js +115 -0
- package/components/CheckBox.vue2.js +4 -0
- package/components/Chip/Chip.vue.d.ts +33 -0
- package/components/Chip/Chip.vue.js +113 -0
- package/components/Chip/Chip.vue2.js +4 -0
- package/components/Chip/index.d.ts +2 -0
- package/components/Chip/types.d.ts +12 -0
- package/components/ChoiceBox/ChoiceBox.vue.d.ts +32 -0
- package/components/ChoiceBox/ChoiceBox.vue.js +141 -0
- package/components/ChoiceBox/ChoiceBox.vue2.js +4 -0
- package/components/ChoiceBox/index.d.ts +2 -0
- package/components/ColorPicker/ColorIro.vue.d.ts +18 -0
- package/components/ColorPicker/ColorIro.vue.js +142 -0
- package/components/ColorPicker/ColorIro.vue3.js +5 -0
- package/components/ColorPicker/ColorPicker.vue.d.ts +22 -0
- package/components/ColorPicker/ColorPicker.vue.js +56 -0
- package/components/ColorPicker/ColorPicker.vue2.js +4 -0
- package/components/ConfirmationModal.vue.d.ts +39 -0
- package/components/ConfirmationModal.vue.js +55 -0
- package/components/ConfirmationModal.vue2.js +4 -0
- package/components/DataTable/DataTable.vue.d.ts +60 -0
- package/components/DataTable/DataTable.vue.js +7 -0
- package/components/DataTable/DataTable.vue2.js +310 -0
- package/components/DataTable/DataTableHeader.vue.d.ts +14 -0
- package/components/DataTable/DataTableHeader.vue.js +49 -0
- package/components/DataTable/DataTableHeader.vue2.js +4 -0
- package/components/DataTable/DataTableRow.vue.d.ts +51 -0
- package/components/DataTable/DataTableRow.vue.js +114 -0
- package/components/DataTable/DataTableRow.vue2.js +4 -0
- package/components/DataTable/DataTableToolbar.vue.d.ts +31 -0
- package/components/DataTable/DataTableToolbar.vue.js +45 -0
- package/components/DataTable/DataTableToolbar.vue2.js +4 -0
- package/components/DataTable/index.d.ts +4 -0
- package/components/DataTable/types.d.ts +75 -0
- package/components/DatePicker.vue.d.ts +44 -0
- package/components/DatePicker.vue.js +84 -0
- package/components/DatePicker.vue2.js +4 -0
- package/components/Dropdown/Dropdown.vue.d.ts +105 -0
- package/components/Dropdown/Dropdown.vue.js +206 -0
- package/components/Dropdown/Dropdown.vue2.js +4 -0
- package/components/Dropdown/DropdownBooleanItem.vue.d.ts +12 -0
- package/components/Dropdown/DropdownBooleanItem.vue.js +41 -0
- package/components/Dropdown/DropdownBooleanItem.vue2.js +4 -0
- package/components/Dropdown/DropdownGroupedLayout.vue.d.ts +21 -0
- package/components/Dropdown/DropdownGroupedLayout.vue.js +73 -0
- package/components/Dropdown/DropdownGroupedLayout.vue2.js +4 -0
- package/components/Dropdown/DropdownItem.vue.d.ts +35 -0
- package/components/Dropdown/DropdownItem.vue.js +56 -0
- package/components/Dropdown/DropdownItem.vue2.js +4 -0
- package/components/Dropdown/DropdownMenu.vue.d.ts +73 -0
- package/components/Dropdown/DropdownMenu.vue.js +232 -0
- package/components/Dropdown/DropdownMenu.vue2.js +4 -0
- package/components/Dropdown/DropdownTrigger.vue.d.ts +15 -0
- package/components/Dropdown/DropdownTrigger.vue.js +26 -0
- package/components/Dropdown/DropdownTrigger.vue2.js +4 -0
- package/components/Dropdown/composables/useDropdownIds.d.ts +5 -0
- package/components/Dropdown/composables/useDropdownIds.js +20 -0
- package/components/Dropdown/composables/useDropdownNavigation.d.ts +19 -0
- package/components/Dropdown/composables/useDropdownNavigation.js +49 -0
- package/components/Dropdown/composables/useDropdownSelection.d.ts +16 -0
- package/components/Dropdown/composables/useDropdownSelection.js +41 -0
- package/components/Dropdown/index.d.ts +6 -0
- package/components/FilePicker/FilePicker.vue.d.ts +65 -0
- package/components/FilePicker/FilePicker.vue.js +285 -0
- package/components/FilePicker/FilePicker.vue2.js +4 -0
- package/components/FilePicker/index.d.ts +2 -0
- package/components/FileTree/FileTree.vue.d.ts +20 -0
- package/components/FileTree/FileTree.vue.js +139 -0
- package/components/FileTree/FileTree.vue2.js +4 -0
- package/components/FileTree/FileTreeNode.vue.d.ts +28 -0
- package/components/FileTree/FileTreeNode.vue.js +184 -0
- package/components/FileTree/FileTreeNode.vue2.js +4 -0
- package/components/FileTree/index.d.ts +4 -0
- package/components/FileTree/types.d.ts +36 -0
- package/components/FileTree/useTreeSelection.d.ts +12 -0
- package/components/FileTree/useTreeSelection.js +25 -0
- package/components/Form/CustomFields.vue.d.ts +38 -0
- package/components/Form/CustomFields.vue.js +7 -0
- package/components/Form/CustomFields.vue2.js +161 -0
- package/components/Form/Form.vue.d.ts +94 -0
- package/components/Form/Form.vue.js +7 -0
- package/components/Form/Form.vue2.js +238 -0
- package/components/Form/FormField.vue.d.ts +28 -0
- package/components/Form/FormField.vue.js +207 -0
- package/components/Form/FormField.vue2.js +4 -0
- package/components/Form/FormFields.vue.d.ts +29 -0
- package/components/Form/FormFields.vue.js +7 -0
- package/components/Form/FormFields.vue2.js +95 -0
- package/components/Form/composables/useFileUpload.d.ts +24 -0
- package/components/Form/composables/useFileUpload.js +40 -0
- package/components/Form/composables/useForm.d.ts +48 -0
- package/components/Form/composables/useForm.js +109 -0
- package/components/Form/index.d.ts +9 -0
- package/components/Form/types.d.ts +167 -0
- package/components/Form/utils/form.utils.d.ts +44 -0
- package/components/Form/utils/form.utils.js +97 -0
- package/components/Heatmap/Heatmap.vue.d.ts +26 -0
- package/components/Heatmap/Heatmap.vue.js +7 -0
- package/components/Heatmap/Heatmap.vue2.js +326 -0
- package/components/Heatmap/index.d.ts +2 -0
- package/components/Heatmap/types.d.ts +66 -0
- package/components/Icon.vue.d.ts +7 -0
- package/components/Icon.vue.js +25 -0
- package/components/Icon.vue2.js +4 -0
- package/components/IconPicker.vue.d.ts +38 -0
- package/components/IconPicker.vue.js +124 -0
- package/components/IconPicker.vue2.js +4 -0
- package/components/Input.vue.d.ts +54 -0
- package/components/Input.vue.js +267 -0
- package/components/Input.vue2.js +4 -0
- package/components/Label.vue.d.ts +23 -0
- package/components/Label.vue.js +23 -0
- package/components/Label.vue2.js +4 -0
- package/components/Logo.vue.d.ts +2 -0
- package/components/Logo.vue.js +10 -0
- package/components/Logo.vue2.js +4 -0
- package/components/Masonry/Masonry.vue.d.ts +31 -0
- package/components/Masonry/Masonry.vue.js +7 -0
- package/components/Masonry/Masonry.vue2.js +83 -0
- package/components/Masonry/index.d.ts +2 -0
- package/components/Masonry/types.d.ts +33 -0
- package/components/Masonry/types.js +10 -0
- package/components/Modal.vue.d.ts +52 -0
- package/components/Modal.vue.js +116 -0
- package/components/Modal.vue2.js +4 -0
- package/components/MultiSelect/MultiSelect.vue.d.ts +40 -0
- package/components/MultiSelect/MultiSelect.vue.js +126 -0
- package/components/MultiSelect/MultiSelect.vue2.js +4 -0
- package/components/MultiSelect/index.d.ts +1 -0
- package/components/Navbar/Navbar.vue.d.ts +51 -0
- package/components/Navbar/Navbar.vue.js +198 -0
- package/components/Navbar/Navbar.vue2.js +4 -0
- package/components/Navbar/NavbarGroup.vue.d.ts +24 -0
- package/components/Navbar/NavbarGroup.vue.js +23 -0
- package/components/Navbar/NavbarGroup.vue2.js +4 -0
- package/components/Navbar/NavbarItem.vue.d.ts +40 -0
- package/components/Navbar/NavbarItem.vue.js +104 -0
- package/components/Navbar/NavbarItem.vue2.js +4 -0
- package/components/Navbar/index.d.ts +3 -0
- package/components/OTPInput/OTPInput.vue.d.ts +33 -0
- package/components/OTPInput/OTPInput.vue.js +115 -0
- package/components/OTPInput/OTPInput.vue2.js +4 -0
- package/components/OTPInput/index.d.ts +1 -0
- package/components/Pagination/Pagination.vue.d.ts +34 -0
- package/components/Pagination/Pagination.vue.js +196 -0
- package/components/Pagination/Pagination.vue2.js +4 -0
- package/components/Pagination/index.d.ts +1 -0
- package/components/PricingPlan/PricingPlan.vue.d.ts +22 -0
- package/components/PricingPlan/PricingPlan.vue.js +55 -0
- package/components/PricingPlan/PricingPlan.vue2.js +4 -0
- package/components/PricingPlan/PricingPlanItem.vue.d.ts +17 -0
- package/components/PricingPlan/PricingPlanItem.vue.js +94 -0
- package/components/PricingPlan/PricingPlanItem.vue2.js +4 -0
- package/components/PricingPlan/index.d.ts +3 -0
- package/components/PricingPlan/types.d.ts +25 -0
- package/components/SidePanel.vue.d.ts +64 -0
- package/components/SidePanel.vue.js +7 -0
- package/components/SidePanel.vue2.js +131 -0
- package/components/SidebarMenu/SidebarMenu.vue.d.ts +11 -0
- package/components/SidebarMenu/SidebarMenu.vue.js +78 -0
- package/components/SidebarMenu/SidebarMenu.vue2.js +4 -0
- package/components/SidebarMenu/SidebarMenuItem.vue.d.ts +9 -0
- package/components/SidebarMenu/SidebarMenuItem.vue.js +269 -0
- package/components/SidebarMenu/SidebarMenuItem.vue3.js +5 -0
- package/components/SidebarMenu/index.d.ts +3 -0
- package/components/SidebarMenu/types.d.ts +35 -0
- package/components/Slider.vue.d.ts +31 -0
- package/components/Slider.vue.js +157 -0
- package/components/Slider.vue2.js +4 -0
- package/components/Switch.vue.d.ts +16 -0
- package/components/Switch.vue.js +40 -0
- package/components/Switch.vue2.js +4 -0
- package/components/Tabes/Tabes.vue.d.ts +21 -0
- package/components/Tabes/Tabes.vue.js +75 -0
- package/components/Tabes/Tabes.vue2.js +4 -0
- package/components/Tabes/index.d.ts +2 -0
- package/components/Tabes/types.d.ts +8 -0
- package/components/Textarea.vue.d.ts +22 -0
- package/components/Textarea.vue.js +34 -0
- package/components/Textarea.vue2.js +4 -0
- package/components/ThemeToggle.vue.d.ts +2 -0
- package/components/ThemeToggle.vue.js +18 -0
- package/components/ThemeToggle.vue2.js +4 -0
- package/components/Timeline.vue.d.ts +39 -0
- package/components/Timeline.vue.js +174 -0
- package/components/Timeline.vue2.js +4 -0
- package/components/ToastNotification.vue.d.ts +7 -0
- package/components/ToastNotification.vue.js +7 -0
- package/components/ToastNotification.vue2.js +151 -0
- package/components/Tooltip.vue.d.ts +31 -0
- package/components/Tooltip.vue.js +45 -0
- package/components/Tooltip.vue2.js +4 -0
- package/components/Workbook/Sheet.vue.d.ts +38 -0
- package/components/Workbook/Sheet.vue.js +141 -0
- package/components/Workbook/Sheet.vue2.js +4 -0
- package/components/Workbook/Workbook.vue.d.ts +54 -0
- package/components/Workbook/Workbook.vue.js +7 -0
- package/components/Workbook/Workbook.vue2.js +146 -0
- package/components/Workbook/WorkbookAddButton.vue.d.ts +6 -0
- package/components/Workbook/WorkbookAddButton.vue.js +20 -0
- package/components/Workbook/WorkbookAddButton.vue2.js +4 -0
- package/components/Workbook/index.d.ts +3 -0
- package/components/Workbook/types.d.ts +34 -0
- package/composables/useKeyStroke.d.ts +21 -0
- package/composables/useKeyStroke.js +93 -0
- package/composables/useNotifications.d.ts +113 -0
- package/composables/useNotifications.js +99 -0
- package/composables/useTheme.d.ts +6 -0
- package/composables/useTheme.js +32 -0
- package/core/config.d.ts +29 -0
- package/core/config.js +12 -0
- package/core/index.d.ts +31 -0
- package/core/index.js +15 -0
- package/directives/vRipple.d.ts +4 -0
- package/directives/vRipple.js +17 -0
- package/index.d.ts +49 -0
- package/index.js +156 -0
- package/package.json +2 -2
- package/style.css +590 -0
- package/types/alert.type.d.ts +10 -0
- package/{src/types/avatar.type.ts → types/avatar.type.d.ts} +8 -9
- package/types/button.d.ts +15 -0
- package/types/buttongroup.type.d.ts +1 -0
- package/{src/types/config.type.ts → types/config.type.d.ts} +13 -16
- package/types/form.type.d.ts +45 -0
- package/types/index.d.ts +10 -0
- package/types/navbar.type.d.ts +27 -0
- package/types/sidepanel.type.d.ts +13 -0
- package/types/styles.d.ts +28 -0
- package/types/timeline.type.d.ts +9 -0
- package/{src/utils/functions.ts → utils/functions.d.ts} +1 -9
- package/utils/functions.js +11 -0
- package/utils/index.d.ts +2 -0
- package/utils/object.d.ts +6 -0
- package/utils/object.js +14 -0
- package/.vscode/extensions.json +0 -3
- package/LICENSE +0 -21
- package/index.html +0 -16
- package/scripts/bundle-css.js +0 -45
- package/src/App.vue +0 -7
- package/src/components/Accordion/Accordion.vue +0 -139
- package/src/components/Accordion/AccordionContent.vue +0 -63
- package/src/components/Accordion/AccordionItem.vue +0 -163
- package/src/components/Accordion/AccordionTrigger.vue +0 -125
- package/src/components/Accordion/index.ts +0 -5
- package/src/components/Accordion/types.ts +0 -41
- package/src/components/Alert.vue +0 -112
- package/src/components/Avatar.vue +0 -110
- package/src/components/AvatarUploader/AvatarUploader.vue +0 -129
- package/src/components/Badge.vue +0 -45
- package/src/components/Button.vue +0 -122
- package/src/components/ButtonGroup.vue +0 -173
- package/src/components/Carousel/Carousel.vue +0 -84
- package/src/components/Carousel/index.ts +0 -2
- package/src/components/Carousel/types.ts +0 -25
- package/src/components/CheckBox.vue +0 -132
- package/src/components/Chip/Chip.vue +0 -158
- package/src/components/Chip/index.ts +0 -2
- package/src/components/Chip/types.ts +0 -23
- package/src/components/ChoiceBox/ChoiceBox.vue +0 -181
- package/src/components/ChoiceBox/index.ts +0 -2
- package/src/components/ColorPicker/ColorIro.vue +0 -207
- package/src/components/ColorPicker/ColorPicker.vue +0 -61
- package/src/components/ConfirmationModal.vue +0 -46
- package/src/components/DataTable/DataTable.vue +0 -478
- package/src/components/DataTable/DataTableHeader.vue +0 -78
- package/src/components/DataTable/DataTableRow.vue +0 -171
- package/src/components/DataTable/DataTableToolbar.vue +0 -45
- package/src/components/DataTable/index.ts +0 -5
- package/src/components/DataTable/types.ts +0 -85
- package/src/components/DatePicker.vue +0 -102
- package/src/components/Dropdown/Dropdown.vue +0 -348
- package/src/components/Dropdown/DropdownBooleanItem.vue +0 -40
- package/src/components/Dropdown/DropdownGroupedLayout.vue +0 -115
- package/src/components/Dropdown/DropdownItem.vue +0 -56
- package/src/components/Dropdown/DropdownMenu.vue +0 -374
- package/src/components/Dropdown/DropdownTrigger.vue +0 -27
- package/src/components/Dropdown/composables/useDropdownIds.ts +0 -27
- package/src/components/Dropdown/composables/useDropdownNavigation.ts +0 -109
- package/src/components/Dropdown/composables/useDropdownSelection.ts +0 -106
- package/src/components/Dropdown/index.ts +0 -6
- package/src/components/FilePicker/FilePicker.vue +0 -459
- package/src/components/FilePicker/index.ts +0 -2
- package/src/components/FileTree/FileTree.vue +0 -334
- package/src/components/FileTree/FileTreeNode.vue +0 -225
- package/src/components/FileTree/index.ts +0 -2
- package/src/components/FileTree/types.ts +0 -31
- package/src/components/FileTree/useTreeSelection.ts +0 -66
- package/src/components/Form/CustomFields.vue +0 -294
- package/src/components/Form/Form.vue +0 -406
- package/src/components/Form/FormField.vue +0 -404
- package/src/components/Form/FormFields.vue +0 -161
- package/src/components/Form/composables/useFileUpload.ts +0 -112
- package/src/components/Form/composables/useForm.ts +0 -356
- package/src/components/Form/index.ts +0 -16
- package/src/components/Form/types.ts +0 -203
- package/src/components/Form/utils/form.utils.ts +0 -209
- package/src/components/Heatmap/Heatmap.vue +0 -629
- package/src/components/Heatmap/index.ts +0 -2
- package/src/components/Heatmap/types.ts +0 -84
- package/src/components/Icon.vue +0 -47
- package/src/components/IconPicker.vue +0 -138
- package/src/components/Input.vue +0 -366
- package/src/components/Label.vue +0 -25
- package/src/components/Logo.vue +0 -5
- package/src/components/Masonry/Masonry.vue +0 -148
- package/src/components/Masonry/index.ts +0 -2
- package/src/components/Masonry/types.ts +0 -44
- package/src/components/Modal.vue +0 -135
- package/src/components/MultiSelect/MultiSelect.vue +0 -176
- package/src/components/MultiSelect/index.ts +0 -1
- package/src/components/Navbar/Navbar.vue +0 -277
- package/src/components/Navbar/NavbarGroup.vue +0 -27
- package/src/components/Navbar/NavbarItem.vue +0 -124
- package/src/components/Navbar/index.ts +0 -3
- package/src/components/OTPInput/OTPInput.vue +0 -220
- package/src/components/OTPInput/index.ts +0 -1
- package/src/components/Pagination/Pagination.vue +0 -238
- package/src/components/Pagination/index.ts +0 -1
- package/src/components/PricingPlan/PricingPlan.vue +0 -102
- package/src/components/PricingPlan/PricingPlanItem.vue +0 -148
- package/src/components/PricingPlan/index.ts +0 -3
- package/src/components/PricingPlan/types.ts +0 -29
- package/src/components/SidePanel.vue +0 -184
- package/src/components/SidebarMenu/SidebarMenu.vue +0 -146
- package/src/components/SidebarMenu/SidebarMenuItem.vue +0 -333
- package/src/components/SidebarMenu/index.ts +0 -3
- package/src/components/SidebarMenu/types.ts +0 -54
- package/src/components/Slider.vue +0 -181
- package/src/components/Switch.vue +0 -51
- package/src/components/Tabes/Tabes.vue +0 -112
- package/src/components/Tabes/index.ts +0 -2
- package/src/components/Tabes/types.ts +0 -17
- package/src/components/Textarea.vue +0 -48
- package/src/components/ThemeToggle.vue +0 -14
- package/src/components/Timeline.vue +0 -250
- package/src/components/ToastNotification.vue +0 -257
- package/src/components/Tooltip.vue +0 -25
- package/src/components/Workbook/Sheet.vue +0 -185
- package/src/components/Workbook/Workbook.vue +0 -231
- package/src/components/Workbook/WorkbookAddButton.vue +0 -17
- package/src/components/Workbook/index.ts +0 -3
- package/src/components/Workbook/types.ts +0 -43
- package/src/composables/useKeyStroke.ts +0 -291
- package/src/composables/useNotifications.ts +0 -206
- package/src/composables/useTheme.ts +0 -55
- package/src/core/config.ts +0 -37
- package/src/core/index.ts +0 -49
- package/src/css/base.css +0 -148
- package/src/css/input.css +0 -61
- package/src/css/main.css +0 -6
- package/src/css/theme.css +0 -344
- package/src/directives/vRipple.ts +0 -38
- package/src/index.ts +0 -53
- package/src/main.ts +0 -5
- package/src/playground/Playground.vue +0 -429
- package/src/playground/composables/useGetUsers.ts +0 -538
- package/src/playground/demos/AccordionDemo.vue +0 -361
- package/src/playground/demos/AlertDemo.vue +0 -36
- package/src/playground/demos/AvatarDemo.vue +0 -41
- package/src/playground/demos/AvatarUploaderDemo.vue +0 -133
- package/src/playground/demos/BadgeDemo.vue +0 -31
- package/src/playground/demos/BadgesDemo.vue +0 -26
- package/src/playground/demos/ButtonDemo.vue +0 -99
- package/src/playground/demos/ButtonGroupDemo.vue +0 -39
- package/src/playground/demos/ButtonsDemo.vue +0 -111
- package/src/playground/demos/CarouselDemo.vue +0 -135
- package/src/playground/demos/CheckBoxDemo.vue +0 -43
- package/src/playground/demos/ChipDemo.vue +0 -190
- package/src/playground/demos/ChoiceBoxDemo.vue +0 -160
- package/src/playground/demos/ColorPickerDemo.vue +0 -30
- package/src/playground/demos/ColorsDemo.vue +0 -295
- package/src/playground/demos/DataTableDemo.vue +0 -215
- package/src/playground/demos/DatePickerDemo.vue +0 -43
- package/src/playground/demos/DisplayDemo.vue +0 -101
- package/src/playground/demos/DropdownDemo.vue +0 -651
- package/src/playground/demos/FilePickerDemo.vue +0 -175
- package/src/playground/demos/FileTreeDemo.vue +0 -150
- package/src/playground/demos/FormDemo.vue +0 -1144
- package/src/playground/demos/HeatmapDemo.vue +0 -467
- package/src/playground/demos/IconPickerDemo.vue +0 -27
- package/src/playground/demos/InputDemo.vue +0 -80
- package/src/playground/demos/InputsDemo.vue +0 -127
- package/src/playground/demos/LabelDemo.vue +0 -32
- package/src/playground/demos/MasonryDemo.vue +0 -241
- package/src/playground/demos/ModalDemo.vue +0 -67
- package/src/playground/demos/MultiSelectDemo.vue +0 -300
- package/src/playground/demos/NavbarDemo.vue +0 -59
- package/src/playground/demos/NavigationDemo.vue +0 -116
- package/src/playground/demos/OTPInputDemo.vue +0 -170
- package/src/playground/demos/OverlaysDemo.vue +0 -104
- package/src/playground/demos/PaginationDemo.vue +0 -130
- package/src/playground/demos/PricingPlanDemo.vue +0 -110
- package/src/playground/demos/SidePanelDemo.vue +0 -45
- package/src/playground/demos/SidebarMenuDemo.vue +0 -170
- package/src/playground/demos/SliderDemo.vue +0 -48
- package/src/playground/demos/SwitchDemo.vue +0 -40
- package/src/playground/demos/TabesDemo.vue +0 -178
- package/src/playground/demos/TextareaDemo.vue +0 -31
- package/src/playground/demos/ThemeToggleDemo.vue +0 -20
- package/src/playground/demos/TimelineDemo.vue +0 -43
- package/src/playground/demos/ToastDemo.vue +0 -111
- package/src/playground/demos/TooltipDemo.vue +0 -30
- package/src/playground/demos/WorkbookDemo.vue +0 -227
- package/src/types/alert.type.ts +0 -11
- package/src/types/button.ts +0 -36
- package/src/types/buttongroup.type.ts +0 -1
- package/src/types/form.type.ts +0 -75
- package/src/types/index.ts +0 -11
- package/src/types/navbar.type.ts +0 -28
- package/src/types/sidepanel.type.ts +0 -14
- package/src/types/styles.ts +0 -42
- package/src/types/timeline.type.ts +0 -11
- package/src/utils/index.ts +0 -2
- package/src/utils/object.ts +0 -40
- package/tsconfig.app.json +0 -27
- package/tsconfig.json +0 -48
- package/tsconfig.node.json +0 -18
- package/tsconfig.node.tsbuildinfo +0 -1
- package/tsconfig.tsbuildinfo +0 -1
- package/vercel.json +0 -8
- package/vite.config.d.ts +0 -2
- package/vite.config.js +0 -63
- package/vite.config.ts +0 -64
- package/vite.config.vercel.ts +0 -17
|
@@ -1,356 +0,0 @@
|
|
|
1
|
-
import { ref, computed, watch, type Ref, type ComputedRef } from 'vue'
|
|
2
|
-
import type {
|
|
3
|
-
IForm,
|
|
4
|
-
IFormProps,
|
|
5
|
-
IFormContext,
|
|
6
|
-
IFormFieldChangePayload,
|
|
7
|
-
IFormSubmitPayload,
|
|
8
|
-
} from '../types'
|
|
9
|
-
import {
|
|
10
|
-
getNestedValue,
|
|
11
|
-
setNestedValue,
|
|
12
|
-
initializeFormValues,
|
|
13
|
-
evaluateConditional,
|
|
14
|
-
filterNullCustomFields,
|
|
15
|
-
collectFileFields,
|
|
16
|
-
deepClone,
|
|
17
|
-
} from '../utils/form.utils'
|
|
18
|
-
import { useFileUpload } from './useFileUpload'
|
|
19
|
-
|
|
20
|
-
export interface UseFormOptions {
|
|
21
|
-
schema: IForm[] | IForm[][]
|
|
22
|
-
values?: Record<string, any>
|
|
23
|
-
isUpdate?: boolean
|
|
24
|
-
onSubmit?: (payload: IFormSubmitPayload) => void | Promise<void>
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface UseFormReturn {
|
|
28
|
-
/** Current form values */
|
|
29
|
-
formValues: Ref<Record<string, any>>
|
|
30
|
-
/** Validation errors by field name */
|
|
31
|
-
errors: Ref<Record<string, string>>
|
|
32
|
-
/** Whether form is currently submitting */
|
|
33
|
-
isSubmitting: Ref<boolean>
|
|
34
|
-
/** Whether form has been modified */
|
|
35
|
-
isDirty: Ref<boolean>
|
|
36
|
-
/** Handle field value change */
|
|
37
|
-
handleFieldChange: (name: string, value: any, data?: any) => void
|
|
38
|
-
/** Validate a single field */
|
|
39
|
-
validateField: (field: IForm) => string
|
|
40
|
-
/** Validate all fields */
|
|
41
|
-
validateAll: () => boolean
|
|
42
|
-
/** Check if field is visible */
|
|
43
|
-
isFieldVisible: (field: IForm) => boolean
|
|
44
|
-
/** Check if field is disabled */
|
|
45
|
-
isFieldDisabled: (field: IForm) => boolean
|
|
46
|
-
/** Check if field is readonly */
|
|
47
|
-
isFieldReadonly: (field: IForm) => boolean
|
|
48
|
-
/** Get field value (supports nested paths) */
|
|
49
|
-
getFieldValue: (name: string) => any
|
|
50
|
-
/** Get field error */
|
|
51
|
-
getFieldError: (name: string) => string
|
|
52
|
-
/** Set field error manually */
|
|
53
|
-
setFieldError: (name: string, error: string) => void
|
|
54
|
-
/** Clear all errors */
|
|
55
|
-
clearErrors: () => void
|
|
56
|
-
/** Reset form to initial values */
|
|
57
|
-
resetForm: () => void
|
|
58
|
-
/** Handle form submission */
|
|
59
|
-
handleSubmit: () => Promise<void>
|
|
60
|
-
/** Flattened schema for iteration */
|
|
61
|
-
flatSchema: ComputedRef<IForm[]>
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Main form composable for managing form state, validation, and submission
|
|
66
|
-
*/
|
|
67
|
-
export function useForm(options: UseFormOptions): UseFormReturn {
|
|
68
|
-
const { schema, values: initialValues, isUpdate = false, onSubmit } = options
|
|
69
|
-
const { handleUploadFile, loading: uploadLoading } = useFileUpload()
|
|
70
|
-
|
|
71
|
-
// Initialize form values
|
|
72
|
-
const formValues = ref<Record<string, any>>(initializeFormValues(schema, initialValues))
|
|
73
|
-
const errors = ref<Record<string, string>>({})
|
|
74
|
-
const isSubmitting = ref(false)
|
|
75
|
-
const isDirty = ref(false)
|
|
76
|
-
const initialSnapshot = ref<Record<string, any>>(deepClone(formValues.value))
|
|
77
|
-
|
|
78
|
-
// Flatten schema for easy iteration
|
|
79
|
-
const flatSchema = computed<IForm[]>(() => {
|
|
80
|
-
if (!schema) return []
|
|
81
|
-
return Array.isArray(schema[0]) ? (schema as IForm[][]).flat() : (schema as IForm[])
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
// Watch for external value changes
|
|
85
|
-
watch(
|
|
86
|
-
() => initialValues,
|
|
87
|
-
(newValues) => {
|
|
88
|
-
if (newValues) {
|
|
89
|
-
formValues.value = initializeFormValues(schema, newValues)
|
|
90
|
-
initialSnapshot.value = deepClone(formValues.value)
|
|
91
|
-
isDirty.value = false
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
{ deep: true }
|
|
95
|
-
)
|
|
96
|
-
|
|
97
|
-
// Get form context for conditional evaluations
|
|
98
|
-
const getContext = (): IFormContext => ({
|
|
99
|
-
values: formValues.value,
|
|
100
|
-
isUpdate,
|
|
101
|
-
})
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Get a field value by name (supports dot notation)
|
|
105
|
-
*/
|
|
106
|
-
const getFieldValue = (name: string): any => {
|
|
107
|
-
return getNestedValue(formValues.value, name)
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Get field error
|
|
112
|
-
*/
|
|
113
|
-
const getFieldError = (name: string): string => {
|
|
114
|
-
return errors.value[name] || ''
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Set field error manually
|
|
119
|
-
*/
|
|
120
|
-
const setFieldError = (name: string, error: string): void => {
|
|
121
|
-
if (error) {
|
|
122
|
-
errors.value[name] = error
|
|
123
|
-
} else {
|
|
124
|
-
delete errors.value[name]
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Clear all errors
|
|
130
|
-
*/
|
|
131
|
-
const clearErrors = (): void => {
|
|
132
|
-
errors.value = {}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Check if field should be visible
|
|
137
|
-
*/
|
|
138
|
-
const isFieldVisible = (field: IForm): boolean => {
|
|
139
|
-
if (!field.when) return true
|
|
140
|
-
return evaluateConditional(field.when, getContext())
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Check if field is disabled
|
|
145
|
-
*/
|
|
146
|
-
const isFieldDisabled = (field: IForm): boolean => {
|
|
147
|
-
return evaluateConditional(field.disabled, getContext())
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Check if field is readonly
|
|
152
|
-
*/
|
|
153
|
-
const isFieldReadonly = (field: IForm): boolean => {
|
|
154
|
-
return evaluateConditional(field.readonly, getContext())
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Validate a single field
|
|
159
|
-
*/
|
|
160
|
-
const validateField = (field: IForm): string => {
|
|
161
|
-
const value = getFieldValue(field.name)
|
|
162
|
-
let error = ''
|
|
163
|
-
|
|
164
|
-
// Required validation
|
|
165
|
-
if (field.required) {
|
|
166
|
-
const isEmpty =
|
|
167
|
-
value === undefined ||
|
|
168
|
-
value === null ||
|
|
169
|
-
value === '' ||
|
|
170
|
-
(Array.isArray(value) && value.length === 0)
|
|
171
|
-
|
|
172
|
-
if (isEmpty) {
|
|
173
|
-
error = `${field.label || field.name} is required`
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
// Custom validation (only if required passed or not required)
|
|
178
|
-
if (!error && field.validation) {
|
|
179
|
-
error = field.validation({
|
|
180
|
-
value,
|
|
181
|
-
values: formValues.value,
|
|
182
|
-
isUpdate,
|
|
183
|
-
})
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
// Update error state
|
|
187
|
-
if (error) {
|
|
188
|
-
errors.value[field.name] = error
|
|
189
|
-
} else {
|
|
190
|
-
delete errors.value[field.name]
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
return error
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Validate all visible fields
|
|
198
|
-
*/
|
|
199
|
-
const validateAll = (): boolean => {
|
|
200
|
-
clearErrors()
|
|
201
|
-
let isValid = true
|
|
202
|
-
|
|
203
|
-
for (const field of flatSchema.value) {
|
|
204
|
-
// Skip invisible fields
|
|
205
|
-
if (!isFieldVisible(field)) continue
|
|
206
|
-
// Skip disabled fields
|
|
207
|
-
if (isFieldDisabled(field)) continue
|
|
208
|
-
|
|
209
|
-
const error = validateField(field)
|
|
210
|
-
if (error) {
|
|
211
|
-
isValid = false
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
return isValid
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* Handle field value change with updateValues cascade
|
|
220
|
-
*/
|
|
221
|
-
const handleFieldChange = (name: string, value: any, data?: any): void => {
|
|
222
|
-
// Set the new value
|
|
223
|
-
formValues.value = setNestedValue(formValues.value, name, value)
|
|
224
|
-
isDirty.value = true
|
|
225
|
-
|
|
226
|
-
// Clear error for this field
|
|
227
|
-
delete errors.value[name]
|
|
228
|
-
|
|
229
|
-
// Find the field in schema
|
|
230
|
-
const field = flatSchema.value.find((f) => f.name === name)
|
|
231
|
-
|
|
232
|
-
// Execute updateValues if defined
|
|
233
|
-
if (field?.updateValues) {
|
|
234
|
-
const updatedValues = field.updateValues({
|
|
235
|
-
values: formValues.value,
|
|
236
|
-
data,
|
|
237
|
-
isUpdate,
|
|
238
|
-
updateError: setFieldError,
|
|
239
|
-
})
|
|
240
|
-
|
|
241
|
-
if (updatedValues && typeof updatedValues === 'object') {
|
|
242
|
-
formValues.value = { ...formValues.value, ...updatedValues }
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* Process file uploads before submission
|
|
249
|
-
*/
|
|
250
|
-
const processFileUploads = async (): Promise<Record<string, any>> => {
|
|
251
|
-
const values = deepClone(formValues.value)
|
|
252
|
-
const fileFields = collectFileFields(schema, values)
|
|
253
|
-
|
|
254
|
-
for (const fileField of fileFields) {
|
|
255
|
-
const { name, value, type } = fileField
|
|
256
|
-
|
|
257
|
-
// Check if value is a File or FilePickerValue that needs uploading
|
|
258
|
-
const needsUpload =
|
|
259
|
-
value instanceof File || (value && typeof value === 'object' && value.file instanceof File)
|
|
260
|
-
|
|
261
|
-
if (needsUpload) {
|
|
262
|
-
const url = await handleUploadFile(value)
|
|
263
|
-
if (url) {
|
|
264
|
-
// Update the value in the cloned values
|
|
265
|
-
Object.assign(values, setNestedValue(values, name, url))
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
return values
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* Clean up customFields values (remove null entries)
|
|
275
|
-
*/
|
|
276
|
-
const cleanCustomFieldsValues = (values: Record<string, any>): Record<string, any> => {
|
|
277
|
-
const cleaned = { ...values }
|
|
278
|
-
|
|
279
|
-
for (const field of flatSchema.value) {
|
|
280
|
-
if (field.type === 'customFields' && field.props?.schema) {
|
|
281
|
-
const fieldValue = getNestedValue(cleaned, field.name)
|
|
282
|
-
if (Array.isArray(fieldValue)) {
|
|
283
|
-
const filteredValue = filterNullCustomFields(fieldValue, field.props.schema as IForm[])
|
|
284
|
-
Object.assign(cleaned, setNestedValue(cleaned, field.name, filteredValue))
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
return cleaned
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
/**
|
|
293
|
-
* Handle form submission
|
|
294
|
-
*/
|
|
295
|
-
const handleSubmit = async (): Promise<void> => {
|
|
296
|
-
// Validate all fields
|
|
297
|
-
const isValid = validateAll()
|
|
298
|
-
if (!isValid) return
|
|
299
|
-
|
|
300
|
-
isSubmitting.value = true
|
|
301
|
-
|
|
302
|
-
try {
|
|
303
|
-
// Process file uploads
|
|
304
|
-
let processedValues = await processFileUploads()
|
|
305
|
-
|
|
306
|
-
// Clean up customFields
|
|
307
|
-
processedValues = cleanCustomFieldsValues(processedValues)
|
|
308
|
-
|
|
309
|
-
// Call onSubmit callback
|
|
310
|
-
if (onSubmit) {
|
|
311
|
-
await onSubmit({
|
|
312
|
-
values: processedValues,
|
|
313
|
-
isUpdate,
|
|
314
|
-
})
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
// Reset dirty state after successful submit
|
|
318
|
-
isDirty.value = false
|
|
319
|
-
initialSnapshot.value = deepClone(processedValues)
|
|
320
|
-
} catch (error) {
|
|
321
|
-
console.error('[useForm] Submit error:', error)
|
|
322
|
-
throw error
|
|
323
|
-
} finally {
|
|
324
|
-
isSubmitting.value = false
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
/**
|
|
329
|
-
* Reset form to initial values
|
|
330
|
-
*/
|
|
331
|
-
const resetForm = (): void => {
|
|
332
|
-
formValues.value = deepClone(initialSnapshot.value)
|
|
333
|
-
clearErrors()
|
|
334
|
-
isDirty.value = false
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
return {
|
|
338
|
-
formValues,
|
|
339
|
-
errors,
|
|
340
|
-
isSubmitting,
|
|
341
|
-
isDirty,
|
|
342
|
-
handleFieldChange,
|
|
343
|
-
validateField,
|
|
344
|
-
validateAll,
|
|
345
|
-
isFieldVisible,
|
|
346
|
-
isFieldDisabled,
|
|
347
|
-
isFieldReadonly,
|
|
348
|
-
getFieldValue,
|
|
349
|
-
getFieldError,
|
|
350
|
-
setFieldError,
|
|
351
|
-
clearErrors,
|
|
352
|
-
resetForm,
|
|
353
|
-
handleSubmit,
|
|
354
|
-
flatSchema,
|
|
355
|
-
}
|
|
356
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// Main Form component
|
|
2
|
-
export { default as Form } from './Form.vue'
|
|
3
|
-
|
|
4
|
-
// Field components
|
|
5
|
-
export { default as FormField } from './FormField.vue'
|
|
6
|
-
export { default as FormFields } from './FormFields.vue'
|
|
7
|
-
export { default as CustomFields } from './CustomFields.vue'
|
|
8
|
-
|
|
9
|
-
// Types
|
|
10
|
-
export * from './types'
|
|
11
|
-
|
|
12
|
-
// Composables
|
|
13
|
-
export { useForm } from './composables/useForm'
|
|
14
|
-
export { useFileUpload } from './composables/useFileUpload'
|
|
15
|
-
export type { UseFormOptions, UseFormReturn } from './composables/useForm'
|
|
16
|
-
export type { FileUploadResult } from './composables/useFileUpload'
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import type { Component } from 'vue'
|
|
2
|
-
import type { IDropdownOptions } from '@/types'
|
|
3
|
-
import type { InputVariant, InputSize, InputRounded } from '@/types'
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Form field types - maps to corresponding UI components
|
|
7
|
-
*/
|
|
8
|
-
export type IFormFieldType =
|
|
9
|
-
| 'text'
|
|
10
|
-
| 'email'
|
|
11
|
-
| 'password'
|
|
12
|
-
| 'number'
|
|
13
|
-
| 'file'
|
|
14
|
-
| 'fileUploader'
|
|
15
|
-
| 'tel'
|
|
16
|
-
| 'url'
|
|
17
|
-
| 'search'
|
|
18
|
-
| 'date'
|
|
19
|
-
| 'textarea'
|
|
20
|
-
| 'time'
|
|
21
|
-
| 'iconPicker'
|
|
22
|
-
| 'color'
|
|
23
|
-
| 'switch'
|
|
24
|
-
| 'check'
|
|
25
|
-
| 'customFields'
|
|
26
|
-
| 'select'
|
|
27
|
-
| 'multiSelect'
|
|
28
|
-
| 'avatarUpload'
|
|
29
|
-
| Component
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Context passed to conditional functions
|
|
33
|
-
*/
|
|
34
|
-
export interface IFormContext {
|
|
35
|
-
values: Record<string, any>
|
|
36
|
-
isUpdate?: boolean
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Disabled/Readonly can be boolean or function
|
|
41
|
-
*/
|
|
42
|
-
export type IFormDisabled = boolean | ((context: IFormContext) => boolean)
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Validation function signature
|
|
46
|
-
*/
|
|
47
|
-
export interface IFormValidationContext {
|
|
48
|
-
value: any
|
|
49
|
-
values: Record<string, any>
|
|
50
|
-
isUpdate?: boolean
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export type IFormValidation = (context: IFormValidationContext) => string
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* UpdateValues function signature - allows computed/derived fields
|
|
57
|
-
*/
|
|
58
|
-
export interface IFormUpdateContext {
|
|
59
|
-
values: Record<string, any>
|
|
60
|
-
data?: any
|
|
61
|
-
isUpdate?: boolean
|
|
62
|
-
updateError?: (name: string, error: string) => void
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export type IFormUpdateValues = (context: IFormUpdateContext) => Record<string, any>
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* When condition - controls field visibility
|
|
69
|
-
*/
|
|
70
|
-
export type IFormWhen = (context: IFormContext) => boolean
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* CustomFields schema props
|
|
74
|
-
*/
|
|
75
|
-
export interface IFormCustomFieldsProps {
|
|
76
|
-
schema: IForm[]
|
|
77
|
-
headers?: string[]
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Main form field interface
|
|
82
|
-
*/
|
|
83
|
-
export interface IForm {
|
|
84
|
-
/** Field name - supports dot notation for nested paths (e.g., 'pricing.baseAmount') */
|
|
85
|
-
name: string
|
|
86
|
-
/** Field label - can be string or Vue component */
|
|
87
|
-
label?: string | Component
|
|
88
|
-
/** Placeholder text */
|
|
89
|
-
placeholder?: string
|
|
90
|
-
/** Field type - determines which component renders */
|
|
91
|
-
type?: IFormFieldType
|
|
92
|
-
/** Initial/default value - can be static or function */
|
|
93
|
-
value?: any | (() => any)
|
|
94
|
-
/** Additional props passed to field component */
|
|
95
|
-
props?: Record<string, any>
|
|
96
|
-
/** CSS class for the field item wrapper */
|
|
97
|
-
itemClass?: string
|
|
98
|
-
/** CSS class for the input element */
|
|
99
|
-
className?: string
|
|
100
|
-
/** Left icon (for inputs) */
|
|
101
|
-
icon?: string
|
|
102
|
-
/** Right icon (for inputs) */
|
|
103
|
-
iconRight?: string
|
|
104
|
-
/** Mark field as required */
|
|
105
|
-
required?: boolean
|
|
106
|
-
/** Disabled state - boolean or conditional function */
|
|
107
|
-
disabled?: IFormDisabled
|
|
108
|
-
/** Readonly state - boolean or conditional function */
|
|
109
|
-
readonly?: IFormDisabled
|
|
110
|
-
/** Left addon text */
|
|
111
|
-
addonLeft?: string
|
|
112
|
-
/** Right addon text */
|
|
113
|
-
addonRight?: string
|
|
114
|
-
/** Options for select/multiSelect/dropdown fields */
|
|
115
|
-
options?: IDropdownOptions
|
|
116
|
-
/** Validation function - returns error message or empty string */
|
|
117
|
-
validation?: IFormValidation
|
|
118
|
-
/** UpdateValues - called when field changes, returns new values object */
|
|
119
|
-
updateValues?: IFormUpdateValues
|
|
120
|
-
/** When condition - shows/hides field based on form state */
|
|
121
|
-
when?: IFormWhen
|
|
122
|
-
/** Mark as sensitive (e.g., for masking) */
|
|
123
|
-
isSensitiveField?: boolean
|
|
124
|
-
/** Min value for number inputs */
|
|
125
|
-
min?: number
|
|
126
|
-
/** Max value for number inputs */
|
|
127
|
-
max?: number
|
|
128
|
-
/** i18n keys */
|
|
129
|
-
labelI8n?: string
|
|
130
|
-
placeholderI8n?: string
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Timeline step for multi-step forms
|
|
135
|
-
*/
|
|
136
|
-
export interface IFormStep {
|
|
137
|
-
id: number | string
|
|
138
|
-
title: string
|
|
139
|
-
icon?: string
|
|
140
|
-
description?: string
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Form component props
|
|
145
|
-
*/
|
|
146
|
-
export interface IFormProps {
|
|
147
|
-
/** Schema - single array or grouped arrays */
|
|
148
|
-
schema: IForm[] | IForm[][]
|
|
149
|
-
/** Initial/bound values */
|
|
150
|
-
values?: Record<string, any>
|
|
151
|
-
/** Input variant applied to all fields */
|
|
152
|
-
variant?: InputVariant
|
|
153
|
-
/** Input size applied to all fields */
|
|
154
|
-
size?: InputSize
|
|
155
|
-
/** Input rounded applied to all fields */
|
|
156
|
-
rounded?: InputRounded
|
|
157
|
-
/** Loading state during submit */
|
|
158
|
-
loading?: boolean
|
|
159
|
-
/** Show/hide default footer with submit button */
|
|
160
|
-
footer?: boolean
|
|
161
|
-
/** Grid columns (number or tailwind class) */
|
|
162
|
-
columns?: number | string
|
|
163
|
-
/** Headings for grouped schemas */
|
|
164
|
-
groupsHeadings?: string[]
|
|
165
|
-
/** Descriptions for grouped schemas */
|
|
166
|
-
groupHeadingsDescription?: string[]
|
|
167
|
-
/** Timeline steps for multi-step form mode */
|
|
168
|
-
tabs?: IFormStep[]
|
|
169
|
-
/** Submit button text */
|
|
170
|
-
submitText?: string
|
|
171
|
-
/** Cancel button text */
|
|
172
|
-
cancelText?: string
|
|
173
|
-
/** Show cancel button */
|
|
174
|
-
showCancel?: boolean
|
|
175
|
-
/** Whether this is an update operation */
|
|
176
|
-
isUpdate?: boolean
|
|
177
|
-
/** Custom class for form element */
|
|
178
|
-
class?: string
|
|
179
|
-
/** Custom class for the grid layout (overrides columns) */
|
|
180
|
-
gridClass?: string
|
|
181
|
-
/** Custom class for group containers */
|
|
182
|
-
groupClass?: string
|
|
183
|
-
/** Custom class for group/step headers */
|
|
184
|
-
headerClass?: string
|
|
185
|
-
/** Custom class for the footer area */
|
|
186
|
-
footerClass?: string
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Form submit payload
|
|
191
|
-
*/
|
|
192
|
-
export interface IFormSubmitPayload {
|
|
193
|
-
values: Record<string, any>
|
|
194
|
-
isUpdate?: boolean
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Field change payload
|
|
199
|
-
*/
|
|
200
|
-
export interface IFormFieldChangePayload {
|
|
201
|
-
value: any
|
|
202
|
-
data?: any
|
|
203
|
-
}
|