@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,409 @@
1
+ <script lang="ts">
2
+ // Svelte imports
3
+ import { fade, scale } from 'svelte/transition';
4
+ import { cubicOut } from 'svelte/easing';
5
+ import { createEventDispatcher, onMount } from 'svelte';
6
+ const dispatch = createEventDispatcher();
7
+
8
+ // Design system componentsimports
9
+ import { Button, WScrollArea, Portal } from '..';
10
+ import { IconX } from '../../icons';
11
+
12
+ // Modal store
13
+ import { modalState, openModal, closeModal } from './modalStore';
14
+
15
+ /* COMPONENT PROPS */
16
+ // class and style props
17
+ let className = '';
18
+ export { className as class };
19
+ export let style: string = '';
20
+ // modal dimensions
21
+ export let width: string = '808px';
22
+ export let height: string = '500px';
23
+ // modal props
24
+ export let modalType: string | undefined = undefined;
25
+ export let modalData: any = undefined;
26
+ // portal target
27
+ export let target: string = '';
28
+ // title props
29
+ export let title: string | undefined = undefined;
30
+ export let titlePadding: 'small' | 'large' = 'large';
31
+ // modal state props
32
+ export let open = false;
33
+ export let enableSpaceKey = false;
34
+ export let isSelected = false;
35
+ export let showScroll = false;
36
+
37
+ // children prop(svelte 5) to replace the traditional slot(svelte 4)
38
+ export let children: any;
39
+
40
+ /* CONSTANTS */
41
+ // Modal transition and style variables
42
+ const transitionDuration = 200;
43
+ const backdropOpacity = '0.4';
44
+ const backdropBlur = '4px';
45
+ const easing = cubicOut;
46
+
47
+ // Update constants for modal constraints
48
+ const PADDING = 24; // Consistent padding for sides and bottom
49
+
50
+ /* STATE VARIABLES */
51
+ // Add viewport dimension state
52
+ let viewportWidth = 0;
53
+ let viewportHeight = 0;
54
+
55
+ // Modal vars
56
+ let modalHeight = 0; // Height of the modal including borders that's why binded to offsetHeight
57
+
58
+
59
+ // All Content Container vars
60
+ const contentPadding = 16;
61
+ let allContentHeight = 0;
62
+ $: allContentHeight = 2 * contentPadding + titleHeight + contentHolderHeight;
63
+
64
+ // Title vars
65
+ let titleHeight = 0;
66
+
67
+ // Content only vars
68
+ let contentHolderHeight = 0;
69
+ $: contentAvailableHeight = modalHeight - (2 * contentPadding + titleHeight);
70
+ let updateContentDimInterval:any;
71
+
72
+ // Show logs
73
+ let showLogs = false;
74
+
75
+
76
+ /* METHODS */
77
+ function toggleUpdateContentDimensions(flag: boolean = true) {
78
+ if (!flag) {
79
+ clearInterval(updateContentDimInterval);
80
+ updateContentDimInterval = undefined;
81
+ } else {
82
+ // updateContentDimInterval = setInterval(() => {updateViewportDimensions()}, 200);
83
+ }
84
+ }
85
+
86
+ /**
87
+ * LIFECYCLE HOOKS
88
+ * */
89
+ // Check stored state on mount and reopen if needed
90
+ onMount(() => {
91
+ if ($modalState.isOpen && !open) {
92
+ if(showLogs) console.log('Checking modal restoration:', {
93
+ currentType: modalType,
94
+ storedType: $modalState.modalType,
95
+ storedData: $modalState.data
96
+ });
97
+
98
+ // Only reopen if this is the correct modal type
99
+ if ($modalState.modalType === modalType) {
100
+ if(showLogs) console.log('Restoring modal state for:', modalType);
101
+ open = true;
102
+ modalData = $modalState.data;
103
+ dispatch('restore', $modalState.data);
104
+ }
105
+ }
106
+
107
+ // Initialize update content dimensions
108
+ // updateViewportDimensions();
109
+
110
+ // Add keydown listener
111
+ window.addEventListener('keydown', handleKeydown);
112
+
113
+ // Add resize listener
114
+ // window.addEventListener('resize', updateViewportDimensions);
115
+
116
+ return () => {
117
+ // window.removeEventListener('resize', updateViewportDimensions);
118
+ window.removeEventListener('keydown', handleKeydown);
119
+
120
+ // Close the modal if it is open
121
+ if (open) {
122
+ closeModal();
123
+ toggleUpdateContentDimensions(false);
124
+ }
125
+ };
126
+ });
127
+
128
+ // Function to update viewport dimensions
129
+ function updateViewportDimensions() {// not used anymore
130
+ // read window width and height
131
+ // viewportWidth = window.innerWidth;
132
+ // viewportHeight = window.innerHeight;
133
+
134
+ // update the conetent holder height
135
+ // setTimeout(() => {
136
+ allContentHeight = 2 * contentPadding + titleHeight + contentHolderHeight;
137
+ if(showLogs) console.log('Modal current height:', allContentHeight);
138
+ // let availableHeight = modalHeight - 2 * contentPadding;
139
+ // if(showLogs) console.log('Modal current height:', allContentHeight, availableHeight);
140
+ // contentHolderHeight = allContentHeight > availableHeight ? (availableHeight - titleHeight) + 'px' : 'auto';
141
+ // modalFinalHeight = titleHeight + contentHeight + 2 * PADDING;
142
+ // if(showLogs) console.log('Modal current height:', modalHeight, modalFinalHeight);
143
+ // modalFinalHeight = Math.min(modalHeight, contentCurrentHeight);
144
+ // }, 10);
145
+ // if(showLogs) console.log('Updating viewport dimensions:', viewportWidth, viewportHeight);
146
+ }
147
+
148
+ // Reactive Statement to Calculate dynamic modal position and dimensions
149
+ $: modalStyle = (() => {
150
+ if (viewportWidth === 0 || viewportHeight === 0) {
151
+ // Return default styles during SSR
152
+ return {
153
+ width: width,
154
+ height: height,
155
+ maxWidth: `calc(100vw - ${2 * PADDING}px)`,
156
+ maxHeight: `calc(100vh - ${2 * PADDING}px)`,
157
+ top: '50%',
158
+ transform: 'translateY(-50%)'
159
+ };
160
+ }
161
+
162
+ // Parse provided dimensions
163
+ const providedWidth = parseInt(width);
164
+ const providedHeight = parseInt(height);
165
+
166
+ // Calculate maximum dimensions
167
+ const maxWidth = viewportWidth - (2 * PADDING);
168
+ const maxHeight = viewportHeight - (2 * PADDING);
169
+
170
+ // Calculate actual dimensions
171
+ const actualWidth = Math.min(providedWidth, maxWidth);
172
+ const actualHeight = Math.min(providedHeight, maxHeight);
173
+
174
+ // If the actual height is less than maxHeight, center it vertically(but ensure it never goes above PADDING
175
+ const centeredTop = Math.max(PADDING, (viewportHeight - actualHeight) / 2);
176
+
177
+ // Return the calculated styles
178
+ return {
179
+ width: `${actualWidth}px`,
180
+ height: `${actualHeight}px`,
181
+ maxWidth: `${maxWidth}px`,
182
+ maxHeight: `${maxHeight}px`,
183
+ top: `${centeredTop}px`,
184
+ transform: 'none'
185
+ };
186
+ })();
187
+
188
+ function handleKeydown(event: KeyboardEvent) {
189
+ // Only log keyboard events that we actually handle
190
+ if (['Backspace', 'Escape', 'Space'].includes(event.key)) {
191
+ if(showLogs) console.log('Modal handling key:', event.key, 'Target:', (event.target as HTMLElement).tagName);
192
+ }
193
+
194
+ const target = event.target as HTMLElement;
195
+ const isInput = target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable;
196
+
197
+ // Let input fields handle their own events
198
+ if (isInput) {
199
+ return;
200
+ }
201
+
202
+ // Prevent backspace navigation when not in input
203
+ if (event.key === 'Backspace') {
204
+ event.preventDefault();
205
+ event.stopPropagation();
206
+ return;
207
+ }
208
+
209
+ if (event.key === 'Escape') {
210
+ handleClose();
211
+ }
212
+
213
+ if (enableSpaceKey && open && event.code === 'Space') {
214
+ event.preventDefault();
215
+ event.stopPropagation();
216
+ dispatch('spaceKey');
217
+ }
218
+ }
219
+
220
+ function handleClose() {
221
+ if(showLogs) console.log('handleClose');
222
+
223
+ // change the open state to false
224
+ open = false;
225
+
226
+ // Close the modal
227
+ closeModal();
228
+
229
+ // Stop updating the content dimensions
230
+ toggleUpdateContentDimensions(false);
231
+
232
+ // Dispatch close event
233
+ dispatch('close');
234
+ }
235
+
236
+ // Only update the modal store when the open state actually changes
237
+ let previousOpen = open;
238
+ $: if (open !== previousOpen) {
239
+ previousOpen = open;
240
+
241
+ if(showLogs) console.log('Modal open state changed:', { open, modalType, modalData });
242
+
243
+ // Open the modal if the open state is true
244
+ if (open) {
245
+ openModal(modalType, modalData);
246
+ toggleUpdateContentDimensions(true);
247
+ } else {
248
+ closeModal();
249
+ toggleUpdateContentDimensions(false);
250
+ }
251
+ }
252
+
253
+ // Improved backdrop click handler
254
+ function handleBackdropClick(event: MouseEvent) {
255
+ // Prevent any propagation
256
+ event.preventDefault();
257
+ event.stopPropagation();
258
+
259
+ // Only handle clicks directly on the backdrop
260
+ if (event.target === event.currentTarget) {
261
+ if(showLogs) console.log('Modal backdrop clicked!', event.type);
262
+ handleClose();
263
+ }
264
+ }
265
+ </script>
266
+
267
+ {#if open}
268
+ <Portal class="{className ? className + ' ' : ''}base-modal-portal"
269
+ target={target || `modal-${modalType || 'default'}`}
270
+ style={style}
271
+ bind:clientWidth={viewportWidth}
272
+ bind:clientHeight={viewportHeight}
273
+ >
274
+ <!-- Backdrop Container with blur restricted to file browser -->
275
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
276
+ <!-- svelte-ignore a11y_click_events_have_key_events -->
277
+ <div
278
+ class="modal-backdrop-container absolute inset-0 pointer-events-auto"
279
+ style="background-color: rgba(15, 32, 16, {backdropOpacity}); backdrop-filter: blur({backdropBlur}); z-index: 999;"
280
+
281
+ transition:fade={{ duration: transitionDuration, easing }}
282
+ on:mousedown={handleBackdropClick}
283
+ on:click={handleBackdropClick}
284
+ ></div>
285
+
286
+ <!-- Close button -->
287
+ <div class="modal-close-bt-container absolute top-4 right-4 z-[1004]" transition:fade={{ duration: transitionDuration, easing }}>
288
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
289
+ <!-- svelte-ignore a11y-no-static-element-interactions -->
290
+ <div
291
+ class="close-button widgetic-colors p-0 w-10 h-10 bg-[hsl(var(--dark))] hover:bg-[hsl(var(--grey6))] transition-colors duration-200 rounded-full flex items-center justify-center cursor-pointer"
292
+ on:click|stopPropagation|preventDefault={handleClose}
293
+ aria-label="Close modal"
294
+ role="button"
295
+ tabindex="0"
296
+ >
297
+ <IconX class="!w-[24px] !h-[24px] text-white" />
298
+ </div>
299
+ </div>
300
+
301
+ <!-- Modal Main Container -->
302
+ <div
303
+ class="modal-root-container absolute w-full h-full inset-x-0 flex justify-center pointer-events-none items-center"
304
+ style="z-index: 1000;"
305
+ >
306
+ <!-- Modal Content Container -->
307
+ <div
308
+ class="modal-content-inner-container fixed pointer-events-auto mx-6 overflow-hidden
309
+ bg-white modal-shadow widgetic-colors rounded-medium widgetic-radius
310
+ border select-text {isSelected && modalType === 'filePreview' ? 'border-[hsl(var(--grey1))]' : 'border-[hsl(var(--grey1))]'}"
311
+ style="
312
+ width: {modalStyle.width};
313
+ height: {allContentHeight}px;
314
+ min-width: {2 * contentPadding + 100}px;
315
+ min-height: {2 * contentPadding + 50}px;
316
+ max-width: {modalStyle.maxWidth};
317
+ max-height: {modalStyle.maxHeight};
318
+ padding: {contentPadding}px 0;
319
+ user-select: text;
320
+ -webkit-user-select: text;
321
+ -moz-user-select: text;
322
+ -ms-user-select: text;
323
+ z-index: 1003;
324
+ "
325
+ bind:offsetHeight={modalHeight}
326
+ in:scale={{ duration: transitionDuration, start: 0.95, opacity: 0, easing }}
327
+ out:scale={{ duration: transitionDuration, start: 0.95, opacity: 0, easing }}
328
+ on:click|stopPropagation
329
+ >
330
+ <!-- Content Title -->
331
+ {#if title}
332
+ <div bind:clientHeight={titleHeight}
333
+ class="modal-title-container h5 text-[hsl(var(--grey7))] overflow-hidden
334
+ text-center px-4 {titlePadding === 'small' ? 'pb-2' : 'pb-4'}">
335
+ {title}
336
+ </div>
337
+ {/if}
338
+
339
+ <!-- Content Slot Container -->
340
+ {#snippet contentSlot()}
341
+ <div class="modal-content-slot-container w-full" bind:clientHeight={contentHolderHeight}>
342
+ {@render children()}
343
+ </div>
344
+ {/snippet}
345
+
346
+ <!-- Content with Scroll Area -->
347
+ {#if showScroll}
348
+ <WScrollArea class="modal-content-container scroll-container" type="always" scrollOutside={true}
349
+ style="height: {contentAvailableHeight}px"
350
+ >
351
+ {@render contentSlot()}
352
+ </WScrollArea>
353
+ {:else}
354
+ <div class="modal-content-container"
355
+ style="height: {contentAvailableHeight}px;"
356
+ >
357
+ {@render contentSlot()}
358
+ </div>
359
+ {/if}
360
+
361
+ </div>
362
+ </div>
363
+ </Portal>
364
+ {/if}
365
+
366
+ <style>
367
+ .modal-content-container {
368
+ width: 100%;
369
+ height: 100%;
370
+ overflow: hidden;
371
+ }
372
+
373
+ /* Add specific styling for the backdrop to ensure it captures all clicks */
374
+ .modal-backdrop-container {
375
+ pointer-events: all !important;
376
+ }
377
+
378
+ :global(.ScrollAreaViewport) {
379
+ width: 100%;
380
+ height: 100%;
381
+ border-radius: inherit;
382
+ }
383
+
384
+ :global(.ScrollAreaScrollbar[data-state='hidden']) {
385
+ display: none;
386
+ }
387
+
388
+ /* Ensure text selection works in modals */
389
+ :global(.base-modal-portal),
390
+ :global(.modal-content-inner-container),
391
+ :global(.modal-content-root-container) {
392
+ user-select: text !important;
393
+ -webkit-user-select: text !important;
394
+ -moz-user-select: text !important;
395
+ -ms-user-select: text !important;
396
+ }
397
+
398
+ /* Ensure text selection works in input fields */
399
+ :global(.base-modal-portal input),
400
+ :global(.base-modal-portal textarea),
401
+ :global(.base-modal-portal select),
402
+ :global(.base-modal-portal [contenteditable="true"]) {
403
+ user-select: text !important;
404
+ -webkit-user-select: text !important;
405
+ -moz-user-select: text !important;
406
+ -ms-user-select: text !important;
407
+ cursor: text !important;
408
+ }
409
+ </style>
@@ -0,0 +1,38 @@
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 BaseModal: $$__sveltets_2_IsomorphicComponent<{
15
+ class?: string;
16
+ style?: string;
17
+ width?: string;
18
+ height?: string;
19
+ modalType?: string | undefined;
20
+ modalData?: any;
21
+ target?: string;
22
+ title?: string | undefined;
23
+ titlePadding?: "small" | "large";
24
+ open?: boolean;
25
+ enableSpaceKey?: boolean;
26
+ isSelected?: boolean;
27
+ showScroll?: boolean;
28
+ children: any;
29
+ }, {
30
+ click: MouseEvent;
31
+ restore: CustomEvent<any>;
32
+ spaceKey: CustomEvent<any>;
33
+ close: CustomEvent<any>;
34
+ } & {
35
+ [evt: string]: CustomEvent<any>;
36
+ }, {}, {}, string>;
37
+ type BaseModal = InstanceType<typeof BaseModal>;
38
+ export default BaseModal;
@@ -0,0 +1,189 @@
1
+ <script lang="ts">
2
+ // Svelte imports
3
+ import { createEventDispatcher } from 'svelte';
4
+ const dispatch = createEventDispatcher();
5
+
6
+ // Design system imports
7
+ import { Button } from '../ui/button';
8
+ import { Input } from '../ui/input';
9
+ import { toast } from '../ui/sonner';
10
+ // Import BaseModal as a default import using relative path, similar to RenameDialog
11
+ import BaseModal from './BaseModal.svelte';
12
+
13
+ // Props
14
+ let className = '';
15
+ export { className as class };
16
+ export let style: string = '';
17
+ //
18
+ export let isOpen = false;
19
+ export let title = ''; // Make title optional
20
+ export let showTitle = true; // Whether to show a title at all
21
+ export let itemType = "item"; // "folder", "file", "project", etc.
22
+ export let placeholder = `${itemType} name...`;
23
+ export let target: string = 'new-item-dialog'; // target for Portal
24
+ export let currentPath: string[] = [];
25
+ export let currentPathNames: string[] = [];
26
+ export let confirmLabel = "Create";
27
+ export let cancelLabel = "Cancel";
28
+ export let modalType: string = "newItem";
29
+ export let modalWidth = "410px";
30
+ export let modalHeight = "168px";
31
+ export let maxLength = 200;
32
+ export let modalData: Record<string, any> = {};
33
+
34
+ // Local state
35
+ let itemName = '';
36
+ let isValid = false;
37
+ let hasAttemptedSubmit = false; // Track if user has attempted to submit
38
+
39
+ // Compute title based on itemType if not provided
40
+ $: displayTitle = title || `New ${itemType.charAt(0).toUpperCase() + itemType.slice(1)}`;
41
+
42
+ $: if (isOpen) {
43
+ itemName = '';
44
+ hasAttemptedSubmit = false;
45
+ }
46
+
47
+ $: {
48
+ isValid = itemName.trim().length > 0 && itemName.length <= maxLength;
49
+ }
50
+
51
+ function handleSubmit() {
52
+ hasAttemptedSubmit = true;
53
+
54
+ if (!itemName.trim() || itemName.length < 1) {
55
+ // Show error toast for empty item name
56
+ toast.error(`Invalid ${itemType} name`, {
57
+ description: `Please enter a ${itemType} name`
58
+ });
59
+ return;
60
+ }
61
+
62
+ if (itemName.length > maxLength) {
63
+ // Show error toast for name too long
64
+ toast.error(`Invalid ${itemType} name`, {
65
+ description: `${itemType} name cannot exceed ${maxLength} characters`
66
+ });
67
+ return;
68
+ }
69
+
70
+ console.log(`Creating ${itemType}:`, { itemName, path: currentPath });
71
+ dispatch('create', { itemName: itemName.trim(), path: currentPath });
72
+ handleClose();
73
+ }
74
+
75
+ function handleClose() {
76
+ isOpen = false;
77
+ itemName = '';
78
+ isValid = false;
79
+ hasAttemptedSubmit = false;
80
+ dispatch('cancel');
81
+ }
82
+
83
+ // Combine the custom modal data with our required path info
84
+ $: combinedModalData = {
85
+ ...modalData,
86
+ currentPath,
87
+ currentPathNames
88
+ };
89
+ </script>
90
+
91
+ <BaseModal
92
+ bind:open={isOpen}
93
+ on:close={handleClose}
94
+ width={modalWidth}
95
+ height={modalHeight}
96
+ {modalType}
97
+ modalData={combinedModalData}
98
+ title={showTitle ? displayTitle : undefined}
99
+ {target}
100
+ on:restore={(event: CustomEvent<any>) => {
101
+ if (event.detail) {
102
+ if (event.detail.currentPath) currentPath = event.detail.currentPath;
103
+ if (event.detail.currentPathNames) currentPathNames = event.detail.currentPathNames;
104
+ }
105
+ }}
106
+ >
107
+ <div class="{className ? `${className} ` : ''}new-item-dialog-container h-full flex flex-col min-h-[136px] justify-between" style={style}>
108
+ <div class="flex flex-col items-center pt-6">
109
+ <!-- Replace Input component with native input to match RenameDialog styling -->
110
+ <input
111
+ type="text"
112
+ bind:value={itemName}
113
+ onkeydown={(e) => {
114
+ if (e.key === 'Escape') {
115
+ handleClose();
116
+ } else {
117
+ e.stopPropagation(); // Stop all keyboard events except Escape from bubbling up
118
+ if (e.key === 'Enter') {
119
+ e.preventDefault();
120
+ handleSubmit();
121
+ }
122
+ }
123
+ }}
124
+ onfocus={(e) => {
125
+ const target = e.target as HTMLInputElement;
126
+ target.placeholder = "";
127
+ }}
128
+ onblur={(e) => {
129
+ const target = e.target as HTMLInputElement;
130
+ target.placeholder = placeholder;
131
+ }}
132
+ required
133
+ class="w-full h5 text-[24px] text-[hsl(var(--grey7))] text-center
134
+ bg-transparent border-none focus:outline-none focus:ring-0
135
+ placeholder:text-[24px] placeholder:text-[hsl(var(--grey3))]
136
+ {!isValid && hasAttemptedSubmit ? 'input-error' : ''}"
137
+ placeholder={placeholder}
138
+ maxlength={maxLength}
139
+ data-min-length="1"
140
+ />
141
+ {#if !isValid && hasAttemptedSubmit}
142
+ <div class="text-xs text-[hsl(var(--error))] mt-1">
143
+ Please enter a valid {itemType} name
144
+ </div>
145
+ {/if}
146
+ </div>
147
+
148
+ <div class="buttons-container flex justify-center gap-4">
149
+ <Button
150
+ type="button"
151
+ variant="secondary"
152
+ class="modal-btn-secondary !rounded-[100px] !h-[34px]"
153
+ onclick={handleClose}
154
+ >
155
+ {cancelLabel}
156
+ </Button>
157
+ <Button
158
+ type="submit"
159
+ class="modal-btn-primary !rounded-[100px] !h-[34px]"
160
+ onclick={handleSubmit}
161
+ disabled={!isValid}
162
+ >
163
+ {confirmLabel}
164
+ </Button>
165
+ </div>
166
+ </div>
167
+ </BaseModal>
168
+
169
+ <style>
170
+ @keyframes pulse-subtle {
171
+ 0%, 100% { opacity: 0; }
172
+ 50% { opacity: 0.1; }
173
+ }
174
+
175
+ :global(.animate-pulse-subtle) {
176
+ animation: pulse-subtle 2s ease-in-out infinite;
177
+ }
178
+
179
+ :global(.input-error) {
180
+ animation: shake 0.4s ease-in-out;
181
+ border-bottom: 1px solid hsl(var(--error)) !important;
182
+ }
183
+
184
+ @keyframes shake {
185
+ 0%, 100% { transform: translateX(0); }
186
+ 25% { transform: translateX(-5px); }
187
+ 75% { transform: translateX(5px); }
188
+ }
189
+ </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 NewItemDialog: $$__sveltets_2_IsomorphicComponent<{
15
+ class?: string;
16
+ style?: string;
17
+ isOpen?: boolean;
18
+ title?: string;
19
+ showTitle?: boolean;
20
+ itemType?: string;
21
+ placeholder?: string;
22
+ target?: string;
23
+ currentPath?: string[];
24
+ currentPathNames?: string[];
25
+ confirmLabel?: string;
26
+ cancelLabel?: string;
27
+ modalType?: string;
28
+ modalWidth?: string;
29
+ modalHeight?: string;
30
+ maxLength?: number;
31
+ modalData?: Record<string, any>;
32
+ }, {
33
+ create: CustomEvent<any>;
34
+ cancel: CustomEvent<any>;
35
+ } & {
36
+ [evt: string]: CustomEvent<any>;
37
+ }, {}, {}, string>;
38
+ type NewItemDialog = InstanceType<typeof NewItemDialog>;
39
+ export default NewItemDialog;