@widgetic/design-system 0.3.68
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 +730 -0
- package/dist/components/CopyableHeader.svelte +456 -0
- package/dist/components/CopyableHeader.svelte.d.ts +40 -0
- package/dist/components/EmptyState.svelte +145 -0
- package/dist/components/EmptyState.svelte.d.ts +36 -0
- package/dist/components/PasswordInput.svelte +46 -0
- package/dist/components/PasswordInput.svelte.d.ts +26 -0
- package/dist/components/ThumbHashImage.svelte +124 -0
- package/dist/components/ThumbHashImage.svelte.d.ts +26 -0
- package/dist/components/WScrollArea.svelte +47 -0
- package/dist/components/WScrollArea.svelte.d.ts +38 -0
- package/dist/components/debug-grid/DebugGrid.svelte +207 -0
- package/dist/components/debug-grid/DebugGrid.svelte.d.ts +32 -0
- package/dist/components/ic/browser/BrowserInputController.svelte +481 -0
- package/dist/components/ic/browser/BrowserInputController.svelte.d.ts +34 -0
- package/dist/components/ic/browser/icons/audio.svg +7 -0
- package/dist/components/ic/browser/icons/document.svg +11 -0
- package/dist/components/ic/browser/icons/error.svg +5 -0
- package/dist/components/ic/browser/icons/folder.svg +28 -0
- package/dist/components/ic/browser/icons/info-icon.svg +3 -0
- package/dist/components/ic/browser/icons/player-pause.svg +12 -0
- package/dist/components/ic/browser/icons/player-play.svg +1 -0
- package/dist/components/ic/types.d.ts +14 -0
- package/dist/components/ic/types.js +18 -0
- package/dist/components/index.d.ts +51 -0
- package/dist/components/index.js +52 -0
- package/dist/components/modals/ActionModal.svelte +189 -0
- package/dist/components/modals/ActionModal.svelte.d.ts +49 -0
- package/dist/components/modals/BaseModal.svelte +409 -0
- package/dist/components/modals/BaseModal.svelte.d.ts +38 -0
- package/dist/components/modals/NewItemDialog.svelte +189 -0
- package/dist/components/modals/NewItemDialog.svelte.d.ts +39 -0
- package/dist/components/modals/Portal.svelte +104 -0
- package/dist/components/modals/Portal.svelte.d.ts +34 -0
- package/dist/components/modals/README.md +99 -0
- package/dist/components/modals/RenameDialog.svelte +316 -0
- package/dist/components/modals/RenameDialog.svelte.d.ts +39 -0
- package/dist/components/modals/modalStore.d.ts +10 -0
- package/dist/components/modals/modalStore.js +45 -0
- package/dist/components/navigation/Breadcrumbs.svelte +348 -0
- package/dist/components/navigation/Breadcrumbs.svelte.d.ts +35 -0
- package/dist/components/navigation/index.d.ts +2 -0
- package/dist/components/navigation/index.js +2 -0
- package/dist/components/navigation/types.d.ts +12 -0
- package/dist/components/navigation/types.js +1 -0
- package/dist/components/pdf/PDFViewer.svelte +608 -0
- package/dist/components/pdf/PDFViewer.svelte.d.ts +32 -0
- package/dist/components/search-input/SearchInput.svelte +115 -0
- package/dist/components/search-input/SearchInput.svelte.d.ts +46 -0
- package/dist/components/search-input/index.d.ts +14 -0
- package/dist/components/search-input/index.js +4 -0
- package/dist/components/shad-editor/colorpicker.svelte +17 -0
- package/dist/components/shad-editor/colorpicker.svelte.d.ts +6 -0
- package/dist/components/shad-editor/custom/Extentions/ColorHighlighter.d.ts +2 -0
- package/dist/components/shad-editor/custom/Extentions/ColorHighlighter.js +25 -0
- package/dist/components/shad-editor/custom/Extentions/ImageExtention.d.ts +1 -0
- package/dist/components/shad-editor/custom/Extentions/ImageExtention.js +30 -0
- package/dist/components/shad-editor/custom/Extentions/SearchAndReplace.d.ts +57 -0
- package/dist/components/shad-editor/custom/Extentions/SearchAndReplace.js +232 -0
- package/dist/components/shad-editor/custom/Extentions/SmilieReplacer.d.ts +2 -0
- package/dist/components/shad-editor/custom/Extentions/SmilieReplacer.js +131 -0
- package/dist/components/shad-editor/custom/code-extended.svelte +78 -0
- package/dist/components/shad-editor/custom/code-extended.svelte.d.ts +4 -0
- package/dist/components/shad-editor/custom/image-extended-component.svelte +251 -0
- package/dist/components/shad-editor/custom/image-extended-component.svelte.d.ts +4 -0
- package/dist/components/shad-editor/custom/utils.d.ts +5 -0
- package/dist/components/shad-editor/custom/utils.js +35 -0
- package/dist/components/shad-editor/editor-toolbar.svelte +59 -0
- package/dist/components/shad-editor/editor-toolbar.svelte.d.ts +8 -0
- package/dist/components/shad-editor/editor.css +179 -0
- package/dist/components/shad-editor/icons/block-quote.svelte +26 -0
- package/dist/components/shad-editor/icons/block-quote.svelte.d.ts +7 -0
- package/dist/components/shad-editor/icons/bold.svelte +26 -0
- package/dist/components/shad-editor/icons/bold.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/buttle-list.svelte +27 -0
- package/dist/components/shad-editor/icons/buttle-list.svelte.d.ts +7 -0
- package/dist/components/shad-editor/icons/code.svelte +27 -0
- package/dist/components/shad-editor/icons/code.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/highlighter.svelte +75 -0
- package/dist/components/shad-editor/icons/highlighter.svelte.d.ts +9 -0
- package/dist/components/shad-editor/icons/image.svelte +73 -0
- package/dist/components/shad-editor/icons/image.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/index.d.ts +22 -0
- package/dist/components/shad-editor/icons/index.js +24 -0
- package/dist/components/shad-editor/icons/italic.svelte +26 -0
- package/dist/components/shad-editor/icons/italic.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/link.svelte +72 -0
- package/dist/components/shad-editor/icons/link.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/ordered-list.svelte +26 -0
- package/dist/components/shad-editor/icons/ordered-list.svelte.d.ts +7 -0
- package/dist/components/shad-editor/icons/quickcolor.svelte +95 -0
- package/dist/components/shad-editor/icons/quickcolor.svelte.d.ts +7 -0
- package/dist/components/shad-editor/icons/redo.svelte +26 -0
- package/dist/components/shad-editor/icons/redo.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/search-replace.svelte +146 -0
- package/dist/components/shad-editor/icons/search-replace.svelte.d.ts +7 -0
- package/dist/components/shad-editor/icons/strikethrough.svelte +26 -0
- package/dist/components/shad-editor/icons/strikethrough.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/subscript.svelte +26 -0
- package/dist/components/shad-editor/icons/subscript.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/superscript.svelte +26 -0
- package/dist/components/shad-editor/icons/superscript.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/table.svelte +111 -0
- package/dist/components/shad-editor/icons/table.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/task-list.svelte +26 -0
- package/dist/components/shad-editor/icons/task-list.svelte.d.ts +7 -0
- package/dist/components/shad-editor/icons/text.svelte +95 -0
- package/dist/components/shad-editor/icons/text.svelte.d.ts +7 -0
- package/dist/components/shad-editor/icons/textalign.svelte +82 -0
- package/dist/components/shad-editor/icons/textalign.svelte.d.ts +7 -0
- package/dist/components/shad-editor/icons/textcolor.svelte +75 -0
- package/dist/components/shad-editor/icons/textcolor.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/underline.svelte +26 -0
- package/dist/components/shad-editor/icons/underline.svelte.d.ts +8 -0
- package/dist/components/shad-editor/icons/undo.svelte +26 -0
- package/dist/components/shad-editor/icons/undo.svelte.d.ts +8 -0
- package/dist/components/shad-editor/index.d.ts +4 -0
- package/dist/components/shad-editor/index.js +5 -0
- package/dist/components/shad-editor/onedark.css +87 -0
- package/dist/components/shad-editor/shad-editor.svelte +153 -0
- package/dist/components/shad-editor/shad-editor.svelte.d.ts +34 -0
- package/dist/components/toast/ToasterModal.svelte +128 -0
- package/dist/components/toast/ToasterModal.svelte.d.ts +30 -0
- package/dist/components/toast/index.d.ts +2 -0
- package/dist/components/toast/index.js +2 -0
- package/dist/components/ui/accordion/accordion-content.svelte +24 -0
- package/dist/components/ui/accordion/accordion-content.svelte.d.ts +4 -0
- package/dist/components/ui/accordion/accordion-item.svelte +12 -0
- package/dist/components/ui/accordion/accordion-item.svelte.d.ts +4 -0
- package/dist/components/ui/accordion/accordion-trigger.svelte +29 -0
- package/dist/components/ui/accordion/accordion-trigger.svelte.d.ts +7 -0
- package/dist/components/ui/accordion/index.d.ts +6 -0
- package/dist/components/ui/accordion/index.js +6 -0
- package/dist/components/ui/alert/alert-description.svelte +13 -0
- package/dist/components/ui/alert/alert-description.svelte.d.ts +28 -0
- package/dist/components/ui/alert/alert-title.svelte +21 -0
- package/dist/components/ui/alert/alert-title.svelte.d.ts +31 -0
- package/dist/components/ui/alert/alert.svelte +17 -0
- package/dist/components/ui/alert/alert.svelte.d.ts +31 -0
- package/dist/components/ui/alert/index.d.ts +43 -0
- package/dist/components/ui/alert/index.js +19 -0
- package/dist/components/ui/badge/badge.svelte +50 -0
- package/dist/components/ui/badge/badge.svelte.d.ts +60 -0
- package/dist/components/ui/badge/index.d.ts +2 -0
- package/dist/components/ui/badge/index.js +2 -0
- package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +23 -0
- package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +16 -0
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +31 -0
- package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +11 -0
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +23 -0
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +23 -0
- package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +27 -0
- package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/breadcrumb.svelte +15 -0
- package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +5 -0
- package/dist/components/ui/breadcrumb/index.d.ts +8 -0
- package/dist/components/ui/breadcrumb/index.js +10 -0
- package/dist/components/ui/button/button.svelte +74 -0
- package/dist/components/ui/button/button.svelte.d.ts +118 -0
- package/dist/components/ui/button/index.d.ts +2 -0
- package/dist/components/ui/button/index.js +4 -0
- package/dist/components/ui/calendar/calendar-cell.svelte +19 -0
- package/dist/components/ui/calendar/calendar-cell.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-day.svelte +30 -0
- package/dist/components/ui/calendar/calendar-day.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-grid-body.svelte +12 -0
- package/dist/components/ui/calendar/calendar-grid-body.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-grid-head.svelte +12 -0
- package/dist/components/ui/calendar/calendar-grid-head.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-grid-row.svelte +12 -0
- package/dist/components/ui/calendar/calendar-grid-row.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-grid.svelte +16 -0
- package/dist/components/ui/calendar/calendar-grid.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-head-cell.svelte +16 -0
- package/dist/components/ui/calendar/calendar-head-cell.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-header.svelte +16 -0
- package/dist/components/ui/calendar/calendar-header.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-heading.svelte +12 -0
- package/dist/components/ui/calendar/calendar-heading.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-months.svelte +20 -0
- package/dist/components/ui/calendar/calendar-months.svelte.d.ts +5 -0
- package/dist/components/ui/calendar/calendar-next-button.svelte +28 -0
- package/dist/components/ui/calendar/calendar-next-button.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar-prev-button.svelte +28 -0
- package/dist/components/ui/calendar/calendar-prev-button.svelte.d.ts +4 -0
- package/dist/components/ui/calendar/calendar.svelte +61 -0
- package/dist/components/ui/calendar/calendar.svelte.d.ts +5 -0
- package/dist/components/ui/calendar/index.d.ts +14 -0
- package/dist/components/ui/calendar/index.js +16 -0
- package/dist/components/ui/card/card-content.svelte +16 -0
- package/dist/components/ui/card/card-content.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-description.svelte +16 -0
- package/dist/components/ui/card/card-description.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-footer.svelte +16 -0
- package/dist/components/ui/card/card-footer.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-header.svelte +16 -0
- package/dist/components/ui/card/card-header.svelte.d.ts +5 -0
- package/dist/components/ui/card/card-title.svelte +25 -0
- package/dist/components/ui/card/card-title.svelte.d.ts +8 -0
- package/dist/components/ui/card/card.svelte +20 -0
- package/dist/components/ui/card/card.svelte.d.ts +5 -0
- package/dist/components/ui/card/index.d.ts +7 -0
- package/dist/components/ui/card/index.js +7 -0
- package/dist/components/ui/checkbox/checkbox.svelte +35 -0
- package/dist/components/ui/checkbox/checkbox.svelte.d.ts +4 -0
- package/dist/components/ui/checkbox/index.d.ts +2 -0
- package/dist/components/ui/checkbox/index.js +4 -0
- package/dist/components/ui/collapsible/index.d.ts +16 -0
- package/dist/components/ui/collapsible/index.js +7 -0
- package/dist/components/ui/command/command-dialog.svelte +35 -0
- package/dist/components/ui/command/command-dialog.svelte.d.ts +9 -0
- package/dist/components/ui/command/command-empty.svelte +12 -0
- package/dist/components/ui/command/command-empty.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-group.svelte +29 -0
- package/dist/components/ui/command/command-group.svelte.d.ts +7 -0
- package/dist/components/ui/command/command-input.svelte +25 -0
- package/dist/components/ui/command/command-input.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-item.svelte +19 -0
- package/dist/components/ui/command/command-item.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-link-item.svelte +19 -0
- package/dist/components/ui/command/command-link-item.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-list.svelte +16 -0
- package/dist/components/ui/command/command-list.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-separator.svelte +12 -0
- package/dist/components/ui/command/command-separator.svelte.d.ts +4 -0
- package/dist/components/ui/command/command-shortcut.svelte +20 -0
- package/dist/components/ui/command/command-shortcut.svelte.d.ts +5 -0
- package/dist/components/ui/command/command.svelte +21 -0
- package/dist/components/ui/command/command.svelte.d.ts +4 -0
- package/dist/components/ui/command/index.d.ts +13 -0
- package/dist/components/ui/command/index.js +15 -0
- package/dist/components/ui/dialog/dialog-content.svelte +38 -0
- package/dist/components/ui/dialog/dialog-content.svelte.d.ts +9 -0
- package/dist/components/ui/dialog/dialog-description.svelte +16 -0
- package/dist/components/ui/dialog/dialog-description.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/dialog-footer.svelte +20 -0
- package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +5 -0
- package/dist/components/ui/dialog/dialog-header.svelte +20 -0
- package/dist/components/ui/dialog/dialog-header.svelte.d.ts +5 -0
- package/dist/components/ui/dialog/dialog-overlay.svelte +19 -0
- package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/dialog-title.svelte +16 -0
- package/dist/components/ui/dialog/dialog-title.svelte.d.ts +4 -0
- package/dist/components/ui/dialog/index.d.ts +12 -0
- package/dist/components/ui/dialog/index.js +14 -0
- package/dist/components/ui/drawer/drawer-content.svelte +30 -0
- package/dist/components/ui/drawer/drawer-content.svelte.d.ts +7 -0
- package/dist/components/ui/drawer/drawer-description.svelte +16 -0
- package/dist/components/ui/drawer/drawer-description.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer-footer.svelte +16 -0
- package/dist/components/ui/drawer/drawer-footer.svelte.d.ts +5 -0
- package/dist/components/ui/drawer/drawer-header.svelte +20 -0
- package/dist/components/ui/drawer/drawer-header.svelte.d.ts +5 -0
- package/dist/components/ui/drawer/drawer-nested.svelte +12 -0
- package/dist/components/ui/drawer/drawer-nested.svelte.d.ts +3 -0
- package/dist/components/ui/drawer/drawer-overlay.svelte +16 -0
- package/dist/components/ui/drawer/drawer-overlay.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer-title.svelte +16 -0
- package/dist/components/ui/drawer/drawer-title.svelte.d.ts +4 -0
- package/dist/components/ui/drawer/drawer.svelte +12 -0
- package/dist/components/ui/drawer/drawer.svelte.d.ts +3 -0
- package/dist/components/ui/drawer/index.d.ts +13 -0
- package/dist/components/ui/drawer/index.js +15 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +40 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +8 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +26 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +7 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +19 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +7 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +23 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +7 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +23 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +30 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +16 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +20 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +5 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +19 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +4 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +28 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
- package/dist/components/ui/dropdown-menu/index.d.ts +25 -0
- package/dist/components/ui/dropdown-menu/index.js +17 -0
- package/dist/components/ui/hover-card/hover-card-content.svelte +28 -0
- package/dist/components/ui/hover-card/hover-card-content.svelte.d.ts +7 -0
- package/dist/components/ui/hover-card/index.d.ts +5 -0
- package/dist/components/ui/hover-card/index.js +5 -0
- package/dist/components/ui/input/index.d.ts +2 -0
- package/dist/components/ui/input/index.js +4 -0
- package/dist/components/ui/input/input.svelte +22 -0
- package/dist/components/ui/input/input.svelte.d.ts +5 -0
- package/dist/components/ui/input-otp/index.d.ts +5 -0
- package/dist/components/ui/input-otp/index.js +7 -0
- package/dist/components/ui/input-otp/input-otp-group.svelte +16 -0
- package/dist/components/ui/input-otp/input-otp-group.svelte.d.ts +5 -0
- package/dist/components/ui/input-otp/input-otp-separator.svelte +19 -0
- package/dist/components/ui/input-otp/input-otp-separator.svelte.d.ts +5 -0
- package/dist/components/ui/input-otp/input-otp-slot.svelte +30 -0
- package/dist/components/ui/input-otp/input-otp-slot.svelte.d.ts +12 -0
- package/dist/components/ui/input-otp/input-otp.svelte +22 -0
- package/dist/components/ui/input-otp/input-otp.svelte.d.ts +3 -0
- package/dist/components/ui/label/index.d.ts +2 -0
- package/dist/components/ui/label/index.js +4 -0
- package/dist/components/ui/label/label.svelte +19 -0
- package/dist/components/ui/label/label.svelte.d.ts +4 -0
- package/dist/components/ui/popover/index.d.ts +6 -0
- package/dist/components/ui/popover/index.js +6 -0
- package/dist/components/ui/popover/popover-content.svelte +28 -0
- package/dist/components/ui/popover/popover-content.svelte.d.ts +7 -0
- package/dist/components/ui/progress/index.d.ts +2 -0
- package/dist/components/ui/progress/index.js +4 -0
- package/dist/components/ui/progress/progress.svelte +25 -0
- package/dist/components/ui/progress/progress.svelte.d.ts +4 -0
- package/dist/components/ui/radio-group/index.d.ts +3 -0
- package/dist/components/ui/radio-group/index.js +5 -0
- package/dist/components/ui/radio-group/radio-group-item.svelte +28 -0
- package/dist/components/ui/radio-group/radio-group-item.svelte.d.ts +4 -0
- package/dist/components/ui/radio-group/radio-group.svelte +13 -0
- package/dist/components/ui/radio-group/radio-group.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/index.d.ts +15 -0
- package/dist/components/ui/range-calendar/index.js +17 -0
- package/dist/components/ui/range-calendar/range-calendar-cell.svelte +19 -0
- package/dist/components/ui/range-calendar/range-calendar-cell.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-day.svelte +34 -0
- package/dist/components/ui/range-calendar/range-calendar-day.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-grid-row.svelte +12 -0
- package/dist/components/ui/range-calendar/range-calendar-grid-row.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-grid.svelte +16 -0
- package/dist/components/ui/range-calendar/range-calendar-grid.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte +16 -0
- package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-header.svelte +16 -0
- package/dist/components/ui/range-calendar/range-calendar-header.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-heading.svelte +16 -0
- package/dist/components/ui/range-calendar/range-calendar-heading.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-months.svelte +20 -0
- package/dist/components/ui/range-calendar/range-calendar-months.svelte.d.ts +5 -0
- package/dist/components/ui/range-calendar/range-calendar-next-button.svelte +28 -0
- package/dist/components/ui/range-calendar/range-calendar-next-button.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte +28 -0
- package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte.d.ts +4 -0
- package/dist/components/ui/range-calendar/range-calendar.svelte +57 -0
- package/dist/components/ui/range-calendar/range-calendar.svelte.d.ts +5 -0
- package/dist/components/ui/scroll-area/index.d.ts +3 -0
- package/dist/components/ui/scroll-area/index.js +6 -0
- package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +29 -0
- package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +4 -0
- package/dist/components/ui/scroll-area/scroll-area.svelte +32 -0
- package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +9 -0
- package/dist/components/ui/select/index.d.ts +11 -0
- package/dist/components/ui/select/index.js +13 -0
- package/dist/components/ui/select/select-content.svelte +39 -0
- package/dist/components/ui/select/select-content.svelte.d.ts +7 -0
- package/dist/components/ui/select/select-group-heading.svelte +16 -0
- package/dist/components/ui/select/select-group-heading.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-item.svelte +37 -0
- package/dist/components/ui/select/select-item.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-scroll-down-button.svelte +19 -0
- package/dist/components/ui/select/select-scroll-down-button.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-scroll-up-button.svelte +19 -0
- package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-separator.svelte +13 -0
- package/dist/components/ui/select/select-separator.svelte.d.ts +4 -0
- package/dist/components/ui/select/select-trigger.svelte +24 -0
- package/dist/components/ui/select/select-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/separator/index.d.ts +2 -0
- package/dist/components/ui/separator/index.js +4 -0
- package/dist/components/ui/separator/separator.svelte +22 -0
- package/dist/components/ui/separator/separator.svelte.d.ts +4 -0
- package/dist/components/ui/slider/index.d.ts +3 -0
- package/dist/components/ui/slider/index.js +5 -0
- package/dist/components/ui/slider/slider.svelte +34 -0
- package/dist/components/ui/slider/slider.svelte.d.ts +4 -0
- package/dist/components/ui/sonner/index.d.ts +2 -0
- package/dist/components/ui/sonner/index.js +2 -0
- package/dist/components/ui/sonner/sonner.svelte +20 -0
- package/dist/components/ui/sonner/sonner.svelte.d.ts +4 -0
- package/dist/components/ui/switch/index.d.ts +2 -0
- package/dist/components/ui/switch/index.js +4 -0
- package/dist/components/ui/switch/switch.svelte +27 -0
- package/dist/components/ui/switch/switch.svelte.d.ts +4 -0
- package/dist/components/ui/table/index.d.ts +9 -0
- package/dist/components/ui/table/index.js +11 -0
- package/dist/components/ui/table/table-body.svelte +16 -0
- package/dist/components/ui/table/table-body.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-caption.svelte +16 -0
- package/dist/components/ui/table/table-caption.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-cell.svelte +20 -0
- package/dist/components/ui/table/table-cell.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-footer.svelte +16 -0
- package/dist/components/ui/table/table-footer.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-head.svelte +23 -0
- package/dist/components/ui/table/table-head.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-header.svelte +16 -0
- package/dist/components/ui/table/table-header.svelte.d.ts +5 -0
- package/dist/components/ui/table/table-row.svelte +23 -0
- package/dist/components/ui/table/table-row.svelte.d.ts +5 -0
- package/dist/components/ui/table/table.svelte +18 -0
- package/dist/components/ui/table/table.svelte.d.ts +5 -0
- package/dist/components/ui/tabs/index.d.ts +6 -0
- package/dist/components/ui/tabs/index.js +8 -0
- package/dist/components/ui/tabs/tabs-content.svelte +19 -0
- package/dist/components/ui/tabs/tabs-content.svelte.d.ts +4 -0
- package/dist/components/ui/tabs/tabs-list.svelte +19 -0
- package/dist/components/ui/tabs/tabs-list.svelte.d.ts +4 -0
- package/dist/components/ui/tabs/tabs-trigger.svelte +19 -0
- package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
- package/dist/components/ui/textarea/index.d.ts +19 -0
- package/dist/components/ui/textarea/index.js +4 -0
- package/dist/components/ui/textarea/textarea.svelte +22 -0
- package/dist/components/ui/textarea/textarea.svelte.d.ts +5 -0
- package/dist/components/ui/toggle/index.d.ts +3 -0
- package/dist/components/ui/toggle/index.js +5 -0
- package/dist/components/ui/toggle/toggle.svelte +51 -0
- package/dist/components/ui/toggle/toggle.svelte.d.ts +83 -0
- package/dist/components/ui/toggle-group/index.d.ts +3 -0
- package/dist/components/ui/toggle-group/index.js +5 -0
- package/dist/components/ui/toggle-group/toggle-group-item.svelte +30 -0
- package/dist/components/ui/toggle-group/toggle-group-item.svelte.d.ts +6 -0
- package/dist/components/ui/toggle-group/toggle-group.svelte +41 -0
- package/dist/components/ui/toggle-group/toggle-group.svelte.d.ts +8 -0
- package/dist/components/ui/tooltip/index.d.ts +6 -0
- package/dist/components/ui/tooltip/index.js +8 -0
- package/dist/components/ui/tooltip/tooltip-content.svelte +21 -0
- package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +4 -0
- package/dist/components/widget-system/EditableWidget.svelte +106 -0
- package/dist/components/widget-system/EditableWidget.svelte.d.ts +44 -0
- package/dist/components/widget-system/Moveable.svelte +661 -0
- package/dist/components/widget-system/Moveable.svelte.d.ts +56 -0
- package/dist/components/widget-system/index.d.ts +2 -0
- package/dist/components/widget-system/index.js +3 -0
- package/dist/fonts/BLMelody/BLMelody-Bold.woff2 +0 -0
- package/dist/fonts/BLMelody/BLMelody-Medium.woff2 +0 -0
- package/dist/fonts/BLMelody/BLMelody-SemiBold.woff2 +0 -0
- package/dist/fonts/Riegla/Riegla-Bold Italic.otf +0 -0
- package/dist/fonts/Riegla/Riegla-Bold.otf +0 -0
- package/dist/fonts/Riegla/Riegla-Italic.otf +0 -0
- package/dist/fonts/Riegla/Riegla-Regular.otf +0 -0
- package/dist/fonts/Riegla/RieglaMedium-Regular.otf +0 -0
- package/dist/fonts/index.d.ts +0 -0
- package/dist/fonts/index.js +1 -0
- package/dist/hooks/is-mobile.svelte.d.ts +5 -0
- package/dist/hooks/is-mobile.svelte.js +23 -0
- package/dist/icons/Checked.svelte +19 -0
- package/dist/icons/Checked.svelte.d.ts +20 -0
- package/dist/icons/CheckerBoardBackground.svelte +16 -0
- package/dist/icons/CheckerBoardBackground.svelte.d.ts +3 -0
- package/dist/icons/Close.svelte +22 -0
- package/dist/icons/Close.svelte.d.ts +20 -0
- package/dist/icons/Close.svg +8 -0
- package/dist/icons/Error.svg +5 -0
- package/dist/icons/Exclamation.svelte +5 -0
- package/dist/icons/Exclamation.svelte.d.ts +26 -0
- package/dist/icons/FileBrowser.svelte +38 -0
- package/dist/icons/FileBrowser.svelte.d.ts +20 -0
- package/dist/icons/FileBrowser.svg +28 -0
- package/dist/icons/LogoWidgetic.svelte +24 -0
- package/dist/icons/LogoWidgetic.svelte.d.ts +20 -0
- package/dist/icons/LogoWidgeticType.svelte +12 -0
- package/dist/icons/LogoWidgeticType.svelte.d.ts +20 -0
- package/dist/icons/LogoWidgeticType.svg +4 -0
- package/dist/icons/OpacitySliderArrows.svelte +46 -0
- package/dist/icons/OpacitySliderArrows.svelte.d.ts +3 -0
- package/dist/icons/TestIcon.svelte +1 -0
- package/dist/icons/TestIcon.svelte.d.ts +26 -0
- package/dist/icons/checked.svg +4 -0
- package/dist/icons/index.d.ts +11 -0
- package/dist/icons/index.js +15 -0
- package/dist/icons/lucide.d.ts +1 -0
- package/dist/icons/lucide.js +1 -0
- package/dist/icons/tabler.d.ts +1 -0
- package/dist/icons/tabler.js +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +9 -0
- package/dist/stores/index.d.ts +1 -0
- package/dist/stores/index.js +1 -0
- package/dist/stores/pdfCache.d.ts +16 -0
- package/dist/stores/pdfCache.js +101 -0
- package/dist/styles/fonts.css +172 -0
- package/dist/styles/global.css +893 -0
- package/dist/utils/MediaManager.d.ts +35 -0
- package/dist/utils/MediaManager.js +59 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.js +5 -0
- package/package.json +183 -0
- package/tailwind.config.ts +97 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* SearchInput Component
|
|
3
|
+
* A reusable search input component for all Widgetic applications
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - Consistent UI across all applications
|
|
7
|
+
* - Clear button for search term
|
|
8
|
+
* - Handles input, keydown, and paste events
|
|
9
|
+
* - Smooth transitions and hover states
|
|
10
|
+
* - Uses Widgetic design system styling
|
|
11
|
+
-->
|
|
12
|
+
<script lang="ts">
|
|
13
|
+
import { X, IconSearch } from '@widgetic/design-system/icons';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Placeholder text for the search input
|
|
17
|
+
*/
|
|
18
|
+
export let placeholder = "Search...";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Current search value
|
|
22
|
+
*/
|
|
23
|
+
export let value = "";
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Input event handler
|
|
27
|
+
* @param event The input event
|
|
28
|
+
*/
|
|
29
|
+
export let onInput: (event: Event) => Promise<void> | void = () => {};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Keydown event handler
|
|
33
|
+
* @param event The keyboard event
|
|
34
|
+
*/
|
|
35
|
+
export let onKeydown: (event: KeyboardEvent) => void = () => {};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Clear button event handler
|
|
39
|
+
*/
|
|
40
|
+
export let onClear: () => void = () => {
|
|
41
|
+
value = "";
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Paste event handler
|
|
46
|
+
* @param event The clipboard event
|
|
47
|
+
*/
|
|
48
|
+
export let onPaste: (event: ClipboardEvent) => void = () => {};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* CSS class to apply to the container
|
|
52
|
+
*/
|
|
53
|
+
export let containerClass = "";
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* CSS class to apply to the input element
|
|
57
|
+
*/
|
|
58
|
+
export let inputClass = "";
|
|
59
|
+
</script>
|
|
60
|
+
|
|
61
|
+
<div class="w-full {containerClass}">
|
|
62
|
+
<div class="group relative w-full">
|
|
63
|
+
<div class="relative overflow-hidden rounded-small border border-[hsl(var(--grey2))] bg-[hsl(var(--grey1))] transition-colors duration-200 hover:border-[hsl(var(--grey2))]">
|
|
64
|
+
<div class="relative w-full flex items-center">
|
|
65
|
+
<div class="absolute left-2 flex items-center pointer-events-none">
|
|
66
|
+
<IconSearch class="h-5 w-5 text-[hsl(var(--grey5))] transition-colors duration-300 {value ? 'text-[hsl(var(--grey7))]' : 'group-hover:text-[hsl(var(--grey7))] group-focus-within:text-[hsl(var(--grey7))]'}" />
|
|
67
|
+
</div>
|
|
68
|
+
<input
|
|
69
|
+
type="text"
|
|
70
|
+
{placeholder}
|
|
71
|
+
bind:value
|
|
72
|
+
oninput={onInput}
|
|
73
|
+
onkeydown={(e) => {
|
|
74
|
+
// Prevent backspace events when input is already empty
|
|
75
|
+
if (e.key === 'Backspace' && !value) {
|
|
76
|
+
e.preventDefault();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
onKeydown(e);
|
|
80
|
+
}}
|
|
81
|
+
onpaste={onPaste}
|
|
82
|
+
class="w-full h-[38px] border-0 bg-transparent focus:outline-none focus:ring-0 focus-visible:ring-0 pl-9 pr-8 subtext
|
|
83
|
+
transition-all duration-300
|
|
84
|
+
{value ? 'text-[hsl(var(--grey7))]' : 'text-[hsl(var(--grey3))] placeholder:text-[hsl(var(--grey3))] placeholder:transition-colors placeholder:duration-300 group-hover:text-[hsl(var(--grey7))] group-hover:placeholder:text-[hsl(var(--grey7))] group-focus-within:text-[hsl(var(--grey7))] group-focus-within:placeholder:text-[hsl(var(--grey7)))'}
|
|
85
|
+
{inputClass}"
|
|
86
|
+
/>
|
|
87
|
+
{#if value}
|
|
88
|
+
<button
|
|
89
|
+
type="button"
|
|
90
|
+
class="absolute right-2 h-6 w-6 inline-flex items-center justify-center rounded-full hover:bg-[hsl(var(--grey2))] transition-all duration-300 widgetic-colors"
|
|
91
|
+
onclick={onClear}
|
|
92
|
+
>
|
|
93
|
+
<X class="h-4 w-4 text-[hsl(var(--grey7))] transition-colors duration-300 hover:text-[hsl(var(--grey7))] widgetic-colors" />
|
|
94
|
+
</button>
|
|
95
|
+
{/if}
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
|
|
101
|
+
<style>
|
|
102
|
+
/* Ensure smooth text color transitions */
|
|
103
|
+
input {
|
|
104
|
+
transition: color 300ms ease, background-color 300ms ease, border-color 300ms ease !important;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
input::-moz-placeholder {
|
|
108
|
+
-moz-transition: color 300ms ease !important;
|
|
109
|
+
transition: color 300ms ease !important;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
input::placeholder {
|
|
113
|
+
transition: color 300ms ease !important;
|
|
114
|
+
}
|
|
115
|
+
</style>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: Props & {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
declare const SearchInput: $$__sveltets_2_IsomorphicComponent<{
|
|
15
|
+
/**
|
|
16
|
+
* Placeholder text for the search input
|
|
17
|
+
*/ placeholder?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Current search value
|
|
20
|
+
*/ value?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Input event handler
|
|
23
|
+
* @param event The input event
|
|
24
|
+
*/ onInput?: (event: Event) => Promise<void> | void;
|
|
25
|
+
/**
|
|
26
|
+
* Keydown event handler
|
|
27
|
+
* @param event The keyboard event
|
|
28
|
+
*/ onKeydown?: (event: KeyboardEvent) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Clear button event handler
|
|
31
|
+
*/ onClear?: () => void;
|
|
32
|
+
/**
|
|
33
|
+
* Paste event handler
|
|
34
|
+
* @param event The clipboard event
|
|
35
|
+
*/ onPaste?: (event: ClipboardEvent) => void;
|
|
36
|
+
/**
|
|
37
|
+
* CSS class to apply to the container
|
|
38
|
+
*/ containerClass?: string;
|
|
39
|
+
/**
|
|
40
|
+
* CSS class to apply to the input element
|
|
41
|
+
*/ inputClass?: string;
|
|
42
|
+
}, {
|
|
43
|
+
[evt: string]: CustomEvent<any>;
|
|
44
|
+
}, {}, {}, string>;
|
|
45
|
+
type SearchInput = InstanceType<typeof SearchInput>;
|
|
46
|
+
export default SearchInput;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SvelteComponent } from 'svelte';
|
|
2
|
+
|
|
3
|
+
export interface SearchInputProps {
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
value?: string;
|
|
6
|
+
onInput?: (event: Event) => Promise<void> | void;
|
|
7
|
+
onKeydown?: (event: KeyboardEvent) => void;
|
|
8
|
+
onClear?: () => void;
|
|
9
|
+
onPaste?: (event: ClipboardEvent) => void;
|
|
10
|
+
containerClass?: string;
|
|
11
|
+
inputClass?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default class SearchInput extends SvelteComponent<SearchInputProps> {}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { mode } from 'mode-watcher';
|
|
3
|
+
let { hex = $bindable() }: { hex: string } = $props();
|
|
4
|
+
import ColorPicker from 'svelte-awesome-color-picker';
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<div class:dark={$mode === 'dark'}>
|
|
8
|
+
<ColorPicker
|
|
9
|
+
bind:hex
|
|
10
|
+
sliderDirection="vertical"
|
|
11
|
+
label="Pick a color"
|
|
12
|
+
isTextInput={false}
|
|
13
|
+
isAlpha
|
|
14
|
+
--picker-indicator-size="1rem"
|
|
15
|
+
--input-size="1rem"
|
|
16
|
+
/>
|
|
17
|
+
</div>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Extension } from '@tiptap/core';
|
|
2
|
+
import { Plugin } from '@tiptap/pm/state';
|
|
3
|
+
import findColors from '../utils.js';
|
|
4
|
+
export const ColorHighlighter = Extension.create({
|
|
5
|
+
name: 'colorHighlighter',
|
|
6
|
+
addProseMirrorPlugins() {
|
|
7
|
+
return [
|
|
8
|
+
new Plugin({
|
|
9
|
+
state: {
|
|
10
|
+
init(_, { doc }) {
|
|
11
|
+
return findColors(doc);
|
|
12
|
+
},
|
|
13
|
+
apply(transaction, oldState) {
|
|
14
|
+
return transaction.docChanged ? findColors(transaction.doc) : oldState;
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
props: {
|
|
18
|
+
decorations(state) {
|
|
19
|
+
return this.getState(state);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ImageExtension: import("@tiptap/core").Node<import("@tiptap/extension-image").ImageOptions, any>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { SvelteNodeViewRenderer } from 'svelte-tiptap';
|
|
2
|
+
import ImageExtendedComponent from '../image-extended-component.svelte';
|
|
3
|
+
import Image from '@tiptap/extension-image';
|
|
4
|
+
export const ImageExtension = Image.extend({
|
|
5
|
+
addAttributes() {
|
|
6
|
+
return {
|
|
7
|
+
src: {
|
|
8
|
+
default: null
|
|
9
|
+
},
|
|
10
|
+
alt: {
|
|
11
|
+
default: null
|
|
12
|
+
},
|
|
13
|
+
title: {
|
|
14
|
+
default: null
|
|
15
|
+
},
|
|
16
|
+
width: {
|
|
17
|
+
default: '100%'
|
|
18
|
+
},
|
|
19
|
+
height: {
|
|
20
|
+
default: null
|
|
21
|
+
},
|
|
22
|
+
align: {
|
|
23
|
+
default: 'left'
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
addNodeView: () => {
|
|
28
|
+
return SvelteNodeViewRenderer(ImageExtendedComponent);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Extension, type Range } from '@tiptap/core';
|
|
2
|
+
import { PluginKey } from '@tiptap/pm/state';
|
|
3
|
+
declare module '@tiptap/core' {
|
|
4
|
+
interface Commands<ReturnType> {
|
|
5
|
+
search: {
|
|
6
|
+
/**
|
|
7
|
+
* @description Set search term in extension.
|
|
8
|
+
*/
|
|
9
|
+
setSearchTerm: (searchTerm: string) => ReturnType;
|
|
10
|
+
/**
|
|
11
|
+
* @description Set replace term in extension.
|
|
12
|
+
*/
|
|
13
|
+
setReplaceTerm: (replaceTerm: string) => ReturnType;
|
|
14
|
+
/**
|
|
15
|
+
* @description Set case sensitivity in extension.
|
|
16
|
+
*/
|
|
17
|
+
setCaseSensitive: (caseSensitive: boolean) => ReturnType;
|
|
18
|
+
/**
|
|
19
|
+
* @description Reset current search result to first instance.
|
|
20
|
+
*/
|
|
21
|
+
resetIndex: () => ReturnType;
|
|
22
|
+
/**
|
|
23
|
+
* @description Find next instance of search result.
|
|
24
|
+
*/
|
|
25
|
+
nextSearchResult: () => ReturnType;
|
|
26
|
+
/**
|
|
27
|
+
* @description Find previous instance of search result.
|
|
28
|
+
*/
|
|
29
|
+
previousSearchResult: () => ReturnType;
|
|
30
|
+
/**
|
|
31
|
+
* @description Replace first instance of search result with given replace term.
|
|
32
|
+
*/
|
|
33
|
+
replace: () => ReturnType;
|
|
34
|
+
/**
|
|
35
|
+
* @description Replace all instances of search result with given replace term.
|
|
36
|
+
*/
|
|
37
|
+
replaceAll: () => ReturnType;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export declare const searchAndReplacePluginKey: PluginKey<any>;
|
|
42
|
+
export interface SearchAndReplaceOptions {
|
|
43
|
+
searchResultClass: string;
|
|
44
|
+
disableRegex: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface SearchAndReplaceStorage {
|
|
47
|
+
searchTerm: string;
|
|
48
|
+
replaceTerm: string;
|
|
49
|
+
results: Range[];
|
|
50
|
+
lastSearchTerm: string;
|
|
51
|
+
caseSensitive: boolean;
|
|
52
|
+
lastCaseSensitive: boolean;
|
|
53
|
+
resultIndex: number;
|
|
54
|
+
lastResultIndex: number;
|
|
55
|
+
}
|
|
56
|
+
export declare const SearchAndReplace: Extension<SearchAndReplaceOptions, SearchAndReplaceStorage>;
|
|
57
|
+
export default SearchAndReplace;
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
// MIT License
|
|
2
|
+
// Copyright (c) 2023 - 2024 Jeet Mandaliya (Github Username: sereneinserenade)
|
|
3
|
+
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
+
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
+
// in the Software without restriction, including without limitation the rights
|
|
6
|
+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
+
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
+
// furnished to do so, subject to the following conditions:
|
|
9
|
+
// The above copyright notice and this permission notice shall be included in all
|
|
10
|
+
// copies or substantial portions of the Software.
|
|
11
|
+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
12
|
+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
13
|
+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
14
|
+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
15
|
+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
16
|
+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
17
|
+
// SOFTWARE.
|
|
18
|
+
import { Extension } from '@tiptap/core';
|
|
19
|
+
import { Decoration, DecorationSet } from '@tiptap/pm/view';
|
|
20
|
+
import { Plugin, PluginKey } from '@tiptap/pm/state';
|
|
21
|
+
import { Node as PMNode } from '@tiptap/pm/model';
|
|
22
|
+
const getRegex = (s, disableRegex, caseSensitive) => {
|
|
23
|
+
return RegExp(disableRegex ? s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') : s, caseSensitive ? 'gu' : 'gui');
|
|
24
|
+
};
|
|
25
|
+
function processSearches(doc, searchTerm, searchResultClass, resultIndex) {
|
|
26
|
+
const decorations = [];
|
|
27
|
+
const results = [];
|
|
28
|
+
let textNodesWithPosition = [];
|
|
29
|
+
let index = 0;
|
|
30
|
+
if (!searchTerm) {
|
|
31
|
+
return {
|
|
32
|
+
decorationsToReturn: DecorationSet.empty,
|
|
33
|
+
results: []
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
doc?.descendants((node, pos) => {
|
|
37
|
+
if (node.isText) {
|
|
38
|
+
if (textNodesWithPosition[index]) {
|
|
39
|
+
textNodesWithPosition[index] = {
|
|
40
|
+
text: textNodesWithPosition[index].text + node.text,
|
|
41
|
+
pos: textNodesWithPosition[index].pos
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
textNodesWithPosition[index] = {
|
|
46
|
+
text: `${node.text}`,
|
|
47
|
+
pos
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
index += 1;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
textNodesWithPosition = textNodesWithPosition.filter(Boolean);
|
|
56
|
+
for (const element of textNodesWithPosition) {
|
|
57
|
+
const { text, pos } = element;
|
|
58
|
+
const matches = Array.from(text.matchAll(searchTerm)).filter(([matchText]) => matchText.trim());
|
|
59
|
+
for (const m of matches) {
|
|
60
|
+
if (m[0] === '')
|
|
61
|
+
break;
|
|
62
|
+
if (m.index !== undefined) {
|
|
63
|
+
results.push({
|
|
64
|
+
from: pos + m.index,
|
|
65
|
+
to: pos + m.index + m[0].length
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
for (let i = 0; i < results.length; i += 1) {
|
|
71
|
+
const r = results[i];
|
|
72
|
+
const className = i === resultIndex ? `${searchResultClass} ${searchResultClass}-current` : searchResultClass;
|
|
73
|
+
const decoration = Decoration.inline(r.from, r.to, {
|
|
74
|
+
class: className
|
|
75
|
+
});
|
|
76
|
+
decorations.push(decoration);
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
decorationsToReturn: DecorationSet.create(doc, decorations),
|
|
80
|
+
results
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const replace = (replaceTerm, results, { state, dispatch }) => {
|
|
84
|
+
const firstResult = results[0];
|
|
85
|
+
if (!firstResult)
|
|
86
|
+
return;
|
|
87
|
+
const { from, to } = results[0];
|
|
88
|
+
if (dispatch)
|
|
89
|
+
dispatch(state.tr.insertText(replaceTerm, from, to));
|
|
90
|
+
};
|
|
91
|
+
const rebaseNextResult = (replaceTerm, index, lastOffset, results) => {
|
|
92
|
+
const nextIndex = index + 1;
|
|
93
|
+
if (!results[nextIndex])
|
|
94
|
+
return null;
|
|
95
|
+
const { from: currentFrom, to: currentTo } = results[index];
|
|
96
|
+
const offset = currentTo - currentFrom - replaceTerm.length + lastOffset;
|
|
97
|
+
const { from, to } = results[nextIndex];
|
|
98
|
+
results[nextIndex] = {
|
|
99
|
+
to: to - offset,
|
|
100
|
+
from: from - offset
|
|
101
|
+
};
|
|
102
|
+
return [offset, results];
|
|
103
|
+
};
|
|
104
|
+
const replaceAll = (replaceTerm, results, { tr, dispatch }) => {
|
|
105
|
+
let offset = 0;
|
|
106
|
+
let resultsCopy = results.slice();
|
|
107
|
+
if (!resultsCopy.length)
|
|
108
|
+
return;
|
|
109
|
+
for (let i = 0; i < resultsCopy.length; i += 1) {
|
|
110
|
+
const { from, to } = resultsCopy[i];
|
|
111
|
+
tr.insertText(replaceTerm, from, to);
|
|
112
|
+
const rebaseNextResultResponse = rebaseNextResult(replaceTerm, i, offset, resultsCopy);
|
|
113
|
+
if (!rebaseNextResultResponse)
|
|
114
|
+
continue;
|
|
115
|
+
offset = rebaseNextResultResponse[0];
|
|
116
|
+
resultsCopy = rebaseNextResultResponse[1];
|
|
117
|
+
}
|
|
118
|
+
dispatch(tr);
|
|
119
|
+
};
|
|
120
|
+
export const searchAndReplacePluginKey = new PluginKey('searchAndReplacePlugin');
|
|
121
|
+
export const SearchAndReplace = Extension.create({
|
|
122
|
+
name: 'searchAndReplace',
|
|
123
|
+
addOptions() {
|
|
124
|
+
return {
|
|
125
|
+
searchResultClass: 'search-result',
|
|
126
|
+
disableRegex: true
|
|
127
|
+
};
|
|
128
|
+
},
|
|
129
|
+
addStorage() {
|
|
130
|
+
return {
|
|
131
|
+
searchTerm: '',
|
|
132
|
+
replaceTerm: '',
|
|
133
|
+
results: [],
|
|
134
|
+
lastSearchTerm: '',
|
|
135
|
+
caseSensitive: false,
|
|
136
|
+
lastCaseSensitive: false,
|
|
137
|
+
resultIndex: 0,
|
|
138
|
+
lastResultIndex: 0
|
|
139
|
+
};
|
|
140
|
+
},
|
|
141
|
+
addCommands() {
|
|
142
|
+
return {
|
|
143
|
+
setSearchTerm: (searchTerm) => ({ editor }) => {
|
|
144
|
+
editor.storage.searchAndReplace.searchTerm = searchTerm;
|
|
145
|
+
return false;
|
|
146
|
+
},
|
|
147
|
+
setReplaceTerm: (replaceTerm) => ({ editor }) => {
|
|
148
|
+
editor.storage.searchAndReplace.replaceTerm = replaceTerm;
|
|
149
|
+
return false;
|
|
150
|
+
},
|
|
151
|
+
setCaseSensitive: (caseSensitive) => ({ editor }) => {
|
|
152
|
+
editor.storage.searchAndReplace.caseSensitive = caseSensitive;
|
|
153
|
+
return false;
|
|
154
|
+
},
|
|
155
|
+
resetIndex: () => ({ editor }) => {
|
|
156
|
+
editor.storage.searchAndReplace.resultIndex = 0;
|
|
157
|
+
return false;
|
|
158
|
+
},
|
|
159
|
+
nextSearchResult: () => ({ editor }) => {
|
|
160
|
+
const { results, resultIndex } = editor.storage.searchAndReplace;
|
|
161
|
+
const nextIndex = resultIndex + 1;
|
|
162
|
+
if (results[nextIndex]) {
|
|
163
|
+
editor.storage.searchAndReplace.resultIndex = nextIndex;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
editor.storage.searchAndReplace.resultIndex = 0;
|
|
167
|
+
}
|
|
168
|
+
return false;
|
|
169
|
+
},
|
|
170
|
+
previousSearchResult: () => ({ editor }) => {
|
|
171
|
+
const { results, resultIndex } = editor.storage.searchAndReplace;
|
|
172
|
+
const prevIndex = resultIndex - 1;
|
|
173
|
+
if (results[prevIndex]) {
|
|
174
|
+
editor.storage.searchAndReplace.resultIndex = prevIndex;
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
editor.storage.searchAndReplace.resultIndex = results.length - 1;
|
|
178
|
+
}
|
|
179
|
+
return false;
|
|
180
|
+
},
|
|
181
|
+
replace: () => ({ editor, state, dispatch }) => {
|
|
182
|
+
const { replaceTerm, results } = editor.storage.searchAndReplace;
|
|
183
|
+
replace(replaceTerm, results, { state, dispatch });
|
|
184
|
+
return false;
|
|
185
|
+
},
|
|
186
|
+
replaceAll: () => ({ editor, tr, dispatch }) => {
|
|
187
|
+
const { replaceTerm, results } = editor.storage.searchAndReplace;
|
|
188
|
+
replaceAll(replaceTerm, results, { tr, dispatch });
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
},
|
|
193
|
+
addProseMirrorPlugins() {
|
|
194
|
+
const editor = this.editor;
|
|
195
|
+
const { searchResultClass, disableRegex } = this.options;
|
|
196
|
+
const setLastSearchTerm = (t) => (editor.storage.searchAndReplace.lastSearchTerm = t);
|
|
197
|
+
const setLastCaseSensitive = (t) => (editor.storage.searchAndReplace.lastCaseSensitive = t);
|
|
198
|
+
const setLastResultIndex = (t) => (editor.storage.searchAndReplace.lastResultIndex = t);
|
|
199
|
+
return [
|
|
200
|
+
new Plugin({
|
|
201
|
+
key: searchAndReplacePluginKey,
|
|
202
|
+
state: {
|
|
203
|
+
init: () => DecorationSet.empty,
|
|
204
|
+
apply({ doc, docChanged }, oldState) {
|
|
205
|
+
const { searchTerm, lastSearchTerm, caseSensitive, lastCaseSensitive, resultIndex, lastResultIndex } = editor.storage.searchAndReplace;
|
|
206
|
+
if (!docChanged &&
|
|
207
|
+
lastSearchTerm === searchTerm &&
|
|
208
|
+
lastCaseSensitive === caseSensitive &&
|
|
209
|
+
lastResultIndex === resultIndex)
|
|
210
|
+
return oldState;
|
|
211
|
+
setLastSearchTerm(searchTerm);
|
|
212
|
+
setLastCaseSensitive(caseSensitive);
|
|
213
|
+
setLastResultIndex(resultIndex);
|
|
214
|
+
if (!searchTerm) {
|
|
215
|
+
editor.storage.searchAndReplace.results = [];
|
|
216
|
+
return DecorationSet.empty;
|
|
217
|
+
}
|
|
218
|
+
const { decorationsToReturn, results } = processSearches(doc, getRegex(searchTerm, disableRegex, caseSensitive), searchResultClass, resultIndex);
|
|
219
|
+
editor.storage.searchAndReplace.results = results;
|
|
220
|
+
return decorationsToReturn;
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
props: {
|
|
224
|
+
decorations(state) {
|
|
225
|
+
return this.getState(state);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
})
|
|
229
|
+
];
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
export default SearchAndReplace;
|