@threadlabs/looma 0.1.23 → 0.1.25

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 (309) hide show
  1. package/dist/chunk-HNFCGIBP.js +8 -0
  2. package/dist/chunk-NB6DBRXQ.js +323 -0
  3. package/dist/{chunk-GDMQKT5F.js → chunk-UY423IKN.js} +33 -30
  4. package/dist/cjs/controlled-state-BFya8rAX.js +9 -0
  5. package/dist/cjs/icons-BAdjrnhS.js +680 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/looma.cjs.js +1 -1
  8. package/dist/cjs/ui-affordance-scope.cjs.entry.js +1 -1
  9. package/dist/cjs/ui-avatar-group.cjs.entry.js +9 -17
  10. package/dist/cjs/ui-avatar.cjs.entry.js +2 -2
  11. package/dist/cjs/ui-badge.cjs.entry.js +2 -2
  12. package/dist/cjs/ui-button.cjs.entry.js +1 -1
  13. package/dist/cjs/ui-callout.cjs.entry.js +27 -0
  14. package/dist/cjs/ui-checkbox.cjs.entry.js +13 -7
  15. package/dist/cjs/{ui-combobox.cjs.entry.js → ui-chip_2.cjs.entry.js} +29 -4
  16. package/dist/cjs/ui-context-menu.cjs.entry.js +1 -1
  17. package/dist/cjs/ui-dialog.cjs.entry.js +44 -8
  18. package/dist/cjs/ui-disclosure.cjs.entry.js +9 -6
  19. package/dist/cjs/ui-editable.cjs.entry.js +100 -0
  20. package/dist/cjs/ui-floating-action-button.cjs.entry.js +1 -1
  21. package/dist/cjs/ui-form-field.cjs.entry.js +59 -4
  22. package/dist/cjs/ui-icon-button.cjs.entry.js +1 -1
  23. package/dist/cjs/ui-input.cjs.entry.js +1 -1
  24. package/dist/cjs/ui-menu-item.cjs.entry.js +2 -2
  25. package/dist/cjs/ui-menu.cjs.entry.js +14 -9
  26. package/dist/cjs/ui-multi-combobox.cjs.entry.js +158 -0
  27. package/dist/cjs/ui-popover.cjs.entry.js +10 -7
  28. package/dist/cjs/ui-radio-group.cjs.entry.js +1 -1
  29. package/dist/cjs/ui-radio.cjs.entry.js +16 -7
  30. package/dist/cjs/ui-search-result-row.cjs.entry.js +1 -1
  31. package/dist/cjs/ui-search-shell.cjs.entry.js +1 -1
  32. package/dist/cjs/ui-select.cjs.entry.js +1 -1
  33. package/dist/cjs/ui-switch.cjs.entry.js +19 -10
  34. package/dist/cjs/ui-tabs.cjs.entry.js +10 -9
  35. package/dist/cjs/ui-textarea.cjs.entry.js +1 -1
  36. package/dist/cjs/ui-toast-region.cjs.entry.js +30 -19
  37. package/dist/cjs/ui-tooltip.cjs.entry.js +12 -8
  38. package/dist/cjs/ui-top-bar.cjs.entry.js +1 -1
  39. package/dist/cjs/ui-tree-item.cjs.entry.js +54 -617
  40. package/dist/cjs/ui-tree.cjs.entry.js +123 -11
  41. package/dist/collection/collection-manifest.json +4 -0
  42. package/dist/collection/components/ui-affordance-scope/ui-affordance-scope.js +1 -1
  43. package/dist/collection/components/ui-avatar/ui-avatar.css +4 -4
  44. package/dist/collection/components/ui-avatar/ui-avatar.js +1 -1
  45. package/dist/collection/components/ui-avatar-group/ui-avatar-group.css +2 -2
  46. package/dist/collection/components/ui-avatar-group/ui-avatar-group.js +8 -16
  47. package/dist/collection/components/ui-badge/ui-badge.css +64 -48
  48. package/dist/collection/components/ui-badge/ui-badge.js +1 -1
  49. package/dist/collection/components/ui-button/ui-button.js +1 -1
  50. package/dist/collection/components/ui-callout/ui-callout.css +74 -0
  51. package/dist/collection/components/ui-callout/ui-callout.js +59 -0
  52. package/dist/collection/components/ui-checkbox/ui-checkbox.js +16 -11
  53. package/dist/collection/components/ui-chip/ui-chip.css +47 -0
  54. package/dist/collection/components/ui-chip/ui-chip.js +67 -0
  55. package/dist/collection/components/ui-combobox/ui-combobox.js +49 -4
  56. package/dist/collection/components/ui-context-menu/ui-context-menu.js +1 -1
  57. package/dist/collection/components/ui-dialog/ui-dialog.js +49 -13
  58. package/dist/collection/components/ui-disclosure/ui-disclosure.js +12 -10
  59. package/dist/collection/components/ui-editable/ui-editable.css +2 -0
  60. package/dist/collection/components/ui-editable/ui-editable.js +196 -0
  61. package/dist/collection/components/ui-floating-action-button/ui-floating-action-button.js +1 -1
  62. package/dist/collection/components/ui-form-field/ui-form-field.js +59 -4
  63. package/dist/collection/components/ui-icon-button/ui-icon-button.js +1 -1
  64. package/dist/collection/components/ui-input/ui-input.js +1 -1
  65. package/dist/collection/components/ui-menu/ui-menu.css +12 -23
  66. package/dist/collection/components/ui-menu/ui-menu.js +16 -12
  67. package/dist/collection/components/ui-menu-item/ui-menu-item.css +9 -3
  68. package/dist/collection/components/ui-menu-item/ui-menu-item.js +1 -1
  69. package/dist/collection/components/ui-multi-combobox/ui-multi-combobox.css +29 -0
  70. package/dist/collection/components/ui-multi-combobox/ui-multi-combobox.js +503 -0
  71. package/dist/collection/components/ui-popover/ui-popover.css +14 -5
  72. package/dist/collection/components/ui-popover/ui-popover.js +12 -10
  73. package/dist/collection/components/ui-radio/ui-radio.js +24 -11
  74. package/dist/collection/components/ui-radio-group/ui-radio-group.js +1 -1
  75. package/dist/collection/components/ui-search-result-row/ui-search-result-row.js +1 -1
  76. package/dist/collection/components/ui-search-shell/ui-search-shell.js +1 -1
  77. package/dist/collection/components/ui-select/ui-select.js +1 -1
  78. package/dist/collection/components/ui-switch/ui-switch.js +22 -14
  79. package/dist/collection/components/ui-tabs/ui-tabs.js +13 -13
  80. package/dist/collection/components/ui-textarea/ui-textarea.js +1 -1
  81. package/dist/collection/components/ui-toast-region/ui-toast-region.js +30 -19
  82. package/dist/collection/components/ui-tooltip/ui-tooltip.css +16 -7
  83. package/dist/collection/components/ui-tooltip/ui-tooltip.js +14 -11
  84. package/dist/collection/components/ui-top-bar/ui-top-bar.js +1 -1
  85. package/dist/collection/components/ui-tree/ui-tree.css +2 -1
  86. package/dist/collection/components/ui-tree/ui-tree.js +122 -10
  87. package/dist/collection/components/ui-tree-item/ui-tree-item.js +61 -44
  88. package/dist/collection/field/editable.js +1 -0
  89. package/dist/collection/field/multi-combobox.js +1 -0
  90. package/dist/collection/icons.js +6 -1
  91. package/dist/collection/utils/controlled-state.js +4 -0
  92. package/dist/components/index.d.ts +8 -0
  93. package/dist/components/index.js +1 -1
  94. package/dist/components/p-B9CzOHvE.js +1 -0
  95. package/dist/components/p-BMgIcOh-.js +1 -0
  96. package/dist/components/p-BVteuP_d.js +1 -0
  97. package/dist/components/p-BnGhGgTH.js +1 -0
  98. package/dist/components/p-C6p-ygxq.js +1 -0
  99. package/dist/components/p-CoFximGM.js +13 -0
  100. package/dist/components/ui-affordance-scope.js +1 -1
  101. package/dist/components/ui-avatar-group.js +1 -1
  102. package/dist/components/ui-avatar.js +1 -1
  103. package/dist/components/ui-badge.js +1 -1
  104. package/dist/components/ui-button.js +1 -1
  105. package/dist/components/ui-callout.d.ts +11 -0
  106. package/dist/components/ui-callout.js +1 -0
  107. package/dist/components/ui-checkbox.js +1 -1
  108. package/dist/components/ui-chip.d.ts +11 -0
  109. package/dist/components/ui-chip.js +1 -0
  110. package/dist/components/ui-combobox.js +1 -1
  111. package/dist/components/ui-context-menu.js +1 -1
  112. package/dist/components/ui-dialog.js +1 -1
  113. package/dist/components/ui-disclosure.js +1 -1
  114. package/dist/components/ui-editable.d.ts +11 -0
  115. package/dist/components/ui-editable.js +1 -0
  116. package/dist/components/ui-floating-action-button.js +1 -1
  117. package/dist/components/ui-form-field.js +1 -1
  118. package/dist/components/ui-icon-button.js +1 -1
  119. package/dist/components/ui-input.js +1 -1
  120. package/dist/components/ui-menu-item.js +1 -1
  121. package/dist/components/ui-menu.js +1 -1
  122. package/dist/components/ui-multi-combobox.d.ts +11 -0
  123. package/dist/components/ui-multi-combobox.js +1 -0
  124. package/dist/components/ui-popover.js +1 -1
  125. package/dist/components/ui-radio-group.js +1 -1
  126. package/dist/components/ui-radio.js +1 -1
  127. package/dist/components/ui-search-result-row.js +1 -1
  128. package/dist/components/ui-search-shell.js +1 -1
  129. package/dist/components/ui-select.js +1 -1
  130. package/dist/components/ui-switch.js +1 -1
  131. package/dist/components/ui-tabs.js +1 -1
  132. package/dist/components/ui-textarea.js +1 -1
  133. package/dist/components/ui-toast-region.js +1 -1
  134. package/dist/components/ui-tooltip.js +1 -1
  135. package/dist/components/ui-top-bar.js +1 -1
  136. package/dist/components/ui-tree-item.js +1 -13
  137. package/dist/components/ui-tree.js +1 -1
  138. package/dist/esm/controlled-state-BnGhGgTH.js +6 -0
  139. package/dist/esm/icons-CoFximGM.js +678 -0
  140. package/dist/esm/loader.js +1 -1
  141. package/dist/esm/looma.js +1 -1
  142. package/dist/esm/ui-affordance-scope.entry.js +1 -1
  143. package/dist/esm/ui-avatar-group.entry.js +9 -17
  144. package/dist/esm/ui-avatar.entry.js +2 -2
  145. package/dist/esm/ui-badge.entry.js +2 -2
  146. package/dist/esm/ui-button.entry.js +1 -1
  147. package/dist/esm/ui-callout.entry.js +25 -0
  148. package/dist/esm/ui-checkbox.entry.js +13 -7
  149. package/dist/esm/{ui-combobox.entry.js → ui-chip_2.entry.js} +30 -6
  150. package/dist/esm/ui-context-menu.entry.js +1 -1
  151. package/dist/esm/ui-dialog.entry.js +44 -8
  152. package/dist/esm/ui-disclosure.entry.js +9 -6
  153. package/dist/esm/ui-editable.entry.js +98 -0
  154. package/dist/esm/ui-floating-action-button.entry.js +1 -1
  155. package/dist/esm/ui-form-field.entry.js +59 -4
  156. package/dist/esm/ui-icon-button.entry.js +1 -1
  157. package/dist/esm/ui-input.entry.js +1 -1
  158. package/dist/esm/ui-menu-item.entry.js +2 -2
  159. package/dist/esm/ui-menu.entry.js +14 -9
  160. package/dist/esm/ui-multi-combobox.entry.js +156 -0
  161. package/dist/esm/ui-popover.entry.js +10 -7
  162. package/dist/esm/ui-radio-group.entry.js +1 -1
  163. package/dist/esm/ui-radio.entry.js +16 -7
  164. package/dist/esm/ui-search-result-row.entry.js +1 -1
  165. package/dist/esm/ui-search-shell.entry.js +1 -1
  166. package/dist/esm/ui-select.entry.js +1 -1
  167. package/dist/esm/ui-switch.entry.js +19 -10
  168. package/dist/esm/ui-tabs.entry.js +10 -9
  169. package/dist/esm/ui-textarea.entry.js +1 -1
  170. package/dist/esm/ui-toast-region.entry.js +30 -19
  171. package/dist/esm/ui-tooltip.entry.js +12 -8
  172. package/dist/esm/ui-top-bar.entry.js +1 -1
  173. package/dist/esm/ui-tree-item.entry.js +54 -617
  174. package/dist/esm/ui-tree.entry.js +123 -11
  175. package/dist/index.cjs +1552 -894
  176. package/dist/index.d.cts +23 -1
  177. package/dist/index.d.ts +23 -1
  178. package/dist/index.js +12 -2
  179. package/dist/looma/looma.esm.js +1 -1
  180. package/dist/looma/p-08f80207.entry.js +1 -0
  181. package/dist/looma/{p-ed368426.entry.js → p-0e1741cb.entry.js} +1 -1
  182. package/dist/looma/p-0ef4bf13.entry.js +1 -0
  183. package/dist/looma/{p-7e0bb7f6.entry.js → p-166f8593.entry.js} +1 -1
  184. package/dist/looma/p-262a542c.entry.js +1 -0
  185. package/dist/looma/{p-13347631.entry.js → p-26d357ae.entry.js} +1 -1
  186. package/dist/looma/p-30f01909.entry.js +1 -0
  187. package/dist/looma/p-393e3e02.entry.js +1 -0
  188. package/dist/looma/p-3a44b9f9.entry.js +1 -0
  189. package/dist/looma/p-558d4f5b.entry.js +1 -0
  190. package/dist/looma/{p-5a87b59d.entry.js → p-5780cefa.entry.js} +1 -1
  191. package/dist/looma/p-5a7261e1.entry.js +1 -0
  192. package/dist/looma/p-5fdcee1d.entry.js +1 -0
  193. package/dist/looma/{p-add36e74.entry.js → p-72338f53.entry.js} +1 -1
  194. package/dist/looma/p-7319c147.entry.js +1 -0
  195. package/dist/looma/p-78b7e466.entry.js +1 -0
  196. package/dist/looma/{p-a90d2821.entry.js → p-7ab661ec.entry.js} +1 -1
  197. package/dist/looma/p-7eb04f09.entry.js +1 -0
  198. package/dist/looma/{p-69a5557b.entry.js → p-81c533f5.entry.js} +1 -1
  199. package/dist/looma/p-87f501cf.entry.js +1 -0
  200. package/dist/looma/p-89e71bbb.entry.js +1 -0
  201. package/dist/looma/{p-8b8840b8.entry.js → p-92cd1841.entry.js} +1 -1
  202. package/dist/looma/{p-f0487ff3.entry.js → p-95eb3b58.entry.js} +1 -1
  203. package/dist/looma/p-96ec4d7a.entry.js +1 -0
  204. package/dist/looma/p-9d2662ca.entry.js +1 -0
  205. package/dist/looma/p-BnGhGgTH.js +1 -0
  206. package/dist/looma/p-CoFximGM.js +13 -0
  207. package/dist/looma/p-add67e4c.entry.js +1 -0
  208. package/dist/looma/p-b6c776fb.entry.js +1 -0
  209. package/dist/looma/p-bcb1b47b.entry.js +1 -0
  210. package/dist/looma/p-d56571a2.entry.js +1 -0
  211. package/dist/looma/{p-582973b5.entry.js → p-d62da01d.entry.js} +1 -1
  212. package/dist/looma/{p-f74e5546.entry.js → p-dbcb479c.entry.js} +1 -1
  213. package/dist/looma/p-e14024bf.entry.js +1 -0
  214. package/dist/looma/{p-5da09f47.entry.js → p-fc180770.entry.js} +1 -1
  215. package/dist/types/components/ui-avatar-group/ui-avatar-group.d.ts +1 -2
  216. package/dist/types/components/ui-callout/ui-callout.d.ts +6 -0
  217. package/dist/types/components/ui-checkbox/ui-checkbox.d.ts +2 -1
  218. package/dist/types/components/ui-chip/ui-chip.d.ts +8 -0
  219. package/dist/types/components/ui-combobox/ui-combobox.d.ts +4 -0
  220. package/dist/types/components/ui-dialog/ui-dialog.d.ts +7 -1
  221. package/dist/types/components/ui-disclosure/ui-disclosure.d.ts +2 -1
  222. package/dist/types/components/ui-editable/ui-editable.d.ts +24 -0
  223. package/dist/types/components/ui-form-field/ui-form-field.d.ts +8 -0
  224. package/dist/types/components/ui-menu/ui-menu.d.ts +2 -1
  225. package/dist/types/components/ui-multi-combobox/ui-multi-combobox.d.ts +47 -0
  226. package/dist/types/components/ui-popover/ui-popover.d.ts +2 -1
  227. package/dist/types/components/ui-radio/ui-radio.d.ts +4 -1
  228. package/dist/types/components/ui-switch/ui-switch.d.ts +2 -1
  229. package/dist/types/components/ui-tabs/ui-tabs.d.ts +2 -1
  230. package/dist/types/components/ui-toast-region/ui-toast-region.d.ts +3 -1
  231. package/dist/types/components/ui-tooltip/ui-tooltip.d.ts +2 -1
  232. package/dist/types/components/ui-tree/ui-tree.d.ts +12 -0
  233. package/dist/types/components/ui-tree-item/ui-tree-item.d.ts +11 -7
  234. package/dist/types/components.d.ts +343 -46
  235. package/dist/types/field/editable.d.ts +5 -0
  236. package/dist/types/field/multi-combobox.d.ts +11 -0
  237. package/dist/types/icons.d.ts +5 -0
  238. package/dist/types/utils/controlled-state.d.ts +4 -0
  239. package/dist/{ui-affordance-scope.entry-VO4C2MZX.js → ui-affordance-scope.entry-VSSP52ZP.js} +2 -2
  240. package/dist/ui-avatar-group.entry-JMCLL6FW.js +51 -0
  241. package/dist/{ui-avatar.entry-T6FU6ZYM.js → ui-avatar.entry-X2YQ3QPG.js} +3 -3
  242. package/dist/ui-badge.entry-OJ6FJJKL.js +22 -0
  243. package/dist/{ui-button.entry-7UXMUGHN.js → ui-button.entry-ZN6JLND7.js} +2 -2
  244. package/dist/ui-callout.entry-7K6NXQ7U.js +32 -0
  245. package/dist/{ui-checkbox.entry-DMZJB3RE.js → ui-checkbox.entry-GUYRVU6O.js} +17 -8
  246. package/dist/{ui-combobox.entry-ZCTPXEES.js → ui-chip_2.entry-M2DOTIGY.js} +32 -7
  247. package/dist/{ui-context-menu.entry-2WMCBGCP.js → ui-context-menu.entry-BM7FHOUJ.js} +5 -5
  248. package/dist/{ui-dialog.entry-WO23XOSW.js → ui-dialog.entry-AZAD37CG.js} +50 -12
  249. package/dist/{ui-disclosure.entry-USX7OUEW.js → ui-disclosure.entry-XDPGKMBK.js} +13 -7
  250. package/dist/ui-editable.entry-S3TE6KFT.js +110 -0
  251. package/dist/{ui-floating-action-button.entry-MXDIN7MV.js → ui-floating-action-button.entry-U7HGA3CS.js} +2 -2
  252. package/dist/ui-form-field.entry-C2ZSP3TM.js +120 -0
  253. package/dist/{ui-icon-button.entry-MJUNXHBU.js → ui-icon-button.entry-P6H2LY7D.js} +2 -2
  254. package/dist/{ui-input.entry-AWG63YIG.js → ui-input.entry-GTNQJCQ2.js} +2 -2
  255. package/dist/ui-menu-item.entry-2HWOGUO5.js +22 -0
  256. package/dist/{ui-menu.entry-IT3GW5TL.js → ui-menu.entry-NZ7ER54K.js} +22 -14
  257. package/dist/ui-multi-combobox.entry-DZ5LLSVQ.js +167 -0
  258. package/dist/{ui-popover.entry-ZQQB4N6E.js → ui-popover.entry-ZOEQMUWG.js} +17 -11
  259. package/dist/{ui-radio-group.entry-V7PCTS7I.js → ui-radio-group.entry-QCQ46EK5.js} +2 -2
  260. package/dist/{ui-radio.entry-JYH6TQBI.js → ui-radio.entry-QAATWUYT.js} +20 -8
  261. package/dist/{ui-search-result-row.entry-JBNYXXUN.js → ui-search-result-row.entry-2I3DH2OT.js} +2 -2
  262. package/dist/{ui-search-shell.entry-TEAWE76O.js → ui-search-shell.entry-7RS55ORF.js} +2 -2
  263. package/dist/{ui-select.entry-F3A6TE2U.js → ui-select.entry-6O4KD4G7.js} +2 -2
  264. package/dist/{ui-switch.entry-MJIICMP2.js → ui-switch.entry-DY5PSHCQ.js} +23 -11
  265. package/dist/{ui-tabs.entry-6REFIUHV.js → ui-tabs.entry-6X56UOUE.js} +14 -10
  266. package/dist/{ui-textarea.entry-OJTXCED7.js → ui-textarea.entry-RDYP6O77.js} +2 -2
  267. package/dist/{ui-toast-region.entry-NOFXLKPS.js → ui-toast-region.entry-EBY42KS5.js} +32 -23
  268. package/dist/{ui-tooltip.entry-COWTWVHX.js → ui-tooltip.entry-PLXMPOKV.js} +19 -12
  269. package/dist/{ui-top-bar.entry-PIAWXJNV.js → ui-top-bar.entry-QKE2DLVD.js} +2 -2
  270. package/dist/ui-tree-item.entry-TC6YWIC6.js +145 -0
  271. package/dist/{ui-tree.entry-XYI3ZFAZ.js → ui-tree.entry-UL6UHCUT.js} +114 -12
  272. package/editor/{chunk-QCOYOVQL.js → chunk-B5WVJOPV.js} +113 -97
  273. package/editor/extensions/index.d.ts +14 -6
  274. package/editor/extensions/index.js +1 -1
  275. package/editor/index.js +1 -1
  276. package/editor.css +37 -20
  277. package/package.json +1 -1
  278. package/styles.css +10 -0
  279. package/tokens.css +3 -0
  280. package/vue/{chunk-JLW23USW.js → chunk-GXQY27K2.js} +112 -17
  281. package/vue/editor/index.d.ts +5 -15
  282. package/vue/editor/index.js +1 -1
  283. package/vue/index.d.ts +442 -116
  284. package/vue/index.js +9 -1
  285. package/dist/components/p-CaietZcq.js +0 -1
  286. package/dist/components/p-DHd18bK7.js +0 -1
  287. package/dist/looma/p-14c081cf.entry.js +0 -1
  288. package/dist/looma/p-25366205.entry.js +0 -1
  289. package/dist/looma/p-2e3aa869.entry.js +0 -1
  290. package/dist/looma/p-40fe7fee.entry.js +0 -1
  291. package/dist/looma/p-446cda76.entry.js +0 -1
  292. package/dist/looma/p-4fc1b005.entry.js +0 -13
  293. package/dist/looma/p-6a8a4736.entry.js +0 -1
  294. package/dist/looma/p-6bf4038b.entry.js +0 -1
  295. package/dist/looma/p-8204fee6.entry.js +0 -1
  296. package/dist/looma/p-8238e0dc.entry.js +0 -1
  297. package/dist/looma/p-99d88efb.entry.js +0 -1
  298. package/dist/looma/p-a27669b1.entry.js +0 -1
  299. package/dist/looma/p-a6ee76b7.entry.js +0 -1
  300. package/dist/looma/p-b6398a6b.entry.js +0 -1
  301. package/dist/looma/p-d50faaff.entry.js +0 -1
  302. package/dist/looma/p-d77278ce.entry.js +0 -1
  303. package/dist/looma/p-d9ec13b7.entry.js +0 -1
  304. package/dist/looma/p-ecf8005f.entry.js +0 -1
  305. package/dist/ui-avatar-group.entry-TAXJRIIU.js +0 -59
  306. package/dist/ui-badge.entry-MZFYNBMJ.js +0 -22
  307. package/dist/ui-form-field.entry-7ZCMEHPY.js +0 -67
  308. package/dist/ui-menu-item.entry-HFTWG62N.js +0 -22
  309. package/dist/ui-tree-item.entry-BSEWNL2O.js +0 -389
@@ -4,20 +4,69 @@ import {
4
4
  normalizeMentionResultLimit
5
5
  } from "./chunk-ZOUKEZ77.js";
6
6
 
7
+ // src/extensions/callout.ts
8
+ import { mergeAttributes, Node } from "@tiptap/core";
9
+ var LOOMA_CALLOUT_TONES = ["info", "note", "warning"];
10
+ function normalizeCalloutTone(value) {
11
+ return typeof value === "string" && LOOMA_CALLOUT_TONES.includes(value) ? value : "note";
12
+ }
13
+ var LoomaCallout = Node.create({
14
+ name: "loomaCallout",
15
+ group: "block",
16
+ content: "block+",
17
+ defining: true,
18
+ addAttributes() {
19
+ return {
20
+ tone: {
21
+ default: "note",
22
+ parseHTML: (element) => normalizeCalloutTone(element.getAttribute("data-tone")),
23
+ renderHTML: (attributes) => ({
24
+ "data-tone": normalizeCalloutTone(attributes.tone)
25
+ })
26
+ }
27
+ };
28
+ },
29
+ parseHTML() {
30
+ return [{ tag: "aside[data-looma-callout]" }];
31
+ },
32
+ renderHTML({ HTMLAttributes }) {
33
+ return [
34
+ "aside",
35
+ mergeAttributes(HTMLAttributes, {
36
+ "data-looma-callout": ""
37
+ }),
38
+ 0
39
+ ];
40
+ },
41
+ addCommands() {
42
+ return {
43
+ setLoomaCallout: (tone = "note") => ({ state, commands }) => {
44
+ const normalizedTone = normalizeCalloutTone(tone);
45
+ for (let depth = state.selection.$from.depth; depth > 0; depth -= 1) {
46
+ if (state.selection.$from.node(depth).type.name === this.name) {
47
+ return commands.updateAttributes(this.name, { tone: normalizedTone });
48
+ }
49
+ }
50
+ return commands.wrapIn(this.name, { tone: normalizedTone });
51
+ }
52
+ };
53
+ }
54
+ });
55
+
7
56
  // src/extensions/preset.ts
8
57
  import { Extension as Extension7 } from "@tiptap/core";
9
58
 
10
59
  // ../../node_modules/.pnpm/@tiptap+extension-document@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-document/dist/index.js
11
- import { Node } from "@tiptap/core";
12
- var Document = Node.create({
60
+ import { Node as Node2 } from "@tiptap/core";
61
+ var Document = Node2.create({
13
62
  name: "doc",
14
63
  topNode: true,
15
64
  content: "block+"
16
65
  });
17
66
 
18
67
  // ../../node_modules/.pnpm/@tiptap+extension-paragraph@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-paragraph/dist/index.js
19
- import { Node as Node2, mergeAttributes } from "@tiptap/core";
20
- var Paragraph = Node2.create({
68
+ import { Node as Node3, mergeAttributes as mergeAttributes2 } from "@tiptap/core";
69
+ var Paragraph = Node3.create({
21
70
  name: "paragraph",
22
71
  priority: 1e3,
23
72
  addOptions() {
@@ -33,7 +82,7 @@ var Paragraph = Node2.create({
33
82
  ];
34
83
  },
35
84
  renderHTML({ HTMLAttributes }) {
36
- return ["p", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
85
+ return ["p", mergeAttributes2(this.options.HTMLAttributes, HTMLAttributes), 0];
37
86
  },
38
87
  addCommands() {
39
88
  return {
@@ -50,14 +99,14 @@ var Paragraph = Node2.create({
50
99
  });
51
100
 
52
101
  // ../../node_modules/.pnpm/@tiptap+extension-text@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-text/dist/index.js
53
- import { Node as Node3 } from "@tiptap/core";
54
- var Text = Node3.create({
102
+ import { Node as Node4 } from "@tiptap/core";
103
+ var Text = Node4.create({
55
104
  name: "text",
56
105
  group: "inline"
57
106
  });
58
107
 
59
108
  // ../../node_modules/.pnpm/@tiptap+extension-bold@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-bold/dist/index.js
60
- import { Mark, mergeAttributes as mergeAttributes2, markInputRule, markPasteRule } from "@tiptap/core";
109
+ import { Mark, mergeAttributes as mergeAttributes3, markInputRule, markPasteRule } from "@tiptap/core";
61
110
  var starInputRegex = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/;
62
111
  var starPasteRegex = /(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g;
63
112
  var underscoreInputRegex = /(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/;
@@ -89,7 +138,7 @@ var Bold = Mark.create({
89
138
  ];
90
139
  },
91
140
  renderHTML({ HTMLAttributes }) {
92
- return ["strong", mergeAttributes2(this.options.HTMLAttributes, HTMLAttributes), 0];
141
+ return ["strong", mergeAttributes3(this.options.HTMLAttributes, HTMLAttributes), 0];
93
142
  },
94
143
  addCommands() {
95
144
  return {
@@ -137,7 +186,7 @@ var Bold = Mark.create({
137
186
  });
138
187
 
139
188
  // ../../node_modules/.pnpm/@tiptap+extension-italic@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-italic/dist/index.js
140
- import { Mark as Mark2, mergeAttributes as mergeAttributes3, markInputRule as markInputRule2, markPasteRule as markPasteRule2 } from "@tiptap/core";
189
+ import { Mark as Mark2, mergeAttributes as mergeAttributes4, markInputRule as markInputRule2, markPasteRule as markPasteRule2 } from "@tiptap/core";
141
190
  var starInputRegex2 = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/;
142
191
  var starPasteRegex2 = /(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g;
143
192
  var underscoreInputRegex2 = /(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/;
@@ -168,7 +217,7 @@ var Italic = Mark2.create({
168
217
  ];
169
218
  },
170
219
  renderHTML({ HTMLAttributes }) {
171
- return ["em", mergeAttributes3(this.options.HTMLAttributes, HTMLAttributes), 0];
220
+ return ["em", mergeAttributes4(this.options.HTMLAttributes, HTMLAttributes), 0];
172
221
  },
173
222
  addCommands() {
174
223
  return {
@@ -216,7 +265,7 @@ var Italic = Mark2.create({
216
265
  });
217
266
 
218
267
  // ../../node_modules/.pnpm/@tiptap+extension-strike@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-strike/dist/index.js
219
- import { Mark as Mark3, mergeAttributes as mergeAttributes4, markInputRule as markInputRule3, markPasteRule as markPasteRule3 } from "@tiptap/core";
268
+ import { Mark as Mark3, mergeAttributes as mergeAttributes5, markInputRule as markInputRule3, markPasteRule as markPasteRule3 } from "@tiptap/core";
220
269
  var inputRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/;
221
270
  var pasteRegex = /(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g;
222
271
  var Strike = Mark3.create({
@@ -245,7 +294,7 @@ var Strike = Mark3.create({
245
294
  ];
246
295
  },
247
296
  renderHTML({ HTMLAttributes }) {
248
- return ["s", mergeAttributes4(this.options.HTMLAttributes, HTMLAttributes), 0];
297
+ return ["s", mergeAttributes5(this.options.HTMLAttributes, HTMLAttributes), 0];
249
298
  },
250
299
  addCommands() {
251
300
  return {
@@ -284,7 +333,7 @@ var Strike = Mark3.create({
284
333
  });
285
334
 
286
335
  // ../../node_modules/.pnpm/@tiptap+extension-underline@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-underline/dist/index.js
287
- import { Mark as Mark4, mergeAttributes as mergeAttributes5 } from "@tiptap/core";
336
+ import { Mark as Mark4, mergeAttributes as mergeAttributes6 } from "@tiptap/core";
288
337
  var Underline = Mark4.create({
289
338
  name: "underline",
290
339
  addOptions() {
@@ -305,7 +354,7 @@ var Underline = Mark4.create({
305
354
  ];
306
355
  },
307
356
  renderHTML({ HTMLAttributes }) {
308
- return ["u", mergeAttributes5(this.options.HTMLAttributes, HTMLAttributes), 0];
357
+ return ["u", mergeAttributes6(this.options.HTMLAttributes, HTMLAttributes), 0];
309
358
  },
310
359
  addCommands() {
311
360
  return {
@@ -329,8 +378,8 @@ var Underline = Mark4.create({
329
378
  });
330
379
 
331
380
  // ../../node_modules/.pnpm/@tiptap+extension-heading@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-heading/dist/index.js
332
- import { Node as Node4, mergeAttributes as mergeAttributes6, textblockTypeInputRule } from "@tiptap/core";
333
- var Heading = Node4.create({
381
+ import { Node as Node5, mergeAttributes as mergeAttributes7, textblockTypeInputRule } from "@tiptap/core";
382
+ var Heading = Node5.create({
334
383
  name: "heading",
335
384
  addOptions() {
336
385
  return {
@@ -358,7 +407,7 @@ var Heading = Node4.create({
358
407
  renderHTML({ node, HTMLAttributes }) {
359
408
  const hasLevel = this.options.levels.includes(node.attrs.level);
360
409
  const level = hasLevel ? node.attrs.level : this.options.levels[0];
361
- return [`h${level}`, mergeAttributes6(this.options.HTMLAttributes, HTMLAttributes), 0];
410
+ return [`h${level}`, mergeAttributes7(this.options.HTMLAttributes, HTMLAttributes), 0];
362
411
  },
363
412
  addCommands() {
364
413
  return {
@@ -398,11 +447,11 @@ var Heading = Node4.create({
398
447
  });
399
448
 
400
449
  // ../../node_modules/.pnpm/@tiptap+extension-bullet-list@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-bullet-list/dist/index.js
401
- import { Node as Node5, mergeAttributes as mergeAttributes7, wrappingInputRule } from "@tiptap/core";
450
+ import { Node as Node6, mergeAttributes as mergeAttributes8, wrappingInputRule } from "@tiptap/core";
402
451
  var ListItemName = "listItem";
403
452
  var TextStyleName = "textStyle";
404
453
  var inputRegex2 = /^\s*([-+*])\s$/;
405
- var BulletList = Node5.create({
454
+ var BulletList = Node6.create({
406
455
  name: "bulletList",
407
456
  addOptions() {
408
457
  return {
@@ -422,7 +471,7 @@ var BulletList = Node5.create({
422
471
  ];
423
472
  },
424
473
  renderHTML({ HTMLAttributes }) {
425
- return ["ul", mergeAttributes7(this.options.HTMLAttributes, HTMLAttributes), 0];
474
+ return ["ul", mergeAttributes8(this.options.HTMLAttributes, HTMLAttributes), 0];
426
475
  },
427
476
  addCommands() {
428
477
  return {
@@ -463,11 +512,11 @@ var BulletList = Node5.create({
463
512
  });
464
513
 
465
514
  // ../../node_modules/.pnpm/@tiptap+extension-ordered-list@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-ordered-list/dist/index.js
466
- import { Node as Node6, mergeAttributes as mergeAttributes8, wrappingInputRule as wrappingInputRule2 } from "@tiptap/core";
515
+ import { Node as Node7, mergeAttributes as mergeAttributes9, wrappingInputRule as wrappingInputRule2 } from "@tiptap/core";
467
516
  var ListItemName2 = "listItem";
468
517
  var TextStyleName2 = "textStyle";
469
518
  var inputRegex3 = /^(\d+)\.\s$/;
470
- var OrderedList = Node6.create({
519
+ var OrderedList = Node7.create({
471
520
  name: "orderedList",
472
521
  addOptions() {
473
522
  return {
@@ -504,7 +553,7 @@ var OrderedList = Node6.create({
504
553
  },
505
554
  renderHTML({ HTMLAttributes }) {
506
555
  const { start, ...attributesWithoutStart } = HTMLAttributes;
507
- return start === 1 ? ["ol", mergeAttributes8(this.options.HTMLAttributes, attributesWithoutStart), 0] : ["ol", mergeAttributes8(this.options.HTMLAttributes, HTMLAttributes), 0];
556
+ return start === 1 ? ["ol", mergeAttributes9(this.options.HTMLAttributes, attributesWithoutStart), 0] : ["ol", mergeAttributes9(this.options.HTMLAttributes, HTMLAttributes), 0];
508
557
  },
509
558
  addCommands() {
510
559
  return {
@@ -546,8 +595,8 @@ var OrderedList = Node6.create({
546
595
  });
547
596
 
548
597
  // ../../node_modules/.pnpm/@tiptap+extension-list-item@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-list-item/dist/index.js
549
- import { Node as Node7, mergeAttributes as mergeAttributes9 } from "@tiptap/core";
550
- var ListItem = Node7.create({
598
+ import { Node as Node8, mergeAttributes as mergeAttributes10 } from "@tiptap/core";
599
+ var ListItem = Node8.create({
551
600
  name: "listItem",
552
601
  addOptions() {
553
602
  return {
@@ -566,7 +615,7 @@ var ListItem = Node7.create({
566
615
  ];
567
616
  },
568
617
  renderHTML({ HTMLAttributes }) {
569
- return ["li", mergeAttributes9(this.options.HTMLAttributes, HTMLAttributes), 0];
618
+ return ["li", mergeAttributes10(this.options.HTMLAttributes, HTMLAttributes), 0];
570
619
  },
571
620
  addKeyboardShortcuts() {
572
621
  return {
@@ -578,8 +627,8 @@ var ListItem = Node7.create({
578
627
  });
579
628
 
580
629
  // ../../node_modules/.pnpm/@tiptap+extension-task-list@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-task-list/dist/index.js
581
- import { Node as Node8, mergeAttributes as mergeAttributes10 } from "@tiptap/core";
582
- var TaskList = Node8.create({
630
+ import { Node as Node9, mergeAttributes as mergeAttributes11 } from "@tiptap/core";
631
+ var TaskList = Node9.create({
583
632
  name: "taskList",
584
633
  addOptions() {
585
634
  return {
@@ -600,7 +649,7 @@ var TaskList = Node8.create({
600
649
  ];
601
650
  },
602
651
  renderHTML({ HTMLAttributes }) {
603
- return ["ul", mergeAttributes10(this.options.HTMLAttributes, HTMLAttributes, { "data-type": this.name }), 0];
652
+ return ["ul", mergeAttributes11(this.options.HTMLAttributes, HTMLAttributes, { "data-type": this.name }), 0];
604
653
  },
605
654
  addCommands() {
606
655
  return {
@@ -617,9 +666,9 @@ var TaskList = Node8.create({
617
666
  });
618
667
 
619
668
  // ../../node_modules/.pnpm/@tiptap+extension-task-item@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2/node_modules/@tiptap/extension-task-item/dist/index.js
620
- import { Node as Node9, mergeAttributes as mergeAttributes11, wrappingInputRule as wrappingInputRule3 } from "@tiptap/core";
669
+ import { Node as Node10, mergeAttributes as mergeAttributes12, wrappingInputRule as wrappingInputRule3 } from "@tiptap/core";
621
670
  var inputRegex4 = /^\s*(\[([( |x])?\])\s$/;
622
- var TaskItem = Node9.create({
671
+ var TaskItem = Node10.create({
623
672
  name: "taskItem",
624
673
  addOptions() {
625
674
  return {
@@ -659,7 +708,7 @@ var TaskItem = Node9.create({
659
708
  renderHTML({ node, HTMLAttributes }) {
660
709
  return [
661
710
  "li",
662
- mergeAttributes11(this.options.HTMLAttributes, HTMLAttributes, {
711
+ mergeAttributes12(this.options.HTMLAttributes, HTMLAttributes, {
663
712
  "data-type": this.name
664
713
  }),
665
714
  [
@@ -769,9 +818,9 @@ var TaskItem = Node9.create({
769
818
  });
770
819
 
771
820
  // ../../node_modules/.pnpm/@tiptap+extension-blockquote@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-blockquote/dist/index.js
772
- import { Node as Node10, mergeAttributes as mergeAttributes12, wrappingInputRule as wrappingInputRule4 } from "@tiptap/core";
821
+ import { Node as Node11, mergeAttributes as mergeAttributes13, wrappingInputRule as wrappingInputRule4 } from "@tiptap/core";
773
822
  var inputRegex5 = /^\s*>\s$/;
774
- var Blockquote = Node10.create({
823
+ var Blockquote = Node11.create({
775
824
  name: "blockquote",
776
825
  addOptions() {
777
826
  return {
@@ -787,7 +836,7 @@ var Blockquote = Node10.create({
787
836
  ];
788
837
  },
789
838
  renderHTML({ HTMLAttributes }) {
790
- return ["blockquote", mergeAttributes12(this.options.HTMLAttributes, HTMLAttributes), 0];
839
+ return ["blockquote", mergeAttributes13(this.options.HTMLAttributes, HTMLAttributes), 0];
791
840
  },
792
841
  addCommands() {
793
842
  return {
@@ -818,9 +867,9 @@ var Blockquote = Node10.create({
818
867
  });
819
868
 
820
869
  // ../../node_modules/.pnpm/@tiptap+extension-horizontal-rule@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2/node_modules/@tiptap/extension-horizontal-rule/dist/index.js
821
- import { Node as Node11, mergeAttributes as mergeAttributes13, canInsertNode, isNodeSelection, nodeInputRule } from "@tiptap/core";
870
+ import { Node as Node12, mergeAttributes as mergeAttributes14, canInsertNode, isNodeSelection, nodeInputRule } from "@tiptap/core";
822
871
  import { TextSelection, NodeSelection } from "@tiptap/pm/state";
823
- var HorizontalRule = Node11.create({
872
+ var HorizontalRule = Node12.create({
824
873
  name: "horizontalRule",
825
874
  addOptions() {
826
875
  return {
@@ -832,7 +881,7 @@ var HorizontalRule = Node11.create({
832
881
  return [{ tag: "hr" }];
833
882
  },
834
883
  renderHTML({ HTMLAttributes }) {
835
- return ["hr", mergeAttributes13(this.options.HTMLAttributes, HTMLAttributes)];
884
+ return ["hr", mergeAttributes14(this.options.HTMLAttributes, HTMLAttributes)];
836
885
  },
837
886
  addCommands() {
838
887
  return {
@@ -895,8 +944,8 @@ var HorizontalRule = Node11.create({
895
944
  });
896
945
 
897
946
  // ../../node_modules/.pnpm/@tiptap+extension-hard-break@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-hard-break/dist/index.js
898
- import { Node as Node12, mergeAttributes as mergeAttributes14 } from "@tiptap/core";
899
- var HardBreak = Node12.create({
947
+ import { Node as Node13, mergeAttributes as mergeAttributes15 } from "@tiptap/core";
948
+ var HardBreak = Node13.create({
900
949
  name: "hardBreak",
901
950
  addOptions() {
902
951
  return {
@@ -914,7 +963,7 @@ var HardBreak = Node12.create({
914
963
  ];
915
964
  },
916
965
  renderHTML({ HTMLAttributes }) {
917
- return ["br", mergeAttributes14(this.options.HTMLAttributes, HTMLAttributes)];
966
+ return ["br", mergeAttributes15(this.options.HTMLAttributes, HTMLAttributes)];
918
967
  },
919
968
  renderText() {
920
969
  return "\n";
@@ -1033,7 +1082,7 @@ var Gapcursor = Extension3.create({
1033
1082
  });
1034
1083
 
1035
1084
  // ../../node_modules/.pnpm/@tiptap+extension-link@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2/node_modules/@tiptap/extension-link/dist/index.js
1036
- import { combineTransactionSteps, getChangedRanges, findChildrenInRange, getMarksBetween, getAttributes, Mark as Mark5, mergeAttributes as mergeAttributes15, markPasteRule as markPasteRule4 } from "@tiptap/core";
1085
+ import { combineTransactionSteps, getChangedRanges, findChildrenInRange, getMarksBetween, getAttributes, Mark as Mark5, mergeAttributes as mergeAttributes16, markPasteRule as markPasteRule4 } from "@tiptap/core";
1037
1086
 
1038
1087
  // ../../node_modules/.pnpm/linkifyjs@4.3.2/node_modules/linkifyjs/dist/linkify.mjs
1039
1088
  var encodedTlds = "aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5m\xF6gensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2";
@@ -2439,11 +2488,11 @@ var Link = Mark5.create({
2439
2488
  })) {
2440
2489
  return [
2441
2490
  "a",
2442
- mergeAttributes15(this.options.HTMLAttributes, { ...HTMLAttributes, href: "" }),
2491
+ mergeAttributes16(this.options.HTMLAttributes, { ...HTMLAttributes, href: "" }),
2443
2492
  0
2444
2493
  ];
2445
2494
  }
2446
- return ["a", mergeAttributes15(this.options.HTMLAttributes, HTMLAttributes), 0];
2495
+ return ["a", mergeAttributes16(this.options.HTMLAttributes, HTMLAttributes), 0];
2447
2496
  },
2448
2497
  addCommands() {
2449
2498
  return {
@@ -2540,9 +2589,9 @@ var Link = Mark5.create({
2540
2589
  });
2541
2590
 
2542
2591
  // ../../node_modules/.pnpm/@tiptap+extension-image@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-image/dist/index.js
2543
- import { Node as Node13, mergeAttributes as mergeAttributes16, nodeInputRule as nodeInputRule2 } from "@tiptap/core";
2592
+ import { Node as Node14, mergeAttributes as mergeAttributes17, nodeInputRule as nodeInputRule2 } from "@tiptap/core";
2544
2593
  var inputRegex6 = /(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/;
2545
- var Image = Node13.create({
2594
+ var Image = Node14.create({
2546
2595
  name: "image",
2547
2596
  addOptions() {
2548
2597
  return {
@@ -2579,7 +2628,7 @@ var Image = Node13.create({
2579
2628
  ];
2580
2629
  },
2581
2630
  renderHTML({ HTMLAttributes }) {
2582
- return ["img", mergeAttributes16(this.options.HTMLAttributes, HTMLAttributes)];
2631
+ return ["img", mergeAttributes17(this.options.HTMLAttributes, HTMLAttributes)];
2583
2632
  },
2584
2633
  addCommands() {
2585
2634
  return {
@@ -2606,7 +2655,7 @@ var Image = Node13.create({
2606
2655
  });
2607
2656
 
2608
2657
  // ../../node_modules/.pnpm/@tiptap+extension-highlight@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-highlight/dist/index.js
2609
- import { Mark as Mark6, mergeAttributes as mergeAttributes17, markInputRule as markInputRule4, markPasteRule as markPasteRule5 } from "@tiptap/core";
2658
+ import { Mark as Mark6, mergeAttributes as mergeAttributes18, markInputRule as markInputRule4, markPasteRule as markPasteRule5 } from "@tiptap/core";
2610
2659
  var inputRegex7 = /(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))$/;
2611
2660
  var pasteRegex2 = /(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))/g;
2612
2661
  var Highlight = Mark6.create({
@@ -2645,7 +2694,7 @@ var Highlight = Mark6.create({
2645
2694
  ];
2646
2695
  },
2647
2696
  renderHTML({ HTMLAttributes }) {
2648
- return ["mark", mergeAttributes17(this.options.HTMLAttributes, HTMLAttributes), 0];
2697
+ return ["mark", mergeAttributes18(this.options.HTMLAttributes, HTMLAttributes), 0];
2649
2698
  },
2650
2699
  addCommands() {
2651
2700
  return {
@@ -2932,7 +2981,7 @@ var Placeholder = Extension5.create({
2932
2981
  });
2933
2982
 
2934
2983
  // ../../node_modules/.pnpm/@tiptap+extension-code@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-code/dist/index.js
2935
- import { Mark as Mark7, mergeAttributes as mergeAttributes18, markInputRule as markInputRule5, markPasteRule as markPasteRule6 } from "@tiptap/core";
2984
+ import { Mark as Mark7, mergeAttributes as mergeAttributes19, markInputRule as markInputRule5, markPasteRule as markPasteRule6 } from "@tiptap/core";
2936
2985
  var inputRegex8 = /(^|[^`])`([^`]+)`(?!`)/;
2937
2986
  var pasteRegex3 = /(^|[^`])`([^`]+)`(?!`)/g;
2938
2987
  var Code = Mark7.create({
@@ -2951,7 +3000,7 @@ var Code = Mark7.create({
2951
3000
  ];
2952
3001
  },
2953
3002
  renderHTML({ HTMLAttributes }) {
2954
- return ["code", mergeAttributes18(this.options.HTMLAttributes, HTMLAttributes), 0];
3003
+ return ["code", mergeAttributes19(this.options.HTMLAttributes, HTMLAttributes), 0];
2955
3004
  },
2956
3005
  addCommands() {
2957
3006
  return {
@@ -2990,11 +3039,11 @@ var Code = Mark7.create({
2990
3039
  });
2991
3040
 
2992
3041
  // ../../node_modules/.pnpm/@tiptap+extension-code-block@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2__@tiptap+pm@2.27.2/node_modules/@tiptap/extension-code-block/dist/index.js
2993
- import { Node as Node14, mergeAttributes as mergeAttributes19, textblockTypeInputRule as textblockTypeInputRule2 } from "@tiptap/core";
3042
+ import { Node as Node15, mergeAttributes as mergeAttributes20, textblockTypeInputRule as textblockTypeInputRule2 } from "@tiptap/core";
2994
3043
  import { Selection, Plugin as Plugin3, PluginKey as PluginKey3, TextSelection as TextSelection2 } from "@tiptap/pm/state";
2995
3044
  var backtickInputRegex = /^```([a-z]+)?[\s\n]$/;
2996
3045
  var tildeInputRegex = /^~~~([a-z]+)?[\s\n]$/;
2997
- var CodeBlock = Node14.create({
3046
+ var CodeBlock = Node15.create({
2998
3047
  name: "codeBlock",
2999
3048
  addOptions() {
3000
3049
  return {
@@ -3040,7 +3089,7 @@ var CodeBlock = Node14.create({
3040
3089
  renderHTML({ node, HTMLAttributes }) {
3041
3090
  return [
3042
3091
  "pre",
3043
- mergeAttributes19(this.options.HTMLAttributes, HTMLAttributes),
3092
+ mergeAttributes20(this.options.HTMLAttributes, HTMLAttributes),
3044
3093
  [
3045
3094
  "code",
3046
3095
  {
@@ -4839,8 +4888,8 @@ var CodeBlockLowlight = CodeBlock.extend({
4839
4888
  import { common, createLowlight } from "lowlight";
4840
4889
 
4841
4890
  // ../../node_modules/.pnpm/@tiptap+extension-table-row@2.27.2_@tiptap+core@2.27.2_@tiptap+pm@2.27.2_/node_modules/@tiptap/extension-table-row/dist/index.js
4842
- import { Node as Node15, mergeAttributes as mergeAttributes20 } from "@tiptap/core";
4843
- var TableRow = Node15.create({
4891
+ import { Node as Node16, mergeAttributes as mergeAttributes21 } from "@tiptap/core";
4892
+ var TableRow = Node16.create({
4844
4893
  name: "tableRow",
4845
4894
  addOptions() {
4846
4895
  return {
@@ -4855,43 +4904,7 @@ var TableRow = Node15.create({
4855
4904
  ];
4856
4905
  },
4857
4906
  renderHTML({ HTMLAttributes }) {
4858
- return ["tr", mergeAttributes20(this.options.HTMLAttributes, HTMLAttributes), 0];
4859
- }
4860
- });
4861
-
4862
- // src/extensions/callout.ts
4863
- import { mergeAttributes as mergeAttributes21, Node as Node16 } from "@tiptap/core";
4864
- var LOOMA_CALLOUT_TONES = ["info", "note", "warning"];
4865
- function normalizeCalloutTone(value) {
4866
- return typeof value === "string" && LOOMA_CALLOUT_TONES.includes(value) ? value : "note";
4867
- }
4868
- var LoomaCallout = Node16.create({
4869
- name: "loomaCallout",
4870
- group: "block",
4871
- content: "block+",
4872
- defining: true,
4873
- addAttributes() {
4874
- return {
4875
- tone: {
4876
- default: "note",
4877
- parseHTML: (element) => normalizeCalloutTone(element.getAttribute("data-tone")),
4878
- renderHTML: (attributes) => ({
4879
- "data-tone": normalizeCalloutTone(attributes.tone)
4880
- })
4881
- }
4882
- };
4883
- },
4884
- parseHTML() {
4885
- return [{ tag: "aside[data-looma-callout]" }];
4886
- },
4887
- renderHTML({ HTMLAttributes }) {
4888
- return [
4889
- "aside",
4890
- mergeAttributes21(HTMLAttributes, {
4891
- "data-looma-callout": ""
4892
- }),
4893
- 0
4894
- ];
4907
+ return ["tr", mergeAttributes21(this.options.HTMLAttributes, HTMLAttributes), 0];
4895
4908
  }
4896
4909
  });
4897
4910
 
@@ -6441,18 +6454,21 @@ var CALLOUT_COMMANDS = [
6441
6454
  title: "Info",
6442
6455
  description: "Informational callout",
6443
6456
  tone: "info",
6457
+ icon: "info",
6444
6458
  keywords: ["info", "information", "callout", "panel"]
6445
6459
  },
6446
6460
  {
6447
6461
  title: "Note",
6448
6462
  description: "Highlighted note",
6449
6463
  tone: "note",
6464
+ icon: "notebook-pen",
6450
6465
  keywords: ["note", "callout", "panel"]
6451
6466
  },
6452
6467
  {
6453
6468
  title: "Warning",
6454
6469
  description: "Important warning",
6455
6470
  tone: "warning",
6471
+ icon: "triangle-alert",
6456
6472
  keywords: ["warning", "caution", "alert", "callout", "panel"]
6457
6473
  }
6458
6474
  ];
@@ -6512,13 +6528,13 @@ function getDefaultSlashCommands(onOpenImagePicker) {
6512
6528
  editor.chain().focus().deleteRange(range).toggleBlockquote().run();
6513
6529
  }
6514
6530
  },
6515
- ...CALLOUT_COMMANDS.map(({ title, description, tone, keywords }) => ({
6531
+ ...CALLOUT_COMMANDS.map(({ title, description, tone, icon, keywords }) => ({
6516
6532
  title,
6517
6533
  description,
6518
- icon: "panel-left",
6534
+ icon,
6519
6535
  keywords,
6520
6536
  command: ({ editor, range }) => {
6521
- editor.chain().focus().deleteRange(range).wrapIn("loomaCallout", { tone }).run();
6537
+ editor.chain().focus().deleteRange(range).setLoomaCallout(tone).run();
6522
6538
  }
6523
6539
  })),
6524
6540
  {
@@ -1,9 +1,22 @@
1
- import { AnyExtension, Node, Editor, Range, Extension } from '@tiptap/core';
1
+ import { Node, AnyExtension, Editor, Range, Extension } from '@tiptap/core';
2
2
  import { d as TableContextMenuActionEventDetail, g as TableOverlayActionEventDetail } from '../table-overlay-DoiLie4h.js';
3
3
  export { a as TABLE_CELL_BACKGROUND_PRESETS } from '../table-overlay-DoiLie4h.js';
4
4
  import { PluginKey } from '@tiptap/pm/state';
5
5
  import { LoomaIconName } from '@threadlabs/looma/core';
6
6
 
7
+ declare const LOOMA_CALLOUT_TONES: readonly ["info", "note", "warning"];
8
+ type LoomaCalloutTone = (typeof LOOMA_CALLOUT_TONES)[number];
9
+ declare module "@tiptap/core" {
10
+ interface Commands<ReturnType> {
11
+ loomaCallout: {
12
+ /** Wrap the current block in a semantic Looma callout, or retone its existing callout. */
13
+ setLoomaCallout: (tone?: LoomaCalloutTone) => ReturnType;
14
+ };
15
+ }
16
+ }
17
+ /** A durable, themeable block container for informational editor content. */
18
+ declare const LoomaCallout: Node<any, any>;
19
+
7
20
  /**
8
21
  * Default Tiptap extension preset for Looma editor.
9
22
  * Uses the Vanilla JS Tiptap API; apps provide @tiptap/core and Looma ships the preset extensions.
@@ -25,11 +38,6 @@ declare function getLoomaTableExtensions(): AnyExtension[];
25
38
  */
26
39
  declare function getDefaultEditorExtensions(options?: DefaultEditorExtensionsOptions): AnyExtension[];
27
40
 
28
- declare const LOOMA_CALLOUT_TONES: readonly ["info", "note", "warning"];
29
- type LoomaCalloutTone = (typeof LOOMA_CALLOUT_TONES)[number];
30
- /** A durable, themeable block container for informational editor content. */
31
- declare const LoomaCallout: Node<any, any>;
32
-
33
41
  type TableCellAlignment = "left" | "center" | "right";
34
42
  type TableCellBackground = string | null;
35
43
  declare const LoomaTable: AnyExtension;
@@ -22,7 +22,7 @@ import {
22
22
  setActiveTableCellAlignment,
23
23
  setActiveTableCellBackground,
24
24
  shouldShowTextFormattingToolbar
25
- } from "../chunk-QCOYOVQL.js";
25
+ } from "../chunk-B5WVJOPV.js";
26
26
  import {
27
27
  DEFAULT_MENTION_RESULT_LIMIT,
28
28
  MAX_MENTION_RESULT_LIMIT,
package/editor/index.js CHANGED
@@ -26,7 +26,7 @@ import {
26
26
  setActiveTableCellAlignment,
27
27
  setActiveTableCellBackground,
28
28
  shouldShowTextFormattingToolbar
29
- } from "./chunk-QCOYOVQL.js";
29
+ } from "./chunk-B5WVJOPV.js";
30
30
  import {
31
31
  DEFAULT_MENTION_RESULT_LIMIT,
32
32
  MAX_MENTION_RESULT_LIMIT,