@nldd/design-system 0.8.64 → 0.8.65

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 (459) hide show
  1. package/dist/components/actions/button/button.d.ts.map +1 -1
  2. package/dist/components/actions/button/button.js +7 -6
  3. package/dist/components/actions/button/button.js.map +1 -1
  4. package/dist/components/actions/button/button.styles.d.ts.map +1 -1
  5. package/dist/components/actions/button/button.styles.js +9 -5
  6. package/dist/components/actions/button/button.styles.js.map +1 -1
  7. package/dist/components/actions/button-bar/button-bar.d.ts.map +1 -1
  8. package/dist/components/actions/button-bar/button-bar.js +3 -2
  9. package/dist/components/actions/button-bar/button-bar.js.map +1 -1
  10. package/dist/components/actions/button-group/button-group.d.ts.map +1 -1
  11. package/dist/components/actions/button-group/button-group.js +3 -2
  12. package/dist/components/actions/button-group/button-group.js.map +1 -1
  13. package/dist/components/actions/icon-button/icon-button.d.ts +4 -0
  14. package/dist/components/actions/icon-button/icon-button.d.ts.map +1 -1
  15. package/dist/components/actions/icon-button/icon-button.js +13 -5
  16. package/dist/components/actions/icon-button/icon-button.js.map +1 -1
  17. package/dist/components/actions/icon-button/icon-button.styles.d.ts.map +1 -1
  18. package/dist/components/actions/icon-button/icon-button.styles.js +15 -10
  19. package/dist/components/actions/icon-button/icon-button.styles.js.map +1 -1
  20. package/dist/components/actions/icon-button/icon-button.template.d.ts.map +1 -1
  21. package/dist/components/actions/icon-button/icon-button.template.js +2 -0
  22. package/dist/components/actions/icon-button/icon-button.template.js.map +1 -1
  23. package/dist/components/actions/menu/menu.d.ts +1 -0
  24. package/dist/components/actions/menu/menu.d.ts.map +1 -1
  25. package/dist/components/actions/menu/menu.js +33 -15
  26. package/dist/components/actions/menu/menu.js.map +1 -1
  27. package/dist/components/actions/menu/menu.styles.d.ts.map +1 -1
  28. package/dist/components/actions/menu/menu.styles.js +8 -0
  29. package/dist/components/actions/menu/menu.styles.js.map +1 -1
  30. package/dist/components/actions/split-button/split-button.d.ts.map +1 -1
  31. package/dist/components/actions/split-button/split-button.js +5 -4
  32. package/dist/components/actions/split-button/split-button.js.map +1 -1
  33. package/dist/components/actions/toolbar/toolbar.d.ts +11 -0
  34. package/dist/components/actions/toolbar/toolbar.d.ts.map +1 -1
  35. package/dist/components/actions/toolbar/toolbar.js +112 -40
  36. package/dist/components/actions/toolbar/toolbar.js.map +1 -1
  37. package/dist/components/actions/toolbar/toolbar.styles.d.ts.map +1 -1
  38. package/dist/components/actions/toolbar/toolbar.styles.js +3 -12
  39. package/dist/components/actions/toolbar/toolbar.styles.js.map +1 -1
  40. package/dist/components/components.js +104 -102
  41. package/dist/components/content/blockquote/blockquote.styles.d.ts.map +1 -1
  42. package/dist/components/content/blockquote/blockquote.styles.js +0 -3
  43. package/dist/components/content/blockquote/blockquote.styles.js.map +1 -1
  44. package/dist/components/content/byline/byline.d.ts.map +1 -1
  45. package/dist/components/content/byline/byline.js +3 -2
  46. package/dist/components/content/byline/byline.js.map +1 -1
  47. package/dist/components/content/code-viewer/code-viewer.d.ts +24 -64
  48. package/dist/components/content/code-viewer/code-viewer.d.ts.map +1 -1
  49. package/dist/components/content/code-viewer/code-viewer.js +239 -156
  50. package/dist/components/content/code-viewer/code-viewer.js.map +1 -1
  51. package/dist/components/content/code-viewer/code-viewer.styles.d.ts.map +1 -1
  52. package/dist/components/content/code-viewer/code-viewer.styles.js +33 -92
  53. package/dist/components/content/code-viewer/code-viewer.styles.js.map +1 -1
  54. package/dist/components/content/code-viewer/code-viewer.template.d.ts.map +1 -1
  55. package/dist/components/content/code-viewer/code-viewer.template.js +10 -29
  56. package/dist/components/content/code-viewer/code-viewer.template.js.map +1 -1
  57. package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
  58. package/dist/components/content/icon/icon-aliases.js +22 -1
  59. package/dist/components/content/icon/icon-aliases.js.map +1 -1
  60. package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
  61. package/dist/components/content/icon/icon-registry.js +18 -0
  62. package/dist/components/content/icon/icon-registry.js.map +1 -1
  63. package/dist/components/content/icon/icon.d.ts.map +1 -1
  64. package/dist/components/content/icon/icon.js +3 -2
  65. package/dist/components/content/icon/icon.js.map +1 -1
  66. package/dist/components/content/image/image.d.ts.map +1 -1
  67. package/dist/components/content/image/image.js +7 -6
  68. package/dist/components/content/image/image.js.map +1 -1
  69. package/dist/components/content/image/image.styles.d.ts.map +1 -1
  70. package/dist/components/content/image/image.styles.js +2 -6
  71. package/dist/components/content/image/image.styles.js.map +1 -1
  72. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.d.ts.map +1 -1
  73. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.js +8 -7
  74. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  75. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.styles.d.ts.map +1 -1
  76. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.styles.js +5 -1
  77. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.styles.js.map +1 -1
  78. package/dist/components/content/rich-text/rich-text.d.ts.map +1 -1
  79. package/dist/components/content/rich-text/rich-text.js +3 -2
  80. package/dist/components/content/rich-text/rich-text.js.map +1 -1
  81. package/dist/components/content/tag/tag.d.ts.map +1 -1
  82. package/dist/components/content/tag/tag.js +5 -4
  83. package/dist/components/content/tag/tag.js.map +1 -1
  84. package/dist/components/content/title/title.d.ts.map +1 -1
  85. package/dist/components/content/title/title.js +2 -1
  86. package/dist/components/content/title/title.js.map +1 -1
  87. package/dist/components/content/token/token.d.ts +70 -0
  88. package/dist/components/content/token/token.d.ts.map +1 -0
  89. package/dist/components/content/token/token.js +170 -0
  90. package/dist/components/content/token/token.js.map +1 -0
  91. package/dist/components/content/token/token.styles.d.ts.map +1 -0
  92. package/dist/components/content/token/token.styles.js +122 -0
  93. package/dist/components/content/token/token.styles.js.map +1 -0
  94. package/dist/components/content/token/token.template.d.ts +6 -0
  95. package/dist/components/content/token/token.template.d.ts.map +1 -0
  96. package/dist/components/content/token/token.template.js +47 -0
  97. package/dist/components/content/token/token.template.js.map +1 -0
  98. package/dist/components/content/tooltip/tooltip.d.ts.map +1 -1
  99. package/dist/components/content/tooltip/tooltip.js +14 -5
  100. package/dist/components/content/tooltip/tooltip.js.map +1 -1
  101. package/dist/components/content/tooltip/tooltip.styles.d.ts.map +1 -1
  102. package/dist/components/content/tooltip/tooltip.styles.js +11 -0
  103. package/dist/components/content/tooltip/tooltip.styles.js.map +1 -1
  104. package/dist/components/gherkin-DhZlEZiy.js +115 -0
  105. package/dist/components/index-BI4lrehT.js +66595 -0
  106. package/dist/components/index-BcdqzZql.js +703 -0
  107. package/dist/components/index-BlMqctke.js +81 -0
  108. package/dist/components/index-BseMFLNF.js +688 -0
  109. package/dist/components/index-ChjtFo6I.js +177 -0
  110. package/dist/components/index-D3NSlPL5.js +405 -0
  111. package/dist/components/index-D7B3n3QJ.js +384 -0
  112. package/dist/components/index.d.ts +20 -18
  113. package/dist/components/index.d.ts.map +1 -1
  114. package/dist/components/index.js +20 -18
  115. package/dist/components/index.js.map +1 -1
  116. package/dist/components/inputs/code-editor/code-editor.d.ts +58 -29
  117. package/dist/components/inputs/code-editor/code-editor.d.ts.map +1 -1
  118. package/dist/components/inputs/code-editor/code-editor.js +241 -52
  119. package/dist/components/inputs/code-editor/code-editor.js.map +1 -1
  120. package/dist/components/inputs/code-editor/code-editor.styles.d.ts.map +1 -1
  121. package/dist/components/inputs/code-editor/code-editor.styles.js +58 -46
  122. package/dist/components/inputs/code-editor/code-editor.styles.js.map +1 -1
  123. package/dist/components/inputs/code-editor/code-editor.template.d.ts +1 -1
  124. package/dist/components/inputs/code-editor/code-editor.template.d.ts.map +1 -1
  125. package/dist/components/inputs/code-editor/code-editor.template.js +5 -22
  126. package/dist/components/inputs/code-editor/code-editor.template.js.map +1 -1
  127. package/dist/components/inputs/combo-box/combo-box.d.ts +15 -4
  128. package/dist/components/inputs/combo-box/combo-box.d.ts.map +1 -1
  129. package/dist/components/inputs/combo-box/combo-box.js +53 -9
  130. package/dist/components/inputs/combo-box/combo-box.js.map +1 -1
  131. package/dist/components/inputs/dropdown/dropdown.d.ts.map +1 -1
  132. package/dist/components/inputs/dropdown/dropdown.js +2 -1
  133. package/dist/components/inputs/dropdown/dropdown.js.map +1 -1
  134. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts +1 -1
  135. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts.map +1 -1
  136. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js +6 -5
  137. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js.map +1 -1
  138. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.d.ts.map +1 -1
  139. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.js +8 -11
  140. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.js.map +1 -1
  141. package/dist/components/inputs/number-field/number-field.d.ts.map +1 -1
  142. package/dist/components/inputs/number-field/number-field.js +2 -1
  143. package/dist/components/inputs/number-field/number-field.js.map +1 -1
  144. package/dist/components/inputs/password-field/password-field.d.ts.map +1 -1
  145. package/dist/components/inputs/password-field/password-field.js +3 -2
  146. package/dist/components/inputs/password-field/password-field.js.map +1 -1
  147. package/dist/components/inputs/radio-button-group/radio-button-group.js +1 -1
  148. package/dist/components/inputs/radio-button-group/radio-button-group.js.map +1 -1
  149. package/dist/components/inputs/search-field/search-field.d.ts.map +1 -1
  150. package/dist/components/inputs/search-field/search-field.js +2 -1
  151. package/dist/components/inputs/search-field/search-field.js.map +1 -1
  152. package/dist/components/inputs/segmented-control/segmented-control.d.ts +1 -1
  153. package/dist/components/inputs/segmented-control/segmented-control.d.ts.map +1 -1
  154. package/dist/components/inputs/segmented-control/segmented-control.js +10 -9
  155. package/dist/components/inputs/segmented-control/segmented-control.js.map +1 -1
  156. package/dist/components/inputs/segmented-control/segmented-control.styles.d.ts.map +1 -1
  157. package/dist/components/inputs/segmented-control/segmented-control.styles.js +70 -36
  158. package/dist/components/inputs/segmented-control/segmented-control.styles.js.map +1 -1
  159. package/dist/components/inputs/stepper/stepper.d.ts.map +1 -1
  160. package/dist/components/inputs/stepper/stepper.js +2 -1
  161. package/dist/components/inputs/stepper/stepper.js.map +1 -1
  162. package/dist/components/inputs/switch/switch.d.ts.map +1 -1
  163. package/dist/components/inputs/switch/switch.js +2 -1
  164. package/dist/components/inputs/switch/switch.js.map +1 -1
  165. package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.d.ts +51 -0
  166. package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.d.ts.map +1 -0
  167. package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.js +148 -0
  168. package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.js.map +1 -0
  169. package/dist/components/inputs/text-editor/text-editor.annotations.d.ts +47 -0
  170. package/dist/components/inputs/text-editor/text-editor.annotations.d.ts.map +1 -0
  171. package/dist/components/inputs/text-editor/text-editor.annotations.js +327 -0
  172. package/dist/components/inputs/text-editor/text-editor.annotations.js.map +1 -0
  173. package/dist/components/inputs/text-editor/text-editor.caret.d.ts +13 -0
  174. package/dist/components/inputs/text-editor/text-editor.caret.d.ts.map +1 -0
  175. package/dist/components/inputs/text-editor/text-editor.caret.js +27 -0
  176. package/dist/components/inputs/text-editor/text-editor.caret.js.map +1 -0
  177. package/dist/components/inputs/text-editor/text-editor.commands.d.ts +61 -0
  178. package/dist/components/inputs/text-editor/text-editor.commands.d.ts.map +1 -0
  179. package/dist/components/inputs/text-editor/text-editor.commands.js +376 -0
  180. package/dist/components/inputs/text-editor/text-editor.commands.js.map +1 -0
  181. package/dist/components/inputs/text-editor/text-editor.d.ts +241 -0
  182. package/dist/components/inputs/text-editor/text-editor.d.ts.map +1 -0
  183. package/dist/components/inputs/text-editor/text-editor.drag.d.ts +30 -0
  184. package/dist/components/inputs/text-editor/text-editor.drag.d.ts.map +1 -0
  185. package/dist/components/inputs/text-editor/text-editor.drag.js +231 -0
  186. package/dist/components/inputs/text-editor/text-editor.drag.js.map +1 -0
  187. package/dist/components/inputs/text-editor/text-editor.i18n.d.ts +8 -0
  188. package/dist/components/inputs/text-editor/text-editor.i18n.d.ts.map +1 -0
  189. package/dist/components/inputs/text-editor/text-editor.i18n.js +13 -0
  190. package/dist/components/inputs/text-editor/text-editor.i18n.js.map +1 -0
  191. package/dist/components/inputs/text-editor/text-editor.js +782 -0
  192. package/dist/components/inputs/text-editor/text-editor.js.map +1 -0
  193. package/dist/components/inputs/text-editor/text-editor.links.d.ts +18 -0
  194. package/dist/components/inputs/text-editor/text-editor.links.d.ts.map +1 -0
  195. package/dist/components/inputs/text-editor/text-editor.links.js +147 -0
  196. package/dist/components/inputs/text-editor/text-editor.links.js.map +1 -0
  197. package/dist/components/inputs/text-editor/text-editor.markdown.d.ts +20 -0
  198. package/dist/components/inputs/text-editor/text-editor.markdown.d.ts.map +1 -0
  199. package/dist/components/inputs/text-editor/text-editor.markdown.js +372 -0
  200. package/dist/components/inputs/text-editor/text-editor.markdown.js.map +1 -0
  201. package/dist/components/inputs/text-editor/text-editor.mentions.d.ts +32 -0
  202. package/dist/components/inputs/text-editor/text-editor.mentions.d.ts.map +1 -0
  203. package/dist/components/inputs/text-editor/text-editor.mentions.js +153 -0
  204. package/dist/components/inputs/text-editor/text-editor.mentions.js.map +1 -0
  205. package/dist/components/inputs/text-editor/text-editor.ordered-list.d.ts +12 -0
  206. package/dist/components/inputs/text-editor/text-editor.ordered-list.d.ts.map +1 -0
  207. package/dist/components/inputs/text-editor/text-editor.ordered-list.js +85 -0
  208. package/dist/components/inputs/text-editor/text-editor.ordered-list.js.map +1 -0
  209. package/dist/components/inputs/text-editor/text-editor.styles.d.ts +2 -0
  210. package/dist/components/inputs/text-editor/text-editor.styles.d.ts.map +1 -0
  211. package/dist/components/inputs/text-editor/text-editor.styles.js +592 -0
  212. package/dist/components/inputs/text-editor/text-editor.styles.js.map +1 -0
  213. package/dist/components/inputs/text-editor/text-editor.template.d.ts +4 -0
  214. package/dist/components/inputs/text-editor/text-editor.template.d.ts.map +1 -0
  215. package/dist/components/inputs/text-editor/text-editor.template.js +7 -0
  216. package/dist/components/inputs/text-editor/text-editor.template.js.map +1 -0
  217. package/dist/components/inputs/text-field/text-field.d.ts.map +1 -1
  218. package/dist/components/inputs/text-field/text-field.js +3 -2
  219. package/dist/components/inputs/text-field/text-field.js.map +1 -1
  220. package/dist/components/inputs/toggle-button/toggle-button.d.ts.map +1 -1
  221. package/dist/components/inputs/toggle-button/toggle-button.js +4 -3
  222. package/dist/components/inputs/toggle-button/toggle-button.js.map +1 -1
  223. package/dist/components/inputs/toggle-button/toggle-button.styles.d.ts.map +1 -1
  224. package/dist/components/inputs/toggle-button/toggle-button.styles.js +14 -10
  225. package/dist/components/inputs/toggle-button/toggle-button.styles.js.map +1 -1
  226. package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts +1 -1
  227. package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts.map +1 -1
  228. package/dist/components/inputs/toggle-button-group/toggle-button-group.js +5 -4
  229. package/dist/components/inputs/toggle-button-group/toggle-button-group.js.map +1 -1
  230. package/dist/components/inputs/token-field/token-field.d.ts +257 -0
  231. package/dist/components/inputs/token-field/token-field.d.ts.map +1 -0
  232. package/dist/components/inputs/token-field/token-field.i18n.d.ts +9 -0
  233. package/dist/components/inputs/token-field/token-field.i18n.d.ts.map +1 -0
  234. package/dist/components/inputs/token-field/token-field.i18n.js +8 -0
  235. package/dist/components/inputs/token-field/token-field.i18n.js.map +1 -0
  236. package/dist/components/inputs/token-field/token-field.js +877 -0
  237. package/dist/components/inputs/token-field/token-field.js.map +1 -0
  238. package/dist/components/inputs/token-field/token-field.styles.d.ts +2 -0
  239. package/dist/components/inputs/token-field/token-field.styles.d.ts.map +1 -0
  240. package/dist/components/inputs/token-field/token-field.styles.js +194 -0
  241. package/dist/components/inputs/token-field/token-field.styles.js.map +1 -0
  242. package/dist/components/inputs/token-field/token-field.template.d.ts +8 -0
  243. package/dist/components/inputs/token-field/token-field.template.d.ts.map +1 -0
  244. package/dist/components/inputs/token-field/token-field.template.js +136 -0
  245. package/dist/components/inputs/token-field/token-field.template.js.map +1 -0
  246. package/dist/components/layout/app-view/app-view.d.ts.map +1 -1
  247. package/dist/components/layout/app-view/app-view.js +2 -1
  248. package/dist/components/layout/app-view/app-view.js.map +1 -1
  249. package/dist/components/layout/box/box.d.ts.map +1 -1
  250. package/dist/components/layout/box/box.js +2 -1
  251. package/dist/components/layout/box/box.js.map +1 -1
  252. package/dist/components/layout/box/box.styles.d.ts.map +1 -1
  253. package/dist/components/layout/box/box.styles.js +1 -6
  254. package/dist/components/layout/box/box.styles.js.map +1 -1
  255. package/dist/components/layout/collection/collection.d.ts +5 -0
  256. package/dist/components/layout/collection/collection.d.ts.map +1 -1
  257. package/dist/components/layout/collection/collection.js +17 -1
  258. package/dist/components/layout/collection/collection.js.map +1 -1
  259. package/dist/components/layout/collection/collection.styles.d.ts.map +1 -1
  260. package/dist/components/layout/collection/collection.styles.js +18 -17
  261. package/dist/components/layout/collection/collection.styles.js.map +1 -1
  262. package/dist/components/layout/page-footer/page-footer.d.ts.map +1 -1
  263. package/dist/components/layout/page-footer/page-footer.js +2 -1
  264. package/dist/components/layout/page-footer/page-footer.js.map +1 -1
  265. package/dist/components/layout/page-sections/hero/hero.d.ts +7 -23
  266. package/dist/components/layout/page-sections/hero/hero.d.ts.map +1 -1
  267. package/dist/components/layout/page-sections/hero/hero.js +12 -73
  268. package/dist/components/layout/page-sections/hero/hero.js.map +1 -1
  269. package/dist/components/layout/page-sections/hero/hero.styles.d.ts.map +1 -1
  270. package/dist/components/layout/page-sections/hero/hero.styles.js +13 -159
  271. package/dist/components/layout/page-sections/hero/hero.styles.js.map +1 -1
  272. package/dist/components/layout/popover/popover.d.ts +1 -0
  273. package/dist/components/layout/popover/popover.d.ts.map +1 -1
  274. package/dist/components/layout/popover/popover.js +14 -1
  275. package/dist/components/layout/popover/popover.js.map +1 -1
  276. package/dist/components/layout/popover/popover.styles.d.ts.map +1 -1
  277. package/dist/components/layout/popover/popover.styles.js +11 -0
  278. package/dist/components/layout/popover/popover.styles.js.map +1 -1
  279. package/dist/components/layout/sheet/sheet.d.ts +1 -1
  280. package/dist/components/layout/sheet/sheet.d.ts.map +1 -1
  281. package/dist/components/layout/sheet/sheet.js +16 -6
  282. package/dist/components/layout/sheet/sheet.js.map +1 -1
  283. package/dist/components/layout/sheet/sheet.styles.d.ts.map +1 -1
  284. package/dist/components/layout/sheet/sheet.styles.js +60 -83
  285. package/dist/components/layout/sheet/sheet.styles.js.map +1 -1
  286. package/dist/components/layout/spacer/spacer.d.ts.map +1 -1
  287. package/dist/components/layout/spacer/spacer.js +2 -1
  288. package/dist/components/layout/spacer/spacer.js.map +1 -1
  289. package/dist/components/layout/spacer/spacer.styles.d.ts.map +1 -1
  290. package/dist/components/layout/spacer/spacer.styles.js +0 -1
  291. package/dist/components/layout/spacer/spacer.styles.js.map +1 -1
  292. package/dist/components/layout/split-views/split-view-divider/split-view-divider.d.ts.map +1 -1
  293. package/dist/components/layout/split-views/split-view-divider/split-view-divider.js +2 -1
  294. package/dist/components/layout/split-views/split-view-divider/split-view-divider.js.map +1 -1
  295. package/dist/components/layout/split-views/split-view-divider/split-view-divider.styles.js +10 -10
  296. package/dist/components/layout/window/window.d.ts.map +1 -1
  297. package/dist/components/layout/window/window.js +11 -2
  298. package/dist/components/layout/window/window.js.map +1 -1
  299. package/dist/components/lists-and-tables/cells/cell/cell.d.ts.map +1 -1
  300. package/dist/components/lists-and-tables/cells/cell/cell.js +4 -3
  301. package/dist/components/lists-and-tables/cells/cell/cell.js.map +1 -1
  302. package/dist/components/lists-and-tables/cells/description-cell/description-cell.d.ts.map +1 -1
  303. package/dist/components/lists-and-tables/cells/description-cell/description-cell.js +3 -2
  304. package/dist/components/lists-and-tables/cells/description-cell/description-cell.js.map +1 -1
  305. package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.d.ts.map +1 -1
  306. package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.js +2 -1
  307. package/dist/components/lists-and-tables/cells/drag-handle-cell/drag-handle-cell.js.map +1 -1
  308. package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.d.ts.map +1 -1
  309. package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.js +3 -2
  310. package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.js.map +1 -1
  311. package/dist/components/lists-and-tables/cells/text-cell/text-cell.d.ts.map +1 -1
  312. package/dist/components/lists-and-tables/cells/text-cell/text-cell.js +10 -9
  313. package/dist/components/lists-and-tables/cells/text-cell/text-cell.js.map +1 -1
  314. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.d.ts.map +1 -1
  315. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.js +3 -2
  316. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.js.map +1 -1
  317. package/dist/components/lists-and-tables/cells/title-cell/title-cell.d.ts.map +1 -1
  318. package/dist/components/lists-and-tables/cells/title-cell/title-cell.js +9 -8
  319. package/dist/components/lists-and-tables/cells/title-cell/title-cell.js.map +1 -1
  320. package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
  321. package/dist/components/lists-and-tables/list/list.js +5 -4
  322. package/dist/components/lists-and-tables/list/list.js.map +1 -1
  323. package/dist/components/lists-and-tables/list/list.styles.d.ts.map +1 -1
  324. package/dist/components/lists-and-tables/list/list.styles.js +3 -2
  325. package/dist/components/lists-and-tables/list/list.styles.js.map +1 -1
  326. package/dist/components/lists-and-tables/list-item/list-item.d.ts.map +1 -1
  327. package/dist/components/lists-and-tables/list-item/list-item.js +2 -1
  328. package/dist/components/lists-and-tables/list-item/list-item.js.map +1 -1
  329. package/dist/components/lists-and-tables/table/table.d.ts.map +1 -1
  330. package/dist/components/lists-and-tables/table/table.js +4 -3
  331. package/dist/components/lists-and-tables/table/table.js.map +1 -1
  332. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  333. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +2 -1
  334. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -1
  335. package/dist/components/navigation/document-tab-bar/document-tab-bar.d.ts.map +1 -1
  336. package/dist/components/navigation/document-tab-bar/document-tab-bar.js +5 -4
  337. package/dist/components/navigation/document-tab-bar/document-tab-bar.js.map +1 -1
  338. package/dist/components/navigation/link/link.d.ts.map +1 -1
  339. package/dist/components/navigation/link/link.js +2 -1
  340. package/dist/components/navigation/link/link.js.map +1 -1
  341. package/dist/components/navigation/menu-bar/menu-bar.d.ts.map +1 -1
  342. package/dist/components/navigation/menu-bar/menu-bar.js +2 -1
  343. package/dist/components/navigation/menu-bar/menu-bar.js.map +1 -1
  344. package/dist/components/navigation/menu-bar-item/menu-bar-item.d.ts.map +1 -1
  345. package/dist/components/navigation/menu-bar-item/menu-bar-item.js +4 -3
  346. package/dist/components/navigation/menu-bar-item/menu-bar-item.js.map +1 -1
  347. package/dist/components/navigation/skip-link/skip-link.d.ts.map +1 -1
  348. package/dist/components/navigation/skip-link/skip-link.js +2 -1
  349. package/dist/components/navigation/skip-link/skip-link.js.map +1 -1
  350. package/dist/components/navigation/tab-bar/tab-bar.d.ts +7 -0
  351. package/dist/components/navigation/tab-bar/tab-bar.d.ts.map +1 -1
  352. package/dist/components/navigation/tab-bar/tab-bar.js +31 -5
  353. package/dist/components/navigation/tab-bar/tab-bar.js.map +1 -1
  354. package/dist/components/navigation/tab-bar/tab-bar.styles.d.ts.map +1 -1
  355. package/dist/components/navigation/tab-bar/tab-bar.styles.js +74 -78
  356. package/dist/components/navigation/tab-bar/tab-bar.styles.js.map +1 -1
  357. package/dist/components/navigation/tab-bar/tab-bar.template.d.ts.map +1 -1
  358. package/dist/components/navigation/tab-bar/tab-bar.template.js +8 -1
  359. package/dist/components/navigation/tab-bar/tab-bar.template.js.map +1 -1
  360. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.d.ts.map +1 -1
  361. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.js +7 -6
  362. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.js.map +1 -1
  363. package/dist/components/navigation/top-title-bar/top-title-bar.d.ts.map +1 -1
  364. package/dist/components/navigation/top-title-bar/top-title-bar.js +5 -4
  365. package/dist/components/navigation/top-title-bar/top-title-bar.js.map +1 -1
  366. package/dist/components/shell-BlsXDxCn.js +222 -0
  367. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.d.ts.map +1 -1
  368. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.js +4 -3
  369. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.js.map +1 -1
  370. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.styles.d.ts.map +1 -1
  371. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.styles.js +0 -1
  372. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.styles.js.map +1 -1
  373. package/dist/components/status-and-feedback/badge/badge.d.ts.map +1 -1
  374. package/dist/components/status-and-feedback/badge/badge.js +4 -3
  375. package/dist/components/status-and-feedback/badge/badge.js.map +1 -1
  376. package/dist/components/status-and-feedback/banner/banner.d.ts +0 -1
  377. package/dist/components/status-and-feedback/banner/banner.d.ts.map +1 -1
  378. package/dist/components/status-and-feedback/banner/banner.js +13 -13
  379. package/dist/components/status-and-feedback/banner/banner.js.map +1 -1
  380. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.d.ts.map +1 -1
  381. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js +5 -4
  382. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js.map +1 -1
  383. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts +1 -0
  384. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts.map +1 -1
  385. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js +35 -4
  386. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js.map +1 -1
  387. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.d.ts.map +1 -1
  388. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.js +11 -0
  389. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.styles.js.map +1 -1
  390. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.d.ts.map +1 -1
  391. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js +4 -3
  392. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js.map +1 -1
  393. package/dist/components/status-and-feedback/progress-bar/progress-bar.d.ts.map +1 -1
  394. package/dist/components/status-and-feedback/progress-bar/progress-bar.js +9 -8
  395. package/dist/components/status-and-feedback/progress-bar/progress-bar.js.map +1 -1
  396. package/dist/components/status-and-feedback/progress-bar/progress-bar.styles.d.ts.map +1 -1
  397. package/dist/components/status-and-feedback/progress-bar/progress-bar.styles.js +0 -6
  398. package/dist/components/status-and-feedback/progress-bar/progress-bar.styles.js.map +1 -1
  399. package/dist/components/status-and-feedback/progress-circle/progress-circle.d.ts.map +1 -1
  400. package/dist/components/status-and-feedback/progress-circle/progress-circle.js +8 -7
  401. package/dist/components/status-and-feedback/progress-circle/progress-circle.js.map +1 -1
  402. package/dist/components/status-and-feedback/progress-circle/progress-circle.styles.d.ts.map +1 -1
  403. package/dist/components/status-and-feedback/progress-circle/progress-circle.styles.js +0 -2
  404. package/dist/components/status-and-feedback/progress-circle/progress-circle.styles.js.map +1 -1
  405. package/dist/components/status-and-feedback/status-bar/status-bar.d.ts.map +1 -1
  406. package/dist/components/status-and-feedback/status-bar/status-bar.js +3 -2
  407. package/dist/components/status-and-feedback/status-bar/status-bar.js.map +1 -1
  408. package/dist/components/toml-BOuWGMcf.js +76 -0
  409. package/dist/css/fouc.css +30 -0
  410. package/dist/css/global.css +1 -0
  411. package/dist/css/rich-text.css +0 -5
  412. package/dist/css/settings.css +25 -10
  413. package/dist/utilities/codemirror/codemirror-element.d.ts +66 -0
  414. package/dist/utilities/codemirror/codemirror-element.d.ts.map +1 -0
  415. package/dist/utilities/codemirror/codemirror-element.js +121 -0
  416. package/dist/utilities/codemirror/codemirror-element.js.map +1 -0
  417. package/dist/utilities/codemirror/languages.d.ts +4 -0
  418. package/dist/utilities/codemirror/languages.d.ts.map +1 -0
  419. package/dist/utilities/codemirror/languages.js +39 -0
  420. package/dist/utilities/codemirror/languages.js.map +1 -0
  421. package/dist/utilities/codemirror/theme.d.ts +4 -0
  422. package/dist/utilities/codemirror/theme.d.ts.map +1 -0
  423. package/dist/utilities/codemirror/theme.js +84 -0
  424. package/dist/utilities/codemirror/theme.js.map +1 -0
  425. package/dist/utilities/dismiss-from-title-bar.d.ts +19 -0
  426. package/dist/utilities/dismiss-from-title-bar.d.ts.map +1 -0
  427. package/dist/utilities/dismiss-from-title-bar.js +21 -0
  428. package/dist/utilities/dismiss-from-title-bar.js.map +1 -0
  429. package/dist/utilities/reflect-non-default.d.ts +30 -0
  430. package/dist/utilities/reflect-non-default.d.ts.map +1 -0
  431. package/dist/utilities/reflect-non-default.js +34 -0
  432. package/dist/utilities/reflect-non-default.js.map +1 -0
  433. package/package.json +92 -68
  434. package/dist/components/index-BNhqNvDd.js +0 -36784
  435. package/dist/components/inputs/token/token.d.ts +0 -42
  436. package/dist/components/inputs/token/token.d.ts.map +0 -1
  437. package/dist/components/inputs/token/token.js +0 -86
  438. package/dist/components/inputs/token/token.js.map +0 -1
  439. package/dist/components/inputs/token/token.styles.d.ts.map +0 -1
  440. package/dist/components/inputs/token/token.styles.js +0 -142
  441. package/dist/components/inputs/token/token.styles.js.map +0 -1
  442. package/dist/components/inputs/token/token.template.d.ts +0 -4
  443. package/dist/components/inputs/token/token.template.d.ts.map +0 -1
  444. package/dist/components/inputs/token/token.template.js +0 -41
  445. package/dist/components/inputs/token/token.template.js.map +0 -1
  446. package/dist/components/prism-bash-vbqaw3JR.js +0 -226
  447. package/dist/components/prism-css-B93tXdOU.js +0 -59
  448. package/dist/components/prism-gherkin-CMPYyXOQ.js +0 -82
  449. package/dist/components/prism-javascript-DeC_17Pw.js +0 -140
  450. package/dist/components/prism-json-DIMpow89.js +0 -25
  451. package/dist/components/prism-markdown-D-uFBkiz.js +0 -339
  452. package/dist/components/prism-markup-DfJYPYHA.js +0 -177
  453. package/dist/components/prism-python--N285k7w.js +0 -99
  454. package/dist/components/prism-rust-Cnm1tSdo.js +0 -157
  455. package/dist/components/prism-sql-BGqCBMyJ.js +0 -33
  456. package/dist/components/prism-toml-Ubdq-a5x.js +0 -45
  457. package/dist/components/prism-typescript-BPJAiB1s.js +0 -87
  458. package/dist/components/prism-yaml-DO0f9pf6.js +0 -71
  459. /package/dist/components/{inputs → content}/token/token.styles.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-editor.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { ViewPlugin, type DecorationSet } from '@codemirror/view';
2
+ import '../../content/icon/icon.js';
3
+ /** Builds the badge's accessible label from a link's destination. Supplied by the
4
+ * host so the string is localizable; defaults to Dutch at the call site. */
5
+ export type OpenInNewTabLabel = (url: string) => string;
6
+ /** Only follow schemes that are safe to put in a clickable anchor. The editor's
7
+ * value is consumer/document-supplied Markdown, so a `[text](javascript:…)` (or
8
+ * `data:` / `vbscript:`) link must never become a real, clickable badge —
9
+ * `target="_blank"` does NOT neutralise those; they execute in the current
10
+ * document. A URL with no scheme (relative, `#anchor`, `?query`, `//host`) just
11
+ * navigates, so it is allowed; a schemed URL must be http(s)/mailto/tel. */
12
+ export declare function isSafeHref(href: string): boolean;
13
+ /** Adds an "open link" badge after every real link in the viewport. `label` builds
14
+ * the badge's accessible label from the destination, so the host can localize it. */
15
+ export declare function linkOpenBadge(label: OpenInNewTabLabel): ViewPlugin<{
16
+ decorations: DecorationSet;
17
+ }>;
18
+ //# sourceMappingURL=text-editor.links.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-editor.links.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.links.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,UAAU,EAEV,KAAK,aAAa,EAGlB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,4BAA4B,CAAC;AAMpC;6EAC6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AAqExD;;;;;6EAK6E;AAC7E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYhD;AA0CD;sFACsF;AACtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAAC;IAAE,WAAW,EAAE,aAAa,CAAA;CAAE,CAAC,CAelG"}
@@ -0,0 +1,147 @@
1
+ import { Decoration, ViewPlugin, WidgetType, } from '@codemirror/view';
2
+ import { RangeSetBuilder } from '@codemirror/state';
3
+ import { syntaxTree } from '@codemirror/language';
4
+ import { MENTION_HREF_PREFIX } from './text-editor.mentions.js';
5
+ import { textCaretBox } from './text-editor.caret.js';
6
+ import '../../content/icon/icon.js';
7
+ class LinkOpenWidget extends WidgetType {
8
+ constructor(href, label) {
9
+ super();
10
+ this.href = href;
11
+ this.label = label;
12
+ }
13
+ eq(other) {
14
+ return other.href === this.href;
15
+ }
16
+ toDOM() {
17
+ const anchor = document.createElement('a');
18
+ anchor.className = 'cm-link-badge';
19
+ anchor.href = this.href;
20
+ anchor.target = '_blank';
21
+ anchor.rel = 'noopener noreferrer';
22
+ anchor.setAttribute('aria-label', this.label(this.href));
23
+ const icon = document.createElement('nldd-icon');
24
+ icon.setAttribute('name', 'external-link');
25
+ icon.setAttribute('aria-hidden', 'true');
26
+ anchor.append(icon);
27
+ // The editor steals mousedown to place the caret; keep the click ours.
28
+ anchor.addEventListener('mousedown', (event) => event.preventDefault());
29
+ return anchor;
30
+ }
31
+ ignoreEvent() {
32
+ return true; // let the anchor handle its own click
33
+ }
34
+ /** Keep the caret at the badge's right edge text-height, not the badge's own box
35
+ * height (which is taller and would flip with the cursor's arrival direction). */
36
+ coordsAt(dom) {
37
+ const badge = dom.getBoundingClientRect();
38
+ const box = textCaretBox(dom) ?? { top: badge.top, bottom: badge.bottom };
39
+ const x = badge.right + parseFloat(getComputedStyle(dom).marginRight);
40
+ return { left: x, right: x, top: box.top, bottom: box.bottom };
41
+ }
42
+ }
43
+ /** Normalise a Markdown reference label for matching: drop the surrounding
44
+ * brackets, collapse internal whitespace and lowercase (labels are
45
+ * case-insensitive per CommonMark). */
46
+ function normaliseLabel(raw) {
47
+ return raw.replace(/^\[|\]$/g, '').trim().replace(/\s+/g, ' ').toLowerCase();
48
+ }
49
+ /** Map of reference label → URL, from every link reference definition
50
+ * (`[ref]: https://…`) in the doc, so reference-style links can resolve their
51
+ * destination. Definitions usually sit at the bottom, so this scans the whole
52
+ * tree, not just the viewport. */
53
+ function referenceDefs(state) {
54
+ const defs = new Map();
55
+ syntaxTree(state).iterate({
56
+ enter: (node) => {
57
+ if (node.name !== 'LinkReference')
58
+ return;
59
+ let label = null;
60
+ let url = null;
61
+ for (let c = node.node.firstChild; c; c = c.nextSibling) {
62
+ if (c.name === 'LinkLabel')
63
+ label = normaliseLabel(state.sliceDoc(c.from, c.to));
64
+ else if (c.name === 'URL')
65
+ url = state.sliceDoc(c.from, c.to);
66
+ }
67
+ if (label && url && !defs.has(label))
68
+ defs.set(label, url);
69
+ },
70
+ });
71
+ return defs;
72
+ }
73
+ /** Only follow schemes that are safe to put in a clickable anchor. The editor's
74
+ * value is consumer/document-supplied Markdown, so a `[text](javascript:…)` (or
75
+ * `data:` / `vbscript:`) link must never become a real, clickable badge —
76
+ * `target="_blank"` does NOT neutralise those; they execute in the current
77
+ * document. A URL with no scheme (relative, `#anchor`, `?query`, `//host`) just
78
+ * navigates, so it is allowed; a schemed URL must be http(s)/mailto/tel. */
79
+ export function isSafeHref(href) {
80
+ // Read the scheme through the SAME normalisation the URL parser applies, or a
81
+ // disguised scheme slips through as "relative": the parser strips leading C0
82
+ // controls + space and removes tab/newline/CR anywhere, so `javascript:`
83
+ // and `java\tscript:` both resolve to `javascript:` even though the raw string
84
+ // fails the scheme regex. Drop every control/space char before testing (only for
85
+ // the safety decision — the real href is untouched); a scheme that survives must
86
+ // be in the allowlist.
87
+ // eslint-disable-next-line no-control-regex -- matching control chars is the point: they are the bypass vectors the URL parser strips before resolving the scheme.
88
+ const normalised = href.replace(/[\u0000-\u0020\u007f-\u009f]/g, '');
89
+ if (!/^[a-z][a-z0-9+.-]*:/i.test(normalised))
90
+ return true; // no scheme → relative, safe
91
+ return /^(?:https?|mailto|tel):/i.test(normalised);
92
+ }
93
+ /** The link's destination, or null for a mention, an unsafe scheme, or a link
94
+ * without a resolvable URL. Handles both inline links (`[text](url)`) and
95
+ * reference-style links (`[text][ref]`), resolving the latter against `refs`. */
96
+ function hrefOf(state, link, refs) {
97
+ let label = null;
98
+ for (let child = link.firstChild; child; child = child.nextSibling) {
99
+ if (child.name === 'URL') {
100
+ const href = state.sliceDoc(child.from, child.to);
101
+ return href && !href.startsWith(MENTION_HREF_PREFIX) && isSafeHref(href) ? href : null;
102
+ }
103
+ if (child.name === 'LinkLabel')
104
+ label = normaliseLabel(state.sliceDoc(child.from, child.to));
105
+ }
106
+ if (label) {
107
+ const href = refs.get(label);
108
+ return href && !href.startsWith(MENTION_HREF_PREFIX) && isSafeHref(href) ? href : null;
109
+ }
110
+ return null;
111
+ }
112
+ function buildBadges(view, label) {
113
+ const builder = new RangeSetBuilder();
114
+ const tree = syntaxTree(view.state);
115
+ const refs = referenceDefs(view.state);
116
+ for (const { from, to } of view.visibleRanges) {
117
+ tree.iterate({
118
+ from,
119
+ to,
120
+ enter: (node) => {
121
+ if (node.name !== 'Link')
122
+ return;
123
+ const href = hrefOf(view.state, node.node, refs);
124
+ // side -1 draws the badge before the caret, so the caret at the link end
125
+ // sits to the RIGHT of the badge — text typed there lands after it, not
126
+ // wedged between the link and the badge.
127
+ if (href)
128
+ builder.add(node.to, node.to, Decoration.widget({ widget: new LinkOpenWidget(href, label), side: -1 }));
129
+ },
130
+ });
131
+ }
132
+ return builder.finish();
133
+ }
134
+ /** Adds an "open link" badge after every real link in the viewport. `label` builds
135
+ * the badge's accessible label from the destination, so the host can localize it. */
136
+ export function linkOpenBadge(label) {
137
+ return ViewPlugin.fromClass(class {
138
+ constructor(view) {
139
+ this.decorations = buildBadges(view, label);
140
+ }
141
+ update(update) {
142
+ if (update.docChanged || update.viewportChanged)
143
+ this.decorations = buildBadges(update.view, label);
144
+ }
145
+ }, { decorations: (plugin) => plugin.decorations });
146
+ }
147
+ //# sourceMappingURL=text-editor.links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-editor.links.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.links.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type EditorState, type Extension } from '@codemirror/state';
2
+ import '../../content/icon/icon.js';
3
+ /** Markdown language (with GFM) plus the hybrid inline-styling decorations. */
4
+ export declare const markdownEditing: Extension;
5
+ /** The mention whose collapsed token contains `pos` (used to select it on click). */
6
+ export declare function mentionRangeAt(state: EditorState, pos: number): {
7
+ from: number;
8
+ to: number;
9
+ } | null;
10
+ /** A mention token ending exactly at `pos` (cursor just after it — backspace). */
11
+ export declare function mentionRangeEndingAt(state: EditorState, pos: number): {
12
+ from: number;
13
+ to: number;
14
+ } | null;
15
+ /** A mention token starting exactly at `pos` (cursor just before it — delete). */
16
+ export declare function mentionRangeStartingAt(state: EditorState, pos: number): {
17
+ from: number;
18
+ to: number;
19
+ } | null;
20
+ //# sourceMappingURL=text-editor.markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-editor.markdown.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.markdown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,WAAW,EAAE,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAGnG,OAAO,4BAA4B,CAAC;AAkUpC,+EAA+E;AAC/E,eAAO,MAAM,eAAe,EAAE,SAS7B,CAAC;AAeF,qFAAqF;AACrF,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGnG;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGzG;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAG3G"}
@@ -0,0 +1,372 @@
1
+ import { ViewPlugin, Decoration, EditorView, WidgetType } from '@codemirror/view';
2
+ import { syntaxTree } from '@codemirror/language';
3
+ import { markdown } from '@codemirror/lang-markdown';
4
+ import { GFM } from '@lezer/markdown';
5
+ import { Prec, StateField } from '@codemirror/state';
6
+ import { MENTION_HREF_PREFIX, unescapeMentionLabel, decodeMentionId } from './text-editor.mentions.js';
7
+ import '../../content/icon/icon.js';
8
+ /* Hybrid markdown rendering: the document stays plain markdown text, but the
9
+ * formatting is shown inline (bold is bold, headings are larger, links are
10
+ * coloured) while the syntax markers stay visible, only dimmed — the iA Writer
11
+ * / Kirby approach. Implemented as decorations over the Lezer syntax tree. */
12
+ // Lezer node name → CSS class applied to that node's whole range (the content).
13
+ const NODE_CLASS = {
14
+ ATXHeading1: 'cm-md-h1',
15
+ ATXHeading2: 'cm-md-h2',
16
+ ATXHeading3: 'cm-md-h3',
17
+ ATXHeading4: 'cm-md-h4',
18
+ ATXHeading5: 'cm-md-h5',
19
+ ATXHeading6: 'cm-md-h6',
20
+ StrongEmphasis: 'cm-md-strong',
21
+ Emphasis: 'cm-md-emphasis',
22
+ Strikethrough: 'cm-md-strike',
23
+ InlineCode: 'cm-md-code',
24
+ // Fenced/indented code blocks are tinted per content line (see line decorations
25
+ // below), not here, so the whole block reads as one filled surface.
26
+ URL: 'cm-md-url',
27
+ Blockquote: 'cm-md-quote',
28
+ };
29
+ // Syntax markers — kept visible but dimmed so the source stays legible.
30
+ const MARK_NODES = new Set([
31
+ 'HeaderMark', 'EmphasisMark', 'StrikethroughMark', 'CodeMark',
32
+ 'QuoteMark', 'ListMark', 'LinkMark',
33
+ ]);
34
+ const dimDeco = Decoration.mark({ class: 'cm-md-mark' });
35
+ const classDecoCache = {};
36
+ function classDeco(cls) {
37
+ // inclusiveEnd so a formatting run (heading, bold, …) wraps a trailing widget at
38
+ // its end — e.g. an annotation badge whose annotation ends the run — instead of
39
+ // letting that widget fall outside the run's font context.
40
+ return (classDecoCache[cls] ?? (classDecoCache[cls] = Decoration.mark({ class: cls, inclusiveEnd: true })));
41
+ }
42
+ // A code block is tinted as full-width line backgrounds — one filled surface — so
43
+ // the fence lines stay clean and the content reads as a block, not per-word chips.
44
+ // The first/last content lines round the top/bottom corners.
45
+ const codeblockLine = Decoration.line({ class: 'cm-md-codeblock' });
46
+ const codeblockFirstLine = Decoration.line({ class: 'cm-md-codeblock-first' });
47
+ const codeblockLastLine = Decoration.line({ class: 'cm-md-codeblock-last' });
48
+ // Whole-block selection: recolours the full-width line background (padding and
49
+ // rounded corners included), so a fully selected block lights up as one surface
50
+ // — the block analogue of a fully selected inline-code / annotation token.
51
+ const codeblockSelectedLine = Decoration.line({ class: 'cm-md-codeblock-line-selected' });
52
+ function tintCodeLines(state, lineNumbers, sel, ranges) {
53
+ if (lineNumbers.length === 0)
54
+ return;
55
+ // The block is "fully selected" when the selection spans from the first content
56
+ // line's start through the last content line's end (it may reach further). Then
57
+ // every line background lights up; otherwise only the selected text slice does.
58
+ const firstLine = state.doc.line(lineNumbers[0]);
59
+ const lastLine = state.doc.line(lineNumbers[lineNumbers.length - 1]);
60
+ const blockFullySelected = !sel.empty && sel.from <= firstLine.from && sel.to >= lastLine.to;
61
+ lineNumbers.forEach((ln, index) => {
62
+ const line = state.doc.line(ln);
63
+ ranges.push(codeblockLine.range(line.from));
64
+ if (index === 0)
65
+ ranges.push(codeblockFirstLine.range(line.from));
66
+ if (index === lineNumbers.length - 1)
67
+ ranges.push(codeblockLastLine.range(line.from));
68
+ if (blockFullySelected) {
69
+ ranges.push(codeblockSelectedLine.range(line.from));
70
+ }
71
+ else if (!sel.empty) {
72
+ // Darken the selected slice of this line (drawSelection hides ::selection).
73
+ const f = Math.max(line.from, sel.from);
74
+ const t = Math.min(line.to, sel.to);
75
+ if (t > f)
76
+ ranges.push(classDeco('cm-md-codeblock-selected').range(f, t));
77
+ }
78
+ });
79
+ }
80
+ // Indented code block (no fences): every line in the node range is content.
81
+ function addCodeblockLines(state, from, to, sel, ranges) {
82
+ const first = state.doc.lineAt(from).number;
83
+ const last = state.doc.lineAt(Math.max(from, to - 1)).number;
84
+ const lines = [];
85
+ for (let ln = first; ln <= last; ln++)
86
+ lines.push(ln);
87
+ tintCodeLines(state, lines, sel, ranges);
88
+ }
89
+ // Fenced block: tint the content lines only — the ``` fence lines (and the info
90
+ // string) stay clean. Anchored on the whole FencedCode node, not its CodeText child,
91
+ // so a trailing empty line inside the fence is grey right away; CodeText doesn't cover
92
+ // that blank line, so it used to stay untinted until a keystroke grew the node.
93
+ function addFencedCodeLines(state, node, sel, ranges) {
94
+ const fenceLines = new Set();
95
+ for (let child = node.firstChild; child; child = child.nextSibling) {
96
+ if (child.name === 'CodeMark')
97
+ fenceLines.add(state.doc.lineAt(child.from).number);
98
+ }
99
+ const first = state.doc.lineAt(node.from).number;
100
+ const last = state.doc.lineAt(Math.max(node.from, node.to - 1)).number;
101
+ const lines = [];
102
+ for (let ln = first; ln <= last; ln++)
103
+ if (!fenceLines.has(ln))
104
+ lines.push(ln);
105
+ tintCodeLines(state, lines, sel, ranges);
106
+ }
107
+ function linkTextRange(link) {
108
+ const marks = [];
109
+ for (let child = link.firstChild; child; child = child.nextSibling) {
110
+ if (child.name === 'LinkMark')
111
+ marks.push(child);
112
+ }
113
+ if (marks.length < 2)
114
+ return null;
115
+ const from = marks[0].to; // after the opening '['
116
+ const to = marks[1].from; // before the closing ']'
117
+ return to > from ? { from, to } : null;
118
+ }
119
+ // A mention link (`[@Naam](user:id)`) gets a token on its @Naam text; a normal
120
+ // link is coloured across its whole range. Either way the markers and URL are
121
+ // still visited as children and dimmed.
122
+ function decorateLink(state, link, ranges) {
123
+ let url = null;
124
+ for (let child = link.firstChild; child; child = child.nextSibling) {
125
+ if (child.name === 'URL') {
126
+ url = child;
127
+ break;
128
+ }
129
+ }
130
+ const isMention = url !== null && state.sliceDoc(url.from, url.to).startsWith(MENTION_HREF_PREFIX);
131
+ if (isMention) {
132
+ const text = linkTextRange(link);
133
+ if (text)
134
+ ranges.push(classDeco('cm-md-mention').range(text.from, text.to));
135
+ }
136
+ else {
137
+ ranges.push(classDeco('cm-md-link').range(link.from, link.to));
138
+ }
139
+ }
140
+ // Inline/content styling — no layout change, so a viewport-scoped plugin.
141
+ function buildMarkDecorations(view) {
142
+ const ranges = [];
143
+ const sel = view.state.selection.main;
144
+ for (const { from, to } of view.visibleRanges) {
145
+ syntaxTree(view.state).iterate({
146
+ from,
147
+ to,
148
+ enter: (node) => {
149
+ if (node.from >= node.to)
150
+ return;
151
+ if (node.name === 'Link') {
152
+ decorateLink(view.state, node.node, ranges);
153
+ return;
154
+ }
155
+ // Fenced blocks tint from the FencedCode node (covers blank lines too),
156
+ // indented blocks from CodeBlock. Neither returns false, so the fence
157
+ // CodeMarks are still visited and dimmed as children.
158
+ if (node.name === 'FencedCode') {
159
+ addFencedCodeLines(view.state, node.node, sel, ranges);
160
+ return;
161
+ }
162
+ if (node.name === 'CodeBlock') {
163
+ addCodeblockLines(view.state, node.from, node.to, sel, ranges);
164
+ return;
165
+ }
166
+ const cls = NODE_CLASS[node.name];
167
+ if (cls) {
168
+ // Inline code darkens on selection (drawSelection hides the native
169
+ // ::selection). A *fully* selected chip recolours the base element
170
+ // itself — one mark with both classes — so it keeps its padding and
171
+ // rounded corners, like a selected mention/annotation token. The
172
+ // padless overlay slice (used only for a partial selection below)
173
+ // would instead square off the chip.
174
+ const codeFullySelected = cls === 'cm-md-code' && !sel.empty && sel.from <= node.from && sel.to >= node.to;
175
+ if (codeFullySelected) {
176
+ ranges.push(classDeco('cm-md-code cm-md-code-selected').range(node.from, node.to));
177
+ }
178
+ else {
179
+ ranges.push(classDeco(cls).range(node.from, node.to));
180
+ if (!sel.empty && cls === 'cm-md-code') {
181
+ const f = Math.max(node.from, sel.from);
182
+ const t = Math.min(node.to, sel.to);
183
+ if (t > f)
184
+ ranges.push(classDeco('cm-md-code-selected').range(f, t));
185
+ }
186
+ }
187
+ }
188
+ else if (node.name === 'ListMark' && /^[-*+]$/.test(view.state.sliceDoc(node.from, node.to)) && /^[ \t]/.test(view.state.sliceDoc(node.to, node.to + 1))) {
189
+ // A bullet marker (- * +) renders as a styled filled dot, but only once
190
+ // it's a real list item — immediately followed by a space. A lone "-"
191
+ // (before the space) falls through to the dimmed literal mark below, so
192
+ // typing "-" no longer flashes a bullet before a list exists. Ordered
193
+ // markers (1.) and other syntax also stay dimmed literal text.
194
+ ranges.push(classDeco('cm-md-mark cm-md-bullet').range(node.from, node.to));
195
+ }
196
+ else if (MARK_NODES.has(node.name)) {
197
+ ranges.push(dimDeco.range(node.from, node.to));
198
+ }
199
+ },
200
+ });
201
+ }
202
+ return Decoration.set(ranges, true);
203
+ }
204
+ const markDecorationPlugin = ViewPlugin.fromClass(class {
205
+ constructor(view) {
206
+ this.decorations = buildMarkDecorations(view);
207
+ }
208
+ update(update) {
209
+ // selectionSet too: the selected slice of a code span is tinted darker.
210
+ if (update.docChanged || update.viewportChanged || update.selectionSet) {
211
+ this.decorations = buildMarkDecorations(update.view);
212
+ }
213
+ }
214
+ }, { decorations: (plugin) => plugin.decorations });
215
+ /* Hanging indent: wrapped continuation lines of a list item or blockquote align
216
+ * under the first line's text. The leading marker prefix is rendered in
217
+ * monospace (cm-md-listprefix), so its width is exactly prefixLength × the mono
218
+ * advance (--_marker-advance). The indent uses that same product, so the first
219
+ * line's text and every wrapped line line up — no per-line measurement, and it
220
+ * holds in both the sans and mono body fonts. Layout-affecting → a StateField. */
221
+ const HANGING_RE = /^(\s*(?:[-*+]|\d+[.)])\s+|\s*>+\s?)/;
222
+ const prefixMonoDeco = Decoration.mark({ class: 'cm-md-listprefix' });
223
+ const hangingLineCache = {};
224
+ function hangingLineDeco(length) {
225
+ return (hangingLineCache[length] ?? (hangingLineCache[length] = Decoration.line({
226
+ attributes: {
227
+ style: `text-indent:calc(${length} * var(--_marker-advance) * -1);padding-left:calc(${length} * var(--_marker-advance))`,
228
+ },
229
+ })));
230
+ }
231
+ /** Whether `pos` sits inside a fenced or indented code block — where a leading
232
+ * `-`/`1.`/`>` is literal code, not a list or quote marker. */
233
+ function inCodeBlock(state, pos) {
234
+ for (let n = syntaxTree(state).resolveInner(pos, 1); n; n = n.parent) {
235
+ if (n.name === 'FencedCode' || n.name === 'CodeBlock')
236
+ return true;
237
+ }
238
+ return false;
239
+ }
240
+ function buildHangingIndent(state) {
241
+ const ranges = [];
242
+ for (let i = 1; i <= state.doc.lines; i++) {
243
+ const line = state.doc.line(i);
244
+ const match = line.text.match(HANGING_RE);
245
+ // Code-block lines are literal text: a leading marker isn't a list/quote, so it
246
+ // gets no hanging indent.
247
+ if (match && match[1].length && !inCodeBlock(state, line.from)) {
248
+ const length = match[1].length;
249
+ ranges.push(hangingLineDeco(length).range(line.from));
250
+ ranges.push(prefixMonoDeco.range(line.from, line.from + length));
251
+ }
252
+ }
253
+ return Decoration.set(ranges, true);
254
+ }
255
+ const hangingIndentField = StateField.define({
256
+ create: (state) => buildHangingIndent(state),
257
+ update: (value, tr) => (tr.docChanged ? buildHangingIndent(tr.state) : value),
258
+ provide: (field) => EditorView.decorations.from(field),
259
+ });
260
+ /* @-mentions collapse fully: the whole `[@Naam](user:id)` token is replaced by
261
+ * an atomic token widget — the syntax is hidden, the id is protected, and the
262
+ * cursor steps over it (backspace removes the whole mention). */
263
+ class MentionWidget extends WidgetType {
264
+ constructor(label, id, selected) {
265
+ super();
266
+ this.label = label;
267
+ this.id = id;
268
+ this.selected = selected;
269
+ }
270
+ eq(other) {
271
+ return other.label === this.label && other.id === this.id && other.selected === this.selected;
272
+ }
273
+ toDOM() {
274
+ const token = document.createElement('span');
275
+ token.className = 'cm-md-mention-token';
276
+ token.setAttribute('data-user', this.id);
277
+ if (this.selected)
278
+ token.setAttribute('data-selected', '');
279
+ // The @ is rendered as the DS 'at' icon — a separate, vertically-centred
280
+ // prefix that aligns cleanly with the name.
281
+ const at = document.createElement('nldd-icon');
282
+ at.className = 'cm-md-mention-token-icon';
283
+ at.setAttribute('name', 'at');
284
+ at.setAttribute('aria-hidden', 'true');
285
+ const name = document.createElement('span');
286
+ name.textContent = this.label;
287
+ token.append(at, name);
288
+ return token;
289
+ }
290
+ }
291
+ function buildMentionChips(state) {
292
+ const ranges = [];
293
+ const sel = state.selection.main;
294
+ syntaxTree(state).iterate({
295
+ enter: (node) => {
296
+ if (node.name !== 'Link')
297
+ return;
298
+ const link = node.node;
299
+ let url = null;
300
+ for (let child = link.firstChild; child; child = child.nextSibling) {
301
+ if (child.name === 'URL') {
302
+ url = child;
303
+ break;
304
+ }
305
+ }
306
+ if (!url || !state.sliceDoc(url.from, url.to).startsWith(MENTION_HREF_PREFIX))
307
+ return;
308
+ const text = linkTextRange(link);
309
+ if (!text)
310
+ return;
311
+ const label = unescapeMentionLabel(state.sliceDoc(text.from, text.to).replace(/^@/, ''));
312
+ const id = decodeMentionId(state.sliceDoc(url.from, url.to).slice(MENTION_HREF_PREFIX.length));
313
+ const selected = !sel.empty && sel.from <= link.from && sel.to >= link.to;
314
+ ranges.push(Decoration.replace({ widget: new MentionWidget(label, id, selected) }).range(link.from, link.to));
315
+ },
316
+ });
317
+ return Decoration.set(ranges, true);
318
+ }
319
+ const mentionChipField = StateField.define({
320
+ create: (state) => buildMentionChips(state),
321
+ // Rebuild on doc changes and on selection changes (the latter drives the
322
+ // selected/darker state of a covered mention).
323
+ update: (value, tr) => (tr.docChanged || !tr.startState.selection.eq(tr.state.selection) ? buildMentionChips(tr.state) : value),
324
+ provide: (field) => EditorView.decorations.from(field),
325
+ });
326
+ // Treat each token as one unit so the cursor steps over it and backspace removes
327
+ // the whole mention rather than breaking the hidden (user:id) syntax.
328
+ const mentionAtomicRanges = EditorView.atomicRanges.of((view) => view.state.field(mentionChipField, false) ?? Decoration.none);
329
+ /** Markdown language (with GFM) plus the hybrid inline-styling decorations. */
330
+ export const markdownEditing = [
331
+ markdown({ extensions: GFM }),
332
+ markDecorationPlugin,
333
+ hangingIndentField,
334
+ // Prec.highest keeps the mention chip the innermost decoration, so it nests inside
335
+ // a heading/bold run and inherits its font (scaling with it) instead of sitting at
336
+ // the base size as an outer sibling.
337
+ Prec.highest(mentionChipField),
338
+ mentionAtomicRanges,
339
+ ];
340
+ // The mention Link node at `pos` (resolving toward `side`), or null.
341
+ function mentionLinkAt(state, pos, side) {
342
+ for (let node = syntaxTree(state).resolveInner(pos, side); node; node = node.parent) {
343
+ if (node.name !== 'Link')
344
+ continue;
345
+ let url = null;
346
+ for (let child = node.firstChild; child; child = child.nextSibling) {
347
+ if (child.name === 'URL') {
348
+ url = child;
349
+ break;
350
+ }
351
+ }
352
+ if (url && state.sliceDoc(url.from, url.to).startsWith(MENTION_HREF_PREFIX))
353
+ return node;
354
+ }
355
+ return null;
356
+ }
357
+ /** The mention whose collapsed token contains `pos` (used to select it on click). */
358
+ export function mentionRangeAt(state, pos) {
359
+ const link = mentionLinkAt(state, pos, 1);
360
+ return link ? { from: link.from, to: link.to } : null;
361
+ }
362
+ /** A mention token ending exactly at `pos` (cursor just after it — backspace). */
363
+ export function mentionRangeEndingAt(state, pos) {
364
+ const link = mentionLinkAt(state, pos, -1);
365
+ return link && link.to === pos ? { from: link.from, to: link.to } : null;
366
+ }
367
+ /** A mention token starting exactly at `pos` (cursor just before it — delete). */
368
+ export function mentionRangeStartingAt(state, pos) {
369
+ const link = mentionLinkAt(state, pos, 1);
370
+ return link && link.from === pos ? { from: link.from, to: link.to } : null;
371
+ }
372
+ //# sourceMappingURL=text-editor.markdown.js.map