@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.
Files changed (492) hide show
  1. package/README.md +730 -0
  2. package/dist/components/CopyableHeader.svelte +456 -0
  3. package/dist/components/CopyableHeader.svelte.d.ts +40 -0
  4. package/dist/components/EmptyState.svelte +145 -0
  5. package/dist/components/EmptyState.svelte.d.ts +36 -0
  6. package/dist/components/PasswordInput.svelte +46 -0
  7. package/dist/components/PasswordInput.svelte.d.ts +26 -0
  8. package/dist/components/ThumbHashImage.svelte +124 -0
  9. package/dist/components/ThumbHashImage.svelte.d.ts +26 -0
  10. package/dist/components/WScrollArea.svelte +47 -0
  11. package/dist/components/WScrollArea.svelte.d.ts +38 -0
  12. package/dist/components/debug-grid/DebugGrid.svelte +207 -0
  13. package/dist/components/debug-grid/DebugGrid.svelte.d.ts +32 -0
  14. package/dist/components/ic/browser/BrowserInputController.svelte +481 -0
  15. package/dist/components/ic/browser/BrowserInputController.svelte.d.ts +34 -0
  16. package/dist/components/ic/browser/icons/audio.svg +7 -0
  17. package/dist/components/ic/browser/icons/document.svg +11 -0
  18. package/dist/components/ic/browser/icons/error.svg +5 -0
  19. package/dist/components/ic/browser/icons/folder.svg +28 -0
  20. package/dist/components/ic/browser/icons/info-icon.svg +3 -0
  21. package/dist/components/ic/browser/icons/player-pause.svg +12 -0
  22. package/dist/components/ic/browser/icons/player-play.svg +1 -0
  23. package/dist/components/ic/types.d.ts +14 -0
  24. package/dist/components/ic/types.js +18 -0
  25. package/dist/components/index.d.ts +51 -0
  26. package/dist/components/index.js +52 -0
  27. package/dist/components/modals/ActionModal.svelte +189 -0
  28. package/dist/components/modals/ActionModal.svelte.d.ts +49 -0
  29. package/dist/components/modals/BaseModal.svelte +409 -0
  30. package/dist/components/modals/BaseModal.svelte.d.ts +38 -0
  31. package/dist/components/modals/NewItemDialog.svelte +189 -0
  32. package/dist/components/modals/NewItemDialog.svelte.d.ts +39 -0
  33. package/dist/components/modals/Portal.svelte +104 -0
  34. package/dist/components/modals/Portal.svelte.d.ts +34 -0
  35. package/dist/components/modals/README.md +99 -0
  36. package/dist/components/modals/RenameDialog.svelte +316 -0
  37. package/dist/components/modals/RenameDialog.svelte.d.ts +39 -0
  38. package/dist/components/modals/modalStore.d.ts +10 -0
  39. package/dist/components/modals/modalStore.js +45 -0
  40. package/dist/components/navigation/Breadcrumbs.svelte +348 -0
  41. package/dist/components/navigation/Breadcrumbs.svelte.d.ts +35 -0
  42. package/dist/components/navigation/index.d.ts +2 -0
  43. package/dist/components/navigation/index.js +2 -0
  44. package/dist/components/navigation/types.d.ts +12 -0
  45. package/dist/components/navigation/types.js +1 -0
  46. package/dist/components/pdf/PDFViewer.svelte +608 -0
  47. package/dist/components/pdf/PDFViewer.svelte.d.ts +32 -0
  48. package/dist/components/search-input/SearchInput.svelte +115 -0
  49. package/dist/components/search-input/SearchInput.svelte.d.ts +46 -0
  50. package/dist/components/search-input/index.d.ts +14 -0
  51. package/dist/components/search-input/index.js +4 -0
  52. package/dist/components/shad-editor/colorpicker.svelte +17 -0
  53. package/dist/components/shad-editor/colorpicker.svelte.d.ts +6 -0
  54. package/dist/components/shad-editor/custom/Extentions/ColorHighlighter.d.ts +2 -0
  55. package/dist/components/shad-editor/custom/Extentions/ColorHighlighter.js +25 -0
  56. package/dist/components/shad-editor/custom/Extentions/ImageExtention.d.ts +1 -0
  57. package/dist/components/shad-editor/custom/Extentions/ImageExtention.js +30 -0
  58. package/dist/components/shad-editor/custom/Extentions/SearchAndReplace.d.ts +57 -0
  59. package/dist/components/shad-editor/custom/Extentions/SearchAndReplace.js +232 -0
  60. package/dist/components/shad-editor/custom/Extentions/SmilieReplacer.d.ts +2 -0
  61. package/dist/components/shad-editor/custom/Extentions/SmilieReplacer.js +131 -0
  62. package/dist/components/shad-editor/custom/code-extended.svelte +78 -0
  63. package/dist/components/shad-editor/custom/code-extended.svelte.d.ts +4 -0
  64. package/dist/components/shad-editor/custom/image-extended-component.svelte +251 -0
  65. package/dist/components/shad-editor/custom/image-extended-component.svelte.d.ts +4 -0
  66. package/dist/components/shad-editor/custom/utils.d.ts +5 -0
  67. package/dist/components/shad-editor/custom/utils.js +35 -0
  68. package/dist/components/shad-editor/editor-toolbar.svelte +59 -0
  69. package/dist/components/shad-editor/editor-toolbar.svelte.d.ts +8 -0
  70. package/dist/components/shad-editor/editor.css +179 -0
  71. package/dist/components/shad-editor/icons/block-quote.svelte +26 -0
  72. package/dist/components/shad-editor/icons/block-quote.svelte.d.ts +7 -0
  73. package/dist/components/shad-editor/icons/bold.svelte +26 -0
  74. package/dist/components/shad-editor/icons/bold.svelte.d.ts +8 -0
  75. package/dist/components/shad-editor/icons/buttle-list.svelte +27 -0
  76. package/dist/components/shad-editor/icons/buttle-list.svelte.d.ts +7 -0
  77. package/dist/components/shad-editor/icons/code.svelte +27 -0
  78. package/dist/components/shad-editor/icons/code.svelte.d.ts +8 -0
  79. package/dist/components/shad-editor/icons/highlighter.svelte +75 -0
  80. package/dist/components/shad-editor/icons/highlighter.svelte.d.ts +9 -0
  81. package/dist/components/shad-editor/icons/image.svelte +73 -0
  82. package/dist/components/shad-editor/icons/image.svelte.d.ts +8 -0
  83. package/dist/components/shad-editor/icons/index.d.ts +22 -0
  84. package/dist/components/shad-editor/icons/index.js +24 -0
  85. package/dist/components/shad-editor/icons/italic.svelte +26 -0
  86. package/dist/components/shad-editor/icons/italic.svelte.d.ts +8 -0
  87. package/dist/components/shad-editor/icons/link.svelte +72 -0
  88. package/dist/components/shad-editor/icons/link.svelte.d.ts +8 -0
  89. package/dist/components/shad-editor/icons/ordered-list.svelte +26 -0
  90. package/dist/components/shad-editor/icons/ordered-list.svelte.d.ts +7 -0
  91. package/dist/components/shad-editor/icons/quickcolor.svelte +95 -0
  92. package/dist/components/shad-editor/icons/quickcolor.svelte.d.ts +7 -0
  93. package/dist/components/shad-editor/icons/redo.svelte +26 -0
  94. package/dist/components/shad-editor/icons/redo.svelte.d.ts +8 -0
  95. package/dist/components/shad-editor/icons/search-replace.svelte +146 -0
  96. package/dist/components/shad-editor/icons/search-replace.svelte.d.ts +7 -0
  97. package/dist/components/shad-editor/icons/strikethrough.svelte +26 -0
  98. package/dist/components/shad-editor/icons/strikethrough.svelte.d.ts +8 -0
  99. package/dist/components/shad-editor/icons/subscript.svelte +26 -0
  100. package/dist/components/shad-editor/icons/subscript.svelte.d.ts +8 -0
  101. package/dist/components/shad-editor/icons/superscript.svelte +26 -0
  102. package/dist/components/shad-editor/icons/superscript.svelte.d.ts +8 -0
  103. package/dist/components/shad-editor/icons/table.svelte +111 -0
  104. package/dist/components/shad-editor/icons/table.svelte.d.ts +8 -0
  105. package/dist/components/shad-editor/icons/task-list.svelte +26 -0
  106. package/dist/components/shad-editor/icons/task-list.svelte.d.ts +7 -0
  107. package/dist/components/shad-editor/icons/text.svelte +95 -0
  108. package/dist/components/shad-editor/icons/text.svelte.d.ts +7 -0
  109. package/dist/components/shad-editor/icons/textalign.svelte +82 -0
  110. package/dist/components/shad-editor/icons/textalign.svelte.d.ts +7 -0
  111. package/dist/components/shad-editor/icons/textcolor.svelte +75 -0
  112. package/dist/components/shad-editor/icons/textcolor.svelte.d.ts +8 -0
  113. package/dist/components/shad-editor/icons/underline.svelte +26 -0
  114. package/dist/components/shad-editor/icons/underline.svelte.d.ts +8 -0
  115. package/dist/components/shad-editor/icons/undo.svelte +26 -0
  116. package/dist/components/shad-editor/icons/undo.svelte.d.ts +8 -0
  117. package/dist/components/shad-editor/index.d.ts +4 -0
  118. package/dist/components/shad-editor/index.js +5 -0
  119. package/dist/components/shad-editor/onedark.css +87 -0
  120. package/dist/components/shad-editor/shad-editor.svelte +153 -0
  121. package/dist/components/shad-editor/shad-editor.svelte.d.ts +34 -0
  122. package/dist/components/toast/ToasterModal.svelte +128 -0
  123. package/dist/components/toast/ToasterModal.svelte.d.ts +30 -0
  124. package/dist/components/toast/index.d.ts +2 -0
  125. package/dist/components/toast/index.js +2 -0
  126. package/dist/components/ui/accordion/accordion-content.svelte +24 -0
  127. package/dist/components/ui/accordion/accordion-content.svelte.d.ts +4 -0
  128. package/dist/components/ui/accordion/accordion-item.svelte +12 -0
  129. package/dist/components/ui/accordion/accordion-item.svelte.d.ts +4 -0
  130. package/dist/components/ui/accordion/accordion-trigger.svelte +29 -0
  131. package/dist/components/ui/accordion/accordion-trigger.svelte.d.ts +7 -0
  132. package/dist/components/ui/accordion/index.d.ts +6 -0
  133. package/dist/components/ui/accordion/index.js +6 -0
  134. package/dist/components/ui/alert/alert-description.svelte +13 -0
  135. package/dist/components/ui/alert/alert-description.svelte.d.ts +28 -0
  136. package/dist/components/ui/alert/alert-title.svelte +21 -0
  137. package/dist/components/ui/alert/alert-title.svelte.d.ts +31 -0
  138. package/dist/components/ui/alert/alert.svelte +17 -0
  139. package/dist/components/ui/alert/alert.svelte.d.ts +31 -0
  140. package/dist/components/ui/alert/index.d.ts +43 -0
  141. package/dist/components/ui/alert/index.js +19 -0
  142. package/dist/components/ui/badge/badge.svelte +50 -0
  143. package/dist/components/ui/badge/badge.svelte.d.ts +60 -0
  144. package/dist/components/ui/badge/index.d.ts +2 -0
  145. package/dist/components/ui/badge/index.js +2 -0
  146. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +23 -0
  147. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +5 -0
  148. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +16 -0
  149. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +5 -0
  150. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +31 -0
  151. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +11 -0
  152. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +23 -0
  153. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +5 -0
  154. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +23 -0
  155. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +5 -0
  156. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +27 -0
  157. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +5 -0
  158. package/dist/components/ui/breadcrumb/breadcrumb.svelte +15 -0
  159. package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +5 -0
  160. package/dist/components/ui/breadcrumb/index.d.ts +8 -0
  161. package/dist/components/ui/breadcrumb/index.js +10 -0
  162. package/dist/components/ui/button/button.svelte +74 -0
  163. package/dist/components/ui/button/button.svelte.d.ts +118 -0
  164. package/dist/components/ui/button/index.d.ts +2 -0
  165. package/dist/components/ui/button/index.js +4 -0
  166. package/dist/components/ui/calendar/calendar-cell.svelte +19 -0
  167. package/dist/components/ui/calendar/calendar-cell.svelte.d.ts +4 -0
  168. package/dist/components/ui/calendar/calendar-day.svelte +30 -0
  169. package/dist/components/ui/calendar/calendar-day.svelte.d.ts +4 -0
  170. package/dist/components/ui/calendar/calendar-grid-body.svelte +12 -0
  171. package/dist/components/ui/calendar/calendar-grid-body.svelte.d.ts +4 -0
  172. package/dist/components/ui/calendar/calendar-grid-head.svelte +12 -0
  173. package/dist/components/ui/calendar/calendar-grid-head.svelte.d.ts +4 -0
  174. package/dist/components/ui/calendar/calendar-grid-row.svelte +12 -0
  175. package/dist/components/ui/calendar/calendar-grid-row.svelte.d.ts +4 -0
  176. package/dist/components/ui/calendar/calendar-grid.svelte +16 -0
  177. package/dist/components/ui/calendar/calendar-grid.svelte.d.ts +4 -0
  178. package/dist/components/ui/calendar/calendar-head-cell.svelte +16 -0
  179. package/dist/components/ui/calendar/calendar-head-cell.svelte.d.ts +4 -0
  180. package/dist/components/ui/calendar/calendar-header.svelte +16 -0
  181. package/dist/components/ui/calendar/calendar-header.svelte.d.ts +4 -0
  182. package/dist/components/ui/calendar/calendar-heading.svelte +12 -0
  183. package/dist/components/ui/calendar/calendar-heading.svelte.d.ts +4 -0
  184. package/dist/components/ui/calendar/calendar-months.svelte +20 -0
  185. package/dist/components/ui/calendar/calendar-months.svelte.d.ts +5 -0
  186. package/dist/components/ui/calendar/calendar-next-button.svelte +28 -0
  187. package/dist/components/ui/calendar/calendar-next-button.svelte.d.ts +4 -0
  188. package/dist/components/ui/calendar/calendar-prev-button.svelte +28 -0
  189. package/dist/components/ui/calendar/calendar-prev-button.svelte.d.ts +4 -0
  190. package/dist/components/ui/calendar/calendar.svelte +61 -0
  191. package/dist/components/ui/calendar/calendar.svelte.d.ts +5 -0
  192. package/dist/components/ui/calendar/index.d.ts +14 -0
  193. package/dist/components/ui/calendar/index.js +16 -0
  194. package/dist/components/ui/card/card-content.svelte +16 -0
  195. package/dist/components/ui/card/card-content.svelte.d.ts +5 -0
  196. package/dist/components/ui/card/card-description.svelte +16 -0
  197. package/dist/components/ui/card/card-description.svelte.d.ts +5 -0
  198. package/dist/components/ui/card/card-footer.svelte +16 -0
  199. package/dist/components/ui/card/card-footer.svelte.d.ts +5 -0
  200. package/dist/components/ui/card/card-header.svelte +16 -0
  201. package/dist/components/ui/card/card-header.svelte.d.ts +5 -0
  202. package/dist/components/ui/card/card-title.svelte +25 -0
  203. package/dist/components/ui/card/card-title.svelte.d.ts +8 -0
  204. package/dist/components/ui/card/card.svelte +20 -0
  205. package/dist/components/ui/card/card.svelte.d.ts +5 -0
  206. package/dist/components/ui/card/index.d.ts +7 -0
  207. package/dist/components/ui/card/index.js +7 -0
  208. package/dist/components/ui/checkbox/checkbox.svelte +35 -0
  209. package/dist/components/ui/checkbox/checkbox.svelte.d.ts +4 -0
  210. package/dist/components/ui/checkbox/index.d.ts +2 -0
  211. package/dist/components/ui/checkbox/index.js +4 -0
  212. package/dist/components/ui/collapsible/index.d.ts +16 -0
  213. package/dist/components/ui/collapsible/index.js +7 -0
  214. package/dist/components/ui/command/command-dialog.svelte +35 -0
  215. package/dist/components/ui/command/command-dialog.svelte.d.ts +9 -0
  216. package/dist/components/ui/command/command-empty.svelte +12 -0
  217. package/dist/components/ui/command/command-empty.svelte.d.ts +4 -0
  218. package/dist/components/ui/command/command-group.svelte +29 -0
  219. package/dist/components/ui/command/command-group.svelte.d.ts +7 -0
  220. package/dist/components/ui/command/command-input.svelte +25 -0
  221. package/dist/components/ui/command/command-input.svelte.d.ts +4 -0
  222. package/dist/components/ui/command/command-item.svelte +19 -0
  223. package/dist/components/ui/command/command-item.svelte.d.ts +4 -0
  224. package/dist/components/ui/command/command-link-item.svelte +19 -0
  225. package/dist/components/ui/command/command-link-item.svelte.d.ts +4 -0
  226. package/dist/components/ui/command/command-list.svelte +16 -0
  227. package/dist/components/ui/command/command-list.svelte.d.ts +4 -0
  228. package/dist/components/ui/command/command-separator.svelte +12 -0
  229. package/dist/components/ui/command/command-separator.svelte.d.ts +4 -0
  230. package/dist/components/ui/command/command-shortcut.svelte +20 -0
  231. package/dist/components/ui/command/command-shortcut.svelte.d.ts +5 -0
  232. package/dist/components/ui/command/command.svelte +21 -0
  233. package/dist/components/ui/command/command.svelte.d.ts +4 -0
  234. package/dist/components/ui/command/index.d.ts +13 -0
  235. package/dist/components/ui/command/index.js +15 -0
  236. package/dist/components/ui/dialog/dialog-content.svelte +38 -0
  237. package/dist/components/ui/dialog/dialog-content.svelte.d.ts +9 -0
  238. package/dist/components/ui/dialog/dialog-description.svelte +16 -0
  239. package/dist/components/ui/dialog/dialog-description.svelte.d.ts +4 -0
  240. package/dist/components/ui/dialog/dialog-footer.svelte +20 -0
  241. package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +5 -0
  242. package/dist/components/ui/dialog/dialog-header.svelte +20 -0
  243. package/dist/components/ui/dialog/dialog-header.svelte.d.ts +5 -0
  244. package/dist/components/ui/dialog/dialog-overlay.svelte +19 -0
  245. package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +4 -0
  246. package/dist/components/ui/dialog/dialog-title.svelte +16 -0
  247. package/dist/components/ui/dialog/dialog-title.svelte.d.ts +4 -0
  248. package/dist/components/ui/dialog/index.d.ts +12 -0
  249. package/dist/components/ui/dialog/index.js +14 -0
  250. package/dist/components/ui/drawer/drawer-content.svelte +30 -0
  251. package/dist/components/ui/drawer/drawer-content.svelte.d.ts +7 -0
  252. package/dist/components/ui/drawer/drawer-description.svelte +16 -0
  253. package/dist/components/ui/drawer/drawer-description.svelte.d.ts +4 -0
  254. package/dist/components/ui/drawer/drawer-footer.svelte +16 -0
  255. package/dist/components/ui/drawer/drawer-footer.svelte.d.ts +5 -0
  256. package/dist/components/ui/drawer/drawer-header.svelte +20 -0
  257. package/dist/components/ui/drawer/drawer-header.svelte.d.ts +5 -0
  258. package/dist/components/ui/drawer/drawer-nested.svelte +12 -0
  259. package/dist/components/ui/drawer/drawer-nested.svelte.d.ts +3 -0
  260. package/dist/components/ui/drawer/drawer-overlay.svelte +16 -0
  261. package/dist/components/ui/drawer/drawer-overlay.svelte.d.ts +4 -0
  262. package/dist/components/ui/drawer/drawer-title.svelte +16 -0
  263. package/dist/components/ui/drawer/drawer-title.svelte.d.ts +4 -0
  264. package/dist/components/ui/drawer/drawer.svelte +12 -0
  265. package/dist/components/ui/drawer/drawer.svelte.d.ts +3 -0
  266. package/dist/components/ui/drawer/index.d.ts +13 -0
  267. package/dist/components/ui/drawer/index.js +15 -0
  268. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +40 -0
  269. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +8 -0
  270. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +26 -0
  271. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +7 -0
  272. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +19 -0
  273. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +7 -0
  274. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +23 -0
  275. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +7 -0
  276. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +23 -0
  277. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
  278. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +30 -0
  279. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +4 -0
  280. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +16 -0
  281. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +4 -0
  282. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +20 -0
  283. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +5 -0
  284. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +19 -0
  285. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +4 -0
  286. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +28 -0
  287. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
  288. package/dist/components/ui/dropdown-menu/index.d.ts +25 -0
  289. package/dist/components/ui/dropdown-menu/index.js +17 -0
  290. package/dist/components/ui/hover-card/hover-card-content.svelte +28 -0
  291. package/dist/components/ui/hover-card/hover-card-content.svelte.d.ts +7 -0
  292. package/dist/components/ui/hover-card/index.d.ts +5 -0
  293. package/dist/components/ui/hover-card/index.js +5 -0
  294. package/dist/components/ui/input/index.d.ts +2 -0
  295. package/dist/components/ui/input/index.js +4 -0
  296. package/dist/components/ui/input/input.svelte +22 -0
  297. package/dist/components/ui/input/input.svelte.d.ts +5 -0
  298. package/dist/components/ui/input-otp/index.d.ts +5 -0
  299. package/dist/components/ui/input-otp/index.js +7 -0
  300. package/dist/components/ui/input-otp/input-otp-group.svelte +16 -0
  301. package/dist/components/ui/input-otp/input-otp-group.svelte.d.ts +5 -0
  302. package/dist/components/ui/input-otp/input-otp-separator.svelte +19 -0
  303. package/dist/components/ui/input-otp/input-otp-separator.svelte.d.ts +5 -0
  304. package/dist/components/ui/input-otp/input-otp-slot.svelte +30 -0
  305. package/dist/components/ui/input-otp/input-otp-slot.svelte.d.ts +12 -0
  306. package/dist/components/ui/input-otp/input-otp.svelte +22 -0
  307. package/dist/components/ui/input-otp/input-otp.svelte.d.ts +3 -0
  308. package/dist/components/ui/label/index.d.ts +2 -0
  309. package/dist/components/ui/label/index.js +4 -0
  310. package/dist/components/ui/label/label.svelte +19 -0
  311. package/dist/components/ui/label/label.svelte.d.ts +4 -0
  312. package/dist/components/ui/popover/index.d.ts +6 -0
  313. package/dist/components/ui/popover/index.js +6 -0
  314. package/dist/components/ui/popover/popover-content.svelte +28 -0
  315. package/dist/components/ui/popover/popover-content.svelte.d.ts +7 -0
  316. package/dist/components/ui/progress/index.d.ts +2 -0
  317. package/dist/components/ui/progress/index.js +4 -0
  318. package/dist/components/ui/progress/progress.svelte +25 -0
  319. package/dist/components/ui/progress/progress.svelte.d.ts +4 -0
  320. package/dist/components/ui/radio-group/index.d.ts +3 -0
  321. package/dist/components/ui/radio-group/index.js +5 -0
  322. package/dist/components/ui/radio-group/radio-group-item.svelte +28 -0
  323. package/dist/components/ui/radio-group/radio-group-item.svelte.d.ts +4 -0
  324. package/dist/components/ui/radio-group/radio-group.svelte +13 -0
  325. package/dist/components/ui/radio-group/radio-group.svelte.d.ts +4 -0
  326. package/dist/components/ui/range-calendar/index.d.ts +15 -0
  327. package/dist/components/ui/range-calendar/index.js +17 -0
  328. package/dist/components/ui/range-calendar/range-calendar-cell.svelte +19 -0
  329. package/dist/components/ui/range-calendar/range-calendar-cell.svelte.d.ts +4 -0
  330. package/dist/components/ui/range-calendar/range-calendar-day.svelte +34 -0
  331. package/dist/components/ui/range-calendar/range-calendar-day.svelte.d.ts +4 -0
  332. package/dist/components/ui/range-calendar/range-calendar-grid-row.svelte +12 -0
  333. package/dist/components/ui/range-calendar/range-calendar-grid-row.svelte.d.ts +4 -0
  334. package/dist/components/ui/range-calendar/range-calendar-grid.svelte +16 -0
  335. package/dist/components/ui/range-calendar/range-calendar-grid.svelte.d.ts +4 -0
  336. package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte +16 -0
  337. package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte.d.ts +4 -0
  338. package/dist/components/ui/range-calendar/range-calendar-header.svelte +16 -0
  339. package/dist/components/ui/range-calendar/range-calendar-header.svelte.d.ts +4 -0
  340. package/dist/components/ui/range-calendar/range-calendar-heading.svelte +16 -0
  341. package/dist/components/ui/range-calendar/range-calendar-heading.svelte.d.ts +4 -0
  342. package/dist/components/ui/range-calendar/range-calendar-months.svelte +20 -0
  343. package/dist/components/ui/range-calendar/range-calendar-months.svelte.d.ts +5 -0
  344. package/dist/components/ui/range-calendar/range-calendar-next-button.svelte +28 -0
  345. package/dist/components/ui/range-calendar/range-calendar-next-button.svelte.d.ts +4 -0
  346. package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte +28 -0
  347. package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte.d.ts +4 -0
  348. package/dist/components/ui/range-calendar/range-calendar.svelte +57 -0
  349. package/dist/components/ui/range-calendar/range-calendar.svelte.d.ts +5 -0
  350. package/dist/components/ui/scroll-area/index.d.ts +3 -0
  351. package/dist/components/ui/scroll-area/index.js +6 -0
  352. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +29 -0
  353. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +4 -0
  354. package/dist/components/ui/scroll-area/scroll-area.svelte +32 -0
  355. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +9 -0
  356. package/dist/components/ui/select/index.d.ts +11 -0
  357. package/dist/components/ui/select/index.js +13 -0
  358. package/dist/components/ui/select/select-content.svelte +39 -0
  359. package/dist/components/ui/select/select-content.svelte.d.ts +7 -0
  360. package/dist/components/ui/select/select-group-heading.svelte +16 -0
  361. package/dist/components/ui/select/select-group-heading.svelte.d.ts +4 -0
  362. package/dist/components/ui/select/select-item.svelte +37 -0
  363. package/dist/components/ui/select/select-item.svelte.d.ts +4 -0
  364. package/dist/components/ui/select/select-scroll-down-button.svelte +19 -0
  365. package/dist/components/ui/select/select-scroll-down-button.svelte.d.ts +4 -0
  366. package/dist/components/ui/select/select-scroll-up-button.svelte +19 -0
  367. package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +4 -0
  368. package/dist/components/ui/select/select-separator.svelte +13 -0
  369. package/dist/components/ui/select/select-separator.svelte.d.ts +4 -0
  370. package/dist/components/ui/select/select-trigger.svelte +24 -0
  371. package/dist/components/ui/select/select-trigger.svelte.d.ts +4 -0
  372. package/dist/components/ui/separator/index.d.ts +2 -0
  373. package/dist/components/ui/separator/index.js +4 -0
  374. package/dist/components/ui/separator/separator.svelte +22 -0
  375. package/dist/components/ui/separator/separator.svelte.d.ts +4 -0
  376. package/dist/components/ui/slider/index.d.ts +3 -0
  377. package/dist/components/ui/slider/index.js +5 -0
  378. package/dist/components/ui/slider/slider.svelte +34 -0
  379. package/dist/components/ui/slider/slider.svelte.d.ts +4 -0
  380. package/dist/components/ui/sonner/index.d.ts +2 -0
  381. package/dist/components/ui/sonner/index.js +2 -0
  382. package/dist/components/ui/sonner/sonner.svelte +20 -0
  383. package/dist/components/ui/sonner/sonner.svelte.d.ts +4 -0
  384. package/dist/components/ui/switch/index.d.ts +2 -0
  385. package/dist/components/ui/switch/index.js +4 -0
  386. package/dist/components/ui/switch/switch.svelte +27 -0
  387. package/dist/components/ui/switch/switch.svelte.d.ts +4 -0
  388. package/dist/components/ui/table/index.d.ts +9 -0
  389. package/dist/components/ui/table/index.js +11 -0
  390. package/dist/components/ui/table/table-body.svelte +16 -0
  391. package/dist/components/ui/table/table-body.svelte.d.ts +5 -0
  392. package/dist/components/ui/table/table-caption.svelte +16 -0
  393. package/dist/components/ui/table/table-caption.svelte.d.ts +5 -0
  394. package/dist/components/ui/table/table-cell.svelte +20 -0
  395. package/dist/components/ui/table/table-cell.svelte.d.ts +5 -0
  396. package/dist/components/ui/table/table-footer.svelte +16 -0
  397. package/dist/components/ui/table/table-footer.svelte.d.ts +5 -0
  398. package/dist/components/ui/table/table-head.svelte +23 -0
  399. package/dist/components/ui/table/table-head.svelte.d.ts +5 -0
  400. package/dist/components/ui/table/table-header.svelte +16 -0
  401. package/dist/components/ui/table/table-header.svelte.d.ts +5 -0
  402. package/dist/components/ui/table/table-row.svelte +23 -0
  403. package/dist/components/ui/table/table-row.svelte.d.ts +5 -0
  404. package/dist/components/ui/table/table.svelte +18 -0
  405. package/dist/components/ui/table/table.svelte.d.ts +5 -0
  406. package/dist/components/ui/tabs/index.d.ts +6 -0
  407. package/dist/components/ui/tabs/index.js +8 -0
  408. package/dist/components/ui/tabs/tabs-content.svelte +19 -0
  409. package/dist/components/ui/tabs/tabs-content.svelte.d.ts +4 -0
  410. package/dist/components/ui/tabs/tabs-list.svelte +19 -0
  411. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +4 -0
  412. package/dist/components/ui/tabs/tabs-trigger.svelte +19 -0
  413. package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
  414. package/dist/components/ui/textarea/index.d.ts +19 -0
  415. package/dist/components/ui/textarea/index.js +4 -0
  416. package/dist/components/ui/textarea/textarea.svelte +22 -0
  417. package/dist/components/ui/textarea/textarea.svelte.d.ts +5 -0
  418. package/dist/components/ui/toggle/index.d.ts +3 -0
  419. package/dist/components/ui/toggle/index.js +5 -0
  420. package/dist/components/ui/toggle/toggle.svelte +51 -0
  421. package/dist/components/ui/toggle/toggle.svelte.d.ts +83 -0
  422. package/dist/components/ui/toggle-group/index.d.ts +3 -0
  423. package/dist/components/ui/toggle-group/index.js +5 -0
  424. package/dist/components/ui/toggle-group/toggle-group-item.svelte +30 -0
  425. package/dist/components/ui/toggle-group/toggle-group-item.svelte.d.ts +6 -0
  426. package/dist/components/ui/toggle-group/toggle-group.svelte +41 -0
  427. package/dist/components/ui/toggle-group/toggle-group.svelte.d.ts +8 -0
  428. package/dist/components/ui/tooltip/index.d.ts +6 -0
  429. package/dist/components/ui/tooltip/index.js +8 -0
  430. package/dist/components/ui/tooltip/tooltip-content.svelte +21 -0
  431. package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +4 -0
  432. package/dist/components/widget-system/EditableWidget.svelte +106 -0
  433. package/dist/components/widget-system/EditableWidget.svelte.d.ts +44 -0
  434. package/dist/components/widget-system/Moveable.svelte +661 -0
  435. package/dist/components/widget-system/Moveable.svelte.d.ts +56 -0
  436. package/dist/components/widget-system/index.d.ts +2 -0
  437. package/dist/components/widget-system/index.js +3 -0
  438. package/dist/fonts/BLMelody/BLMelody-Bold.woff2 +0 -0
  439. package/dist/fonts/BLMelody/BLMelody-Medium.woff2 +0 -0
  440. package/dist/fonts/BLMelody/BLMelody-SemiBold.woff2 +0 -0
  441. package/dist/fonts/Riegla/Riegla-Bold Italic.otf +0 -0
  442. package/dist/fonts/Riegla/Riegla-Bold.otf +0 -0
  443. package/dist/fonts/Riegla/Riegla-Italic.otf +0 -0
  444. package/dist/fonts/Riegla/Riegla-Regular.otf +0 -0
  445. package/dist/fonts/Riegla/RieglaMedium-Regular.otf +0 -0
  446. package/dist/fonts/index.d.ts +0 -0
  447. package/dist/fonts/index.js +1 -0
  448. package/dist/hooks/is-mobile.svelte.d.ts +5 -0
  449. package/dist/hooks/is-mobile.svelte.js +23 -0
  450. package/dist/icons/Checked.svelte +19 -0
  451. package/dist/icons/Checked.svelte.d.ts +20 -0
  452. package/dist/icons/CheckerBoardBackground.svelte +16 -0
  453. package/dist/icons/CheckerBoardBackground.svelte.d.ts +3 -0
  454. package/dist/icons/Close.svelte +22 -0
  455. package/dist/icons/Close.svelte.d.ts +20 -0
  456. package/dist/icons/Close.svg +8 -0
  457. package/dist/icons/Error.svg +5 -0
  458. package/dist/icons/Exclamation.svelte +5 -0
  459. package/dist/icons/Exclamation.svelte.d.ts +26 -0
  460. package/dist/icons/FileBrowser.svelte +38 -0
  461. package/dist/icons/FileBrowser.svelte.d.ts +20 -0
  462. package/dist/icons/FileBrowser.svg +28 -0
  463. package/dist/icons/LogoWidgetic.svelte +24 -0
  464. package/dist/icons/LogoWidgetic.svelte.d.ts +20 -0
  465. package/dist/icons/LogoWidgeticType.svelte +12 -0
  466. package/dist/icons/LogoWidgeticType.svelte.d.ts +20 -0
  467. package/dist/icons/LogoWidgeticType.svg +4 -0
  468. package/dist/icons/OpacitySliderArrows.svelte +46 -0
  469. package/dist/icons/OpacitySliderArrows.svelte.d.ts +3 -0
  470. package/dist/icons/TestIcon.svelte +1 -0
  471. package/dist/icons/TestIcon.svelte.d.ts +26 -0
  472. package/dist/icons/checked.svg +4 -0
  473. package/dist/icons/index.d.ts +11 -0
  474. package/dist/icons/index.js +15 -0
  475. package/dist/icons/lucide.d.ts +1 -0
  476. package/dist/icons/lucide.js +1 -0
  477. package/dist/icons/tabler.d.ts +1 -0
  478. package/dist/icons/tabler.js +1 -0
  479. package/dist/index.d.ts +3 -0
  480. package/dist/index.js +9 -0
  481. package/dist/stores/index.d.ts +1 -0
  482. package/dist/stores/index.js +1 -0
  483. package/dist/stores/pdfCache.d.ts +16 -0
  484. package/dist/stores/pdfCache.js +101 -0
  485. package/dist/styles/fonts.css +172 -0
  486. package/dist/styles/global.css +893 -0
  487. package/dist/utils/MediaManager.d.ts +35 -0
  488. package/dist/utils/MediaManager.js +59 -0
  489. package/dist/utils.d.ts +2 -0
  490. package/dist/utils.js +5 -0
  491. package/package.json +183 -0
  492. package/tailwind.config.ts +97 -0
@@ -0,0 +1,104 @@
1
+ <!-- Portal component for mounting elements outside their normal DOM hierarchy -->
2
+ <script lang="ts">
3
+ import { onMount, onDestroy } from 'svelte';
4
+
5
+ /**
6
+ * Component props
7
+ */
8
+ let defaultTarget: string = 'portal-element';
9
+ export let target: string | HTMLElement | undefined = defaultTarget;
10
+ export let clickThrough = false; // Whether to allow click events to pass through
11
+ // Class
12
+ let className = '';
13
+ export { className as class };
14
+ // Style prop
15
+ export let style = '';
16
+ export let clientWidth = 0;
17
+ export let clientHeight = 0;
18
+
19
+ /**
20
+ * Local Variables
21
+ */
22
+ let host: HTMLElement; // host(target) container of the portal: parent target of the portal
23
+ let portal: HTMLElement; // root portal element
24
+ // show logs
25
+ let showLogs = false;
26
+
27
+ onMount(() => {
28
+ if(showLogs) console.log('DS Portal target:', target);
29
+ // If target is an HTML element, use it directly
30
+ if (target instanceof HTMLElement) {
31
+ if(showLogs) console.log('DS Portal target is an HTML element:', target);
32
+ host = target;
33
+ } else {
34
+ // Make sure target is not empty, use default if it is
35
+ const targetSelector = `.${target || defaultTarget}`;
36
+
37
+ // find host container in the DOM
38
+ host = document.querySelector(targetSelector) as HTMLElement;
39
+ if(showLogs) console.log('DS Portal host:', host, 'target:', target, 'targetSelector:', targetSelector);
40
+
41
+ // Create host container if it doesn't exist
42
+ if (!host) {
43
+ // Create host container in the root of the document
44
+ host = document.createElement('div');
45
+
46
+ // add the class to the host
47
+ host.classList.add(target || defaultTarget);
48
+ // host.dataset.portal = target;
49
+
50
+ // append the host to the document's body
51
+ document.body.appendChild(host);
52
+ }
53
+ }
54
+
55
+ if(showLogs) console.log('DS Portal target:', target, 'host:', host, 'portal:', portal);
56
+
57
+ // Move the portal content to the host
58
+ if (portal) host.appendChild(portal);
59
+ });
60
+
61
+ onDestroy(() => {
62
+ // Additional cleanup on component destroy
63
+ if (portal && host && host.contains(portal)) {
64
+ host.removeChild(portal);
65
+ }
66
+ // Remove host if empty
67
+ if (host && host.childNodes.length === 0) {
68
+ host.remove();
69
+ }
70
+ });
71
+ </script>
72
+
73
+ <!-- Portal Container -->
74
+ <div bind:this={portal}
75
+ class="{className ? `${className} ` : ''}portal-contents{clickThrough ? ' click-through' : ''}"
76
+ style={style}
77
+ bind:clientWidth
78
+ bind:clientHeight
79
+ >
80
+ <slot />
81
+ </div>
82
+
83
+ <style>
84
+ /* Use contents to prevent extra DOM nesting */
85
+ .portal-contents {
86
+ position: absolute;
87
+ top: 0;
88
+ left: 0;
89
+ width: 100%;
90
+ height: 100%;
91
+ z-index: 99999999;
92
+ pointer-events: none;
93
+ }
94
+
95
+ :global(.portal-contents > *) {
96
+ pointer-events: auto;
97
+ }
98
+
99
+ /* Click through styles */
100
+ :global(.portal-contents.click-through),
101
+ :global(.portal-contents.click-through *) {
102
+ pointer-events: none !important;
103
+ }
104
+ </style>
@@ -0,0 +1,34 @@
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
+ type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
15
+ default: any;
16
+ } ? Props extends Record<string, never> ? any : {
17
+ children?: any;
18
+ } : {});
19
+ declare const Portal: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
20
+ target?: string | HTMLElement | undefined;
21
+ clickThrough?: boolean;
22
+ class?: string;
23
+ style?: string;
24
+ clientWidth?: number;
25
+ clientHeight?: number;
26
+ }, {
27
+ default: {};
28
+ }>, {
29
+ [evt: string]: CustomEvent<any>;
30
+ }, {
31
+ default: {};
32
+ }, {}, string>;
33
+ type Portal = InstanceType<typeof Portal>;
34
+ export default Portal;
@@ -0,0 +1,99 @@
1
+ # Modal Components
2
+
3
+ ## ActionModal Component
4
+
5
+ The `ActionModal` component is a reusable confirmation modal that can be used across different parts of the project for confirming deletion actions.
6
+
7
+ ### Features
8
+
9
+ - Independent of any specific store or state management system
10
+ - Customizable title, message, and button labels
11
+ - Works with any type of items to be deleted
12
+ - Dispatches events for both confirmation and cancellation
13
+ - Maintains backwards compatibility with the FileBrowser implementation
14
+
15
+ ### Props
16
+
17
+ | Prop | Type | Default | Description |
18
+ |------|------|---------|-------------|
19
+ | `isOpen` | boolean | `false` | Controls the visibility of the modal |
20
+ | `items` | array | `[]` | Array of items to be deleted |
21
+ | `title` | string | `''` | Custom title for the modal (autogenerated if empty) |
22
+ | `message` | string | `''` | Custom message for the modal (autogenerated if empty) |
23
+ | `confirmLabel` | string | `'Confirm'` | Label for the confirm button |
24
+ | `cancelLabel` | string | `'Cancel'` | Label for the cancel button |
25
+ | `width` | string | `'410px'` | Width of the modal |
26
+ | `height` | string | `'168px'` | Height of the modal |
27
+ | `modalId` | string | `'delete-confirmation-modal'` | ID for targeting the modal |
28
+ | `modalType` | string | `'deleteConfirmation'` | Type for the modal (for backwards compatibility) |
29
+ | `modalData` | any | `null` | Data for the modal (for backwards compatibility) |
30
+
31
+ ### Events
32
+
33
+ - `delete` - Dispatched when the user confirms deletion, with `items` in the event detail
34
+ - `cancel` - Dispatched when the user cancels deletion
35
+
36
+ ### Usage Example
37
+
38
+ ```svelte
39
+ <script>
40
+ import { ActionModal } from '$lib/components/modals';
41
+
42
+ let showDeleteConfirmation = false;
43
+ let itemsToDelete = [
44
+ { name: 'Document.pdf', type: 'file' },
45
+ { name: 'Images', type: 'folder' }
46
+ ];
47
+
48
+ function handleDelete(event) {
49
+ const { items } = event.detail;
50
+ console.log('Deleting items:', items);
51
+ // Perform deletion logic here
52
+ }
53
+ </script>
54
+
55
+ <button on:click={() => showDeleteConfirmation = true}>
56
+ Delete Items
57
+ </button>
58
+
59
+ <ActionModal
60
+ bind:isOpen={showDeleteConfirmation}
61
+ items={itemsToDelete}
62
+ on:confirm={handleDelete}
63
+ on:cancel={() => console.log('Deletion cancelled')}
64
+ />
65
+ ```
66
+
67
+ ### FileBrowser Integration
68
+
69
+ When using the component in the FileBrowser, make sure to:
70
+
71
+ 1. Handle clearing selections from the persistentSelectStore in the parent component
72
+ 2. Provide the correct modalId for the FileBrowser context
73
+
74
+ ```svelte
75
+ <ActionModal
76
+ bind:isOpen={showDeleteConfirmation}
77
+ items={selectedItems}
78
+ target="file-browser-module"
79
+ on:confirm={handleDelete}
80
+ on:cancel={() => {
81
+ showDeleteConfirmation = false;
82
+ }}
83
+ />
84
+ ```
85
+
86
+ ### Custom Title and Message Example
87
+
88
+ You can provide custom title and message for specific contexts:
89
+
90
+ ```svelte
91
+ <ActionModal
92
+ bind:isOpen={showDeleteConfirmation}
93
+ items={selectedItems}
94
+ title="Delete Assets"
95
+ message="These assets will be permanently deleted. This action cannot be undone."
96
+ confirmLabel="Delete Permanently"
97
+ on:confirm={handleDelete}
98
+ />
99
+ ```
@@ -0,0 +1,316 @@
1
+ <script lang="ts">
2
+ // Svelte imports
3
+ import { createEventDispatcher, onMount, tick } from 'svelte';
4
+
5
+ // Local imports
6
+ import { Button } from '../ui/button';
7
+ // import { toast } from '../ui/sonner';
8
+ import { showToast } from '../toast';
9
+ import BaseModal from './BaseModal.svelte';
10
+
11
+ // Props
12
+ let className = '';
13
+ export { className as class };
14
+ export let style: string = '';
15
+ //
16
+ export let isOpen = false;
17
+ export let itemName = '';
18
+ export let itemType = 'item'; // 'item', 'folder', 'file', 'key', etc.
19
+ export let itemId = '';
20
+ export let title = '';
21
+ export let placeholder = '';
22
+ export let confirmLabel = 'Rename';
23
+ export let cancelLabel = 'Cancel';
24
+ export let width = '410px';
25
+ export let height = '168px';
26
+ export let target: string = 'rename-dialog'; // target for Portal
27
+ export let maxLength = 200;
28
+ export let shouldUseCustomRenameFunction = false; // If true, parent component handles the rename
29
+
30
+ // For backwards compatibility with specific implementations
31
+ export let modalType: string = 'rename';
32
+ export let modalData: any = null;
33
+
34
+ let inputValue = '';
35
+ let inputElement: HTMLInputElement;
36
+ let preventFocusSteal = false;
37
+ let hasAttemptedSubmit = false; // Track if user has attempted to submit
38
+ let isValid = false; // Track if input is valid
39
+
40
+ // Initialize modalData with our current props if not provided externally
41
+ $: if (modalData === null) {
42
+ modalData = {
43
+ itemName,
44
+ itemType,
45
+ itemId,
46
+ title,
47
+ placeholder,
48
+ confirmLabel,
49
+ cancelLabel
50
+ };
51
+ }
52
+
53
+ // Update validation state whenever inputValue changes
54
+ $: {
55
+ isValid = inputValue.trim().length > 0 &&
56
+ inputValue.length <= maxLength &&
57
+ inputValue !== itemName;
58
+ }
59
+
60
+ // Computed placeholder based on itemType
61
+ $: computedPlaceholder = placeholder || `${itemType} name...`;
62
+
63
+ // Function to focus and select the input text
64
+ async function focusAndSelectInput() {
65
+ // Wait for the DOM to update
66
+ await tick();
67
+
68
+ if (!inputElement) return;
69
+
70
+ // Set flag to prevent focus stealing
71
+ preventFocusSteal = true;
72
+
73
+ // Focus the input
74
+ inputElement.focus();
75
+
76
+ // Select all text
77
+ inputElement.setSelectionRange(0, inputElement.value.length);
78
+
79
+ // Keep the flag active for a while to prevent focus stealing
80
+ setTimeout(() => {
81
+ preventFocusSteal = false;
82
+ }, 1000);
83
+ }
84
+
85
+ // Simple function to handle input initialization
86
+ function handleInput(event: Event) {
87
+ const input = event.target as HTMLInputElement;
88
+ inputValue = input.value.slice(0, maxLength);
89
+ }
90
+
91
+ // When the modal opens, set the input value and focus the input
92
+ $: if (isOpen) {
93
+ inputValue = itemName;
94
+ hasAttemptedSubmit = false; // Reset submission state
95
+ // Schedule focus after a short delay
96
+ setTimeout(focusAndSelectInput, 50);
97
+ }
98
+
99
+ // Use onMount to set up event listeners to prevent focus stealing
100
+ onMount(() => {
101
+ // Create a function to handle mousedown events
102
+ const handleMouseDown = (e: MouseEvent) => {
103
+ // If we're trying to prevent focus stealing and the click is outside our input
104
+ if (preventFocusSteal && inputElement && !inputElement.contains(e.target as Node)) {
105
+ // Prevent the default action (focus change)
106
+ e.preventDefault();
107
+ e.stopPropagation();
108
+
109
+ // Refocus our input
110
+ inputElement.focus();
111
+
112
+ // Reselect the text
113
+ inputElement.setSelectionRange(0, inputElement.value.length);
114
+
115
+ return false;
116
+ }
117
+ };
118
+
119
+ // Add the event listener to the document
120
+ document.addEventListener('mousedown', handleMouseDown, true);
121
+
122
+ // Clean up when the component is destroyed
123
+ return () => {
124
+ document.removeEventListener('mousedown', handleMouseDown, true);
125
+ };
126
+ });
127
+
128
+ const dispatch = createEventDispatcher();
129
+
130
+ async function handleRename() {
131
+ hasAttemptedSubmit = true;
132
+
133
+ try {
134
+ // Validate input
135
+ if (!inputValue.trim() || inputValue.length < 1) {
136
+ showToast('error', 'Invalid name', { description: 'Name must be at least 1 character long' });
137
+ return;
138
+ }
139
+
140
+ if (inputValue.length > maxLength) {
141
+ showToast('error', 'Invalid name', { description: `Name must be ${maxLength} characters or less` });
142
+ return;
143
+ }
144
+
145
+ if (inputValue === itemName) {
146
+ showToast('error', 'Invalid name', { description: 'Please enter a different name' });
147
+ return;
148
+ }
149
+
150
+ console.log('Attempting rename:', {
151
+ from: itemName,
152
+ to: inputValue,
153
+ itemId
154
+ });
155
+
156
+ // If parent component handles rename, dispatch event
157
+ if (shouldUseCustomRenameFunction) {
158
+ dispatch('rename', { itemId, newName: inputValue, oldName: itemName });
159
+ isOpen = false;
160
+ } else {
161
+ // For file browser compatibility - in a real implementation, this would be replaced
162
+ // with a more generic approach
163
+ try {
164
+ // Simulate success
165
+ showToast('success', `Successfully renamed to ${inputValue}`);
166
+ dispatch('rename', { itemId, newName: inputValue, oldName: itemName });
167
+ isOpen = false;
168
+ } catch (error) {
169
+ console.error('Error during rename:', error);
170
+ showToast('error', 'Failed to rename item');
171
+ }
172
+ }
173
+ } catch (error) {
174
+ console.error('Error during rename:', error);
175
+ showToast('error', 'Failed to rename item');
176
+ }
177
+ }
178
+
179
+ function handleClose() {
180
+ isOpen = false;
181
+ hasAttemptedSubmit = false;
182
+ dispatch('cancel');
183
+ }
184
+
185
+ // Support for restoring modal state
186
+ function handleRestore(event: CustomEvent) {
187
+ if (event.detail) {
188
+ itemName = event.detail.itemName || '';
189
+ itemType = event.detail.itemType || 'item';
190
+ itemId = event.detail.itemId || '';
191
+ if (event.detail.title) title = event.detail.title;
192
+ if (event.detail.placeholder) placeholder = event.detail.placeholder;
193
+ if (event.detail.confirmLabel) confirmLabel = event.detail.confirmLabel;
194
+ if (event.detail.cancelLabel) cancelLabel = event.detail.cancelLabel;
195
+
196
+ // Reset input value on restore
197
+ inputValue = itemName;
198
+
199
+ // Focus and select text when modal is restored
200
+ setTimeout(focusAndSelectInput, 50);
201
+ }
202
+ }
203
+ </script>
204
+
205
+ <BaseModal
206
+ bind:open={isOpen}
207
+ on:close={handleClose}
208
+ {target}
209
+ title={title || undefined}
210
+ width={width}
211
+ height={height}
212
+ titlePadding="small"
213
+ {modalType}
214
+ {modalData}
215
+ on:restore={handleRestore}
216
+ >
217
+ <div class="{className ? `${className} ` : ''}rename-dialog-container h-full flex flex-col gap-4 min-h-[136px] justify-between" style={style}>
218
+
219
+ <!-- Input Container -->
220
+ <div class="input-container flex flex-col items-center pt-6">
221
+ <!-- Simple native input with minimal event handlers -->
222
+ <input
223
+ type="text"
224
+ bind:value={inputValue}
225
+ bind:this={inputElement}
226
+ oninput={handleInput}
227
+ onkeydown={(e) => {
228
+ if (e.key === 'Escape') {
229
+ handleClose();
230
+ } else {
231
+ e.stopPropagation(); // Stop all keyboard events except Escape from bubbling up
232
+ if (e.key === 'Enter') {
233
+ e.preventDefault();
234
+ handleRename();
235
+ }
236
+ }
237
+ }}
238
+ onfocus={(e) => {
239
+ const target = e.target as HTMLInputElement;
240
+ target.placeholder = "";
241
+
242
+ // Select all text
243
+ setTimeout(() => {
244
+ if (target) {
245
+ target.setSelectionRange(0, target.value.length);
246
+ }
247
+ }, 0);
248
+ }}
249
+ onblur={(e) => {
250
+ // Only allow blur if we're not preventing focus stealing
251
+ if (preventFocusSteal) {
252
+ // Refocus immediately
253
+ setTimeout(() => {
254
+ if (inputElement) {
255
+ inputElement.focus();
256
+ inputElement.setSelectionRange(0, inputElement.value.length);
257
+ }
258
+ }, 0);
259
+ return;
260
+ }
261
+
262
+ const target = e.target as HTMLInputElement;
263
+ target.placeholder = computedPlaceholder;
264
+ }}
265
+ required
266
+ class="w-full h5 text-[24px] text-[hsl(var(--grey7))] text-center
267
+ bg-transparent border-none focus:outline-none focus:ring-0
268
+ placeholder:text-[24px] placeholder:text-[hsl(var(--grey3))]
269
+ {!isValid && hasAttemptedSubmit ? 'input-error' : ''}"
270
+ maxlength={maxLength}
271
+ data-min-length="1"
272
+ placeholder={computedPlaceholder}
273
+ />
274
+ {#if !isValid && hasAttemptedSubmit}
275
+ <div class="text-xs text-[hsl(var(--error))] mt-1">
276
+ {inputValue.trim().length === 0 ? 'Please enter a name' :
277
+ inputValue === itemName ? 'Please enter a different name' :
278
+ 'Please enter a valid name'}
279
+ </div>
280
+ {/if}
281
+ </div>
282
+
283
+ <!-- Buttons Container -->
284
+ <div class="buttons-container flex justify-center gap-4">
285
+ <Button
286
+ type="button"
287
+ variant="secondary"
288
+ class="modal-btn-secondary !h-[34px]"
289
+ onclick={handleClose}
290
+ >
291
+ {cancelLabel}
292
+ </Button>
293
+ <Button
294
+ type="submit"
295
+ class="modal-btn-primary !h-[34px]"
296
+ onclick={handleRename}
297
+ disabled={!isValid}
298
+ >
299
+ {confirmLabel}
300
+ </Button>
301
+ </div>
302
+ </div>
303
+ </BaseModal>
304
+
305
+ <style>
306
+ :global(.input-error) {
307
+ animation: shake 0.4s ease-in-out;
308
+ border-bottom: 1px solid hsl(var(--error)) !important;
309
+ }
310
+
311
+ @keyframes shake {
312
+ 0%, 100% { transform: translateX(0); }
313
+ 25% { transform: translateX(-5px); }
314
+ 75% { transform: translateX(5px); }
315
+ }
316
+ </style>
@@ -0,0 +1,39 @@
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 RenameDialog: $$__sveltets_2_IsomorphicComponent<{
15
+ class?: string;
16
+ style?: string;
17
+ isOpen?: boolean;
18
+ itemName?: string;
19
+ itemType?: string;
20
+ itemId?: string;
21
+ title?: string;
22
+ placeholder?: string;
23
+ confirmLabel?: string;
24
+ cancelLabel?: string;
25
+ width?: string;
26
+ height?: string;
27
+ target?: string;
28
+ maxLength?: number;
29
+ shouldUseCustomRenameFunction?: boolean;
30
+ modalType?: string;
31
+ modalData?: any;
32
+ }, {
33
+ rename: CustomEvent<any>;
34
+ cancel: CustomEvent<any>;
35
+ } & {
36
+ [evt: string]: CustomEvent<any>;
37
+ }, {}, {}, string>;
38
+ type RenameDialog = InstanceType<typeof RenameDialog>;
39
+ export default RenameDialog;
@@ -0,0 +1,10 @@
1
+ interface ModalState {
2
+ isOpen: boolean;
3
+ modalType?: string;
4
+ data?: any;
5
+ }
6
+ export declare const modalState: import("svelte/store").Writable<ModalState>;
7
+ export declare const isModalOpen: import("svelte/store").Writable<boolean>;
8
+ export declare function openModal(modalType?: string, data?: any): void;
9
+ export declare function closeModal(): void;
10
+ export {};
@@ -0,0 +1,45 @@
1
+ import { writable } from 'svelte/store';
2
+ // import { browser } from '$app/environment';
3
+ const browser = typeof window !== 'undefined';
4
+ let showLogs = false;
5
+ // Get initial state from localStorage if available
6
+ const getInitialState = () => {
7
+ if (browser) {
8
+ const stored = localStorage.getItem('modal-state');
9
+ if (stored) {
10
+ const parsedState = JSON.parse(stored);
11
+ if (showLogs)
12
+ console.log('Restored modal state:', parsedState);
13
+ return parsedState;
14
+ }
15
+ }
16
+ return { isOpen: false };
17
+ };
18
+ // Create a store to track modal state
19
+ export const modalState = writable(getInitialState());
20
+ // Derived store for backward compatibility
21
+ export const isModalOpen = writable(getInitialState().isOpen);
22
+ // Subscribe to changes and update localStorage
23
+ if (browser) {
24
+ modalState.subscribe(state => {
25
+ if (showLogs)
26
+ console.log('Saving modal state:', state);
27
+ localStorage.setItem('modal-state', JSON.stringify(state));
28
+ isModalOpen.set(state.isOpen);
29
+ });
30
+ }
31
+ // Helper functions to manage modal state
32
+ export function openModal(modalType, data) {
33
+ if (showLogs)
34
+ console.log('Opening modal:', { modalType, data });
35
+ modalState.set({
36
+ isOpen: true,
37
+ modalType,
38
+ data
39
+ });
40
+ }
41
+ export function closeModal() {
42
+ if (showLogs)
43
+ console.log('Closing modal');
44
+ modalState.set({ isOpen: false });
45
+ }