@treeui/vue 0.7.0 → 0.10.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/README.md +3 -8
- package/dist/components/TAccordion.cjs +2 -0
- package/dist/components/TAccordion.cjs.map +1 -0
- package/dist/components/TAccordion.js +7 -0
- package/dist/components/TAccordion.js.map +1 -0
- package/dist/components/{TreeAccordion.vue.d.ts → TAccordion.vue.d.ts} +1 -1
- package/dist/components/TAccordion.vue.d.ts.map +1 -0
- package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.js +97 -0
- package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TAccordionItem.cjs +2 -0
- package/dist/components/TAccordionItem.cjs.map +1 -0
- package/dist/components/TAccordionItem.js +7 -0
- package/dist/components/TAccordionItem.js.map +1 -0
- package/dist/components/{TreeAccordionItem.vue.d.ts → TAccordionItem.vue.d.ts} +1 -1
- package/dist/components/TAccordionItem.vue.d.ts.map +1 -0
- package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.js +83 -0
- package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TAlert.cjs +2 -0
- package/dist/components/TAlert.cjs.map +1 -0
- package/dist/components/TAlert.js +7 -0
- package/dist/components/TAlert.js.map +1 -0
- package/dist/components/{TreeAlert.vue.d.ts → TAlert.vue.d.ts} +7 -7
- package/dist/components/TAlert.vue.d.ts.map +1 -0
- package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TAvatar.cjs +2 -0
- package/dist/components/TAvatar.cjs.map +1 -0
- package/dist/components/TAvatar.js +7 -0
- package/dist/components/TAvatar.js.map +1 -0
- package/dist/components/{TreeAvatar.vue.d.ts → TAvatar.vue.d.ts} +7 -7
- package/dist/components/TAvatar.vue.d.ts.map +1 -0
- package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TBadge.cjs +2 -0
- package/dist/components/TBadge.cjs.map +1 -0
- package/dist/components/TBadge.js +7 -0
- package/dist/components/TBadge.js.map +1 -0
- package/dist/components/{TreeBadge.vue.d.ts → TBadge.vue.d.ts} +9 -9
- package/dist/components/TBadge.vue.d.ts.map +1 -0
- package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.js +27 -0
- package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TBreadcrumb.cjs +2 -0
- package/dist/components/TBreadcrumb.cjs.map +1 -0
- package/dist/components/TBreadcrumb.js +7 -0
- package/dist/components/TBreadcrumb.js.map +1 -0
- package/dist/components/{TreeBreadcrumb.vue.d.ts → TBreadcrumb.vue.d.ts} +1 -1
- package/dist/components/TBreadcrumb.vue.d.ts.map +1 -0
- package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.js +20 -0
- package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TBreadcrumbItem.cjs +2 -0
- package/dist/components/TBreadcrumbItem.cjs.map +1 -0
- package/dist/components/TBreadcrumbItem.js +7 -0
- package/dist/components/TBreadcrumbItem.js.map +1 -0
- package/dist/components/{TreeBreadcrumbItem.vue.d.ts → TBreadcrumbItem.vue.d.ts} +1 -1
- package/dist/components/TBreadcrumbItem.vue.d.ts.map +1 -0
- package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.js +28 -0
- package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TButton.cjs +2 -0
- package/dist/components/TButton.cjs.map +1 -0
- package/dist/components/TButton.js +7 -0
- package/dist/components/TButton.js.map +1 -0
- package/dist/components/{TreeButton.vue.d.ts → TButton.vue.d.ts} +6 -6
- package/dist/components/TButton.vue.d.ts.map +1 -0
- package/dist/components/TButton.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TButton.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TButton.vue_vue_type_script_setup_true_lang.js +91 -0
- package/dist/components/TButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TCard.cjs +2 -0
- package/dist/components/TCard.cjs.map +1 -0
- package/dist/components/TCard.js +7 -0
- package/dist/components/TCard.js.map +1 -0
- package/dist/components/{TreeCard.vue.d.ts → TCard.vue.d.ts} +6 -6
- package/dist/components/TCard.vue.d.ts.map +1 -0
- package/dist/components/TCard.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TCard.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TCard.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/components/TCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TCheckbox.cjs +2 -0
- package/dist/components/TCheckbox.cjs.map +1 -0
- package/dist/components/TCheckbox.js +7 -0
- package/dist/components/TCheckbox.js.map +1 -0
- package/dist/components/{TreeCheckbox.vue.d.ts → TCheckbox.vue.d.ts} +4 -4
- package/dist/components/TCheckbox.vue.d.ts.map +1 -0
- package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.js +106 -0
- package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TCombobox.cjs +2 -0
- package/dist/components/TCombobox.cjs.map +1 -0
- package/dist/components/TCombobox.js +7 -0
- package/dist/components/TCombobox.js.map +1 -0
- package/dist/components/{TreeCombobox.vue.d.ts → TCombobox.vue.d.ts} +9 -9
- package/dist/components/TCombobox.vue.d.ts.map +1 -0
- package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.js +282 -0
- package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TConfirmDialog.cjs +2 -0
- package/dist/components/TConfirmDialog.cjs.map +1 -0
- package/dist/components/TConfirmDialog.js +7 -0
- package/dist/components/TConfirmDialog.js.map +1 -0
- package/dist/components/{TreeConfirmDialog.vue.d.ts → TConfirmDialog.vue.d.ts} +6 -6
- package/dist/components/TConfirmDialog.vue.d.ts.map +1 -0
- package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.js +145 -0
- package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TContainer.cjs +2 -0
- package/dist/components/TContainer.cjs.map +1 -0
- package/dist/components/TContainer.js +7 -0
- package/dist/components/TContainer.js.map +1 -0
- package/dist/components/{TreeContainer.vue.d.ts → TContainer.vue.d.ts} +4 -4
- package/dist/components/TContainer.vue.d.ts.map +1 -0
- package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TContextMenu.cjs +2 -0
- package/dist/components/TContextMenu.cjs.map +1 -0
- package/dist/components/TContextMenu.js +7 -0
- package/dist/components/TContextMenu.js.map +1 -0
- package/dist/components/{TreeContextMenu.vue.d.ts → TContextMenu.vue.d.ts} +9 -9
- package/dist/components/TContextMenu.vue.d.ts.map +1 -0
- package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.js +149 -0
- package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TDatePicker.cjs +2 -0
- package/dist/components/TDatePicker.cjs.map +1 -0
- package/dist/components/TDatePicker.js +7 -0
- package/dist/components/TDatePicker.js.map +1 -0
- package/dist/components/{TreeDatePicker.vue.d.ts → TDatePicker.vue.d.ts} +4 -4
- package/dist/components/TDatePicker.vue.d.ts.map +1 -0
- package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.js +305 -0
- package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TDateTimePicker.cjs +2 -0
- package/dist/components/TDateTimePicker.cjs.map +1 -0
- package/dist/components/TDateTimePicker.js +7 -0
- package/dist/components/TDateTimePicker.js.map +1 -0
- package/dist/components/{TreeDateTimePicker.vue.d.ts → TDateTimePicker.vue.d.ts} +4 -4
- package/dist/components/TDateTimePicker.vue.d.ts.map +1 -0
- package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.js +409 -0
- package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TDivider.cjs +2 -0
- package/dist/components/TDivider.cjs.map +1 -0
- package/dist/components/TDivider.js +7 -0
- package/dist/components/TDivider.js.map +1 -0
- package/dist/components/{TreeDivider.vue.d.ts → TDivider.vue.d.ts} +1 -1
- package/dist/components/TDivider.vue.d.ts.map +1 -0
- package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.js +30 -0
- package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TDrawer.cjs +2 -0
- package/dist/components/TDrawer.cjs.map +1 -0
- package/dist/components/TDrawer.js +7 -0
- package/dist/components/TDrawer.js.map +1 -0
- package/dist/components/{TreeDrawer.vue.d.ts → TDrawer.vue.d.ts} +6 -6
- package/dist/components/TDrawer.vue.d.ts.map +1 -0
- package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.js +168 -0
- package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TDropdown.cjs +2 -0
- package/dist/components/TDropdown.cjs.map +1 -0
- package/dist/components/TDropdown.js +7 -0
- package/dist/components/TDropdown.js.map +1 -0
- package/dist/components/{TreeDropdown.vue.d.ts → TDropdown.vue.d.ts} +12 -9
- package/dist/components/TDropdown.vue.d.ts.map +1 -0
- package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.js +176 -0
- package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TEmptyState.cjs +2 -0
- package/dist/components/TEmptyState.cjs.map +1 -0
- package/dist/components/TEmptyState.js +7 -0
- package/dist/components/TEmptyState.js.map +1 -0
- package/dist/components/{TreeEmptyState.vue.d.ts → TEmptyState.vue.d.ts} +4 -4
- package/dist/components/TEmptyState.vue.d.ts.map +1 -0
- package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.js +64 -0
- package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TFileUpload.cjs +2 -0
- package/dist/components/TFileUpload.cjs.map +1 -0
- package/dist/components/TFileUpload.js +7 -0
- package/dist/components/TFileUpload.js.map +1 -0
- package/dist/components/{TreeFileUpload.vue.d.ts → TFileUpload.vue.d.ts} +9 -9
- package/dist/components/TFileUpload.vue.d.ts.map +1 -0
- package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.js +284 -0
- package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TFormField.cjs +2 -0
- package/dist/components/TFormField.cjs.map +1 -0
- package/dist/components/TFormField.js +7 -0
- package/dist/components/TFormField.js.map +1 -0
- package/dist/components/{TreeFormField.vue.d.ts → TFormField.vue.d.ts} +4 -4
- package/dist/components/TFormField.vue.d.ts.map +1 -0
- package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.js +63 -0
- package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TGrid.cjs +2 -0
- package/dist/components/TGrid.cjs.map +1 -0
- package/dist/components/TGrid.js +7 -0
- package/dist/components/TGrid.js.map +1 -0
- package/dist/components/{TreeGrid.vue.d.ts → TGrid.vue.d.ts} +2 -2
- package/dist/components/TGrid.vue.d.ts.map +1 -0
- package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TIcon.cjs +2 -0
- package/dist/components/TIcon.cjs.map +1 -0
- package/dist/components/TIcon.js +7 -0
- package/dist/components/TIcon.js.map +1 -0
- package/dist/components/{TreeIcon.vue.d.ts → TIcon.vue.d.ts} +3 -3
- package/dist/components/TIcon.vue.d.ts.map +1 -0
- package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.js +39 -0
- package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TInput.cjs +2 -0
- package/dist/components/TInput.cjs.map +1 -0
- package/dist/components/TInput.js +7 -0
- package/dist/components/TInput.js.map +1 -0
- package/dist/components/{TreeInput.vue.d.ts → TInput.vue.d.ts} +4 -4
- package/dist/components/TInput.vue.d.ts.map +1 -0
- package/dist/components/TInput.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TInput.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TInput.vue_vue_type_script_setup_true_lang.js +80 -0
- package/dist/components/TInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TLink.cjs +2 -0
- package/dist/components/TLink.cjs.map +1 -0
- package/dist/components/TLink.js +7 -0
- package/dist/components/TLink.js.map +1 -0
- package/dist/components/{TreeLink.vue.d.ts → TLink.vue.d.ts} +4 -4
- package/dist/components/TLink.vue.d.ts.map +1 -0
- package/dist/components/TLink.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TLink.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TLink.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/components/TLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TMarkdownEditor.cjs +2 -0
- package/dist/components/TMarkdownEditor.cjs.map +1 -0
- package/dist/components/TMarkdownEditor.js +7 -0
- package/dist/components/TMarkdownEditor.js.map +1 -0
- package/dist/components/{TreeMarkdownEditor.vue.d.ts → TMarkdownEditor.vue.d.ts} +4 -4
- package/dist/components/TMarkdownEditor.vue.d.ts.map +1 -0
- package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.cjs +12 -0
- package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.js +315 -0
- package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TModal.cjs +2 -0
- package/dist/components/TModal.cjs.map +1 -0
- package/dist/components/TModal.js +7 -0
- package/dist/components/TModal.js.map +1 -0
- package/dist/components/{TreeModal.vue.d.ts → TModal.vue.d.ts} +4 -4
- package/dist/components/TModal.vue.d.ts.map +1 -0
- package/dist/components/TModal.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TModal.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TModal.vue_vue_type_script_setup_true_lang.js +163 -0
- package/dist/components/TModal.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TMultiSelect.cjs +2 -0
- package/dist/components/TMultiSelect.cjs.map +1 -0
- package/dist/components/TMultiSelect.js +7 -0
- package/dist/components/TMultiSelect.js.map +1 -0
- package/dist/components/{TreeMultiSelect.vue.d.ts → TMultiSelect.vue.d.ts} +11 -11
- package/dist/components/TMultiSelect.vue.d.ts.map +1 -0
- package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.js +282 -0
- package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TNavMenu.cjs +2 -0
- package/dist/components/TNavMenu.cjs.map +1 -0
- package/dist/components/TNavMenu.js +7 -0
- package/dist/components/TNavMenu.js.map +1 -0
- package/dist/components/{TreeNavMenu.vue.d.ts → TNavMenu.vue.d.ts} +11 -11
- package/dist/components/TNavMenu.vue.d.ts.map +1 -0
- package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.js +151 -0
- package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TNavbar.cjs +2 -0
- package/dist/components/TNavbar.cjs.map +1 -0
- package/dist/components/TNavbar.js +7 -0
- package/dist/components/TNavbar.js.map +1 -0
- package/dist/components/{TreeNavbar.vue.d.ts → TNavbar.vue.d.ts} +4 -4
- package/dist/components/TNavbar.vue.d.ts.map +1 -0
- package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.js +61 -0
- package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TNumberInput.cjs +2 -0
- package/dist/components/TNumberInput.cjs.map +1 -0
- package/dist/components/TNumberInput.js +7 -0
- package/dist/components/TNumberInput.js.map +1 -0
- package/dist/components/{TreeNumberInput.vue.d.ts → TNumberInput.vue.d.ts} +4 -4
- package/dist/components/TNumberInput.vue.d.ts.map +1 -0
- package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.js +145 -0
- package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TPagination.cjs +2 -0
- package/dist/components/TPagination.cjs.map +1 -0
- package/dist/components/TPagination.js +7 -0
- package/dist/components/TPagination.js.map +1 -0
- package/dist/components/{TreePagination.vue.d.ts → TPagination.vue.d.ts} +4 -4
- package/dist/components/TPagination.vue.d.ts.map +1 -0
- package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.js +105 -0
- package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TPopover.cjs +2 -0
- package/dist/components/TPopover.cjs.map +1 -0
- package/dist/components/TPopover.js +7 -0
- package/dist/components/TPopover.js.map +1 -0
- package/dist/components/{TreePopover.vue.d.ts → TPopover.vue.d.ts} +4 -4
- package/dist/components/TPopover.vue.d.ts.map +1 -0
- package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.js +106 -0
- package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TPricing.cjs +2 -0
- package/dist/components/TPricing.cjs.map +1 -0
- package/dist/components/TPricing.js +7 -0
- package/dist/components/TPricing.js.map +1 -0
- package/dist/components/{TreePricing.vue.d.ts → TPricing.vue.d.ts} +5 -5
- package/dist/components/TPricing.vue.d.ts.map +1 -0
- package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.js +33 -0
- package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TPricingCard.cjs +2 -0
- package/dist/components/TPricingCard.cjs.map +1 -0
- package/dist/components/TPricingCard.js +7 -0
- package/dist/components/TPricingCard.js.map +1 -0
- package/dist/components/{TreePricingCard.vue.d.ts → TPricingCard.vue.d.ts} +4 -4
- package/dist/components/TPricingCard.vue.d.ts.map +1 -0
- package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.js +93 -0
- package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TProgress.cjs +2 -0
- package/dist/components/TProgress.cjs.map +1 -0
- package/dist/components/TProgress.js +7 -0
- package/dist/components/TProgress.js.map +1 -0
- package/dist/components/{TreeProgress.vue.d.ts → TProgress.vue.d.ts} +4 -4
- package/dist/components/TProgress.vue.d.ts.map +1 -0
- package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.js +33 -0
- package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TRadio.cjs +2 -0
- package/dist/components/TRadio.cjs.map +1 -0
- package/dist/components/TRadio.js +7 -0
- package/dist/components/TRadio.js.map +1 -0
- package/dist/components/{TreeRadio.vue.d.ts → TRadio.vue.d.ts} +4 -4
- package/dist/components/TRadio.vue.d.ts.map +1 -0
- package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.js +73 -0
- package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TRadioGroup.cjs +2 -0
- package/dist/components/TRadioGroup.cjs.map +1 -0
- package/dist/components/TRadioGroup.js +7 -0
- package/dist/components/TRadioGroup.js.map +1 -0
- package/dist/components/{TreeRadioGroup.vue.d.ts → TRadioGroup.vue.d.ts} +4 -4
- package/dist/components/TRadioGroup.vue.d.ts.map +1 -0
- package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TSelect.cjs +2 -0
- package/dist/components/TSelect.cjs.map +1 -0
- package/dist/components/TSelect.js +7 -0
- package/dist/components/TSelect.js.map +1 -0
- package/dist/components/{TreeSelect.vue.d.ts → TSelect.vue.d.ts} +9 -7
- package/dist/components/TSelect.vue.d.ts.map +1 -0
- package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.js +238 -0
- package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TSelectableList.cjs +2 -0
- package/dist/components/TSelectableList.cjs.map +1 -0
- package/dist/components/TSelectableList.js +7 -0
- package/dist/components/TSelectableList.js.map +1 -0
- package/dist/components/{TreeSelectableList.vue.d.ts → TSelectableList.vue.d.ts} +9 -9
- package/dist/components/TSelectableList.vue.d.ts.map +1 -0
- package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.js +133 -0
- package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TSidebar.cjs +2 -0
- package/dist/components/TSidebar.cjs.map +1 -0
- package/dist/components/TSidebar.js +7 -0
- package/dist/components/TSidebar.js.map +1 -0
- package/dist/components/{TreeSidebar.vue.d.ts → TSidebar.vue.d.ts} +7 -7
- package/dist/components/TSidebar.vue.d.ts.map +1 -0
- package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.js +98 -0
- package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TSkeleton.cjs +2 -0
- package/dist/components/TSkeleton.cjs.map +1 -0
- package/dist/components/TSkeleton.js +7 -0
- package/dist/components/TSkeleton.js.map +1 -0
- package/dist/components/{TreeSkeleton.vue.d.ts → TSkeleton.vue.d.ts} +1 -1
- package/dist/components/TSkeleton.vue.d.ts.map +1 -0
- package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.js +25 -0
- package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TSpinner.cjs +2 -0
- package/dist/components/TSpinner.cjs.map +1 -0
- package/dist/components/TSpinner.js +7 -0
- package/dist/components/TSpinner.js.map +1 -0
- package/dist/components/{TreeSpinner.vue.d.ts → TSpinner.vue.d.ts} +4 -4
- package/dist/components/TSpinner.vue.d.ts.map +1 -0
- package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.js +24 -0
- package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TStack.cjs +2 -0
- package/dist/components/TStack.cjs.map +1 -0
- package/dist/components/TStack.js +7 -0
- package/dist/components/TStack.js.map +1 -0
- package/dist/components/{TreeStack.vue.d.ts → TStack.vue.d.ts} +5 -5
- package/dist/components/TStack.vue.d.ts.map +1 -0
- package/dist/components/TStack.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TStack.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TStack.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/components/TStack.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TStat.cjs +2 -0
- package/dist/components/TStat.cjs.map +1 -0
- package/dist/components/TStat.js +7 -0
- package/dist/components/TStat.js.map +1 -0
- package/dist/components/{TreeStat.vue.d.ts → TStat.vue.d.ts} +7 -7
- package/dist/components/TStat.vue.d.ts.map +1 -0
- package/dist/components/TStat.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TStat.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TStat.vue_vue_type_script_setup_true_lang.js +72 -0
- package/dist/components/TStat.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TSteps.cjs +2 -0
- package/dist/components/TSteps.cjs.map +1 -0
- package/dist/components/TSteps.js +7 -0
- package/dist/components/TSteps.js.map +1 -0
- package/dist/components/{TreeSteps.vue.d.ts → TSteps.vue.d.ts} +16 -16
- package/dist/components/TSteps.vue.d.ts.map +1 -0
- package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.js +83 -0
- package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TSwitch.cjs +2 -0
- package/dist/components/TSwitch.cjs.map +1 -0
- package/dist/components/TSwitch.js +7 -0
- package/dist/components/TSwitch.js.map +1 -0
- package/dist/components/{TreeSwitch.vue.d.ts → TSwitch.vue.d.ts} +4 -4
- package/dist/components/TSwitch.vue.d.ts.map +1 -0
- package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.js +71 -0
- package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTab.cjs +2 -0
- package/dist/components/TTab.cjs.map +1 -0
- package/dist/components/TTab.js +7 -0
- package/dist/components/TTab.js.map +1 -0
- package/dist/components/{TreeTab.vue.d.ts → TTab.vue.d.ts} +1 -1
- package/dist/components/TTab.vue.d.ts.map +1 -0
- package/dist/components/TTab.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TTab.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TTab.vue_vue_type_script_setup_true_lang.js +55 -0
- package/dist/components/TTab.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTabList.cjs +2 -0
- package/dist/components/TTabList.cjs.map +1 -0
- package/dist/components/TTabList.js +7 -0
- package/dist/components/TTabList.js.map +1 -0
- package/dist/components/{TreeTabList.vue.d.ts → TTabList.vue.d.ts} +1 -1
- package/dist/components/TTabList.vue.d.ts.map +1 -0
- package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.js +73 -0
- package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTabPanel.cjs +2 -0
- package/dist/components/TTabPanel.cjs.map +1 -0
- package/dist/components/TTabPanel.js +7 -0
- package/dist/components/TTabPanel.js.map +1 -0
- package/dist/components/{TreeTabPanel.vue.d.ts → TTabPanel.vue.d.ts} +1 -1
- package/dist/components/TTabPanel.vue.d.ts.map +1 -0
- package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.js +24 -0
- package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTable.cjs +2 -0
- package/dist/components/TTable.cjs.map +1 -0
- package/dist/components/TTable.js +7 -0
- package/dist/components/TTable.js.map +1 -0
- package/dist/components/{TreeTable.vue.d.ts → TTable.vue.d.ts} +15 -15
- package/dist/components/TTable.vue.d.ts.map +1 -0
- package/dist/components/TTable.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TTable.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TTable.vue_vue_type_script_setup_true_lang.js +118 -0
- package/dist/components/TTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTabs.cjs +2 -0
- package/dist/components/TTabs.cjs.map +1 -0
- package/dist/components/TTabs.js +7 -0
- package/dist/components/TTabs.js.map +1 -0
- package/dist/components/{TreeTabs.vue.d.ts → TTabs.vue.d.ts} +4 -4
- package/dist/components/TTabs.vue.d.ts.map +1 -0
- package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.js +51 -0
- package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTag.cjs +2 -0
- package/dist/components/TTag.cjs.map +1 -0
- package/dist/components/TTag.js +7 -0
- package/dist/components/TTag.js.map +1 -0
- package/dist/components/{TreeTag.vue.d.ts → TTag.vue.d.ts} +7 -7
- package/dist/components/TTag.vue.d.ts.map +1 -0
- package/dist/components/TTag.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TTag.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TTag.vue_vue_type_script_setup_true_lang.js +60 -0
- package/dist/components/TTag.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTextarea.cjs +2 -0
- package/dist/components/TTextarea.cjs.map +1 -0
- package/dist/components/TTextarea.js +7 -0
- package/dist/components/TTextarea.js.map +1 -0
- package/dist/components/{TreeTextarea.vue.d.ts → TTextarea.vue.d.ts} +4 -4
- package/dist/components/TTextarea.vue.d.ts.map +1 -0
- package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.js +81 -0
- package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTimeline.cjs +2 -0
- package/dist/components/TTimeline.cjs.map +1 -0
- package/dist/components/TTimeline.js +7 -0
- package/dist/components/TTimeline.js.map +1 -0
- package/dist/components/{TreeTimeline.vue.d.ts → TTimeline.vue.d.ts} +13 -13
- package/dist/components/TTimeline.vue.d.ts.map +1 -0
- package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TToast.cjs +2 -0
- package/dist/components/TToast.cjs.map +1 -0
- package/dist/components/TToast.js +7 -0
- package/dist/components/TToast.js.map +1 -0
- package/dist/components/{TreeToast.vue.d.ts → TToast.vue.d.ts} +1 -1
- package/dist/components/TToast.vue.d.ts.map +1 -0
- package/dist/components/TToast.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TToast.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TToast.vue_vue_type_script_setup_true_lang.js +50 -0
- package/dist/components/TToast.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TToastProvider.cjs +2 -0
- package/dist/components/TToastProvider.cjs.map +1 -0
- package/dist/components/TToastProvider.js +7 -0
- package/dist/components/TToastProvider.js.map +1 -0
- package/dist/components/{TreeToastProvider.vue.d.ts → TToastProvider.vue.d.ts} +1 -1
- package/dist/components/TToastProvider.vue.d.ts.map +1 -0
- package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.js +33 -0
- package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TToggleGroup.cjs +2 -0
- package/dist/components/TToggleGroup.cjs.map +1 -0
- package/dist/components/TToggleGroup.js +7 -0
- package/dist/components/TToggleGroup.js.map +1 -0
- package/dist/components/{TreeToggleGroup.vue.d.ts → TToggleGroup.vue.d.ts} +15 -15
- package/dist/components/TToggleGroup.vue.d.ts.map +1 -0
- package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.js +119 -0
- package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTooltip.cjs +2 -0
- package/dist/components/TTooltip.cjs.map +1 -0
- package/dist/components/TTooltip.js +7 -0
- package/dist/components/TTooltip.js.map +1 -0
- package/dist/components/{TreeTooltip.vue.d.ts → TTooltip.vue.d.ts} +4 -4
- package/dist/components/TTooltip.vue.d.ts.map +1 -0
- package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.js +75 -0
- package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTreeView.cjs +2 -0
- package/dist/components/TTreeView.cjs.map +1 -0
- package/dist/components/TTreeView.js +7 -0
- package/dist/components/TTreeView.js.map +1 -0
- package/dist/components/{TreeTreeView.vue.d.ts → TTreeView.vue.d.ts} +6 -6
- package/dist/components/TTreeView.vue.d.ts.map +1 -0
- package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.js +161 -0
- package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTreeViewItem.cjs +2 -0
- package/dist/components/TTreeViewItem.cjs.map +1 -0
- package/dist/components/TTreeViewItem.js +7 -0
- package/dist/components/TTreeViewItem.js.map +1 -0
- package/dist/components/{TreeTreeViewItem.vue.d.ts → TTreeViewItem.vue.d.ts} +3 -3
- package/dist/components/TTreeViewItem.vue.d.ts.map +1 -0
- package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.js +101 -0
- package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/accordion.cjs +2 -0
- package/dist/components/accordion.cjs.map +1 -0
- package/dist/components/accordion.js +6 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/index.d.ts +81 -143
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/sidebar.cjs +2 -0
- package/dist/components/sidebar.cjs.map +1 -0
- package/dist/components/sidebar.d.ts +2 -2
- package/dist/components/sidebar.d.ts.map +1 -1
- package/dist/components/sidebar.js +6 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/tabs-context.cjs +2 -0
- package/dist/components/tabs-context.cjs.map +1 -0
- package/dist/components/tabs-context.d.ts +2 -2
- package/dist/components/tabs-context.d.ts.map +1 -1
- package/dist/components/tabs-context.js +6 -0
- package/dist/components/tabs-context.js.map +1 -0
- package/dist/components/tree-view.cjs +2 -0
- package/dist/components/tree-view.cjs.map +1 -0
- package/dist/components/tree-view.d.ts +8 -8
- package/dist/components/tree-view.d.ts.map +1 -1
- package/dist/components/tree-view.js +6 -0
- package/dist/components/tree-view.js.map +1 -0
- package/dist/composables/useControllableOpen.cjs +2 -0
- package/dist/composables/useControllableOpen.cjs.map +1 -0
- package/dist/composables/useControllableOpen.js +15 -0
- package/dist/composables/useControllableOpen.js.map +1 -0
- package/dist/composables/useToast.cjs +2 -0
- package/dist/composables/useToast.cjs.map +1 -0
- package/dist/composables/useToast.js +41 -0
- package/dist/composables/useToast.js.map +1 -0
- package/dist/index.cjs +1 -12
- package/dist/index.js +66 -6040
- package/dist/plugin.cjs +2 -0
- package/dist/plugin.cjs.map +1 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +135 -0
- package/dist/plugin.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/types/contracts.cjs +2 -0
- package/dist/types/contracts.cjs.map +1 -0
- package/dist/types/contracts.d.ts +5 -5
- package/dist/types/contracts.d.ts.map +1 -1
- package/dist/types/contracts.js +31 -0
- package/dist/types/contracts.js.map +1 -0
- package/package.json +5 -5
- package/dist/components/TreeAccordion.vue.d.ts.map +0 -1
- package/dist/components/TreeAccordionItem.vue.d.ts.map +0 -1
- package/dist/components/TreeAlert.vue.d.ts.map +0 -1
- package/dist/components/TreeAvatar.vue.d.ts.map +0 -1
- package/dist/components/TreeBadge.vue.d.ts.map +0 -1
- package/dist/components/TreeBreadcrumb.vue.d.ts.map +0 -1
- package/dist/components/TreeBreadcrumbItem.vue.d.ts.map +0 -1
- package/dist/components/TreeButton.vue.d.ts.map +0 -1
- package/dist/components/TreeCard.vue.d.ts.map +0 -1
- package/dist/components/TreeCheckbox.vue.d.ts.map +0 -1
- package/dist/components/TreeCombobox.vue.d.ts.map +0 -1
- package/dist/components/TreeConfirmDialog.vue.d.ts.map +0 -1
- package/dist/components/TreeContainer.vue.d.ts.map +0 -1
- package/dist/components/TreeContextMenu.vue.d.ts.map +0 -1
- package/dist/components/TreeDatePicker.vue.d.ts.map +0 -1
- package/dist/components/TreeDateTimePicker.vue.d.ts.map +0 -1
- package/dist/components/TreeDivider.vue.d.ts.map +0 -1
- package/dist/components/TreeDrawer.vue.d.ts.map +0 -1
- package/dist/components/TreeDropdown.vue.d.ts.map +0 -1
- package/dist/components/TreeEmptyState.vue.d.ts.map +0 -1
- package/dist/components/TreeFileUpload.vue.d.ts.map +0 -1
- package/dist/components/TreeFormField.vue.d.ts.map +0 -1
- package/dist/components/TreeGrid.vue.d.ts.map +0 -1
- package/dist/components/TreeIcon.vue.d.ts.map +0 -1
- package/dist/components/TreeInput.vue.d.ts.map +0 -1
- package/dist/components/TreeLink.vue.d.ts.map +0 -1
- package/dist/components/TreeMarkdownEditor.vue.d.ts.map +0 -1
- package/dist/components/TreeModal.vue.d.ts.map +0 -1
- package/dist/components/TreeMultiSelect.vue.d.ts.map +0 -1
- package/dist/components/TreeNavMenu.vue.d.ts.map +0 -1
- package/dist/components/TreeNavbar.vue.d.ts.map +0 -1
- package/dist/components/TreeNumberInput.vue.d.ts.map +0 -1
- package/dist/components/TreePagination.vue.d.ts.map +0 -1
- package/dist/components/TreePopover.vue.d.ts.map +0 -1
- package/dist/components/TreePricing.vue.d.ts.map +0 -1
- package/dist/components/TreePricingCard.vue.d.ts.map +0 -1
- package/dist/components/TreeProgress.vue.d.ts.map +0 -1
- package/dist/components/TreeRadio.vue.d.ts.map +0 -1
- package/dist/components/TreeRadioGroup.vue.d.ts.map +0 -1
- package/dist/components/TreeSelect.vue.d.ts.map +0 -1
- package/dist/components/TreeSelectableList.vue.d.ts.map +0 -1
- package/dist/components/TreeSidebar.vue.d.ts.map +0 -1
- package/dist/components/TreeSkeleton.vue.d.ts.map +0 -1
- package/dist/components/TreeSpinner.vue.d.ts.map +0 -1
- package/dist/components/TreeStack.vue.d.ts.map +0 -1
- package/dist/components/TreeStat.vue.d.ts.map +0 -1
- package/dist/components/TreeSteps.vue.d.ts.map +0 -1
- package/dist/components/TreeSwitch.vue.d.ts.map +0 -1
- package/dist/components/TreeTab.vue.d.ts.map +0 -1
- package/dist/components/TreeTabList.vue.d.ts.map +0 -1
- package/dist/components/TreeTabPanel.vue.d.ts.map +0 -1
- package/dist/components/TreeTable.vue.d.ts.map +0 -1
- package/dist/components/TreeTabs.vue.d.ts.map +0 -1
- package/dist/components/TreeTag.vue.d.ts.map +0 -1
- package/dist/components/TreeTextarea.vue.d.ts.map +0 -1
- package/dist/components/TreeTimeline.vue.d.ts.map +0 -1
- package/dist/components/TreeToast.vue.d.ts.map +0 -1
- package/dist/components/TreeToastProvider.vue.d.ts.map +0 -1
- package/dist/components/TreeToggleGroup.vue.d.ts.map +0 -1
- package/dist/components/TreeTooltip.vue.d.ts.map +0 -1
- package/dist/components/TreeTreeView.vue.d.ts.map +0 -1
- package/dist/components/TreeTreeViewItem.vue.d.ts.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TIcon.js","names":[],"sources":["../../src/components/TIcon.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, type Component } from 'vue';\nimport { getTreeIcon, treeIconDefaults, type TIconName } from '@treeui/icons';\n\nconst props = withDefaults(\n defineProps<{\n name: TIconName;\n size?: number | string;\n strokeWidth?: number | string;\n absoluteStrokeWidth?: boolean;\n label?: string;\n }>(),\n {\n size: treeIconDefaults.size,\n strokeWidth: treeIconDefaults.strokeWidth,\n absoluteStrokeWidth: treeIconDefaults.absoluteStrokeWidth,\n label: undefined,\n },\n);\n\nconst iconComponent = computed(() => getTreeIcon(props.name) as Component);\n</script>\n\n<template>\n <component\n :is=\"iconComponent\"\n class=\"t-icon\"\n :size=\"size\"\n :stroke-width=\"strokeWidth\"\n :absolute-stroke-width=\"absoluteStrokeWidth\"\n :role=\"label ? 'img' : undefined\"\n :aria-label=\"label || undefined\"\n :aria-hidden=\"label ? undefined : 'true'\"\n />\n</template>\n"],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TIconName } from '../../../icons/src/index.ts';
|
|
2
2
|
type __VLS_Props = {
|
|
3
|
-
name:
|
|
3
|
+
name: TIconName;
|
|
4
4
|
size?: number | string;
|
|
5
5
|
strokeWidth?: number | string;
|
|
6
6
|
absoluteStrokeWidth?: boolean;
|
|
@@ -13,4 +13,4 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
13
13
|
absoluteStrokeWidth: boolean;
|
|
14
14
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
15
15
|
export default _default;
|
|
16
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=TIcon.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TIcon.vue.d.ts","sourceRoot":"","sources":["../../src/components/TIcon.vue"],"names":[],"mappings":"AAsCA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAE9E,KAAK,WAAW,GAAG;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;;UAJO,MAAM,GAAG,MAAM;WAGd,MAAM;iBAFA,MAAM,GAAG,MAAM;yBACP,OAAO;;AA+EjC,wBAQG"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
let e=require("vue"),t=require("@treeui/icons");var n=(0,e.defineComponent)({__name:`TIcon`,props:{name:{},size:{default:t.treeIconDefaults.size},strokeWidth:{default:t.treeIconDefaults.strokeWidth},absoluteStrokeWidth:{type:Boolean,default:t.treeIconDefaults.absoluteStrokeWidth},label:{default:void 0}},setup(n){let r=n,i=(0,e.computed)(()=>(0,t.getTreeIcon)(r.name));return(t,r)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(i.value),{class:`t-icon`,size:n.size,"stroke-width":n.strokeWidth,"absolute-stroke-width":n.absoluteStrokeWidth,role:n.label?`img`:void 0,"aria-label":n.label||void 0,"aria-hidden":n.label?void 0:`true`},null,8,[`size`,`stroke-width`,`absolute-stroke-width`,`role`,`aria-label`,`aria-hidden`]))}});exports.default=n;
|
|
2
|
+
//# sourceMappingURL=TIcon.vue_vue_type_script_setup_true_lang.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TIcon.vue_vue_type_script_setup_true_lang.cjs","names":[],"sources":["../../src/components/TIcon.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, type Component } from 'vue';\nimport { getTreeIcon, treeIconDefaults, type TIconName } from '@treeui/icons';\n\nconst props = withDefaults(\n defineProps<{\n name: TIconName;\n size?: number | string;\n strokeWidth?: number | string;\n absoluteStrokeWidth?: boolean;\n label?: string;\n }>(),\n {\n size: treeIconDefaults.size,\n strokeWidth: treeIconDefaults.strokeWidth,\n absoluteStrokeWidth: treeIconDefaults.absoluteStrokeWidth,\n label: undefined,\n },\n);\n\nconst iconComponent = computed(() => getTreeIcon(props.name) as Component);\n</script>\n\n<template>\n <component\n :is=\"iconComponent\"\n class=\"t-icon\"\n :size=\"size\"\n :stroke-width=\"strokeWidth\"\n :absolute-stroke-width=\"absoluteStrokeWidth\"\n :role=\"label ? 'img' : undefined\"\n :aria-label=\"label || undefined\"\n :aria-hidden=\"label ? undefined : 'true'\"\n />\n</template>\n"],"mappings":"0TAIA,IAAM,EAAQ,EAgBR,GAAA,EAAA,EAAA,SAAA,MAAA,EAAA,EAAA,YAAA,CAA2C,EAAM,IAAI,CAAc,kFAKhE,EAAA,KAAa,EAAA,CAClB,MAAM,SACL,KAAM,EAAA,KACN,eAAc,EAAA,YACd,wBAAuB,EAAA,oBACvB,KAAM,EAAA,MAAK,MAAW,IAAA,GACtB,aAAY,EAAA,OAAS,IAAA,GACrB,cAAa,EAAA,MAAQ,IAAA,GAAS"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { computed as e, createBlock as t, defineComponent as n, openBlock as r, resolveDynamicComponent as i } from "vue";
|
|
2
|
+
import { getTreeIcon as a, treeIconDefaults as o } from "@treeui/icons";
|
|
3
|
+
//#region src/components/TIcon.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var s = /*@__PURE__*/ n({
|
|
5
|
+
__name: "TIcon",
|
|
6
|
+
props: {
|
|
7
|
+
name: {},
|
|
8
|
+
size: { default: o.size },
|
|
9
|
+
strokeWidth: { default: o.strokeWidth },
|
|
10
|
+
absoluteStrokeWidth: {
|
|
11
|
+
type: Boolean,
|
|
12
|
+
default: o.absoluteStrokeWidth
|
|
13
|
+
},
|
|
14
|
+
label: { default: void 0 }
|
|
15
|
+
},
|
|
16
|
+
setup(n) {
|
|
17
|
+
let o = n, s = e(() => a(o.name));
|
|
18
|
+
return (e, a) => (r(), t(i(s.value), {
|
|
19
|
+
class: "t-icon",
|
|
20
|
+
size: n.size,
|
|
21
|
+
"stroke-width": n.strokeWidth,
|
|
22
|
+
"absolute-stroke-width": n.absoluteStrokeWidth,
|
|
23
|
+
role: n.label ? "img" : void 0,
|
|
24
|
+
"aria-label": n.label || void 0,
|
|
25
|
+
"aria-hidden": n.label ? void 0 : "true"
|
|
26
|
+
}, null, 8, [
|
|
27
|
+
"size",
|
|
28
|
+
"stroke-width",
|
|
29
|
+
"absolute-stroke-width",
|
|
30
|
+
"role",
|
|
31
|
+
"aria-label",
|
|
32
|
+
"aria-hidden"
|
|
33
|
+
]));
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
//#endregion
|
|
37
|
+
export { s as default };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=TIcon.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TIcon.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/components/TIcon.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, type Component } from 'vue';\nimport { getTreeIcon, treeIconDefaults, type TIconName } from '@treeui/icons';\n\nconst props = withDefaults(\n defineProps<{\n name: TIconName;\n size?: number | string;\n strokeWidth?: number | string;\n absoluteStrokeWidth?: boolean;\n label?: string;\n }>(),\n {\n size: treeIconDefaults.size,\n strokeWidth: treeIconDefaults.strokeWidth,\n absoluteStrokeWidth: treeIconDefaults.absoluteStrokeWidth,\n label: undefined,\n },\n);\n\nconst iconComponent = computed(() => getTreeIcon(props.name) as Component);\n</script>\n\n<template>\n <component\n :is=\"iconComponent\"\n class=\"t-icon\"\n :size=\"size\"\n :stroke-width=\"strokeWidth\"\n :absolute-stroke-width=\"absoluteStrokeWidth\"\n :role=\"label ? 'img' : undefined\"\n :aria-label=\"label || undefined\"\n :aria-hidden=\"label ? undefined : 'true'\"\n />\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EAIA,IAAM,IAAQ,GAgBR,IAAgB,QAAe,EAAY,EAAM,IAAI,CAAc;yBAIvE,EASE,EARK,EAAA,KAAa,GAAA;GAClB,OAAM;GACL,MAAM,EAAA;GACN,gBAAc,EAAA;GACd,yBAAuB,EAAA;GACvB,MAAM,EAAA,QAAK,QAAW,KAAA;GACtB,cAAY,EAAA,SAAS,KAAA;GACrB,eAAa,EAAA,QAAQ,KAAA,IAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TInput.cjs","names":[],"sources":["../../src/components/TInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useAttrs } from 'vue';\nimport type { TSize } from '../types/contracts';\nimport TSpinner from './TSpinner.vue';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string | number;\n size?: TSize;\n disabled?: boolean;\n loading?: boolean;\n invalid?: boolean;\n type?: string;\n placeholder?: string;\n }>(),\n {\n modelValue: '',\n size: 'md',\n disabled: false,\n loading: false,\n invalid: false,\n type: 'text',\n placeholder: '',\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst attrs = useAttrs();\n\nconst rootClasses = computed(() => [\n 't-input',\n `t-input--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n 'is-loading': props.loading,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst stringValue = computed(() => `${props.modelValue ?? ''}`);\n\nconst onInput = (event: Event) => {\n emit('update:modelValue', (event.target as HTMLInputElement).value);\n};\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <span\n v-if=\"$slots.prefix\"\n class=\"t-input__slot t-input__slot--prefix\"\n >\n <slot name=\"prefix\" />\n </span>\n <input\n v-bind=\"inputAttrs\"\n class=\"t-input__field\"\n :type=\"type\"\n :value=\"stringValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-invalid=\"invalid || undefined\"\n @input=\"onInput\"\n >\n <TSpinner\n v-if=\"loading\"\n size=\"sm\"\n label=\"Loading\"\n />\n <span\n v-if=\"$slots.suffix\"\n class=\"t-input__slot t-input__slot--suffix\"\n >\n <slot name=\"suffix\" />\n </span>\n </label>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TInput.js","names":[],"sources":["../../src/components/TInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useAttrs } from 'vue';\nimport type { TSize } from '../types/contracts';\nimport TSpinner from './TSpinner.vue';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string | number;\n size?: TSize;\n disabled?: boolean;\n loading?: boolean;\n invalid?: boolean;\n type?: string;\n placeholder?: string;\n }>(),\n {\n modelValue: '',\n size: 'md',\n disabled: false,\n loading: false,\n invalid: false,\n type: 'text',\n placeholder: '',\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst attrs = useAttrs();\n\nconst rootClasses = computed(() => [\n 't-input',\n `t-input--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n 'is-loading': props.loading,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst stringValue = computed(() => `${props.modelValue ?? ''}`);\n\nconst onInput = (event: Event) => {\n emit('update:modelValue', (event.target as HTMLInputElement).value);\n};\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <span\n v-if=\"$slots.prefix\"\n class=\"t-input__slot t-input__slot--prefix\"\n >\n <slot name=\"prefix\" />\n </span>\n <input\n v-bind=\"inputAttrs\"\n class=\"t-input__field\"\n :type=\"type\"\n :value=\"stringValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-invalid=\"invalid || undefined\"\n @input=\"onInput\"\n >\n <TSpinner\n v-if=\"loading\"\n size=\"sm\"\n label=\"Loading\"\n />\n <span\n v-if=\"$slots.suffix\"\n class=\"t-input__slot t-input__slot--suffix\"\n >\n <slot name=\"suffix\" />\n </span>\n </label>\n</template>\n"],"mappings":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TSize } from '../types/contracts';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
modelValue?: string | number;
|
|
4
|
-
size?:
|
|
4
|
+
size?: TSize;
|
|
5
5
|
disabled?: boolean;
|
|
6
6
|
loading?: boolean;
|
|
7
7
|
invalid?: boolean;
|
|
@@ -26,7 +26,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
|
|
|
26
26
|
type: string;
|
|
27
27
|
modelValue: string | number;
|
|
28
28
|
disabled: boolean;
|
|
29
|
-
size:
|
|
29
|
+
size: TSize;
|
|
30
30
|
loading: boolean;
|
|
31
31
|
invalid: boolean;
|
|
32
32
|
placeholder: string;
|
|
@@ -38,4 +38,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
|
|
|
38
38
|
$slots: S;
|
|
39
39
|
};
|
|
40
40
|
};
|
|
41
|
-
//# sourceMappingURL=
|
|
41
|
+
//# sourceMappingURL=TInput.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TInput.vue.d.ts","sourceRoot":"","sources":["../../src/components/TInput.vue"],"names":[],"mappings":"AAkGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAOhD,KAAK,WAAW,GAAG;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAwDJ,iBAAS,cAAc;WA6DT,OAAO,IAA6B;;wBAXtB,GAAG;wBACH,GAAG;;;;EAe9B;AAgBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;UA7IV,MAAM;gBALA,MAAM,GAAG,MAAM;cAEjB,OAAO;UADX,KAAK;aAEF,OAAO;aACP,OAAO;iBAEH,MAAM;6EAoJtB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./TSpinner.cjs");let t=require("vue");var n={key:0,class:`t-input__slot t-input__slot--prefix`},r=[`type`,`value`,`placeholder`,`disabled`,`aria-invalid`],i={key:2,class:`t-input__slot t-input__slot--suffix`},a=(0,t.defineComponent)({inheritAttrs:!1,__name:`TInput`,props:{modelValue:{default:``},size:{default:`md`},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},invalid:{type:Boolean,default:!1},type:{default:`text`},placeholder:{default:``}},emits:[`update:modelValue`],setup(a,{emit:o}){let s=a,c=o,l=(0,t.useAttrs)(),u=(0,t.computed)(()=>[`t-input`,`t-input--${s.size}`,{"is-disabled":s.disabled,"is-invalid":s.invalid,"is-loading":s.loading},l.class]),d=(0,t.computed)(()=>l.style),f=(0,t.computed)(()=>{let{class:e,style:t,...n}=l;return n}),p=(0,t.computed)(()=>`${s.modelValue??``}`),m=e=>{c(`update:modelValue`,e.target.value)};return(o,s)=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{class:(0,t.normalizeClass)(u.value),style:(0,t.normalizeStyle)(d.value)},[o.$slots.prefix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,n,[(0,t.renderSlot)(o.$slots,`prefix`)])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`input`,(0,t.mergeProps)(f.value,{class:`t-input__field`,type:a.type,value:p.value,placeholder:a.placeholder,disabled:a.disabled,"aria-invalid":a.invalid||void 0,onInput:m}),null,16,r),a.loading?((0,t.openBlock)(),(0,t.createBlock)(e.default,{key:1,size:`sm`,label:`Loading`})):(0,t.createCommentVNode)(``,!0),o.$slots.suffix?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,i,[(0,t.renderSlot)(o.$slots,`suffix`)])):(0,t.createCommentVNode)(``,!0)],6))}});exports.default=a;
|
|
2
|
+
//# sourceMappingURL=TInput.vue_vue_type_script_setup_true_lang.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TInput.vue_vue_type_script_setup_true_lang.cjs","names":["$slots"],"sources":["../../src/components/TInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useAttrs } from 'vue';\nimport type { TSize } from '../types/contracts';\nimport TSpinner from './TSpinner.vue';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string | number;\n size?: TSize;\n disabled?: boolean;\n loading?: boolean;\n invalid?: boolean;\n type?: string;\n placeholder?: string;\n }>(),\n {\n modelValue: '',\n size: 'md',\n disabled: false,\n loading: false,\n invalid: false,\n type: 'text',\n placeholder: '',\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst attrs = useAttrs();\n\nconst rootClasses = computed(() => [\n 't-input',\n `t-input--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n 'is-loading': props.loading,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst stringValue = computed(() => `${props.modelValue ?? ''}`);\n\nconst onInput = (event: Event) => {\n emit('update:modelValue', (event.target as HTMLInputElement).value);\n};\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <span\n v-if=\"$slots.prefix\"\n class=\"t-input__slot t-input__slot--prefix\"\n >\n <slot name=\"prefix\" />\n </span>\n <input\n v-bind=\"inputAttrs\"\n class=\"t-input__field\"\n :type=\"type\"\n :value=\"stringValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-invalid=\"invalid || undefined\"\n @input=\"onInput\"\n >\n <TSpinner\n v-if=\"loading\"\n size=\"sm\"\n label=\"Loading\"\n />\n <span\n v-if=\"$slots.suffix\"\n class=\"t-input__slot t-input__slot--suffix\"\n >\n <slot name=\"suffix\" />\n </span>\n </label>\n</template>\n"],"mappings":"mhBASA,IAAM,EAAQ,EAqBR,EAAO,EAIP,GAAA,EAAA,EAAA,SAAA,CAAiB,EAEjB,GAAA,EAAA,EAAA,SAAA,KAA6B,CACjC,UACA,YAAY,EAAM,OAClB,CACE,cAAe,EAAM,SACrB,aAAc,EAAM,QACpB,aAAc,EAAM,OACtB,EACA,EAAM,KACR,CAAC,EAEK,GAAA,EAAA,EAAA,SAAA,KAA2B,EAAM,KAAK,EAEtC,GAAA,EAAA,EAAA,SAAA,KAA4B,CAChC,GAAM,CAAE,MAAO,EAAQ,MAAO,EAAQ,GAAG,GAAS,EAClD,OAAO,CACT,CAAC,EAEK,GAAA,EAAA,EAAA,SAAA,KAA6B,GAAG,EAAM,YAAc,IAAI,EAExD,EAAW,GAAiB,CAChC,EAAK,oBAAsB,EAAM,OAA4B,KAAK,CACpE,2DAmCU,QAAA,CA9BL,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAW,EAClB,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAS,IAGTA,EAAAA,OAAO,SAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAIR,OALP,EAKO,EAAA,EAAA,EAAA,WAAA,CADiB,EAAA,OAAA,QAAA,CAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA,2BAWvB,SAAA,EAAA,EAAA,WAAA,CARS,EAQT,MARmB,CAClB,MAAM,iBACL,KAAM,EAAA,KACN,MAAO,EAAA,MACP,YAAa,EAAA,YACb,SAAU,EAAA,SACV,eAAc,EAAA,SAAW,IAAA,GAClB,uBAGF,EAAA,UAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,YAAA,CAGN,EAAA,QAAA,OAFA,KAAK,KACL,MAAM,6CAGAA,EAAAA,OAAO,SAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAIR,OALP,EAKO,EAAA,EAAA,EAAA,WAAA,CADiB,EAAA,OAAA,QAAA,CAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import e from "./TSpinner.js";
|
|
2
|
+
import { computed as t, createBlock as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, defineComponent as o, mergeProps as s, normalizeClass as c, normalizeStyle as l, openBlock as u, renderSlot as d, useAttrs as f } from "vue";
|
|
3
|
+
//#region src/components/TInput.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var p = {
|
|
5
|
+
key: 0,
|
|
6
|
+
class: "t-input__slot t-input__slot--prefix"
|
|
7
|
+
}, m = [
|
|
8
|
+
"type",
|
|
9
|
+
"value",
|
|
10
|
+
"placeholder",
|
|
11
|
+
"disabled",
|
|
12
|
+
"aria-invalid"
|
|
13
|
+
], h = {
|
|
14
|
+
key: 2,
|
|
15
|
+
class: "t-input__slot t-input__slot--suffix"
|
|
16
|
+
}, g = /*@__PURE__*/ o({
|
|
17
|
+
inheritAttrs: !1,
|
|
18
|
+
__name: "TInput",
|
|
19
|
+
props: {
|
|
20
|
+
modelValue: { default: "" },
|
|
21
|
+
size: { default: "md" },
|
|
22
|
+
disabled: {
|
|
23
|
+
type: Boolean,
|
|
24
|
+
default: !1
|
|
25
|
+
},
|
|
26
|
+
loading: {
|
|
27
|
+
type: Boolean,
|
|
28
|
+
default: !1
|
|
29
|
+
},
|
|
30
|
+
invalid: {
|
|
31
|
+
type: Boolean,
|
|
32
|
+
default: !1
|
|
33
|
+
},
|
|
34
|
+
type: { default: "text" },
|
|
35
|
+
placeholder: { default: "" }
|
|
36
|
+
},
|
|
37
|
+
emits: ["update:modelValue"],
|
|
38
|
+
setup(o, { emit: g }) {
|
|
39
|
+
let _ = o, v = g, y = f(), b = t(() => [
|
|
40
|
+
"t-input",
|
|
41
|
+
`t-input--${_.size}`,
|
|
42
|
+
{
|
|
43
|
+
"is-disabled": _.disabled,
|
|
44
|
+
"is-invalid": _.invalid,
|
|
45
|
+
"is-loading": _.loading
|
|
46
|
+
},
|
|
47
|
+
y.class
|
|
48
|
+
]), x = t(() => y.style), S = t(() => {
|
|
49
|
+
let { class: e, style: t, ...n } = y;
|
|
50
|
+
return n;
|
|
51
|
+
}), C = t(() => `${_.modelValue ?? ""}`), w = (e) => {
|
|
52
|
+
v("update:modelValue", e.target.value);
|
|
53
|
+
};
|
|
54
|
+
return (t, f) => (u(), i("label", {
|
|
55
|
+
class: c(b.value),
|
|
56
|
+
style: l(x.value)
|
|
57
|
+
}, [
|
|
58
|
+
t.$slots.prefix ? (u(), i("span", p, [d(t.$slots, "prefix")])) : r("", !0),
|
|
59
|
+
a("input", s(S.value, {
|
|
60
|
+
class: "t-input__field",
|
|
61
|
+
type: o.type,
|
|
62
|
+
value: C.value,
|
|
63
|
+
placeholder: o.placeholder,
|
|
64
|
+
disabled: o.disabled,
|
|
65
|
+
"aria-invalid": o.invalid || void 0,
|
|
66
|
+
onInput: w
|
|
67
|
+
}), null, 16, m),
|
|
68
|
+
o.loading ? (u(), n(e, {
|
|
69
|
+
key: 1,
|
|
70
|
+
size: "sm",
|
|
71
|
+
label: "Loading"
|
|
72
|
+
})) : r("", !0),
|
|
73
|
+
t.$slots.suffix ? (u(), i("span", h, [d(t.$slots, "suffix")])) : r("", !0)
|
|
74
|
+
], 6));
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
//#endregion
|
|
78
|
+
export { g as default };
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=TInput.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TInput.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../src/components/TInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useAttrs } from 'vue';\nimport type { TSize } from '../types/contracts';\nimport TSpinner from './TSpinner.vue';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string | number;\n size?: TSize;\n disabled?: boolean;\n loading?: boolean;\n invalid?: boolean;\n type?: string;\n placeholder?: string;\n }>(),\n {\n modelValue: '',\n size: 'md',\n disabled: false,\n loading: false,\n invalid: false,\n type: 'text',\n placeholder: '',\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst attrs = useAttrs();\n\nconst rootClasses = computed(() => [\n 't-input',\n `t-input--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n 'is-loading': props.loading,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst stringValue = computed(() => `${props.modelValue ?? ''}`);\n\nconst onInput = (event: Event) => {\n emit('update:modelValue', (event.target as HTMLInputElement).value);\n};\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <span\n v-if=\"$slots.prefix\"\n class=\"t-input__slot t-input__slot--prefix\"\n >\n <slot name=\"prefix\" />\n </span>\n <input\n v-bind=\"inputAttrs\"\n class=\"t-input__field\"\n :type=\"type\"\n :value=\"stringValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-invalid=\"invalid || undefined\"\n @input=\"onInput\"\n >\n <TSpinner\n v-if=\"loading\"\n size=\"sm\"\n label=\"Loading\"\n />\n <span\n v-if=\"$slots.suffix\"\n class=\"t-input__slot t-input__slot--suffix\"\n >\n <slot name=\"suffix\" />\n </span>\n </label>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASA,IAAM,IAAQ,GAqBR,IAAO,GAIP,IAAQ,EAAS,GAEjB,IAAc,QAAe;GACjC;GACA,YAAY,EAAM;GAClB;IACE,eAAe,EAAM;IACrB,cAAc,EAAM;IACpB,cAAc,EAAM;GACtB;GACA,EAAM;EACR,CAAC,GAEK,IAAY,QAAe,EAAM,KAAK,GAEtC,IAAa,QAAe;GAChC,IAAM,EAAE,OAAO,GAAQ,OAAO,GAAQ,GAAG,MAAS;GAClD,OAAO;EACT,CAAC,GAEK,IAAc,QAAe,GAAG,EAAM,cAAc,IAAI,GAExD,KAAW,MAAiB;GAChC,EAAK,qBAAsB,EAAM,OAA4B,KAAK;EACpE;yBAIE,EA+BQ,SAAA;GA9BL,OAAK,EAAE,EAAA,KAAW;GAClB,OAAK,EAAE,EAAA,KAAS;;GAGTA,EAAAA,OAAO,UAAA,EAAA,GADf,EAKO,QALP,GAKO,CADL,EAAsB,EAAA,QAAA,QAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA;GAExB,EASC,SATD,EACU,EAQT,OARmB;IAClB,OAAM;IACL,MAAM,EAAA;IACN,OAAO,EAAA;IACP,aAAa,EAAA;IACb,UAAU,EAAA;IACV,gBAAc,EAAA,WAAW,KAAA;IAClB;;GAGF,EAAA,WAAA,EAAA,GADR,EAIE,GAAA;;IAFA,MAAK;IACL,OAAM;;GAGAA,EAAAA,OAAO,UAAA,EAAA,GADf,EAKO,QALP,GAKO,CADL,EAAsB,EAAA,QAAA,QAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TLink.cjs","names":[],"sources":["../../src/components/TLink.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, getCurrentInstance, type Component } from 'vue';\n\nexport type TLinkVariant = 'default' | 'muted' | 'danger';\n\nconst props = withDefaults(\n defineProps<{\n to?: string | Record<string, unknown>;\n href?: string;\n external?: boolean;\n disabled?: boolean;\n variant?: TLinkVariant;\n }>(),\n {\n to: undefined,\n href: undefined,\n external: false,\n disabled: false,\n variant: 'default',\n },\n);\n\nconst instance = getCurrentInstance();\n\nconst routerLinkComponent = computed<Component | null>(() => {\n if (!props.to) return null;\n\n return (instance?.appContext.components.RouterLink as Component | undefined) ?? null;\n});\n\nconst hasRouterLink = computed(() => {\n return Boolean(routerLinkComponent.value);\n});\n\nconst tag = computed<string | Component>(() => {\n if (props.disabled) return 'span';\n if (props.to && routerLinkComponent.value) return routerLinkComponent.value;\n return 'a';\n});\n\nconst linkProps = computed(() => {\n if (props.disabled) return {};\n if (props.to && hasRouterLink.value) return { to: props.to };\n const href = props.href ?? (typeof props.to === 'string' ? props.to : undefined);\n return {\n href,\n ...(props.external ? { target: '_blank', rel: 'noopener noreferrer' } : {}),\n };\n});\n\nconst classes = computed(() => [\n 't-link',\n `t-link--${props.variant}`,\n {\n 'is-disabled': props.disabled,\n },\n]);\n</script>\n\n<template>\n <component\n :is=\"tag\"\n v-bind=\"linkProps\"\n :class=\"classes\"\n :aria-disabled=\"disabled || undefined\"\n :tabindex=\"disabled ? -1 : undefined\"\n >\n <slot />\n </component>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TLink.js","names":[],"sources":["../../src/components/TLink.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, getCurrentInstance, type Component } from 'vue';\n\nexport type TLinkVariant = 'default' | 'muted' | 'danger';\n\nconst props = withDefaults(\n defineProps<{\n to?: string | Record<string, unknown>;\n href?: string;\n external?: boolean;\n disabled?: boolean;\n variant?: TLinkVariant;\n }>(),\n {\n to: undefined,\n href: undefined,\n external: false,\n disabled: false,\n variant: 'default',\n },\n);\n\nconst instance = getCurrentInstance();\n\nconst routerLinkComponent = computed<Component | null>(() => {\n if (!props.to) return null;\n\n return (instance?.appContext.components.RouterLink as Component | undefined) ?? null;\n});\n\nconst hasRouterLink = computed(() => {\n return Boolean(routerLinkComponent.value);\n});\n\nconst tag = computed<string | Component>(() => {\n if (props.disabled) return 'span';\n if (props.to && routerLinkComponent.value) return routerLinkComponent.value;\n return 'a';\n});\n\nconst linkProps = computed(() => {\n if (props.disabled) return {};\n if (props.to && hasRouterLink.value) return { to: props.to };\n const href = props.href ?? (typeof props.to === 'string' ? props.to : undefined);\n return {\n href,\n ...(props.external ? { target: '_blank', rel: 'noopener noreferrer' } : {}),\n };\n});\n\nconst classes = computed(() => [\n 't-link',\n `t-link--${props.variant}`,\n {\n 'is-disabled': props.disabled,\n },\n]);\n</script>\n\n<template>\n <component\n :is=\"tag\"\n v-bind=\"linkProps\"\n :class=\"classes\"\n :aria-disabled=\"disabled || undefined\"\n :tabindex=\"disabled ? -1 : undefined\"\n >\n <slot />\n </component>\n</template>\n"],"mappings":""}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type TLinkVariant = 'default' | 'muted' | 'danger';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
to?: string | Record<string, unknown>;
|
|
4
4
|
href?: string;
|
|
5
5
|
external?: boolean;
|
|
6
6
|
disabled?: boolean;
|
|
7
|
-
variant?:
|
|
7
|
+
variant?: TLinkVariant;
|
|
8
8
|
};
|
|
9
9
|
declare function __VLS_template(): {
|
|
10
10
|
attrs: Partial<{}>;
|
|
@@ -17,7 +17,7 @@ declare function __VLS_template(): {
|
|
|
17
17
|
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
18
18
|
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
19
19
|
disabled: boolean;
|
|
20
|
-
variant:
|
|
20
|
+
variant: TLinkVariant;
|
|
21
21
|
href: string;
|
|
22
22
|
to: string | Record<string, unknown>;
|
|
23
23
|
external: boolean;
|
|
@@ -29,4 +29,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
|
|
|
29
29
|
$slots: S;
|
|
30
30
|
};
|
|
31
31
|
};
|
|
32
|
-
//# sourceMappingURL=
|
|
32
|
+
//# sourceMappingURL=TLink.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TLink.vue.d.ts","sourceRoot":"","sources":["../../src/components/TLink.vue"],"names":[],"mappings":"AA0EA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1D,KAAK,WAAW,GAAG;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,CAAC;AAyDJ,iBAAS,cAAc;WAqCT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAYD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;cAlHN,OAAO;aACR,YAAY;UAHf,MAAM;QADR,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;cAE1B,OAAO;6EA2HpB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
let e=require("vue");var t=(0,e.defineComponent)({__name:`TLink`,props:{to:{default:void 0},href:{default:void 0},external:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},variant:{default:`default`}},setup(t){let n=t,r=(0,e.getCurrentInstance)(),i=(0,e.computed)(()=>n.to?r?.appContext.components.RouterLink??null:null),a=(0,e.computed)(()=>!!i.value),o=(0,e.computed)(()=>n.disabled?`span`:n.to&&i.value?i.value:`a`),s=(0,e.computed)(()=>n.disabled?{}:n.to&&a.value?{to:n.to}:{href:n.href??(typeof n.to==`string`?n.to:void 0),...n.external?{target:`_blank`,rel:`noopener noreferrer`}:{}}),c=(0,e.computed)(()=>[`t-link`,`t-link--${n.variant}`,{"is-disabled":n.disabled}]);return(n,r)=>((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(o.value),(0,e.mergeProps)(s.value,{class:c.value,"aria-disabled":t.disabled||void 0,tabindex:t.disabled?-1:void 0}),{default:(0,e.withCtx)(()=>[(0,e.renderSlot)(n.$slots,`default`)]),_:3},16,[`class`,`aria-disabled`,`tabindex`]))}});exports.default=t;
|
|
2
|
+
//# sourceMappingURL=TLink.vue_vue_type_script_setup_true_lang.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TLink.vue_vue_type_script_setup_true_lang.cjs","names":[],"sources":["../../src/components/TLink.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, getCurrentInstance, type Component } from 'vue';\n\nexport type TLinkVariant = 'default' | 'muted' | 'danger';\n\nconst props = withDefaults(\n defineProps<{\n to?: string | Record<string, unknown>;\n href?: string;\n external?: boolean;\n disabled?: boolean;\n variant?: TLinkVariant;\n }>(),\n {\n to: undefined,\n href: undefined,\n external: false,\n disabled: false,\n variant: 'default',\n },\n);\n\nconst instance = getCurrentInstance();\n\nconst routerLinkComponent = computed<Component | null>(() => {\n if (!props.to) return null;\n\n return (instance?.appContext.components.RouterLink as Component | undefined) ?? null;\n});\n\nconst hasRouterLink = computed(() => {\n return Boolean(routerLinkComponent.value);\n});\n\nconst tag = computed<string | Component>(() => {\n if (props.disabled) return 'span';\n if (props.to && routerLinkComponent.value) return routerLinkComponent.value;\n return 'a';\n});\n\nconst linkProps = computed(() => {\n if (props.disabled) return {};\n if (props.to && hasRouterLink.value) return { to: props.to };\n const href = props.href ?? (typeof props.to === 'string' ? props.to : undefined);\n return {\n href,\n ...(props.external ? { target: '_blank', rel: 'noopener noreferrer' } : {}),\n };\n});\n\nconst classes = computed(() => [\n 't-link',\n `t-link--${props.variant}`,\n {\n 'is-disabled': props.disabled,\n },\n]);\n</script>\n\n<template>\n <component\n :is=\"tag\"\n v-bind=\"linkProps\"\n :class=\"classes\"\n :aria-disabled=\"disabled || undefined\"\n :tabindex=\"disabled ? -1 : undefined\"\n >\n <slot />\n </component>\n</template>\n"],"mappings":"8NAKA,IAAM,EAAQ,EAiBR,GAAA,EAAA,EAAA,mBAAA,CAA8B,EAE9B,GAAA,EAAA,EAAA,SAAA,KACC,EAAM,GAEH,GAAU,WAAW,WAAW,YAAwC,KAF1D,IAGvB,EAEK,GAAA,EAAA,EAAA,SAAA,KACG,EAAQ,EAAoB,KACpC,EAEK,GAAA,EAAA,EAAA,SAAA,KACA,EAAM,SAAiB,OACvB,EAAM,IAAM,EAAoB,MAAc,EAAoB,MAC/D,GACR,EAEK,GAAA,EAAA,EAAA,SAAA,KACA,EAAM,SAAiB,CAAC,EACxB,EAAM,IAAM,EAAc,MAAc,CAAE,GAAI,EAAM,EAAG,EAEpD,CACL,KAFW,EAAM,OAAS,OAAO,EAAM,IAAO,SAAW,EAAM,GAAK,IAAA,IAGpE,GAAI,EAAM,SAAW,CAAE,OAAQ,SAAU,IAAK,qBAAsB,EAAI,CAAC,CAC3E,CACD,EAEK,GAAA,EAAA,EAAA,SAAA,KAAyB,CAC7B,SACA,WAAW,EAAM,UACjB,CACE,cAAe,EAAM,QACvB,CACF,CAAC,kFAKQ,EAAA,KAAG,GAAA,EAAA,EAAA,WAAA,CACA,EAME,MANO,CAChB,MAAO,EAAA,MACP,gBAAe,EAAA,UAAY,IAAA,GAC3B,SAAU,EAAA,SAAQ,GAAQ,IAAA,gCAEnB,EAAA,EAAA,EAAA,WAAA,CAAA,EAAA,OAAA,SAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { computed as e, createBlock as t, defineComponent as n, getCurrentInstance as r, mergeProps as i, openBlock as a, renderSlot as o, resolveDynamicComponent as s, withCtx as c } from "vue";
|
|
2
|
+
//#region src/components/TLink.vue?vue&type=script&setup=true&lang.ts
|
|
3
|
+
var l = /*@__PURE__*/ n({
|
|
4
|
+
__name: "TLink",
|
|
5
|
+
props: {
|
|
6
|
+
to: { default: void 0 },
|
|
7
|
+
href: { default: void 0 },
|
|
8
|
+
external: {
|
|
9
|
+
type: Boolean,
|
|
10
|
+
default: !1
|
|
11
|
+
},
|
|
12
|
+
disabled: {
|
|
13
|
+
type: Boolean,
|
|
14
|
+
default: !1
|
|
15
|
+
},
|
|
16
|
+
variant: { default: "default" }
|
|
17
|
+
},
|
|
18
|
+
setup(n) {
|
|
19
|
+
let l = n, u = r(), d = e(() => l.to ? u?.appContext.components.RouterLink ?? null : null), f = e(() => !!d.value), p = e(() => l.disabled ? "span" : l.to && d.value ? d.value : "a"), m = e(() => l.disabled ? {} : l.to && f.value ? { to: l.to } : {
|
|
20
|
+
href: l.href ?? (typeof l.to == "string" ? l.to : void 0),
|
|
21
|
+
...l.external ? {
|
|
22
|
+
target: "_blank",
|
|
23
|
+
rel: "noopener noreferrer"
|
|
24
|
+
} : {}
|
|
25
|
+
}), h = e(() => [
|
|
26
|
+
"t-link",
|
|
27
|
+
`t-link--${l.variant}`,
|
|
28
|
+
{ "is-disabled": l.disabled }
|
|
29
|
+
]);
|
|
30
|
+
return (e, r) => (a(), t(s(p.value), i(m.value, {
|
|
31
|
+
class: h.value,
|
|
32
|
+
"aria-disabled": n.disabled || void 0,
|
|
33
|
+
tabindex: n.disabled ? -1 : void 0
|
|
34
|
+
}), {
|
|
35
|
+
default: c(() => [o(e.$slots, "default")]),
|
|
36
|
+
_: 3
|
|
37
|
+
}, 16, [
|
|
38
|
+
"class",
|
|
39
|
+
"aria-disabled",
|
|
40
|
+
"tabindex"
|
|
41
|
+
]));
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
//#endregion
|
|
45
|
+
export { l as default };
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=TLink.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TLink.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/components/TLink.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, getCurrentInstance, type Component } from 'vue';\n\nexport type TLinkVariant = 'default' | 'muted' | 'danger';\n\nconst props = withDefaults(\n defineProps<{\n to?: string | Record<string, unknown>;\n href?: string;\n external?: boolean;\n disabled?: boolean;\n variant?: TLinkVariant;\n }>(),\n {\n to: undefined,\n href: undefined,\n external: false,\n disabled: false,\n variant: 'default',\n },\n);\n\nconst instance = getCurrentInstance();\n\nconst routerLinkComponent = computed<Component | null>(() => {\n if (!props.to) return null;\n\n return (instance?.appContext.components.RouterLink as Component | undefined) ?? null;\n});\n\nconst hasRouterLink = computed(() => {\n return Boolean(routerLinkComponent.value);\n});\n\nconst tag = computed<string | Component>(() => {\n if (props.disabled) return 'span';\n if (props.to && routerLinkComponent.value) return routerLinkComponent.value;\n return 'a';\n});\n\nconst linkProps = computed(() => {\n if (props.disabled) return {};\n if (props.to && hasRouterLink.value) return { to: props.to };\n const href = props.href ?? (typeof props.to === 'string' ? props.to : undefined);\n return {\n href,\n ...(props.external ? { target: '_blank', rel: 'noopener noreferrer' } : {}),\n };\n});\n\nconst classes = computed(() => [\n 't-link',\n `t-link--${props.variant}`,\n {\n 'is-disabled': props.disabled,\n },\n]);\n</script>\n\n<template>\n <component\n :is=\"tag\"\n v-bind=\"linkProps\"\n :class=\"classes\"\n :aria-disabled=\"disabled || undefined\"\n :tabindex=\"disabled ? -1 : undefined\"\n >\n <slot />\n </component>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAKA,IAAM,IAAQ,GAiBR,IAAW,EAAmB,GAE9B,IAAsB,QACrB,EAAM,KAEH,GAAU,WAAW,WAAW,cAAwC,OAF1D,IAGvB,GAEK,IAAgB,QACb,EAAQ,EAAoB,KACpC,GAEK,IAAM,QACN,EAAM,WAAiB,SACvB,EAAM,MAAM,EAAoB,QAAc,EAAoB,QAC/D,GACR,GAEK,IAAY,QACZ,EAAM,WAAiB,CAAC,IACxB,EAAM,MAAM,EAAc,QAAc,EAAE,IAAI,EAAM,GAAG,IAEpD;GACL,MAFW,EAAM,SAAS,OAAO,EAAM,MAAO,WAAW,EAAM,KAAK,KAAA;GAGpE,GAAI,EAAM,WAAW;IAAE,QAAQ;IAAU,KAAK;GAAsB,IAAI,CAAC;EAC3E,CACD,GAEK,IAAU,QAAe;GAC7B;GACA,WAAW,EAAM;GACjB,EACE,eAAe,EAAM,SACvB;EACF,CAAC;yBAIC,EAQY,EAPL,EAAA,KAAG,GADV,EAEU,EAME,OANO;GAChB,OAAO,EAAA;GACP,iBAAe,EAAA,YAAY,KAAA;GAC3B,UAAU,EAAA,WAAQ,KAAQ,KAAA;;oBAEnB,CAAR,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TMarkdownEditor.cjs","names":[],"sources":["../../src/components/TMarkdownEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, useAttrs, nextTick } from 'vue';\nimport type { TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n size?: TSize;\n disabled?: boolean;\n placeholder?: string;\n uploadImage?: (file: File) => Promise<string>;\n }>(),\n {\n modelValue: '',\n size: 'md',\n disabled: false,\n placeholder: 'Write your markdown here...',\n uploadImage: undefined,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n 'image-upload': [file: File, url: string];\n 'image-upload-error': [file: File, error: Error];\n}>();\n\ndefineSlots<{\n toolbar?: () => unknown;\n}>();\n\nconst attrs = useAttrs();\nconst textareaRef = ref<HTMLTextAreaElement | null>(null);\nconst isUploading = ref(false);\n\nconst rootClasses = computed(() => [\n 't-md-editor',\n `t-md-editor--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-uploading': isUploading.value,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst editorAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst stringValue = computed(() => `${props.modelValue ?? ''}`);\n\nconst onInput = (event: Event) => {\n emit('update:modelValue', (event.target as HTMLTextAreaElement).value);\n};\n\n/* ──────── Toolbar Actions ──────── */\n\nconst insertAtCursor = (before: string, after = '') => {\n const el = textareaRef.value;\n if (!el) return;\n\n const start = el.selectionStart;\n const end = el.selectionEnd;\n const text = stringValue.value;\n const selected = text.slice(start, end);\n\n const newText = text.slice(0, start) + before + selected + after + text.slice(end);\n emit('update:modelValue', newText);\n\n nextTick(() => {\n el.focus();\n const cursorPos = selected\n ? start + before.length + selected.length + after.length\n : start + before.length;\n el.setSelectionRange(cursorPos, cursorPos);\n });\n};\n\nconst insertHeading = (level: number) => {\n const prefix = '#'.repeat(level) + ' ';\n const el = textareaRef.value;\n if (!el) return;\n\n const start = el.selectionStart;\n const text = stringValue.value;\n\n // Find start of current line\n const lineStart = text.lastIndexOf('\\n', start - 1) + 1;\n const lineEnd = text.indexOf('\\n', start);\n const actualEnd = lineEnd === -1 ? text.length : lineEnd;\n const line = text.slice(lineStart, actualEnd);\n\n // Strip existing heading markers\n const stripped = line.replace(/^#{1,6}\\s*/, '');\n const newLine = prefix + stripped;\n\n const newText = text.slice(0, lineStart) + newLine + text.slice(actualEnd);\n emit('update:modelValue', newText);\n\n nextTick(() => {\n el.focus();\n el.setSelectionRange(lineStart + newLine.length, lineStart + newLine.length);\n });\n};\n\nconst insertBold = () => insertAtCursor('**', '**');\nconst insertItalic = () => insertAtCursor('_', '_');\nconst insertCode = () => insertAtCursor('`', '`');\nconst insertCodeBlock = () => insertAtCursor('\\n```\\n', '\\n```\\n');\nconst insertLink = () => insertAtCursor('[', '](url)');\nconst insertList = () => insertAtCursor('\\n- ');\nconst insertOrderedList = () => insertAtCursor('\\n1. ');\nconst insertQuote = () => insertAtCursor('\\n> ');\nconst insertHr = () => insertAtCursor('\\n---\\n');\n\n/* ──────── Markdown → HTML rendering ──────── */\n\nconst renderedHtml = computed(() => {\n return markdownToHtml(stringValue.value);\n});\n\nfunction escapeHtml(text: string): string {\n return text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\nfunction markdownToHtml(md: string): string {\n if (!md) return '';\n\n const lines = md.split('\\n');\n const html: string[] = [];\n let inCodeBlock = false;\n let inList = false;\n let inOrderedList = false;\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n\n // Code blocks\n if (line.trim().startsWith('```')) {\n if (inCodeBlock) {\n html.push('</code></pre>');\n inCodeBlock = false;\n } else {\n inCodeBlock = true;\n html.push('<pre class=\"t-md-editor__code-block\"><code>');\n }\n continue;\n }\n\n if (inCodeBlock) {\n html.push(escapeHtml(line));\n html.push('\\n');\n continue;\n }\n\n // Close open lists if needed\n const isUnorderedListItem = /^[-*+]\\s/.test(line.trim());\n const isOrderedListItem = /^\\d+\\.\\s/.test(line.trim());\n\n if (inList && !isUnorderedListItem) {\n html.push('</ul>');\n inList = false;\n }\n if (inOrderedList && !isOrderedListItem) {\n html.push('</ol>');\n inOrderedList = false;\n }\n\n // Horizontal rule\n if (/^(-{3,}|_{3,}|\\*{3,})$/.test(line.trim())) {\n html.push('<hr class=\"t-md-editor__hr\" />');\n continue;\n }\n\n // Headings\n const headingMatch = line.match(/^(#{1,6})\\s+(.+)$/);\n if (headingMatch) {\n const level = headingMatch[1].length;\n html.push(`<h${level} class=\"t-md-editor__heading t-md-editor__heading--${level}\">${inlineMarkdown(escapeHtml(headingMatch[2]))}</h${level}>`);\n continue;\n }\n\n // Blockquote\n if (line.trim().startsWith('> ')) {\n html.push(`<blockquote class=\"t-md-editor__blockquote\">${inlineMarkdown(escapeHtml(line.trim().slice(2)))}</blockquote>`);\n continue;\n }\n\n // Unordered list\n if (isUnorderedListItem) {\n if (!inList) {\n html.push('<ul class=\"t-md-editor__list\">');\n inList = true;\n }\n html.push(`<li>${inlineMarkdown(escapeHtml(line.trim().slice(2)))}</li>`);\n continue;\n }\n\n // Ordered list\n if (isOrderedListItem) {\n if (!inOrderedList) {\n html.push('<ol class=\"t-md-editor__list t-md-editor__list--ordered\">');\n inOrderedList = true;\n }\n const content = line.trim().replace(/^\\d+\\.\\s/, '');\n html.push(`<li>${inlineMarkdown(escapeHtml(content))}</li>`);\n continue;\n }\n\n // Empty line\n if (line.trim() === '') {\n html.push('<br />');\n continue;\n }\n\n // Paragraph\n html.push(`<p class=\"t-md-editor__paragraph\">${inlineMarkdown(escapeHtml(line))}</p>`);\n }\n\n // Close any open blocks\n if (inCodeBlock) html.push('</code></pre>');\n if (inList) html.push('</ul>');\n if (inOrderedList) html.push('</ol>');\n\n return html.join('\\n');\n}\n\nfunction inlineMarkdown(text: string): string {\n // Images: \n text = text.replace(/!\\[([^\\]]*)\\]\\(([^)]+)\\)/g, '<img src=\"$2\" alt=\"$1\" class=\"t-md-editor__image\" loading=\"lazy\" />');\n // Links: [text](url)\n text = text.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '<a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>');\n // Bold: **text**\n text = text.replace(/\\*\\*(.+?)\\*\\*/g, '<strong>$1</strong>');\n // Italic: _text_ or *text*\n text = text.replace(/_(.+?)_/g, '<em>$1</em>');\n text = text.replace(/(?<!\\*)\\*(?!\\*)(.+?)(?<!\\*)\\*(?!\\*)/g, '<em>$1</em>');\n // Inline code: `text`\n text = text.replace(/`(.+?)`/g, '<code class=\"t-md-editor__inline-code\">$1</code>');\n // Strikethrough: ~~text~~\n text = text.replace(/~~(.+?)~~/g, '<del>$1</del>');\n return text;\n}\n\n/* ──────── Image paste / drop handling ──────── */\n\nconst handlePaste = async (event: ClipboardEvent) => {\n if (props.disabled) return;\n\n const items = event.clipboardData?.items;\n if (!items) return;\n\n for (const item of items) {\n if (item.type.startsWith('image/')) {\n event.preventDefault();\n const file = item.getAsFile();\n if (file) await processImageUpload(file);\n return;\n }\n }\n};\n\nconst handleDrop = async (event: DragEvent) => {\n if (props.disabled) return;\n\n const files = event.dataTransfer?.files;\n if (!files) return;\n\n for (const file of files) {\n if (file.type.startsWith('image/')) {\n event.preventDefault();\n await processImageUpload(file);\n }\n }\n};\n\nconst handleDragOver = (event: DragEvent) => {\n if (props.disabled) return;\n event.preventDefault();\n};\n\nconst processImageUpload = async (file: File) => {\n if (!props.uploadImage) {\n // Fallback: insert a placeholder with the file name\n insertAtCursor(`![${file.name}]()`);\n return;\n }\n\n // Insert uploading placeholder\n const placeholder = `![Uploading ${file.name}...]()`;\n insertAtCursor(placeholder);\n isUploading.value = true;\n\n try {\n const url = props.uploadImage(file);\n const resolvedUrl = url instanceof Promise ? await url : url;\n\n // Replace placeholder with actual URL\n const currentValue = stringValue.value;\n const newValue = currentValue.replace(placeholder, ``);\n emit('update:modelValue', newValue);\n emit('image-upload', file, resolvedUrl);\n } catch (err) {\n // Remove placeholder on error\n const currentValue = stringValue.value;\n const newValue = currentValue.replace(placeholder, '');\n emit('update:modelValue', newValue);\n emit('image-upload-error', file, err instanceof Error ? err : new Error(String(err)));\n } finally {\n isUploading.value = false;\n }\n};\n\n/* ──────── Keyboard shortcuts ──────── */\n\nconst handleKeydown = (event: KeyboardEvent) => {\n if (props.disabled) return;\n\n const mod = event.metaKey || event.ctrlKey;\n if (!mod) return;\n\n switch (event.key) {\n case 'b':\n event.preventDefault();\n insertBold();\n break;\n case 'i':\n event.preventDefault();\n insertItalic();\n break;\n case 'k':\n event.preventDefault();\n insertLink();\n break;\n case 'e':\n event.preventDefault();\n insertCode();\n break;\n }\n};\n\n</script>\n\n<template>\n <div\n v-bind=\"editorAttrs\"\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <!-- Toolbar -->\n <div\n class=\"t-md-editor__toolbar\"\n role=\"toolbar\"\n aria-label=\"Markdown formatting\"\n >\n <div class=\"t-md-editor__toolbar-group\">\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Heading 1 (H1)\"\n :disabled=\"disabled\"\n @click=\"insertHeading(1)\"\n >\n H1\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Heading 2 (H2)\"\n :disabled=\"disabled\"\n @click=\"insertHeading(2)\"\n >\n H2\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Heading 3 (H3)\"\n :disabled=\"disabled\"\n @click=\"insertHeading(3)\"\n >\n H3\n </button>\n </div>\n\n <div\n class=\"t-md-editor__toolbar-divider\"\n role=\"separator\"\n />\n\n <div class=\"t-md-editor__toolbar-group\">\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Bold (Ctrl+B)\"\n :disabled=\"disabled\"\n @click=\"insertBold\"\n >\n <strong>B</strong>\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Italic (Ctrl+I)\"\n :disabled=\"disabled\"\n @click=\"insertItalic\"\n >\n <em>I</em>\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Strikethrough\"\n :disabled=\"disabled\"\n @click=\"insertAtCursor('~~', '~~')\"\n >\n <del>S</del>\n </button>\n </div>\n\n <div\n class=\"t-md-editor__toolbar-divider\"\n role=\"separator\"\n />\n\n <div class=\"t-md-editor__toolbar-group\">\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Inline code (Ctrl+E)\"\n :disabled=\"disabled\"\n @click=\"insertCode\"\n >\n </>\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Code block\"\n :disabled=\"disabled\"\n @click=\"insertCodeBlock\"\n >\n { }\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Link (Ctrl+K)\"\n :disabled=\"disabled\"\n @click=\"insertLink\"\n >\n 🔗\n </button>\n </div>\n\n <div\n class=\"t-md-editor__toolbar-divider\"\n role=\"separator\"\n />\n\n <div class=\"t-md-editor__toolbar-group\">\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Unordered list\"\n :disabled=\"disabled\"\n @click=\"insertList\"\n >\n • List\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Ordered list\"\n :disabled=\"disabled\"\n @click=\"insertOrderedList\"\n >\n 1. List\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Blockquote\"\n :disabled=\"disabled\"\n @click=\"insertQuote\"\n >\n >\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Horizontal rule\"\n :disabled=\"disabled\"\n @click=\"insertHr\"\n >\n ―\n </button>\n </div>\n\n <slot name=\"toolbar\" />\n </div>\n\n <!-- Editor body -->\n <div class=\"t-md-editor__body\">\n <!-- Write pane -->\n <div\n class=\"t-md-editor__pane t-md-editor__pane--write\"\n >\n <textarea\n ref=\"textareaRef\"\n class=\"t-md-editor__textarea\"\n :value=\"stringValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-label=\"placeholder\"\n @input=\"onInput\"\n @paste=\"handlePaste\"\n @drop=\"handleDrop\"\n @dragover=\"handleDragOver\"\n @keydown=\"handleKeydown\"\n />\n </div>\n\n <!-- Preview pane -->\n <div\n class=\"t-md-editor__pane t-md-editor__pane--preview\"\n aria-label=\"Markdown preview\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n class=\"t-md-editor__preview\"\n v-html=\"renderedHtml\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n\n <!-- Upload indicator -->\n <div\n v-if=\"isUploading\"\n class=\"t-md-editor__upload-bar\"\n role=\"status\"\n aria-live=\"polite\"\n >\n Uploading image…\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TMarkdownEditor.js","names":[],"sources":["../../src/components/TMarkdownEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, useAttrs, nextTick } from 'vue';\nimport type { TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n size?: TSize;\n disabled?: boolean;\n placeholder?: string;\n uploadImage?: (file: File) => Promise<string>;\n }>(),\n {\n modelValue: '',\n size: 'md',\n disabled: false,\n placeholder: 'Write your markdown here...',\n uploadImage: undefined,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n 'image-upload': [file: File, url: string];\n 'image-upload-error': [file: File, error: Error];\n}>();\n\ndefineSlots<{\n toolbar?: () => unknown;\n}>();\n\nconst attrs = useAttrs();\nconst textareaRef = ref<HTMLTextAreaElement | null>(null);\nconst isUploading = ref(false);\n\nconst rootClasses = computed(() => [\n 't-md-editor',\n `t-md-editor--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-uploading': isUploading.value,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst editorAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst stringValue = computed(() => `${props.modelValue ?? ''}`);\n\nconst onInput = (event: Event) => {\n emit('update:modelValue', (event.target as HTMLTextAreaElement).value);\n};\n\n/* ──────── Toolbar Actions ──────── */\n\nconst insertAtCursor = (before: string, after = '') => {\n const el = textareaRef.value;\n if (!el) return;\n\n const start = el.selectionStart;\n const end = el.selectionEnd;\n const text = stringValue.value;\n const selected = text.slice(start, end);\n\n const newText = text.slice(0, start) + before + selected + after + text.slice(end);\n emit('update:modelValue', newText);\n\n nextTick(() => {\n el.focus();\n const cursorPos = selected\n ? start + before.length + selected.length + after.length\n : start + before.length;\n el.setSelectionRange(cursorPos, cursorPos);\n });\n};\n\nconst insertHeading = (level: number) => {\n const prefix = '#'.repeat(level) + ' ';\n const el = textareaRef.value;\n if (!el) return;\n\n const start = el.selectionStart;\n const text = stringValue.value;\n\n // Find start of current line\n const lineStart = text.lastIndexOf('\\n', start - 1) + 1;\n const lineEnd = text.indexOf('\\n', start);\n const actualEnd = lineEnd === -1 ? text.length : lineEnd;\n const line = text.slice(lineStart, actualEnd);\n\n // Strip existing heading markers\n const stripped = line.replace(/^#{1,6}\\s*/, '');\n const newLine = prefix + stripped;\n\n const newText = text.slice(0, lineStart) + newLine + text.slice(actualEnd);\n emit('update:modelValue', newText);\n\n nextTick(() => {\n el.focus();\n el.setSelectionRange(lineStart + newLine.length, lineStart + newLine.length);\n });\n};\n\nconst insertBold = () => insertAtCursor('**', '**');\nconst insertItalic = () => insertAtCursor('_', '_');\nconst insertCode = () => insertAtCursor('`', '`');\nconst insertCodeBlock = () => insertAtCursor('\\n```\\n', '\\n```\\n');\nconst insertLink = () => insertAtCursor('[', '](url)');\nconst insertList = () => insertAtCursor('\\n- ');\nconst insertOrderedList = () => insertAtCursor('\\n1. ');\nconst insertQuote = () => insertAtCursor('\\n> ');\nconst insertHr = () => insertAtCursor('\\n---\\n');\n\n/* ──────── Markdown → HTML rendering ──────── */\n\nconst renderedHtml = computed(() => {\n return markdownToHtml(stringValue.value);\n});\n\nfunction escapeHtml(text: string): string {\n return text\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\nfunction markdownToHtml(md: string): string {\n if (!md) return '';\n\n const lines = md.split('\\n');\n const html: string[] = [];\n let inCodeBlock = false;\n let inList = false;\n let inOrderedList = false;\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n\n // Code blocks\n if (line.trim().startsWith('```')) {\n if (inCodeBlock) {\n html.push('</code></pre>');\n inCodeBlock = false;\n } else {\n inCodeBlock = true;\n html.push('<pre class=\"t-md-editor__code-block\"><code>');\n }\n continue;\n }\n\n if (inCodeBlock) {\n html.push(escapeHtml(line));\n html.push('\\n');\n continue;\n }\n\n // Close open lists if needed\n const isUnorderedListItem = /^[-*+]\\s/.test(line.trim());\n const isOrderedListItem = /^\\d+\\.\\s/.test(line.trim());\n\n if (inList && !isUnorderedListItem) {\n html.push('</ul>');\n inList = false;\n }\n if (inOrderedList && !isOrderedListItem) {\n html.push('</ol>');\n inOrderedList = false;\n }\n\n // Horizontal rule\n if (/^(-{3,}|_{3,}|\\*{3,})$/.test(line.trim())) {\n html.push('<hr class=\"t-md-editor__hr\" />');\n continue;\n }\n\n // Headings\n const headingMatch = line.match(/^(#{1,6})\\s+(.+)$/);\n if (headingMatch) {\n const level = headingMatch[1].length;\n html.push(`<h${level} class=\"t-md-editor__heading t-md-editor__heading--${level}\">${inlineMarkdown(escapeHtml(headingMatch[2]))}</h${level}>`);\n continue;\n }\n\n // Blockquote\n if (line.trim().startsWith('> ')) {\n html.push(`<blockquote class=\"t-md-editor__blockquote\">${inlineMarkdown(escapeHtml(line.trim().slice(2)))}</blockquote>`);\n continue;\n }\n\n // Unordered list\n if (isUnorderedListItem) {\n if (!inList) {\n html.push('<ul class=\"t-md-editor__list\">');\n inList = true;\n }\n html.push(`<li>${inlineMarkdown(escapeHtml(line.trim().slice(2)))}</li>`);\n continue;\n }\n\n // Ordered list\n if (isOrderedListItem) {\n if (!inOrderedList) {\n html.push('<ol class=\"t-md-editor__list t-md-editor__list--ordered\">');\n inOrderedList = true;\n }\n const content = line.trim().replace(/^\\d+\\.\\s/, '');\n html.push(`<li>${inlineMarkdown(escapeHtml(content))}</li>`);\n continue;\n }\n\n // Empty line\n if (line.trim() === '') {\n html.push('<br />');\n continue;\n }\n\n // Paragraph\n html.push(`<p class=\"t-md-editor__paragraph\">${inlineMarkdown(escapeHtml(line))}</p>`);\n }\n\n // Close any open blocks\n if (inCodeBlock) html.push('</code></pre>');\n if (inList) html.push('</ul>');\n if (inOrderedList) html.push('</ol>');\n\n return html.join('\\n');\n}\n\nfunction inlineMarkdown(text: string): string {\n // Images: \n text = text.replace(/!\\[([^\\]]*)\\]\\(([^)]+)\\)/g, '<img src=\"$2\" alt=\"$1\" class=\"t-md-editor__image\" loading=\"lazy\" />');\n // Links: [text](url)\n text = text.replace(/\\[([^\\]]+)\\]\\(([^)]+)\\)/g, '<a href=\"$2\" target=\"_blank\" rel=\"noopener noreferrer\">$1</a>');\n // Bold: **text**\n text = text.replace(/\\*\\*(.+?)\\*\\*/g, '<strong>$1</strong>');\n // Italic: _text_ or *text*\n text = text.replace(/_(.+?)_/g, '<em>$1</em>');\n text = text.replace(/(?<!\\*)\\*(?!\\*)(.+?)(?<!\\*)\\*(?!\\*)/g, '<em>$1</em>');\n // Inline code: `text`\n text = text.replace(/`(.+?)`/g, '<code class=\"t-md-editor__inline-code\">$1</code>');\n // Strikethrough: ~~text~~\n text = text.replace(/~~(.+?)~~/g, '<del>$1</del>');\n return text;\n}\n\n/* ──────── Image paste / drop handling ──────── */\n\nconst handlePaste = async (event: ClipboardEvent) => {\n if (props.disabled) return;\n\n const items = event.clipboardData?.items;\n if (!items) return;\n\n for (const item of items) {\n if (item.type.startsWith('image/')) {\n event.preventDefault();\n const file = item.getAsFile();\n if (file) await processImageUpload(file);\n return;\n }\n }\n};\n\nconst handleDrop = async (event: DragEvent) => {\n if (props.disabled) return;\n\n const files = event.dataTransfer?.files;\n if (!files) return;\n\n for (const file of files) {\n if (file.type.startsWith('image/')) {\n event.preventDefault();\n await processImageUpload(file);\n }\n }\n};\n\nconst handleDragOver = (event: DragEvent) => {\n if (props.disabled) return;\n event.preventDefault();\n};\n\nconst processImageUpload = async (file: File) => {\n if (!props.uploadImage) {\n // Fallback: insert a placeholder with the file name\n insertAtCursor(`![${file.name}]()`);\n return;\n }\n\n // Insert uploading placeholder\n const placeholder = `![Uploading ${file.name}...]()`;\n insertAtCursor(placeholder);\n isUploading.value = true;\n\n try {\n const url = props.uploadImage(file);\n const resolvedUrl = url instanceof Promise ? await url : url;\n\n // Replace placeholder with actual URL\n const currentValue = stringValue.value;\n const newValue = currentValue.replace(placeholder, ``);\n emit('update:modelValue', newValue);\n emit('image-upload', file, resolvedUrl);\n } catch (err) {\n // Remove placeholder on error\n const currentValue = stringValue.value;\n const newValue = currentValue.replace(placeholder, '');\n emit('update:modelValue', newValue);\n emit('image-upload-error', file, err instanceof Error ? err : new Error(String(err)));\n } finally {\n isUploading.value = false;\n }\n};\n\n/* ──────── Keyboard shortcuts ──────── */\n\nconst handleKeydown = (event: KeyboardEvent) => {\n if (props.disabled) return;\n\n const mod = event.metaKey || event.ctrlKey;\n if (!mod) return;\n\n switch (event.key) {\n case 'b':\n event.preventDefault();\n insertBold();\n break;\n case 'i':\n event.preventDefault();\n insertItalic();\n break;\n case 'k':\n event.preventDefault();\n insertLink();\n break;\n case 'e':\n event.preventDefault();\n insertCode();\n break;\n }\n};\n\n</script>\n\n<template>\n <div\n v-bind=\"editorAttrs\"\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <!-- Toolbar -->\n <div\n class=\"t-md-editor__toolbar\"\n role=\"toolbar\"\n aria-label=\"Markdown formatting\"\n >\n <div class=\"t-md-editor__toolbar-group\">\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Heading 1 (H1)\"\n :disabled=\"disabled\"\n @click=\"insertHeading(1)\"\n >\n H1\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Heading 2 (H2)\"\n :disabled=\"disabled\"\n @click=\"insertHeading(2)\"\n >\n H2\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Heading 3 (H3)\"\n :disabled=\"disabled\"\n @click=\"insertHeading(3)\"\n >\n H3\n </button>\n </div>\n\n <div\n class=\"t-md-editor__toolbar-divider\"\n role=\"separator\"\n />\n\n <div class=\"t-md-editor__toolbar-group\">\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Bold (Ctrl+B)\"\n :disabled=\"disabled\"\n @click=\"insertBold\"\n >\n <strong>B</strong>\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Italic (Ctrl+I)\"\n :disabled=\"disabled\"\n @click=\"insertItalic\"\n >\n <em>I</em>\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Strikethrough\"\n :disabled=\"disabled\"\n @click=\"insertAtCursor('~~', '~~')\"\n >\n <del>S</del>\n </button>\n </div>\n\n <div\n class=\"t-md-editor__toolbar-divider\"\n role=\"separator\"\n />\n\n <div class=\"t-md-editor__toolbar-group\">\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Inline code (Ctrl+E)\"\n :disabled=\"disabled\"\n @click=\"insertCode\"\n >\n </>\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Code block\"\n :disabled=\"disabled\"\n @click=\"insertCodeBlock\"\n >\n { }\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Link (Ctrl+K)\"\n :disabled=\"disabled\"\n @click=\"insertLink\"\n >\n 🔗\n </button>\n </div>\n\n <div\n class=\"t-md-editor__toolbar-divider\"\n role=\"separator\"\n />\n\n <div class=\"t-md-editor__toolbar-group\">\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Unordered list\"\n :disabled=\"disabled\"\n @click=\"insertList\"\n >\n • List\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Ordered list\"\n :disabled=\"disabled\"\n @click=\"insertOrderedList\"\n >\n 1. List\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Blockquote\"\n :disabled=\"disabled\"\n @click=\"insertQuote\"\n >\n >\n </button>\n <button\n type=\"button\"\n class=\"t-md-editor__toolbar-btn\"\n title=\"Horizontal rule\"\n :disabled=\"disabled\"\n @click=\"insertHr\"\n >\n ―\n </button>\n </div>\n\n <slot name=\"toolbar\" />\n </div>\n\n <!-- Editor body -->\n <div class=\"t-md-editor__body\">\n <!-- Write pane -->\n <div\n class=\"t-md-editor__pane t-md-editor__pane--write\"\n >\n <textarea\n ref=\"textareaRef\"\n class=\"t-md-editor__textarea\"\n :value=\"stringValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-label=\"placeholder\"\n @input=\"onInput\"\n @paste=\"handlePaste\"\n @drop=\"handleDrop\"\n @dragover=\"handleDragOver\"\n @keydown=\"handleKeydown\"\n />\n </div>\n\n <!-- Preview pane -->\n <div\n class=\"t-md-editor__pane t-md-editor__pane--preview\"\n aria-label=\"Markdown preview\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <div\n class=\"t-md-editor__preview\"\n v-html=\"renderedHtml\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n\n <!-- Upload indicator -->\n <div\n v-if=\"isUploading\"\n class=\"t-md-editor__upload-bar\"\n role=\"status\"\n aria-live=\"polite\"\n >\n Uploading image…\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TSize } from '../types/contracts';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
modelValue?: string;
|
|
4
|
-
size?:
|
|
4
|
+
size?: TSize;
|
|
5
5
|
disabled?: boolean;
|
|
6
6
|
placeholder?: string;
|
|
7
7
|
uploadImage?: (file: File) => Promise<string>;
|
|
@@ -30,7 +30,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
|
|
|
30
30
|
}>, {
|
|
31
31
|
modelValue: string;
|
|
32
32
|
disabled: boolean;
|
|
33
|
-
size:
|
|
33
|
+
size: TSize;
|
|
34
34
|
placeholder: string;
|
|
35
35
|
uploadImage: (file: File) => Promise<string>;
|
|
36
36
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
@@ -43,4 +43,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
|
|
|
43
43
|
$slots: S;
|
|
44
44
|
};
|
|
45
45
|
};
|
|
46
|
-
//# sourceMappingURL=
|
|
46
|
+
//# sourceMappingURL=TMarkdownEditor.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TMarkdownEditor.vue.d.ts","sourceRoot":"","sources":["../../src/components/TMarkdownEditor.vue"],"names":[],"mappings":"AAmjBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAMhD,KAAK,WAAW,GAAG;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C,CAAC;AA+VJ,iBAAS,cAAc;WAkMT,OAAO,IAA6B;;kBA7gBtC,MAAM,OAAO;;kBAAb,MAAM,OAAO;;;;;;EAkhBxB;AAiCD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;gBA7kBJ,MAAM;cAER,OAAO;UADX,KAAK;iBAEE,MAAM;iBACN,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC;;;OAklB/C,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
let e=require("vue");var t={class:`t-md-editor__toolbar`,role:`toolbar`,"aria-label":`Markdown formatting`},n={class:`t-md-editor__toolbar-group`},r=[`disabled`],i=[`disabled`],a=[`disabled`],o={class:`t-md-editor__toolbar-group`},s=[`disabled`],c=[`disabled`],l=[`disabled`],u={class:`t-md-editor__toolbar-group`},d=[`disabled`],f=[`disabled`],p=[`disabled`],m={class:`t-md-editor__toolbar-group`},h=[`disabled`],g=[`disabled`],_=[`disabled`],ee=[`disabled`],v={class:`t-md-editor__body`},y={class:`t-md-editor__pane t-md-editor__pane--write`},b=[`value`,`placeholder`,`disabled`,`aria-label`],x={class:`t-md-editor__pane t-md-editor__pane--preview`,"aria-label":`Markdown preview`},S=[`innerHTML`],C={key:0,class:`t-md-editor__upload-bar`,role:`status`,"aria-live":`polite`},w=(0,e.defineComponent)({inheritAttrs:!1,__name:`TMarkdownEditor`,props:{modelValue:{default:``},size:{default:`md`},disabled:{type:Boolean,default:!1},placeholder:{default:`Write your markdown here...`},uploadImage:{type:Function,default:void 0}},emits:[`update:modelValue`,`image-upload`,`image-upload-error`],setup(w,{emit:T}){let E=w,D=T,O=(0,e.useAttrs)(),k=(0,e.ref)(null),A=(0,e.ref)(!1),j=(0,e.computed)(()=>[`t-md-editor`,`t-md-editor--${E.size}`,{"is-disabled":E.disabled,"is-uploading":A.value},O.class]),M=(0,e.computed)(()=>O.style),N=(0,e.computed)(()=>{let{class:e,style:t,...n}=O;return n}),P=(0,e.computed)(()=>`${E.modelValue??``}`),F=e=>{D(`update:modelValue`,e.target.value)},I=(t,n=``)=>{let r=k.value;if(!r)return;let i=r.selectionStart,a=r.selectionEnd,o=P.value,s=o.slice(i,a),c=o.slice(0,i)+t+s+n+o.slice(a);D(`update:modelValue`,c),(0,e.nextTick)(()=>{r.focus();let e=s?i+t.length+s.length+n.length:i+t.length;r.setSelectionRange(e,e)})},L=t=>{let n=`#`.repeat(t)+` `,r=k.value;if(!r)return;let i=r.selectionStart,a=P.value,o=a.lastIndexOf(`
|
|
2
|
+
`,i-1)+1,s=a.indexOf(`
|
|
3
|
+
`,i),c=s===-1?a.length:s,l=n+a.slice(o,c).replace(/^#{1,6}\s*/,``),u=a.slice(0,o)+l+a.slice(c);D(`update:modelValue`,u),(0,e.nextTick)(()=>{r.focus(),r.setSelectionRange(o+l.length,o+l.length)})},R=()=>I(`**`,`**`),z=()=>I(`_`,`_`),B=()=>I("`","`"),V=()=>I("\n```\n","\n```\n"),H=()=>I(`[`,`](url)`),U=()=>I(`
|
|
4
|
+
- `),W=()=>I(`
|
|
5
|
+
1. `),G=()=>I(`
|
|
6
|
+
> `),K=()=>I(`
|
|
7
|
+
---
|
|
8
|
+
`),q=(0,e.computed)(()=>Y(P.value));function J(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function Y(e){if(!e)return``;let t=e.split(`
|
|
9
|
+
`),n=[],r=!1,i=!1,a=!1;for(let e=0;e<t.length;e++){let o=t[e];if(o.trim().startsWith("```")){r?(n.push(`</code></pre>`),r=!1):(r=!0,n.push(`<pre class="t-md-editor__code-block"><code>`));continue}if(r){n.push(J(o)),n.push(`
|
|
10
|
+
`);continue}let s=/^[-*+]\s/.test(o.trim()),c=/^\d+\.\s/.test(o.trim());if(i&&!s&&(n.push(`</ul>`),i=!1),a&&!c&&(n.push(`</ol>`),a=!1),/^(-{3,}|_{3,}|\*{3,})$/.test(o.trim())){n.push(`<hr class="t-md-editor__hr" />`);continue}let l=o.match(/^(#{1,6})\s+(.+)$/);if(l){let e=l[1].length;n.push(`<h${e} class="t-md-editor__heading t-md-editor__heading--${e}">${X(J(l[2]))}</h${e}>`);continue}if(o.trim().startsWith(`> `)){n.push(`<blockquote class="t-md-editor__blockquote">${X(J(o.trim().slice(2)))}</blockquote>`);continue}if(s){i||=(n.push(`<ul class="t-md-editor__list">`),!0),n.push(`<li>${X(J(o.trim().slice(2)))}</li>`);continue}if(c){a||=(n.push(`<ol class="t-md-editor__list t-md-editor__list--ordered">`),!0);let e=o.trim().replace(/^\d+\.\s/,``);n.push(`<li>${X(J(e))}</li>`);continue}if(o.trim()===``){n.push(`<br />`);continue}n.push(`<p class="t-md-editor__paragraph">${X(J(o))}</p>`)}return r&&n.push(`</code></pre>`),i&&n.push(`</ul>`),a&&n.push(`</ol>`),n.join(`
|
|
11
|
+
`)}function X(e){return e=e.replace(/!\[([^\]]*)\]\(([^)]+)\)/g,`<img src="$2" alt="$1" class="t-md-editor__image" loading="lazy" />`),e=e.replace(/\[([^\]]+)\]\(([^)]+)\)/g,`<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>`),e=e.replace(/\*\*(.+?)\*\*/g,`<strong>$1</strong>`),e=e.replace(/_(.+?)_/g,`<em>$1</em>`),e=e.replace(/(?<!\*)\*(?!\*)(.+?)(?<!\*)\*(?!\*)/g,`<em>$1</em>`),e=e.replace(/`(.+?)`/g,`<code class="t-md-editor__inline-code">$1</code>`),e=e.replace(/~~(.+?)~~/g,`<del>$1</del>`),e}let Z=async e=>{if(E.disabled)return;let t=e.clipboardData?.items;if(t){for(let n of t)if(n.type.startsWith(`image/`)){e.preventDefault();let t=n.getAsFile();t&&await $(t);return}}},Q=async e=>{if(E.disabled)return;let t=e.dataTransfer?.files;if(t)for(let n of t)n.type.startsWith(`image/`)&&(e.preventDefault(),await $(n))},te=e=>{E.disabled||e.preventDefault()},$=async e=>{if(!E.uploadImage){I(`![${e.name}]()`);return}let t=`![Uploading ${e.name}...]()`;I(t),A.value=!0;try{let n=E.uploadImage(e),r=n instanceof Promise?await n:n,i=P.value.replace(t,``);D(`update:modelValue`,i),D(`image-upload`,e,r)}catch(n){let r=P.value.replace(t,``);D(`update:modelValue`,r),D(`image-upload-error`,e,n instanceof Error?n:Error(String(n)))}finally{A.value=!1}},ne=e=>{if(!E.disabled&&(e.metaKey||e.ctrlKey))switch(e.key){case`b`:e.preventDefault(),R();break;case`i`:e.preventDefault(),z();break;case`k`:e.preventDefault(),H();break;case`e`:e.preventDefault(),B();break}};return(T,E)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,(0,e.mergeProps)(N.value,{class:j.value,style:M.value}),[(0,e.createElementVNode)(`div`,t,[(0,e.createElementVNode)(`div`,n,[(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Heading 1 (H1)`,disabled:w.disabled,onClick:E[0]||=e=>L(1)},` H1 `,8,r),(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Heading 2 (H2)`,disabled:w.disabled,onClick:E[1]||=e=>L(2)},` H2 `,8,i),(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Heading 3 (H3)`,disabled:w.disabled,onClick:E[2]||=e=>L(3)},` H3 `,8,a)]),E[7]||=(0,e.createElementVNode)(`div`,{class:`t-md-editor__toolbar-divider`,role:`separator`},null,-1),(0,e.createElementVNode)(`div`,o,[(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Bold (Ctrl+B)`,disabled:w.disabled,onClick:R},[...E[4]||=[(0,e.createElementVNode)(`strong`,null,`B`,-1)]],8,s),(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Italic (Ctrl+I)`,disabled:w.disabled,onClick:z},[...E[5]||=[(0,e.createElementVNode)(`em`,null,`I`,-1)]],8,c),(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Strikethrough`,disabled:w.disabled,onClick:E[3]||=e=>I(`~~`,`~~`)},[...E[6]||=[(0,e.createElementVNode)(`del`,null,`S`,-1)]],8,l)]),E[8]||=(0,e.createElementVNode)(`div`,{class:`t-md-editor__toolbar-divider`,role:`separator`},null,-1),(0,e.createElementVNode)(`div`,u,[(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Inline code (Ctrl+E)`,disabled:w.disabled,onClick:B},` </> `,8,d),(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Code block`,disabled:w.disabled,onClick:V},` { } `,8,f),(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Link (Ctrl+K)`,disabled:w.disabled,onClick:H},` 🔗 `,8,p)]),E[9]||=(0,e.createElementVNode)(`div`,{class:`t-md-editor__toolbar-divider`,role:`separator`},null,-1),(0,e.createElementVNode)(`div`,m,[(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Unordered list`,disabled:w.disabled,onClick:U},` •\xA0List `,8,h),(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Ordered list`,disabled:w.disabled,onClick:W},` 1.\xA0List `,8,g),(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Blockquote`,disabled:w.disabled,onClick:G},` > `,8,_),(0,e.createElementVNode)(`button`,{type:`button`,class:`t-md-editor__toolbar-btn`,title:`Horizontal rule`,disabled:w.disabled,onClick:K},` ― `,8,ee)]),(0,e.renderSlot)(T.$slots,`toolbar`)]),(0,e.createElementVNode)(`div`,v,[(0,e.createElementVNode)(`div`,y,[(0,e.createElementVNode)(`textarea`,{ref_key:`textareaRef`,ref:k,class:`t-md-editor__textarea`,value:P.value,placeholder:w.placeholder,disabled:w.disabled,"aria-label":w.placeholder,onInput:F,onPaste:Z,onDrop:Q,onDragover:te,onKeydown:ne},null,40,b)]),(0,e.createElementVNode)(`div`,x,[(0,e.createElementVNode)(`div`,{class:`t-md-editor__preview`,innerHTML:q.value},null,8,S)])]),A.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,C,` Uploading image… `)):(0,e.createCommentVNode)(``,!0)],16))}});exports.default=w;
|
|
12
|
+
//# sourceMappingURL=TMarkdownEditor.vue_vue_type_script_setup_true_lang.cjs.map
|