@nldd/design-system 0.8.83 → 0.8.84

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 (421) hide show
  1. package/custom-elements.json +3415 -476
  2. package/dist/components/actions/button/button.d.ts +4 -2
  3. package/dist/components/actions/button/button.d.ts.map +1 -1
  4. package/dist/components/actions/button/button.js +7 -2
  5. package/dist/components/actions/button/button.js.map +1 -1
  6. package/dist/components/actions/icon-button/icon-button.d.ts +1 -1
  7. package/dist/components/actions/icon-button/icon-button.js +1 -1
  8. package/dist/components/actions/menu/menu.d.ts +3 -1
  9. package/dist/components/actions/menu/menu.d.ts.map +1 -1
  10. package/dist/components/actions/menu/menu.js +22 -11
  11. package/dist/components/actions/menu/menu.js.map +1 -1
  12. package/dist/components/actions/toolbar/toolbar.styles.js +2 -2
  13. package/dist/components/components.js +2027 -941
  14. package/dist/components/content/avatar/avatar.d.ts +6 -0
  15. package/dist/components/content/avatar/avatar.d.ts.map +1 -1
  16. package/dist/components/content/avatar/avatar.js +9 -0
  17. package/dist/components/content/avatar/avatar.js.map +1 -1
  18. package/dist/components/content/avatar/avatar.template.d.ts.map +1 -1
  19. package/dist/components/content/avatar/avatar.template.js +2 -0
  20. package/dist/components/content/avatar/avatar.template.js.map +1 -1
  21. package/dist/components/content/avatar-group/avatar-group.styles.d.ts.map +1 -1
  22. package/dist/components/content/avatar-group/avatar-group.styles.js +6 -16
  23. package/dist/components/content/avatar-group/avatar-group.styles.js.map +1 -1
  24. package/dist/components/content/blockquote/blockquote.d.ts +3 -4
  25. package/dist/components/content/blockquote/blockquote.d.ts.map +1 -1
  26. package/dist/components/content/blockquote/blockquote.js +3 -4
  27. package/dist/components/content/blockquote/blockquote.js.map +1 -1
  28. package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
  29. package/dist/components/content/icon/icon-aliases.js +2 -0
  30. package/dist/components/content/icon/icon-aliases.js.map +1 -1
  31. package/dist/components/content/icon/icon-gallery-status.d.ts.map +1 -1
  32. package/dist/components/content/icon/icon-gallery-status.js +2 -0
  33. package/dist/components/content/icon/icon-gallery-status.js.map +1 -1
  34. package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
  35. package/dist/components/content/icon/icon-registry.js +2 -0
  36. package/dist/components/content/icon/icon-registry.js.map +1 -1
  37. package/dist/components/content/image/image.d.ts +1 -1
  38. package/dist/components/content/image/image.js +1 -1
  39. package/dist/components/content/image/image.styles.d.ts.map +1 -1
  40. package/dist/components/content/image/image.styles.js +11 -0
  41. package/dist/components/content/image/image.styles.js.map +1 -1
  42. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.d.ts +30 -30
  43. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.js +30 -30
  44. package/dist/components/content/rich-text/rich-text.d.ts +20 -20
  45. package/dist/components/content/rich-text/rich-text.js +20 -20
  46. package/dist/components/content/title/title.d.ts +4 -4
  47. package/dist/components/content/title/title.js +4 -4
  48. package/dist/components/content/tooltip/tooltip.d.ts +1 -1
  49. package/dist/components/content/tooltip/tooltip.js +1 -1
  50. package/dist/components/{decorate-BKn10QQi.js → decorate-lwt_OrAG.js} +1 -1
  51. package/dist/components/{dist-TpIL8G4G.js → dist-762GHPyH.js} +3 -3
  52. package/dist/components/{dist-OBifyiJS.js → dist-BB7TxeMK.js} +2 -2
  53. package/dist/components/{dist-CJR_Rwhh.js → dist-BJI4-6iQ.js} +1 -1
  54. package/dist/components/{dist-C400RcFU.js → dist-B_3OW7pC.js} +1 -1
  55. package/dist/components/{dist-afrAoubg.js → dist-C09E9-dJ.js} +34 -34
  56. package/dist/components/{dist-Ccw7ZfsU.js → dist-C6gnorjP.js} +4 -3
  57. package/dist/components/{dist-bO14jlsr.js → dist-CRsR6ckU.js} +1 -1
  58. package/dist/components/{dist-C0PiB1dr.js → dist-CjaG8dOI.js} +2 -2
  59. package/dist/components/{dist-CCg5Mso_.js → dist-DZoFKUO-.js} +1 -1
  60. package/dist/components/{dist-Bq4xc7Bm.js → dist-DaavuU6W.js} +14 -3
  61. package/dist/components/{dist-BYVOPNHp.js → dist-la_b3ZSq.js} +1 -1
  62. package/dist/components/forms/form/form.d.ts +76 -22
  63. package/dist/components/forms/form/form.d.ts.map +1 -1
  64. package/dist/components/forms/form/form.js +127 -22
  65. package/dist/components/forms/form/form.js.map +1 -1
  66. package/dist/components/forms/form-actions/form-actions.d.ts +14 -15
  67. package/dist/components/forms/form-actions/form-actions.d.ts.map +1 -1
  68. package/dist/components/forms/form-actions/form-actions.js +14 -15
  69. package/dist/components/forms/form-actions/form-actions.js.map +1 -1
  70. package/dist/components/forms/form-field/form-field.d.ts +42 -39
  71. package/dist/components/forms/form-field/form-field.d.ts.map +1 -1
  72. package/dist/components/forms/form-field/form-field.js +79 -111
  73. package/dist/components/forms/form-field/form-field.js.map +1 -1
  74. package/dist/components/forms/form-field/form-field.styles.d.ts +0 -1
  75. package/dist/components/forms/form-field/form-field.styles.d.ts.map +1 -1
  76. package/dist/components/forms/form-field/form-field.styles.js +7 -73
  77. package/dist/components/forms/form-field/form-field.styles.js.map +1 -1
  78. package/dist/components/forms/form-field/form-field.template.d.ts +0 -2
  79. package/dist/components/forms/form-field/form-field.template.d.ts.map +1 -1
  80. package/dist/components/forms/form-field/form-field.template.js +0 -15
  81. package/dist/components/forms/form-field/form-field.template.js.map +1 -1
  82. package/dist/components/forms/form-section/form-section.d.ts +26 -28
  83. package/dist/components/forms/form-section/form-section.d.ts.map +1 -1
  84. package/dist/components/forms/form-section/form-section.js +27 -29
  85. package/dist/components/forms/form-section/form-section.js.map +1 -1
  86. package/dist/components/forms/validation-list/validation-list.d.ts +193 -0
  87. package/dist/components/forms/validation-list/validation-list.d.ts.map +1 -0
  88. package/dist/components/forms/validation-list/validation-list.js +358 -0
  89. package/dist/components/forms/validation-list/validation-list.js.map +1 -0
  90. package/dist/components/forms/validation-list/validation-list.styles.d.ts +3 -0
  91. package/dist/components/forms/validation-list/validation-list.styles.d.ts.map +1 -0
  92. package/dist/components/forms/validation-list/validation-list.styles.js +58 -0
  93. package/dist/components/forms/validation-list/validation-list.styles.js.map +1 -0
  94. package/dist/components/forms/validation-list/validation-list.template.d.ts +5 -0
  95. package/dist/components/forms/validation-list/validation-list.template.d.ts.map +1 -0
  96. package/dist/components/forms/validation-list/validation-list.template.js +16 -0
  97. package/dist/components/forms/validation-list/validation-list.template.js.map +1 -0
  98. package/dist/components/{icon-C1Kikpol.js → icon-VTLbdcvZ.js} +4 -1
  99. package/dist/components/{icon-button-BYy6hnAY.js → icon-button-Sne5TwRG.js} +5 -5
  100. package/dist/components/index.d.ts +1 -0
  101. package/dist/components/index.d.ts.map +1 -1
  102. package/dist/components/index.js +1 -0
  103. package/dist/components/index.js.map +1 -1
  104. package/dist/components/inputs/checkbox/checkbox.d.ts +20 -1
  105. package/dist/components/inputs/checkbox/checkbox.d.ts.map +1 -1
  106. package/dist/components/inputs/checkbox/checkbox.js +32 -2
  107. package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
  108. package/dist/components/inputs/checkbox/checkbox.template.d.ts.map +1 -1
  109. package/dist/components/inputs/checkbox/checkbox.template.js +2 -0
  110. package/dist/components/inputs/checkbox/checkbox.template.js.map +1 -1
  111. package/dist/components/inputs/checkbox-field/checkbox-field.d.ts +16 -1
  112. package/dist/components/inputs/checkbox-field/checkbox-field.d.ts.map +1 -1
  113. package/dist/components/inputs/checkbox-field/checkbox-field.js +27 -2
  114. package/dist/components/inputs/checkbox-field/checkbox-field.js.map +1 -1
  115. package/dist/components/inputs/checkbox-field/checkbox-field.template.d.ts.map +1 -1
  116. package/dist/components/inputs/checkbox-field/checkbox-field.template.js +2 -0
  117. package/dist/components/inputs/checkbox-field/checkbox-field.template.js.map +1 -1
  118. package/dist/components/inputs/code-editor/code-editor.d.ts +14 -1
  119. package/dist/components/inputs/code-editor/code-editor.d.ts.map +1 -1
  120. package/dist/components/inputs/code-editor/code-editor.js +21 -2
  121. package/dist/components/inputs/code-editor/code-editor.js.map +1 -1
  122. package/dist/components/inputs/combo-box/combo-box.d.ts +13 -2
  123. package/dist/components/inputs/combo-box/combo-box.d.ts.map +1 -1
  124. package/dist/components/inputs/combo-box/combo-box.js +32 -5
  125. package/dist/components/inputs/combo-box/combo-box.js.map +1 -1
  126. package/dist/components/inputs/combo-box/combo-box.styles.d.ts.map +1 -1
  127. package/dist/components/inputs/combo-box/combo-box.styles.js +9 -0
  128. package/dist/components/inputs/combo-box/combo-box.styles.js.map +1 -1
  129. package/dist/components/inputs/combo-box/combo-box.template.d.ts.map +1 -1
  130. package/dist/components/inputs/combo-box/combo-box.template.js +4 -0
  131. package/dist/components/inputs/combo-box/combo-box.template.js.map +1 -1
  132. package/dist/components/inputs/date-field/date-field.d.ts +29 -31
  133. package/dist/components/inputs/date-field/date-field.d.ts.map +1 -1
  134. package/dist/components/inputs/date-field/date-field.js +40 -37
  135. package/dist/components/inputs/date-field/date-field.js.map +1 -1
  136. package/dist/components/inputs/date-field/date-field.styles.d.ts.map +1 -1
  137. package/dist/components/inputs/date-field/date-field.styles.js +11 -0
  138. package/dist/components/inputs/date-field/date-field.styles.js.map +1 -1
  139. package/dist/components/inputs/date-field/date-field.template.d.ts.map +1 -1
  140. package/dist/components/inputs/date-field/date-field.template.js +0 -1
  141. package/dist/components/inputs/date-field/date-field.template.js.map +1 -1
  142. package/dist/components/inputs/date-picker/date-picker.d.ts +34 -21
  143. package/dist/components/inputs/date-picker/date-picker.d.ts.map +1 -1
  144. package/dist/components/inputs/date-picker/date-picker.js +42 -22
  145. package/dist/components/inputs/date-picker/date-picker.js.map +1 -1
  146. package/dist/components/inputs/dropdown/dropdown.d.ts +23 -2
  147. package/dist/components/inputs/dropdown/dropdown.d.ts.map +1 -1
  148. package/dist/components/inputs/dropdown/dropdown.js +36 -3
  149. package/dist/components/inputs/dropdown/dropdown.js.map +1 -1
  150. package/dist/components/inputs/file-field/file-field.d.ts +4 -3
  151. package/dist/components/inputs/file-field/file-field.d.ts.map +1 -1
  152. package/dist/components/inputs/file-field/file-field.js +8 -7
  153. package/dist/components/inputs/file-field/file-field.js.map +1 -1
  154. package/dist/components/inputs/file-field/file-field.template.d.ts.map +1 -1
  155. package/dist/components/inputs/file-field/file-field.template.js +0 -1
  156. package/dist/components/inputs/file-field/file-field.template.js.map +1 -1
  157. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts +7 -3
  158. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts.map +1 -1
  159. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js +12 -8
  160. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js.map +1 -1
  161. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.d.ts.map +1 -1
  162. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.js +2 -1
  163. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.js.map +1 -1
  164. package/dist/components/inputs/number-field/number-field.d.ts +12 -1
  165. package/dist/components/inputs/number-field/number-field.d.ts.map +1 -1
  166. package/dist/components/inputs/number-field/number-field.js +18 -3
  167. package/dist/components/inputs/number-field/number-field.js.map +1 -1
  168. package/dist/components/inputs/number-field/number-field.styles.d.ts.map +1 -1
  169. package/dist/components/inputs/number-field/number-field.styles.js +8 -16
  170. package/dist/components/inputs/number-field/number-field.styles.js.map +1 -1
  171. package/dist/components/inputs/password-field/password-field.d.ts +10 -3
  172. package/dist/components/inputs/password-field/password-field.d.ts.map +1 -1
  173. package/dist/components/inputs/password-field/password-field.js +18 -8
  174. package/dist/components/inputs/password-field/password-field.js.map +1 -1
  175. package/dist/components/inputs/password-field/password-field.template.d.ts.map +1 -1
  176. package/dist/components/inputs/password-field/password-field.template.js +3 -1
  177. package/dist/components/inputs/password-field/password-field.template.js.map +1 -1
  178. package/dist/components/inputs/radio-button/radio-button.d.ts +18 -1
  179. package/dist/components/inputs/radio-button/radio-button.d.ts.map +1 -1
  180. package/dist/components/inputs/radio-button/radio-button.js +27 -2
  181. package/dist/components/inputs/radio-button/radio-button.js.map +1 -1
  182. package/dist/components/inputs/radio-button/radio-button.template.d.ts.map +1 -1
  183. package/dist/components/inputs/radio-button/radio-button.template.js +1 -0
  184. package/dist/components/inputs/radio-button/radio-button.template.js.map +1 -1
  185. package/dist/components/inputs/radio-button-field/radio-button-field.d.ts +14 -1
  186. package/dist/components/inputs/radio-button-field/radio-button-field.d.ts.map +1 -1
  187. package/dist/components/inputs/radio-button-field/radio-button-field.js +22 -2
  188. package/dist/components/inputs/radio-button-field/radio-button-field.js.map +1 -1
  189. package/dist/components/inputs/radio-button-field/radio-button-field.template.d.ts.map +1 -1
  190. package/dist/components/inputs/radio-button-field/radio-button-field.template.js +1 -0
  191. package/dist/components/inputs/radio-button-field/radio-button-field.template.js.map +1 -1
  192. package/dist/components/inputs/radio-button-group/radio-button-group.d.ts +11 -0
  193. package/dist/components/inputs/radio-button-group/radio-button-group.d.ts.map +1 -1
  194. package/dist/components/inputs/radio-button-group/radio-button-group.js +21 -0
  195. package/dist/components/inputs/radio-button-group/radio-button-group.js.map +1 -1
  196. package/dist/components/inputs/search-field/search-field.d.ts +23 -1
  197. package/dist/components/inputs/search-field/search-field.d.ts.map +1 -1
  198. package/dist/components/inputs/search-field/search-field.js +37 -3
  199. package/dist/components/inputs/search-field/search-field.js.map +1 -1
  200. package/dist/components/inputs/search-field/search-field.template.d.ts.map +1 -1
  201. package/dist/components/inputs/search-field/search-field.template.js +4 -0
  202. package/dist/components/inputs/search-field/search-field.template.js.map +1 -1
  203. package/dist/components/inputs/segmented-control/segmented-control.d.ts +28 -0
  204. package/dist/components/inputs/segmented-control/segmented-control.d.ts.map +1 -1
  205. package/dist/components/inputs/segmented-control/segmented-control.js +52 -2
  206. package/dist/components/inputs/segmented-control/segmented-control.js.map +1 -1
  207. package/dist/components/inputs/segmented-control/segmented-control.template.d.ts.map +1 -1
  208. package/dist/components/inputs/segmented-control/segmented-control.template.js +1 -0
  209. package/dist/components/inputs/segmented-control/segmented-control.template.js.map +1 -1
  210. package/dist/components/inputs/stepper/stepper.d.ts +14 -1
  211. package/dist/components/inputs/stepper/stepper.d.ts.map +1 -1
  212. package/dist/components/inputs/stepper/stepper.js +21 -2
  213. package/dist/components/inputs/stepper/stepper.js.map +1 -1
  214. package/dist/components/inputs/switch/switch.d.ts +20 -1
  215. package/dist/components/inputs/switch/switch.d.ts.map +1 -1
  216. package/dist/components/inputs/switch/switch.js +31 -2
  217. package/dist/components/inputs/switch/switch.js.map +1 -1
  218. package/dist/components/inputs/switch/switch.template.d.ts.map +1 -1
  219. package/dist/components/inputs/switch/switch.template.js +2 -0
  220. package/dist/components/inputs/switch/switch.template.js.map +1 -1
  221. package/dist/components/inputs/switch-field/switch-field.d.ts +18 -1
  222. package/dist/components/inputs/switch-field/switch-field.d.ts.map +1 -1
  223. package/dist/components/inputs/switch-field/switch-field.js +25 -1
  224. package/dist/components/inputs/switch-field/switch-field.js.map +1 -1
  225. package/dist/components/inputs/switch-field/switch-field.template.d.ts.map +1 -1
  226. package/dist/components/inputs/switch-field/switch-field.template.js +2 -0
  227. package/dist/components/inputs/switch-field/switch-field.template.js.map +1 -1
  228. package/dist/components/inputs/text-editor/text-editor.d.ts +14 -1
  229. package/dist/components/inputs/text-editor/text-editor.d.ts.map +1 -1
  230. package/dist/components/inputs/text-editor/text-editor.js +21 -2
  231. package/dist/components/inputs/text-editor/text-editor.js.map +1 -1
  232. package/dist/components/inputs/text-field/text-field.d.ts +10 -3
  233. package/dist/components/inputs/text-field/text-field.d.ts.map +1 -1
  234. package/dist/components/inputs/text-field/text-field.js +18 -8
  235. package/dist/components/inputs/text-field/text-field.js.map +1 -1
  236. package/dist/components/inputs/text-field/text-field.template.d.ts.map +1 -1
  237. package/dist/components/inputs/text-field/text-field.template.js +3 -1
  238. package/dist/components/inputs/text-field/text-field.template.js.map +1 -1
  239. package/dist/components/inputs/time-field/time-field.d.ts +33 -35
  240. package/dist/components/inputs/time-field/time-field.d.ts.map +1 -1
  241. package/dist/components/inputs/time-field/time-field.js +43 -40
  242. package/dist/components/inputs/time-field/time-field.js.map +1 -1
  243. package/dist/components/inputs/time-field/time-field.styles.d.ts.map +1 -1
  244. package/dist/components/inputs/time-field/time-field.styles.js +12 -0
  245. package/dist/components/inputs/time-field/time-field.styles.js.map +1 -1
  246. package/dist/components/inputs/time-field/time-field.template.d.ts.map +1 -1
  247. package/dist/components/inputs/time-field/time-field.template.js +0 -1
  248. package/dist/components/inputs/time-field/time-field.template.js.map +1 -1
  249. package/dist/components/inputs/time-picker/time-picker.d.ts +34 -19
  250. package/dist/components/inputs/time-picker/time-picker.d.ts.map +1 -1
  251. package/dist/components/inputs/time-picker/time-picker.js +42 -22
  252. package/dist/components/inputs/time-picker/time-picker.js.map +1 -1
  253. package/dist/components/inputs/toggle-button/toggle-button.d.ts +22 -1
  254. package/dist/components/inputs/toggle-button/toggle-button.d.ts.map +1 -1
  255. package/dist/components/inputs/toggle-button/toggle-button.js +35 -2
  256. package/dist/components/inputs/toggle-button/toggle-button.js.map +1 -1
  257. package/dist/components/inputs/toggle-button/toggle-button.template.d.ts.map +1 -1
  258. package/dist/components/inputs/toggle-button/toggle-button.template.js +3 -0
  259. package/dist/components/inputs/toggle-button/toggle-button.template.js.map +1 -1
  260. package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts +27 -0
  261. package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts.map +1 -1
  262. package/dist/components/inputs/toggle-button-group/toggle-button-group.js +46 -0
  263. package/dist/components/inputs/toggle-button-group/toggle-button-group.js.map +1 -1
  264. package/dist/components/inputs/token-field/token-field.d.ts +7 -1
  265. package/dist/components/inputs/token-field/token-field.d.ts.map +1 -1
  266. package/dist/components/inputs/token-field/token-field.js +14 -1
  267. package/dist/components/inputs/token-field/token-field.js.map +1 -1
  268. package/dist/components/layout/app-view/app-view.d.ts.map +1 -1
  269. package/dist/components/layout/app-view/app-view.js +12 -0
  270. package/dist/components/layout/app-view/app-view.js.map +1 -1
  271. package/dist/components/layout/box/box.d.ts +1 -1
  272. package/dist/components/layout/box/box.js +1 -1
  273. package/dist/components/layout/box/box.styles.d.ts.map +1 -1
  274. package/dist/components/layout/box/box.styles.js +1 -0
  275. package/dist/components/layout/box/box.styles.js.map +1 -1
  276. package/dist/components/layout/card/card.d.ts +18 -19
  277. package/dist/components/layout/card/card.d.ts.map +1 -1
  278. package/dist/components/layout/card/card.js +18 -19
  279. package/dist/components/layout/card/card.js.map +1 -1
  280. package/dist/components/layout/card/card.styles.d.ts.map +1 -1
  281. package/dist/components/layout/card/card.styles.js +1 -0
  282. package/dist/components/layout/card/card.styles.js.map +1 -1
  283. package/dist/components/layout/collection/collection.d.ts.map +1 -1
  284. package/dist/components/layout/collection/collection.js +6 -2
  285. package/dist/components/layout/collection/collection.js.map +1 -1
  286. package/dist/components/layout/divider/divider.d.ts +1 -1
  287. package/dist/components/layout/divider/divider.js +1 -1
  288. package/dist/components/layout/popover/popover.d.ts +1 -1
  289. package/dist/components/layout/popover/popover.d.ts.map +1 -1
  290. package/dist/components/layout/popover/popover.js +15 -2
  291. package/dist/components/layout/popover/popover.js.map +1 -1
  292. package/dist/components/layout/sheet/sheet.d.ts +1 -1
  293. package/dist/components/layout/sheet/sheet.js +2 -2
  294. package/dist/components/layout/sheet/sheet.js.map +1 -1
  295. package/dist/components/layout/sheet/sheet.styles.d.ts.map +1 -1
  296. package/dist/components/layout/sheet/sheet.styles.js +5 -0
  297. package/dist/components/layout/sheet/sheet.styles.js.map +1 -1
  298. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.d.ts +8 -0
  299. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.d.ts.map +1 -1
  300. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.js +29 -11
  301. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.js.map +1 -1
  302. package/dist/components/layout/window/window.d.ts +20 -21
  303. package/dist/components/layout/window/window.d.ts.map +1 -1
  304. package/dist/components/layout/window/window.js +21 -22
  305. package/dist/components/layout/window/window.js.map +1 -1
  306. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.d.ts +41 -12
  307. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.d.ts.map +1 -1
  308. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.js +47 -17
  309. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.js.map +1 -1
  310. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.styles.d.ts.map +1 -1
  311. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.styles.js +42 -13
  312. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.styles.js.map +1 -1
  313. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.template.d.ts.map +1 -1
  314. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.template.js +12 -4
  315. package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.template.js.map +1 -1
  316. package/dist/components/lists-and-tables/list/list.d.ts +117 -25
  317. package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
  318. package/dist/components/lists-and-tables/list/list.i18n.d.ts +0 -1
  319. package/dist/components/lists-and-tables/list/list.i18n.d.ts.map +1 -1
  320. package/dist/components/lists-and-tables/list/list.i18n.js +0 -1
  321. package/dist/components/lists-and-tables/list/list.i18n.js.map +1 -1
  322. package/dist/components/lists-and-tables/list/list.js +292 -67
  323. package/dist/components/lists-and-tables/list/list.js.map +1 -1
  324. package/dist/components/lists-and-tables/list/list.styles.d.ts.map +1 -1
  325. package/dist/components/lists-and-tables/list/list.styles.js +5 -0
  326. package/dist/components/lists-and-tables/list/list.styles.js.map +1 -1
  327. package/dist/components/lists-and-tables/list/list.template.d.ts +1 -3
  328. package/dist/components/lists-and-tables/list/list.template.d.ts.map +1 -1
  329. package/dist/components/lists-and-tables/list/list.template.js +2 -7
  330. package/dist/components/lists-and-tables/list/list.template.js.map +1 -1
  331. package/dist/components/lists-and-tables/list-item/list-item.d.ts +41 -3
  332. package/dist/components/lists-and-tables/list-item/list-item.d.ts.map +1 -1
  333. package/dist/components/lists-and-tables/list-item/list-item.js +82 -16
  334. package/dist/components/lists-and-tables/list-item/list-item.js.map +1 -1
  335. package/dist/components/lists-and-tables/list-item/list-item.styles.js +1 -1
  336. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.d.ts.map +1 -1
  337. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.js +8 -4
  338. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.js.map +1 -1
  339. package/dist/components/lists-and-tables/table/table.d.ts +12 -9
  340. package/dist/components/lists-and-tables/table/table.d.ts.map +1 -1
  341. package/dist/components/lists-and-tables/table/table.i18n.d.ts +0 -1
  342. package/dist/components/lists-and-tables/table/table.i18n.d.ts.map +1 -1
  343. package/dist/components/lists-and-tables/table/table.i18n.js +0 -1
  344. package/dist/components/lists-and-tables/table/table.i18n.js.map +1 -1
  345. package/dist/components/lists-and-tables/table/table.js +26 -16
  346. package/dist/components/lists-and-tables/table/table.js.map +1 -1
  347. package/dist/components/lists-and-tables/table/table.styles.d.ts.map +1 -1
  348. package/dist/components/lists-and-tables/table/table.styles.js +5 -0
  349. package/dist/components/lists-and-tables/table/table.styles.js.map +1 -1
  350. package/dist/components/lists-and-tables/table/table.template.d.ts +1 -1
  351. package/dist/components/lists-and-tables/table/table.template.d.ts.map +1 -1
  352. package/dist/components/lists-and-tables/table/table.template.js +5 -9
  353. package/dist/components/lists-and-tables/table/table.template.js.map +1 -1
  354. package/dist/components/navigation/link/link.d.ts +30 -24
  355. package/dist/components/navigation/link/link.d.ts.map +1 -1
  356. package/dist/components/navigation/link/link.js +33 -24
  357. package/dist/components/navigation/link/link.js.map +1 -1
  358. package/dist/components/navigation/link/link.template.js +1 -1
  359. package/dist/components/navigation/link/link.template.js.map +1 -1
  360. package/dist/components/navigation/menu-bar/menu-bar.d.ts +7 -7
  361. package/dist/components/navigation/menu-bar/menu-bar.js +7 -7
  362. package/dist/components/navigation/menu-bar-item/menu-bar-item.d.ts +23 -23
  363. package/dist/components/navigation/menu-bar-item/menu-bar-item.js +23 -23
  364. package/dist/components/navigation/pagination/pagination.d.ts +4 -4
  365. package/dist/components/navigation/pagination/pagination.js +4 -4
  366. package/dist/components/navigation/skip-link/skip-link.d.ts +7 -7
  367. package/dist/components/navigation/skip-link/skip-link.js +7 -7
  368. package/dist/components/navigation/tab-bar/tab-bar.d.ts +5 -3
  369. package/dist/components/navigation/tab-bar/tab-bar.d.ts.map +1 -1
  370. package/dist/components/navigation/tab-bar/tab-bar.js +18 -13
  371. package/dist/components/navigation/tab-bar/tab-bar.js.map +1 -1
  372. package/dist/components/navigation/tab-bar/tab-bar.styles.js +8 -8
  373. package/dist/components/navigation/tab-bar/tab-bar.template.js +5 -5
  374. package/dist/components/navigation/tab-bar/tab-bar.template.js.map +1 -1
  375. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.d.ts +15 -15
  376. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.js +15 -15
  377. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.d.ts.map +1 -1
  378. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js +14 -2
  379. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js.map +1 -1
  380. package/dist/components/navigation/top-title-bar/top-title-bar.d.ts +2 -2
  381. package/dist/components/navigation/top-title-bar/top-title-bar.js +2 -2
  382. package/dist/components/navigation/top-title-bar/top-title-bar.styles.js +2 -2
  383. package/dist/components/status-and-feedback/badge/badge.styles.d.ts.map +1 -1
  384. package/dist/components/status-and-feedback/badge/badge.styles.js +6 -4
  385. package/dist/components/status-and-feedback/badge/badge.styles.js.map +1 -1
  386. package/dist/components/status-and-feedback/badge/badge.template.js +1 -1
  387. package/dist/components/status-and-feedback/badge/badge.template.js.map +1 -1
  388. package/dist/components/status-and-feedback/banner/banner.styles.js +2 -2
  389. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts +37 -36
  390. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts.map +1 -1
  391. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js +37 -36
  392. package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js.map +1 -1
  393. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.d.ts +1 -1
  394. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js +2 -2
  395. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js.map +1 -1
  396. package/dist/components/status-and-feedback/notification/notification-region.js +1 -1
  397. package/dist/components/status-and-feedback/status-bar/status-bar.d.ts +29 -28
  398. package/dist/components/status-and-feedback/status-bar/status-bar.d.ts.map +1 -1
  399. package/dist/components/status-and-feedback/status-bar/status-bar.js +29 -28
  400. package/dist/components/status-and-feedback/status-bar/status-bar.js.map +1 -1
  401. package/dist/components/status-and-feedback/step-indicator/step-indicator.styles.js +1 -1
  402. package/dist/components/{visibility-mixin-GxbwkBb1.js → visibility-mixin-vbfhyo7f.js} +1 -1
  403. package/dist/components/{with-translations-DzAdFTK8.js → with-translations-CqUV9S5g.js} +1 -1
  404. package/dist/css/form-section.css +28 -46
  405. package/dist/css/form.css +7 -13
  406. package/dist/css/rich-text.css +5 -5
  407. package/dist/css/variables.css +108 -7
  408. package/dist/nldd.min.js +851 -753
  409. package/dist/types/vue.d.ts +439 -291
  410. package/dist/utilities/codemirror/codemirror-element.d.ts.map +1 -1
  411. package/dist/utilities/codemirror/codemirror-element.js +5 -0
  412. package/dist/utilities/codemirror/codemirror-element.js.map +1 -1
  413. package/dist/utilities/described-by-mixin.d.ts +49 -0
  414. package/dist/utilities/described-by-mixin.d.ts.map +1 -0
  415. package/dist/utilities/described-by-mixin.js +109 -0
  416. package/dist/utilities/described-by-mixin.js.map +1 -0
  417. package/dist/utilities/form-associated-mixin.d.ts +5 -0
  418. package/dist/utilities/form-associated-mixin.d.ts.map +1 -1
  419. package/dist/utilities/form-associated-mixin.js +69 -0
  420. package/dist/utilities/form-associated-mixin.js.map +1 -1
  421. package/package.json +14 -6
@@ -30,11 +30,6 @@ export function formFieldTemplate(component) {
30
30
  ${headerEl}
31
31
  <div class="form-field__main">
32
32
  <slot></slot>
33
- <div class="form-field__errors"
34
- aria-live="polite"
35
- >
36
- <slot name="errors"></slot>
37
- </div>
38
33
  <slot name="help"></slot>
39
34
  </div>
40
35
  </div>
@@ -50,14 +45,4 @@ export function formFieldHelpTextTemplate(_component) {
50
45
  </p>
51
46
  `;
52
47
  }
53
- /* ============================================================
54
- nldd-form-field-error-text
55
- ============================================================ */
56
- export function formFieldErrorTextTemplate(_component) {
57
- return html `
58
- <p class="form-field__error-text">
59
- <slot></slot>
60
- </p>
61
- `;
62
- }
63
48
  //# sourceMappingURL=form-field.template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.template.js","sourceRoot":"","sources":["../../../../src/components/forms/form-field/form-field.template.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAkB,MAAM,KAAK,CAAC;AAKpD;;kEAEkE;AAElE,SAAS,cAAc,CAAC,KAAa;IACpC,OAAO,IAAI,CAAA,sCAAsC,KAAK,SAAS,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAwB;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC;IAEvD,MAAM,QAAQ,GAAG,IAAI,CAAA;mCACa,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;KAC7D,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;;cAEN,CAAC,CAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;;OAE7C,SAAS,CAAC,KAAK;OACf,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO;;IAEzE,CAAC,CAAC,CAAC,OAAO;KACT,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAA;iDACmB,SAAS,CAAC,eAAe;IACtE,CAAC,CAAC,CAAC,OAAO;;EAEZ,CAAC;IAEF,OAAO,IAAI,CAAA;;KAEP,QAAQ;;;;;;;;;;;EAWX,CAAC;AACH,CAAC;AAED;;kEAEkE;AAElE,MAAM,UAAU,yBAAyB,CAAC,UAAiC;IAC1E,OAAO,IAAI,CAAA;;;;EAIV,CAAC;AACH,CAAC;AAED;;kEAEkE;AAElE,MAAM,UAAU,0BAA0B,CAAC,UAAkC;IAC5E,OAAO,IAAI,CAAA;;;;EAIV,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"form-field.template.js","sourceRoot":"","sources":["../../../../src/components/forms/form-field/form-field.template.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,OAAO,EAAE,IAAI,EAAE,OAAO,EAAkB,MAAM,KAAK,CAAC;AAIpD;;kEAEkE;AAElE,SAAS,cAAc,CAAC,KAAa;IACpC,OAAO,IAAI,CAAA,sCAAsC,KAAK,SAAS,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAwB;IACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,CAAC,QAAQ,IAAI,CAAC,kBAAkB,CAAC;IAEvD,MAAM,QAAQ,GAAG,IAAI,CAAA;mCACa,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;KAC7D,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;;cAEN,CAAC,CAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;;OAE7C,SAAS,CAAC,KAAK;OACf,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO;;IAEzE,CAAC,CAAC,CAAC,OAAO;KACT,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAA;iDACmB,SAAS,CAAC,eAAe;IACtE,CAAC,CAAC,CAAC,OAAO;;EAEZ,CAAC;IAEF,OAAO,IAAI,CAAA;;KAEP,QAAQ;;;;;;EAMX,CAAC;AACH,CAAC;AAED;;kEAEkE;AAElE,MAAM,UAAU,yBAAyB,CAAC,UAAiC;IAC1E,OAAO,IAAI,CAAA;;;;EAIV,CAAC;AACH,CAAC"}
@@ -1,18 +1,18 @@
1
1
  /**
2
2
  * Nederlandse Digitale Dienst Form Section Component
3
3
  *
4
- * Plain custom element (extends HTMLElement, no Lit) light-DOM render
5
- * lost een NVDA + Firefox a11y-bug op waar shadow-DOM <fieldset> + <legend>
6
- * niet betrouwbaar als group-label aangekondigd worden voor slotted
7
- * controls. Native fieldset/legend in light DOM werkt correct over alle
8
- * AT/browser-combinaties.
4
+ * Plain custom element (extends HTMLElement, no Lit). The light-DOM render
5
+ * works around an NVDA + Firefox a11y bug where a shadow-DOM <fieldset> +
6
+ * <legend> is not reliably announced as the group label for slotted controls.
7
+ * A native fieldset/legend in the light DOM works correctly across all
8
+ * AT/browser combinations.
9
9
  *
10
10
  * **Differs from shadow components:**
11
- * - Geen shadowRoot alle children leven in light DOM (binnen het
12
- * gerenderde <fieldset>).
13
- * - Geen Lit pure HTMLElement met handmatige DOM-mutation.
14
- * - **Vereist global stylesheet import** `dist/css/form-section.css`
15
- * (of `global.css`). Form-section heeft geen shadow stylesheet.
11
+ * - No shadowRoot: all children live in the light DOM (inside the rendered
12
+ * <fieldset>).
13
+ * - No Lit: a plain HTMLElement with manual DOM mutation.
14
+ * - **Requires a global stylesheet import**: `dist/css/form-section.css` (or
15
+ * `global.css`). Form-section has no shadow stylesheet.
16
16
  *
17
17
  * Renders to:
18
18
  *
@@ -28,22 +28,20 @@
28
28
  * </fieldset>
29
29
  * </nldd-form-section>
30
30
  *
31
- * **Accessibility note**: de title rendert als `<legend>`. Dat is
32
- * semantisch een **groep-label**, geen heading. Screenreaders
33
- * kondigen 't aan wanneer de gebruiker in de fieldset komt, maar
34
- * gebruikers die met de H-toets door headings springen slaan 'm
35
- * over. Visueel lijkt 't op een heading; gebruik dit component dus
36
- * voor *form-grouping*, niet als pagina-structuur. Voor echte
37
- * page-headings: gebruik een apart heading-element boven het form.
31
+ * **Accessibility note**: the title renders as a `<legend>`. Semantically that
32
+ * is a **group label**, not a heading. Screen readers announce it when the user
33
+ * enters the fieldset, but users jumping through headings with the H key skip
34
+ * it. Visually it looks like a heading, so use this component for *form
35
+ * grouping*, not as page structure. For real page headings, use a separate
36
+ * heading element above the form.
38
37
  *
39
- * **Supporting-text lengte**: de subtitle staat als `<span>` binnen
40
- * de `<legend>` zodat SR 'm meeleest als group label. Bijwerking: bij
41
- * elke field-entry binnen de sectie wordt de hele legend (titel +
42
- * subtitel) opnieuw uitgesproken. Houd `supporting-text` daarom kort
43
- * (richtlijn: ~80 tekens) en gebruik 'm voor groep-introductie
44
- * ("Vul je adresgegevens in"), niet voor uitgebreide instructies.
45
- * Voor langere uitleg op een specifiek veld: gebruik
46
- * `nldd-form-field-help-text` op dat veld.
38
+ * **Supporting-text length**: the subtitle sits as a `<span>` inside the
39
+ * `<legend>` so a screen reader reads it along as the group label. Side effect:
40
+ * on every field entry within the section, the whole legend (title + subtitle)
41
+ * is spoken again. Keep `supporting-text` short (roughly 80 characters or less)
42
+ * and use it to introduce the group ("Vul je adresgegevens in"), not for
43
+ * detailed instructions. For a longer explanation on one specific field, use
44
+ * `nldd-form-field-help-text` on that field.
47
45
  *
48
46
  * <nldd-form>
49
47
  * <nldd-form-section text="Persoonsgegevens" supporting-text="Vul je gegevens in.">
@@ -60,10 +58,10 @@
60
58
  *
61
59
  * @element nldd-form-section
62
60
  *
63
- * @attr {string} text - Heading-tekst (gerenderd in `<legend>`).
64
- * @attr {string} supporting-text - Korte beschrijving onder de heading. Houd ~80 tekens (zie a11y-note).
61
+ * @attr {string} text - Heading text (rendered in the `<legend>`).
62
+ * @attr {string} supporting-text - Short description under the heading. Keep it to roughly 80 characters or less (see the a11y note).
65
63
  *
66
- * Children van de form-section worden in `.form-section__main` geplaatst.
64
+ * Children of the form-section are placed in `.form-section__main`.
67
65
  */
68
66
  export declare class NLDDFormSection extends HTMLElement {
69
67
  static get observedAttributes(): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"form-section.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/form-section/form-section.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AAQH,qBAAa,eAAgB,SAAQ,WAAW;IAC/C,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,iBAAiB,CAAS;IAElC,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAGrB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IACD,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAG/B;IAED,iBAAiB,IAAI,IAAI;IAyBzB,oBAAoB,IAAI,IAAI;IAK5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAU5C,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,aAAa;CAsCrB;AAMD,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,mBAAmB,EAAE,eAAe,CAAC;KACrC;CACD"}
1
+ {"version":3,"file":"form-section.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/form-section/form-section.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAQH,qBAAa,eAAgB,SAAQ,WAAW;IAC/C,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAExC;IAED,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,iBAAiB,CAAS;IAElC,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAGrB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IACD,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAG/B;IAED,iBAAiB,IAAI,IAAI;IAyBzB,oBAAoB,IAAI,IAAI;IAK5B,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAU5C,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,aAAa;CAsCrB;AAMD,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,mBAAmB,EAAE,eAAe,CAAC;KACrC;CACD"}
@@ -1,18 +1,18 @@
1
1
  /**
2
2
  * Nederlandse Digitale Dienst Form Section Component
3
3
  *
4
- * Plain custom element (extends HTMLElement, no Lit) light-DOM render
5
- * lost een NVDA + Firefox a11y-bug op waar shadow-DOM <fieldset> + <legend>
6
- * niet betrouwbaar als group-label aangekondigd worden voor slotted
7
- * controls. Native fieldset/legend in light DOM werkt correct over alle
8
- * AT/browser-combinaties.
4
+ * Plain custom element (extends HTMLElement, no Lit). The light-DOM render
5
+ * works around an NVDA + Firefox a11y bug where a shadow-DOM <fieldset> +
6
+ * <legend> is not reliably announced as the group label for slotted controls.
7
+ * A native fieldset/legend in the light DOM works correctly across all
8
+ * AT/browser combinations.
9
9
  *
10
10
  * **Differs from shadow components:**
11
- * - Geen shadowRoot alle children leven in light DOM (binnen het
12
- * gerenderde <fieldset>).
13
- * - Geen Lit pure HTMLElement met handmatige DOM-mutation.
14
- * - **Vereist global stylesheet import** `dist/css/form-section.css`
15
- * (of `global.css`). Form-section heeft geen shadow stylesheet.
11
+ * - No shadowRoot: all children live in the light DOM (inside the rendered
12
+ * <fieldset>).
13
+ * - No Lit: a plain HTMLElement with manual DOM mutation.
14
+ * - **Requires a global stylesheet import**: `dist/css/form-section.css` (or
15
+ * `global.css`). Form-section has no shadow stylesheet.
16
16
  *
17
17
  * Renders to:
18
18
  *
@@ -28,22 +28,20 @@
28
28
  * </fieldset>
29
29
  * </nldd-form-section>
30
30
  *
31
- * **Accessibility note**: de title rendert als `<legend>`. Dat is
32
- * semantisch een **groep-label**, geen heading. Screenreaders
33
- * kondigen 't aan wanneer de gebruiker in de fieldset komt, maar
34
- * gebruikers die met de H-toets door headings springen slaan 'm
35
- * over. Visueel lijkt 't op een heading; gebruik dit component dus
36
- * voor *form-grouping*, niet als pagina-structuur. Voor echte
37
- * page-headings: gebruik een apart heading-element boven het form.
31
+ * **Accessibility note**: the title renders as a `<legend>`. Semantically that
32
+ * is a **group label**, not a heading. Screen readers announce it when the user
33
+ * enters the fieldset, but users jumping through headings with the H key skip
34
+ * it. Visually it looks like a heading, so use this component for *form
35
+ * grouping*, not as page structure. For real page headings, use a separate
36
+ * heading element above the form.
38
37
  *
39
- * **Supporting-text lengte**: de subtitle staat als `<span>` binnen
40
- * de `<legend>` zodat SR 'm meeleest als group label. Bijwerking: bij
41
- * elke field-entry binnen de sectie wordt de hele legend (titel +
42
- * subtitel) opnieuw uitgesproken. Houd `supporting-text` daarom kort
43
- * (richtlijn: ~80 tekens) en gebruik 'm voor groep-introductie
44
- * ("Vul je adresgegevens in"), niet voor uitgebreide instructies.
45
- * Voor langere uitleg op een specifiek veld: gebruik
46
- * `nldd-form-field-help-text` op dat veld.
38
+ * **Supporting-text length**: the subtitle sits as a `<span>` inside the
39
+ * `<legend>` so a screen reader reads it along as the group label. Side effect:
40
+ * on every field entry within the section, the whole legend (title + subtitle)
41
+ * is spoken again. Keep `supporting-text` short (roughly 80 characters or less)
42
+ * and use it to introduce the group ("Vul je adresgegevens in"), not for
43
+ * detailed instructions. For a longer explanation on one specific field, use
44
+ * `nldd-form-field-help-text` on that field.
47
45
  *
48
46
  * <nldd-form>
49
47
  * <nldd-form-section text="Persoonsgegevens" supporting-text="Vul je gegevens in.">
@@ -60,10 +58,10 @@
60
58
  *
61
59
  * @element nldd-form-section
62
60
  *
63
- * @attr {string} text - Heading-tekst (gerenderd in `<legend>`).
64
- * @attr {string} supporting-text - Korte beschrijving onder de heading. Houd ~80 tekens (zie a11y-note).
61
+ * @attr {string} text - Heading text (rendered in the `<legend>`).
62
+ * @attr {string} supporting-text - Short description under the heading. Keep it to roughly 80 characters or less (see the a11y note).
65
63
  *
66
- * Children van de form-section worden in `.form-section__main` geplaatst.
64
+ * Children of the form-section are placed in `.form-section__main`.
67
65
  */
68
66
  const FIELDSET_CLASS = 'form-section';
69
67
  const HEADER_CLASS = 'form-section__header';
@@ -198,7 +196,7 @@ export class NLDDFormSection extends HTMLElement {
198
196
  // Accessibility implication: without a legend the <fieldset> has no
199
197
  // accessible name. Screen reader behavior varies (Chrome: "group", Firefox:
200
198
  // nothing). That is a deliberate choice: a form section can also be used
201
- // purely as visual grouping (divider + padding) without a heading. Want a
199
+ // purely as visual grouping (the padding around it) without a heading. Want a
202
200
  // screen reader name without a visible title? Wrap the form in an
203
201
  // nldd-form-section WITH text, or use aria-labelledby on the individual
204
202
  // fields.
@@ -1 +1 @@
1
- {"version":3,"file":"form-section.js","sourceRoot":"","sources":["../../../../src/components/forms/form-section/form-section.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-section.js","sourceRoot":"","sources":["../../../../src/components/forms/form-section/form-section.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Nederlandse Digitale Dienst Validation List (Lit + TypeScript)
3
+ *
4
+ * Everything a value has to satisfy, in one list. A requirement you can state
5
+ * up front is an item with a rule, and it checks itself while you type. One
6
+ * only a server can decide is an item without a rule, and the app names it in
7
+ * `unmet` on the control.
8
+ *
9
+ * The list has two modes and `judging` is the switch. Before a verdict it shows
10
+ * its hints, which are the requirements of the field. After one it shows
11
+ * everything the value does not satisfy, and the hints are gone. It throws that
12
+ * switch itself the moment its control turns `invalid`, so when the field is
13
+ * judged is the consumer's decision, and the right moment is on submit.
14
+ *
15
+ * Hints are off by default. A phone number does not need its format spelled out
16
+ * before anyone has typed, while the rules for a password do.
17
+ *
18
+ * There are no checkmarks. The control already shows a validation icon of its
19
+ * own, and repeating that per line says the same thing three times.
20
+ *
21
+ * @element nldd-validation-list
22
+ *
23
+ * @attr {string} for - Id of the control this list is about. Not needed inside an nldd-form-field, which hands its own control over.
24
+ * @attr {boolean} hint - Show every item before there is a verdict, as the requirements of the field. Overridable per item.
25
+ * @attr {boolean} judging - Drop the hints, because this field has been judged. Turned on by the list itself once its control is `invalid`, and settable by hand. What turns red follows `invalid`, not this.
26
+ *
27
+ * @slot - nldd-validation-item elements.
28
+ *
29
+ * ─────────────────────────────────────────────────────────────────────────
30
+ *
31
+ * @element nldd-validation-item
32
+ *
33
+ * @attr {string} match - Regular expression the value has to contain. Not anchored, unlike the native `pattern`: `[A-Z]` means "has a capital in it".
34
+ * @attr {number} minlength - Fewest characters the value may have.
35
+ * @attr {number} maxlength - Most characters the value may have.
36
+ * @attr {boolean} required - The value may not be empty. Use it on a field whose other rules would pass an empty value.
37
+ * @attr {boolean} hint - Show this item before there is a verdict, whatever the list says.
38
+ * @attr {boolean} unmet - Whether the value fails this item. Managed by the list; do not set it yourself.
39
+ * @attr {boolean} visible - Whether the item is on screen. Managed by the list.
40
+ *
41
+ * @slot - The text of the requirement.
42
+ *
43
+ * ─────────────────────────────────────────────────────────────────────────
44
+ *
45
+ * Give every item an id that names its field as well as its rule. An id has to
46
+ * be unique in the whole document, and `length` is the first thing three fields
47
+ * in one form will all reach for.
48
+ *
49
+ * @example
50
+ * <nldd-form-field label="Wachtwoord">
51
+ * <nldd-password-field name="password" invalid unmet="password-breach"></nldd-password-field>
52
+ * <nldd-validation-list hint>
53
+ * <nldd-validation-item id="password-length" minlength="8">Minimaal 8 tekens</nldd-validation-item>
54
+ * <nldd-validation-item id="password-capital" match="[A-Z]">Een hoofdletter</nldd-validation-item>
55
+ * <nldd-validation-item id="password-breach">Dit wachtwoord staat in een bekend datalek</nldd-validation-item>
56
+ * </nldd-validation-list>
57
+ * </nldd-form-field>
58
+ */
59
+ import { LitElement, type PropertyValues } from 'lit';
60
+ export declare class NLDDValidationItem extends LitElement {
61
+ static styles: import("lit").CSSResult;
62
+ /** Not anchored, unlike the native `pattern`. See the note at the top. */
63
+ match: string;
64
+ minlength?: number;
65
+ maxlength?: number;
66
+ /** For a field whose other rules would pass an empty value. See `test`. */
67
+ required: boolean;
68
+ hint: boolean;
69
+ unmet: boolean;
70
+ visible: boolean;
71
+ /** Whether this item judges itself, or waits for the app to name it. */
72
+ get hasRule(): boolean;
73
+ /**
74
+ * Whether `value` satisfies this item, or null when there is nothing to
75
+ * satisfy because the item carries no rule.
76
+ *
77
+ * An empty value is held against the rules like any other, so "minimaal 8
78
+ * tekens" fails on it, because it does. What keeps a fresh field from
79
+ * lighting up all of its requirements is not this method but the verdict: an
80
+ * item only turns critical once the control says `invalid`, and an untouched
81
+ * field has not been judged yet.
82
+ */
83
+ test(value: string): boolean | null;
84
+ connectedCallback(): void;
85
+ render(): import("lit-html").TemplateResult;
86
+ }
87
+ export declare class NLDDValidationList extends LitElement {
88
+ static styles: import("lit").CSSResult;
89
+ /** Id of the control, for a list that sits outside an nldd-form-field. */
90
+ for: string;
91
+ hint: boolean;
92
+ /**
93
+ * Whether the list is judging the value or explaining what the field wants.
94
+ *
95
+ * The switch between the two modes. Off, the hints state the requirements;
96
+ * on, they are gone and what is left is whatever the value fails. It goes on
97
+ * the moment the control is `invalid`, and then stays on. A field that has
98
+ * been judged does not become unjudged: repair the value and the control
99
+ * turns valid again, but the question the hints answered has been asked and
100
+ * settled, so bringing them back would undo the one thing the verdict
101
+ * achieved.
102
+ *
103
+ * What it does not decide is what turns red. That follows `invalid` on the
104
+ * control and nothing else, so a line never goes critical under a field that
105
+ * looks fine.
106
+ *
107
+ * So when a field starts being judged is decided by whoever writes `invalid`
108
+ * on the control, and the moment to do that is on submit. Writing it while
109
+ * someone is still typing turns a field red about a value that is not
110
+ * finished, which is the one thing this list is built to avoid.
111
+ *
112
+ * Set it yourself to flip the mode without a control saying anything, and
113
+ * clear it to put the field back the way it started, which is what a reset
114
+ * wants.
115
+ */
116
+ judging: boolean;
117
+ /**
118
+ * The control this list is about.
119
+ *
120
+ * Set by the wrapping nldd-form-field, which already answers "which control
121
+ * is this field about" for the label and the description. A `for` of its own
122
+ * wins, and setting this property directly is what a test or a story does.
123
+ */
124
+ control: Element | null;
125
+ /** The value to check, when there is no control to read it from. */
126
+ value?: string;
127
+ private _resolved;
128
+ private _observer;
129
+ private _onInput;
130
+ connectedCallback(): void;
131
+ disconnectedCallback(): void;
132
+ /**
133
+ * Resolving and latching happen before the render, not after it.
134
+ *
135
+ * Both write a reactive property, `_resolved` and `judging`, and writing one
136
+ * from `updated()` asks for a second render on top of the one that just
137
+ * finished. That is a dev-mode warning on every field that arrives already
138
+ * invalid. Reading what they need does not take a render: the control is
139
+ * found by id or handed over as a property, and the items are light DOM.
140
+ */
141
+ willUpdate(changed: PropertyValues): void;
142
+ updated(): void;
143
+ /**
144
+ * A field that has been judged does not become unjudged, so this only ever
145
+ * goes on. What turns red is `invalid` and nothing else; this decides only
146
+ * whether the hints are still on screen.
147
+ */
148
+ private _latchJudging;
149
+ render(): import("lit-html").TemplateResult;
150
+ private get _items();
151
+ /**
152
+ * Finds the control and starts listening to it.
153
+ *
154
+ * `getRootNode()` and not `document`: an IDREF only resolves inside its own
155
+ * tree, and a consumer who puts this form inside a component of their own
156
+ * would otherwise find nothing.
157
+ */
158
+ private _resolve;
159
+ private _detach;
160
+ private _currentValue;
161
+ /**
162
+ * Decides per item whether it is met, and what that makes visible.
163
+ *
164
+ * An item with a rule judges itself; one without waits to be named in
165
+ * `unmet` on the control. Never both: a rule is held against the value as it
166
+ * is now, while `unmet` is a snapshot of the last check and therefore older,
167
+ * so letting the snapshot win would show a mistake that has been fixed.
168
+ */
169
+ private _evaluate;
170
+ /**
171
+ * Hands the verdict to the control, so a form with a failing rule does not
172
+ * submit.
173
+ *
174
+ * Only the rules. What the app named in `unmet` it already knows, and
175
+ * reporting that back would be this list telling the app what the app told
176
+ * it.
177
+ *
178
+ * Through `setCustomValidity` and not into `internals` directly. A control
179
+ * reports its own `required` and `pattern` through the same channel, and
180
+ * `setValidity` writes the whole set of flags at once: writing here would
181
+ * erase those on the way in, and they would erase this on the next render.
182
+ * The platform's own name for a reason of your own is the one both sides
183
+ * understand, and a plain native input answers to it too.
184
+ */
185
+ private _reportValidity;
186
+ }
187
+ declare global {
188
+ interface HTMLElementTagNameMap {
189
+ 'nldd-validation-list': NLDDValidationList;
190
+ 'nldd-validation-item': NLDDValidationItem;
191
+ }
192
+ }
193
+ //# sourceMappingURL=validation-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-list.d.ts","sourceRoot":"","sources":["../../../../src/components/forms/validation-list/validation-list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAiBtD,qBACa,kBAAmB,SAAQ,UAAU;IACjD,OAAgB,MAAM,0BAAwB;IAE9C,0EAA0E;IAE1E,KAAK,SAAM;IAGX,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2EAA2E;IAE3E,QAAQ,UAAS;IAGjB,IAAI,UAAS;IAGb,KAAK,UAAS;IAGd,OAAO,UAAS;IAEhB,wEAAwE;IACxE,IAAI,OAAO,IAAI,OAAO,CAKrB;IAED;;;;;;;;;OASG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAS1B,iBAAiB;IAKjB,MAAM;CAGf;AAOD,qBACa,kBAAmB,SAAQ,UAAU;IACjD,OAAgB,MAAM,0BAAwB;IAE9C,0EAA0E;IAE1E,GAAG,SAAM;IAGT,IAAI,UAAS;IAEb;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IAEH,OAAO,UAAS;IAEhB;;;;;;OAMG;IAEH,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAE/B,oEAAoE;IAEpE,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,OAAO,CAAC,SAAS,CAAwB;IAEzC,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,QAAQ,CAA0B;IAEjC,iBAAiB;IAKjB,oBAAoB;IAK7B;;;;;;;;OAQG;IACM,UAAU,CAAC,OAAO,EAAE,cAAc;IAKlC,OAAO;IAIhB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAIZ,MAAM;IAIf,OAAO,KAAK,MAAM,GAGjB;IAED;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAsBhB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,aAAa;IAMrB;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAuCjB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,eAAe;CAKvB;AAGD,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,sBAAsB,EAAE,kBAAkB,CAAC;QAC3C,sBAAsB,EAAE,kBAAkB,CAAC;KAC3C;CACD"}