@nldd/design-system 0.8.45 → 0.8.47

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 (243) hide show
  1. package/dist/components/actions/button/button.d.ts +3 -0
  2. package/dist/components/actions/button/button.d.ts.map +1 -1
  3. package/dist/components/actions/button/button.js +26 -0
  4. package/dist/components/actions/button/button.js.map +1 -1
  5. package/dist/components/actions/button/button.template.d.ts.map +1 -1
  6. package/dist/components/actions/button/button.template.js +4 -1
  7. package/dist/components/actions/button/button.template.js.map +1 -1
  8. package/dist/components/actions/icon-button/icon-button.d.ts +2 -0
  9. package/dist/components/actions/icon-button/icon-button.d.ts.map +1 -1
  10. package/dist/components/actions/icon-button/icon-button.js +23 -0
  11. package/dist/components/actions/icon-button/icon-button.js.map +1 -1
  12. package/dist/components/components.js +83 -78
  13. package/dist/components/content/{code/code.d.ts → code-viewer/code-viewer.d.ts} +12 -11
  14. package/dist/components/content/code-viewer/code-viewer.d.ts.map +1 -0
  15. package/dist/components/content/{code/code.js → code-viewer/code-viewer.js} +32 -25
  16. package/dist/components/content/code-viewer/code-viewer.js.map +1 -0
  17. package/dist/components/content/code-viewer/code-viewer.styles.d.ts +2 -0
  18. package/dist/components/content/code-viewer/code-viewer.styles.d.ts.map +1 -0
  19. package/dist/components/content/code-viewer/code-viewer.styles.js +89 -0
  20. package/dist/components/content/code-viewer/code-viewer.styles.js.map +1 -0
  21. package/dist/components/content/code-viewer/code-viewer.template.d.ts +4 -0
  22. package/dist/components/content/code-viewer/code-viewer.template.d.ts.map +1 -0
  23. package/dist/components/content/{code/code.template.js → code-viewer/code-viewer.template.js} +3 -3
  24. package/dist/components/content/code-viewer/code-viewer.template.js.map +1 -0
  25. package/dist/components/forms/form-field/form-field.styles.d.ts.map +1 -1
  26. package/dist/components/forms/form-field/form-field.styles.js +3 -1
  27. package/dist/components/forms/form-field/form-field.styles.js.map +1 -1
  28. package/dist/components/{index-iTa3Ua3y.js → index-CuzqC3j7.js} +3045 -1775
  29. package/dist/components/index.d.ts +3 -1
  30. package/dist/components/index.d.ts.map +1 -1
  31. package/dist/components/index.js +3 -1
  32. package/dist/components/index.js.map +1 -1
  33. package/dist/components/inputs/segmented-control/segmented-control.styles.d.ts.map +1 -1
  34. package/dist/components/inputs/segmented-control/segmented-control.styles.js +10 -0
  35. package/dist/components/inputs/segmented-control/segmented-control.styles.js.map +1 -1
  36. package/dist/components/inputs/toggle-button/toggle-button.styles.d.ts.map +1 -1
  37. package/dist/components/inputs/toggle-button/toggle-button.styles.js +12 -0
  38. package/dist/components/inputs/toggle-button/toggle-button.styles.js.map +1 -1
  39. package/dist/components/inputs/token/token.styles.d.ts.map +1 -1
  40. package/dist/components/inputs/token/token.styles.js +13 -3
  41. package/dist/components/inputs/token/token.styles.js.map +1 -1
  42. package/dist/components/layout/app-view/app-view.d.ts +2 -2
  43. package/dist/components/layout/app-view/app-view.d.ts.map +1 -1
  44. package/dist/components/layout/app-view/app-view.js +2 -2
  45. package/dist/components/layout/app-view/app-view.js.map +1 -1
  46. package/dist/components/layout/collection/collection.d.ts +2 -0
  47. package/dist/components/layout/collection/collection.d.ts.map +1 -1
  48. package/dist/components/layout/collection/collection.js +8 -0
  49. package/dist/components/layout/collection/collection.js.map +1 -1
  50. package/dist/components/layout/collection/collection.styles.d.ts.map +1 -1
  51. package/dist/components/layout/collection/collection.styles.js +4 -0
  52. package/dist/components/layout/collection/collection.styles.js.map +1 -1
  53. package/dist/components/layout/collection/collection.template.d.ts.map +1 -1
  54. package/dist/components/layout/collection/collection.template.js +5 -2
  55. package/dist/components/layout/collection/collection.template.js.map +1 -1
  56. package/dist/components/layout/container/container.d.ts +62 -8
  57. package/dist/components/layout/container/container.d.ts.map +1 -1
  58. package/dist/components/layout/container/container.js +113 -11
  59. package/dist/components/layout/container/container.js.map +1 -1
  60. package/dist/components/layout/container/container.styles.d.ts.map +1 -1
  61. package/dist/components/layout/container/container.styles.js +262 -16
  62. package/dist/components/layout/container/container.styles.js.map +1 -1
  63. package/dist/components/layout/container/container.template.d.ts.map +1 -1
  64. package/dist/components/layout/container/container.template.js +5 -1
  65. package/dist/components/layout/container/container.template.js.map +1 -1
  66. package/dist/components/layout/page/page.d.ts +2 -2
  67. package/dist/components/layout/page/page.d.ts.map +1 -1
  68. package/dist/components/layout/page/page.js +1 -1
  69. package/dist/components/layout/page/page.js.map +1 -1
  70. package/dist/components/layout/page/page.styles.js +1 -1
  71. package/dist/components/layout/page-footer/page-footer.d.ts +84 -0
  72. package/dist/components/layout/page-footer/page-footer.d.ts.map +1 -0
  73. package/dist/components/layout/page-footer/page-footer.i18n.d.ts +5 -0
  74. package/dist/components/layout/page-footer/page-footer.i18n.d.ts.map +1 -0
  75. package/dist/components/layout/page-footer/page-footer.i18n.js +4 -0
  76. package/dist/components/layout/page-footer/page-footer.i18n.js.map +1 -0
  77. package/dist/components/layout/page-footer/page-footer.js +217 -0
  78. package/dist/components/layout/page-footer/page-footer.js.map +1 -0
  79. package/dist/components/layout/page-footer/page-footer.styles.d.ts +4 -0
  80. package/dist/components/layout/page-footer/page-footer.styles.d.ts.map +1 -0
  81. package/dist/components/layout/page-footer/page-footer.styles.js +207 -0
  82. package/dist/components/layout/page-footer/page-footer.styles.js.map +1 -0
  83. package/dist/components/layout/page-footer/page-footer.template.d.ts +6 -0
  84. package/dist/components/layout/page-footer/page-footer.template.d.ts.map +1 -0
  85. package/dist/components/layout/page-footer/page-footer.template.js +73 -0
  86. package/dist/components/layout/page-footer/page-footer.template.js.map +1 -0
  87. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.d.ts +26 -1
  88. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.d.ts.map +1 -1
  89. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.js +10 -1
  90. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.js.map +1 -1
  91. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.styles.d.ts.map +1 -1
  92. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.styles.js +23 -35
  93. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.styles.js.map +1 -1
  94. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.d.ts +26 -1
  95. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.d.ts.map +1 -1
  96. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.js +10 -1
  97. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.js.map +1 -1
  98. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.styles.d.ts.map +1 -1
  99. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.styles.js +26 -53
  100. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.styles.js.map +1 -1
  101. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.d.ts +26 -1
  102. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.d.ts.map +1 -1
  103. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.js +10 -1
  104. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.js.map +1 -1
  105. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.styles.d.ts.map +1 -1
  106. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.styles.js +33 -51
  107. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.styles.js.map +1 -1
  108. package/dist/components/layout/page-sections/page-section-controls.d.ts +226 -0
  109. package/dist/components/layout/page-sections/page-section-controls.d.ts.map +1 -0
  110. package/dist/components/layout/page-sections/page-section-controls.js +104 -0
  111. package/dist/components/layout/page-sections/page-section-controls.js.map +1 -0
  112. package/dist/components/layout/page-sections/simple-section/simple-section.d.ts +26 -1
  113. package/dist/components/layout/page-sections/simple-section/simple-section.d.ts.map +1 -1
  114. package/dist/components/layout/page-sections/simple-section/simple-section.js +10 -1
  115. package/dist/components/layout/page-sections/simple-section/simple-section.js.map +1 -1
  116. package/dist/components/layout/page-sections/simple-section/simple-section.styles.d.ts.map +1 -1
  117. package/dist/components/layout/page-sections/simple-section/simple-section.styles.js +24 -38
  118. package/dist/components/layout/page-sections/simple-section/simple-section.styles.js.map +1 -1
  119. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.d.ts +26 -1
  120. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.d.ts.map +1 -1
  121. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.js +10 -1
  122. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.js.map +1 -1
  123. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.styles.d.ts.map +1 -1
  124. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.styles.js +33 -51
  125. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.styles.js.map +1 -1
  126. package/dist/components/layout/split-views/bar-split-view/bar-split-view.d.ts +2 -2
  127. package/dist/components/layout/split-views/bar-split-view/bar-split-view.d.ts.map +1 -1
  128. package/dist/components/layout/split-views/bar-split-view/bar-split-view.js +1 -1
  129. package/dist/components/layout/split-views/bar-split-view/bar-split-view.js.map +1 -1
  130. package/dist/components/layout/split-views/bar-split-view/bar-split-view.styles.js +1 -1
  131. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.styles.js +1 -1
  132. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.d.ts +2 -2
  133. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.d.ts.map +1 -1
  134. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.js +1 -1
  135. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.js.map +1 -1
  136. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.styles.js +1 -1
  137. package/dist/components/layout/split-views/split-view-pane/split-view-pane.d.ts +2 -2
  138. package/dist/components/layout/split-views/split-view-pane/split-view-pane.d.ts.map +1 -1
  139. package/dist/components/layout/split-views/split-view-pane/split-view-pane.js +1 -1
  140. package/dist/components/layout/split-views/split-view-pane/split-view-pane.js.map +1 -1
  141. package/dist/components/layout/split-views/split-view-pane/split-view-pane.styles.js +1 -1
  142. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.d.ts +2 -2
  143. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.d.ts.map +1 -1
  144. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.js +1 -1
  145. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.js.map +1 -1
  146. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.styles.js +1 -1
  147. package/dist/components/layout/window/window.d.ts +5 -0
  148. package/dist/components/layout/window/window.d.ts.map +1 -1
  149. package/dist/components/layout/window/window.js +28 -13
  150. package/dist/components/layout/window/window.js.map +1 -1
  151. package/dist/components/layout/window/window.styles.d.ts.map +1 -1
  152. package/dist/components/layout/window/window.styles.js +1 -7
  153. package/dist/components/layout/window/window.styles.js.map +1 -1
  154. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.d.ts +6 -5
  155. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.d.ts.map +1 -1
  156. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.js +16 -111
  157. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.js.map +1 -1
  158. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.styles.d.ts +2 -0
  159. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.styles.d.ts.map +1 -0
  160. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.styles.js +94 -0
  161. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.styles.js.map +1 -0
  162. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.template.d.ts +4 -0
  163. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.template.d.ts.map +1 -0
  164. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.template.js +20 -0
  165. package/dist/components/lists-and-menus/cells/timeline-track-cell/timeline-track-cell.template.js.map +1 -0
  166. package/dist/components/lists-and-menus/list-item/list-item.styles.d.ts.map +1 -1
  167. package/dist/components/lists-and-menus/list-item/list-item.styles.js +9 -13
  168. package/dist/components/lists-and-menus/list-item/list-item.styles.js.map +1 -1
  169. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts +80 -0
  170. package/dist/components/navigation/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  171. package/dist/components/navigation/breadcrumbs/breadcrumbs.i18n.d.ts +6 -0
  172. package/dist/components/navigation/breadcrumbs/breadcrumbs.i18n.d.ts.map +1 -0
  173. package/dist/components/navigation/breadcrumbs/breadcrumbs.i18n.js +5 -0
  174. package/dist/components/navigation/breadcrumbs/breadcrumbs.i18n.js.map +1 -0
  175. package/dist/components/navigation/breadcrumbs/breadcrumbs.js +192 -0
  176. package/dist/components/navigation/breadcrumbs/breadcrumbs.js.map +1 -0
  177. package/dist/components/navigation/breadcrumbs/breadcrumbs.styles.d.ts +3 -0
  178. package/dist/components/navigation/breadcrumbs/breadcrumbs.styles.d.ts.map +1 -0
  179. package/dist/components/navigation/breadcrumbs/breadcrumbs.styles.js +124 -0
  180. package/dist/components/navigation/breadcrumbs/breadcrumbs.styles.js.map +1 -0
  181. package/dist/components/navigation/breadcrumbs/breadcrumbs.template.d.ts +6 -0
  182. package/dist/components/navigation/breadcrumbs/breadcrumbs.template.d.ts.map +1 -0
  183. package/dist/components/navigation/breadcrumbs/breadcrumbs.template.js +57 -0
  184. package/dist/components/navigation/breadcrumbs/breadcrumbs.template.js.map +1 -0
  185. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.d.ts.map +1 -1
  186. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.js +3 -4
  187. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.js.map +1 -1
  188. package/dist/components/navigation/menu-bar-item/menu-bar-item.d.ts +14 -17
  189. package/dist/components/navigation/menu-bar-item/menu-bar-item.d.ts.map +1 -1
  190. package/dist/components/navigation/menu-bar-item/menu-bar-item.js +47 -46
  191. package/dist/components/navigation/menu-bar-item/menu-bar-item.js.map +1 -1
  192. package/dist/components/navigation/menu-bar-item/menu-bar-item.template.js +2 -2
  193. package/dist/components/navigation/menu-bar-item/menu-bar-item.template.js.map +1 -1
  194. package/dist/components/navigation/pagination/pagination.d.ts +8 -0
  195. package/dist/components/navigation/pagination/pagination.d.ts.map +1 -1
  196. package/dist/components/navigation/pagination/pagination.js +11 -0
  197. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  198. package/dist/components/navigation/pagination/pagination.styles.d.ts.map +1 -1
  199. package/dist/components/navigation/pagination/pagination.styles.js +61 -1
  200. package/dist/components/navigation/pagination/pagination.styles.js.map +1 -1
  201. package/dist/components/navigation/pagination/pagination.template.d.ts.map +1 -1
  202. package/dist/components/navigation/pagination/pagination.template.js +1 -0
  203. package/dist/components/navigation/pagination/pagination.template.js.map +1 -1
  204. package/dist/components/navigation/tab-bar/tab-bar.styles.d.ts.map +1 -1
  205. package/dist/components/navigation/tab-bar/tab-bar.styles.js +15 -0
  206. package/dist/components/navigation/tab-bar/tab-bar.styles.js.map +1 -1
  207. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.d.ts.map +1 -1
  208. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js +28 -26
  209. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js.map +1 -1
  210. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.template.js +1 -1
  211. package/dist/components/prism-gherkin-CMPYyXOQ.js +82 -0
  212. package/dist/components/prism-python-DUL3Gysb.js +99 -0
  213. package/dist/components/prism-rust-BGBMvZa7.js +157 -0
  214. package/dist/components/prism-sql-BGqCBMyJ.js +33 -0
  215. package/dist/components/prism-toml-Ubdq-a5x.js +45 -0
  216. package/dist/components/{prism-typescript-DG_p4Wyh.js → prism-typescript-QDrnGhET.js} +1 -1
  217. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.d.ts +3 -0
  218. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.d.ts.map +1 -1
  219. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js +5 -0
  220. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js.map +1 -1
  221. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.d.ts.map +1 -1
  222. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.js +20 -4
  223. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.js.map +1 -1
  224. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.template.d.ts.map +1 -1
  225. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.template.js +16 -14
  226. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.template.js.map +1 -1
  227. package/dist/css/form.css +4 -5
  228. package/dist/css/rich-text.css +27 -115
  229. package/dist/css/settings.css +46 -37
  230. package/dist/utilities/page-section-mixin.d.ts +53 -0
  231. package/dist/utilities/page-section-mixin.d.ts.map +1 -0
  232. package/dist/utilities/page-section-mixin.js +239 -0
  233. package/dist/utilities/page-section-mixin.js.map +1 -0
  234. package/package.json +12 -4
  235. package/dist/components/content/code/code.d.ts.map +0 -1
  236. package/dist/components/content/code/code.js.map +0 -1
  237. package/dist/components/content/code/code.styles.d.ts +0 -2
  238. package/dist/components/content/code/code.styles.d.ts.map +0 -1
  239. package/dist/components/content/code/code.styles.js +0 -89
  240. package/dist/components/content/code/code.styles.js.map +0 -1
  241. package/dist/components/content/code/code.template.d.ts +0 -4
  242. package/dist/components/content/code/code.template.d.ts.map +0 -1
  243. package/dist/components/content/code/code.template.js.map +0 -1
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Nederlandse Digitale Dienst Breadcrumbs Component (Lit + TypeScript)
3
+ *
4
+ * A trail of `nldd-breadcrumbs-item`s separated by `›`, rendered as a
5
+ * `<nav>` landmark wrapping a `<div role="list">` (with each item carrying
6
+ * `role="listitem"`). Explicit ARIA roles travel reliably across the slot
7
+ * boundary where the implicit `<ol>`/`<li>` mapping is inconsistent across
8
+ * AT + browser combos. The host itself is its own container-query scope so
9
+ * the sm-viewport "‹ {parent}" fallback reacts to the breadcrumbs' own
10
+ * width, not the viewport.
11
+ *
12
+ * @element nldd-breadcrumbs
13
+ *
14
+ * @attr {string} accessible-label - Override the nav's aria-label.
15
+ * Defaults to the i18n value (NL: "Kruimelpad").
16
+ * @attr {object} translations - Override translation keys; unset keys
17
+ * fall back to the Dutch default.
18
+ *
19
+ * @slot - `nldd-breadcrumbs-item` children.
20
+ */
21
+ import { LitElement, type PropertyValues } from 'lit';
22
+ import { type NLDDBreadcrumbsTranslations } from './breadcrumbs.i18n.js';
23
+ /**
24
+ * A single entry in an `nldd-breadcrumbs` list. Renders as a link when
25
+ * `href` is set, as plain text marked `aria-current="page"` when `current`
26
+ * is set, and as plain text otherwise. Each item renders its own trailing
27
+ * `›` separator; the last item in the list hides it via `:host(:last-of-type)`.
28
+ *
29
+ * @attr {string} href - Link target. Ignored when `current` is set.
30
+ * @attr {boolean} current - Marks this item as the current page (renders as
31
+ * plain text + `aria-current="page"`). Typical use
32
+ * is on the last item.
33
+ * @attr {string} text - Item label. Falls back to the default slot.
34
+ *
35
+ * @slot - Item label (alternative to `text`).
36
+ */
37
+ export declare class NLDDBreadcrumbsItem extends LitElement {
38
+ static styles: import("lit").CSSResult;
39
+ href?: string;
40
+ current: boolean;
41
+ text: string;
42
+ connectedCallback(): void;
43
+ updated(changed: PropertyValues): void;
44
+ render(): import("lit-html").TemplateResult;
45
+ }
46
+ export declare class NLDDBreadcrumbs extends LitElement {
47
+ static styles: import("lit").CSSResult;
48
+ accessibleLabel: string;
49
+ translations: Partial<NLDDBreadcrumbsTranslations>;
50
+ private _mergedTranslations;
51
+ willUpdate(changed: PropertyValues): void;
52
+ _t(key: keyof NLDDBreadcrumbsTranslations): string;
53
+ /**
54
+ * All slotted nldd-breadcrumbs-item children, in DOM order. Items MUST
55
+ * be direct children of nldd-breadcrumbs — wrapping them in another
56
+ * element (e.g. `<ul><nldd-breadcrumbs-item>`) is unsupported and will
57
+ * make them invisible to this component (separator handling, sm-viewport
58
+ * fallback, etc. all key off this set).
59
+ */
60
+ _items(): NLDDBreadcrumbsItem[];
61
+ /**
62
+ * The parent (one-level-up) item: the last non-current item with an
63
+ * `href` — the level-up link needs somewhere to navigate. Returns null
64
+ * when no eligible parent exists; the level-up element is not rendered
65
+ * in that case (so it can't appear in the link list of any AT).
66
+ */
67
+ _parentItem(): NLDDBreadcrumbsItem | null;
68
+ _onSlotChange: () => void;
69
+ private _itemObserver?;
70
+ private _observeItemAttrs;
71
+ disconnectedCallback(): void;
72
+ render(): import("lit-html").TemplateResult;
73
+ }
74
+ declare global {
75
+ interface HTMLElementTagNameMap {
76
+ 'nldd-breadcrumbs': NLDDBreadcrumbs;
77
+ 'nldd-breadcrumbs-item': NLDDBreadcrumbsItem;
78
+ }
79
+ }
80
+ //# sourceMappingURL=breadcrumbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAItD,OAAO,EAA+B,KAAK,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAKtG;;;;;;;;;;;;;GAaG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IAClD,OAAgB,MAAM,0BAAyB;IAG/C,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,OAAO,UAAS;IAGhB,IAAI,SAAM;IAED,iBAAiB,IAAI,IAAI;IAYzB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAatC,MAAM;CAGf;AAcD,qBACa,eAAgB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,0BAAqB;IAG3C,eAAe,SAAM;IAGrB,YAAY,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAM;IAExD,OAAO,CAAC,mBAAmB,CAAmE;IAErF,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAYlD,EAAE,CAAC,GAAG,EAAE,MAAM,2BAA2B,GAAG,MAAM;IAWlD;;;;;;OAMG;IACH,MAAM,IAAI,mBAAmB,EAAE;IAI/B;;;;;OAKG;IACH,WAAW,IAAI,mBAAmB,GAAG,IAAI;IAQzC,aAAa,aAMX;IAMF,OAAO,CAAC,aAAa,CAAC,CAAmB;IAEzC,OAAO,CAAC,iBAAiB;IAchB,oBAAoB,IAAI,IAAI;IAM5B,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,kBAAkB,EAAE,eAAe,CAAC;QACpC,uBAAuB,EAAE,mBAAmB,CAAC;KAC7C;CACD"}
@@ -0,0 +1,6 @@
1
+ export declare const nlddBreadcrumbsTranslations: {
2
+ 'components.breadcrumbs.accessible-label': string;
3
+ 'components.breadcrumbs.level-up-label': string;
4
+ };
5
+ export type NLDDBreadcrumbsTranslations = typeof nlddBreadcrumbsTranslations;
6
+ //# sourceMappingURL=breadcrumbs.i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.i18n.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.i18n.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B;;;CAGvC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,OAAO,2BAA2B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export const nlddBreadcrumbsTranslations = {
2
+ 'components.breadcrumbs.accessible-label': 'Kruimelpad',
3
+ 'components.breadcrumbs.level-up-label': 'Eén niveau omhoog',
4
+ };
5
+ //# sourceMappingURL=breadcrumbs.i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.i18n.js","sourceRoot":"","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.i18n.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG;IAC1C,yCAAyC,EAAE,YAAY;IACvD,uCAAuC,EAAE,mBAAmB;CAC5D,CAAC"}
@@ -0,0 +1,192 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ /**
8
+ * Nederlandse Digitale Dienst Breadcrumbs Component (Lit + TypeScript)
9
+ *
10
+ * A trail of `nldd-breadcrumbs-item`s separated by `›`, rendered as a
11
+ * `<nav>` landmark wrapping a `<div role="list">` (with each item carrying
12
+ * `role="listitem"`). Explicit ARIA roles travel reliably across the slot
13
+ * boundary where the implicit `<ol>`/`<li>` mapping is inconsistent across
14
+ * AT + browser combos. The host itself is its own container-query scope so
15
+ * the sm-viewport "‹ {parent}" fallback reacts to the breadcrumbs' own
16
+ * width, not the viewport.
17
+ *
18
+ * @element nldd-breadcrumbs
19
+ *
20
+ * @attr {string} accessible-label - Override the nav's aria-label.
21
+ * Defaults to the i18n value (NL: "Kruimelpad").
22
+ * @attr {object} translations - Override translation keys; unset keys
23
+ * fall back to the Dutch default.
24
+ *
25
+ * @slot - `nldd-breadcrumbs-item` children.
26
+ */
27
+ import { LitElement } from 'lit';
28
+ import { customElement, property } from 'lit/decorators.js';
29
+ import { breadcrumbsStyles, breadcrumbsItemStyles } from './breadcrumbs.styles.js';
30
+ import { breadcrumbsTemplate, breadcrumbsItemTemplate } from './breadcrumbs.template.js';
31
+ import { nlddBreadcrumbsTranslations } from './breadcrumbs.i18n.js';
32
+ // # nldd-breadcrumbs-item
33
+ /**
34
+ * A single entry in an `nldd-breadcrumbs` list. Renders as a link when
35
+ * `href` is set, as plain text marked `aria-current="page"` when `current`
36
+ * is set, and as plain text otherwise. Each item renders its own trailing
37
+ * `›` separator; the last item in the list hides it via `:host(:last-of-type)`.
38
+ *
39
+ * @attr {string} href - Link target. Ignored when `current` is set.
40
+ * @attr {boolean} current - Marks this item as the current page (renders as
41
+ * plain text + `aria-current="page"`). Typical use
42
+ * is on the last item.
43
+ * @attr {string} text - Item label. Falls back to the default slot.
44
+ *
45
+ * @slot - Item label (alternative to `text`).
46
+ */
47
+ export class NLDDBreadcrumbsItem extends LitElement {
48
+ constructor() {
49
+ super(...arguments);
50
+ this.current = false;
51
+ this.text = '';
52
+ }
53
+ connectedCallback() {
54
+ super.connectedCallback();
55
+ // The parent .breadcrumbs__items is a div role="list"; each item
56
+ // gets the matching listitem role so screen readers announce a
57
+ // proper list with N items. Explicit ARIA is what AT actually
58
+ // reads across the slot boundary — the implicit <ol>/<li>
59
+ // mapping doesn't traverse it reliably.
60
+ if (!this.hasAttribute('role')) {
61
+ this.setAttribute('role', 'listitem');
62
+ }
63
+ }
64
+ updated(changed) {
65
+ // Reflect aria-current on the host (the semantic listitem) rather
66
+ // than on an inner span — the listitem is the element screen readers
67
+ // announce, so the current-page hint should live there.
68
+ if (changed.has('current')) {
69
+ if (this.current) {
70
+ this.setAttribute('aria-current', 'page');
71
+ }
72
+ else {
73
+ this.removeAttribute('aria-current');
74
+ }
75
+ }
76
+ }
77
+ render() {
78
+ return breadcrumbsItemTemplate(this);
79
+ }
80
+ }
81
+ NLDDBreadcrumbsItem.styles = breadcrumbsItemStyles;
82
+ __decorate([
83
+ property({ type: String, reflect: true })
84
+ ], NLDDBreadcrumbsItem.prototype, "href", void 0);
85
+ __decorate([
86
+ property({ type: Boolean, reflect: true })
87
+ ], NLDDBreadcrumbsItem.prototype, "current", void 0);
88
+ __decorate([
89
+ property({ type: String, reflect: true })
90
+ ], NLDDBreadcrumbsItem.prototype, "text", void 0);
91
+ // Sub-component of nldd-breadcrumbs. Exported as a public class for type
92
+ // imports. The guard registration (matches nldd-menu's nldd-menu-item /
93
+ // nldd-menu-divider) is for de-dupe safety: @customElement throws if the
94
+ // same tag is defined twice during HMR or test re-imports, the guard keeps
95
+ // the first registration authoritative.
96
+ if (!customElements.get('nldd-breadcrumbs-item')) {
97
+ customElements.define('nldd-breadcrumbs-item', NLDDBreadcrumbsItem);
98
+ }
99
+ // # nldd-breadcrumbs
100
+ let NLDDBreadcrumbs = class NLDDBreadcrumbs extends LitElement {
101
+ constructor() {
102
+ super(...arguments);
103
+ this.accessibleLabel = '';
104
+ this.translations = {};
105
+ this._mergedTranslations = { ...nlddBreadcrumbsTranslations };
106
+ this._onSlotChange = () => {
107
+ // CSS reads `[has-parent]` directly; no need for @state. Toggling
108
+ // the attribute is enough.
109
+ this.toggleAttribute('has-parent', !!this._parentItem());
110
+ this._observeItemAttrs();
111
+ this.requestUpdate();
112
+ };
113
+ }
114
+ willUpdate(changed) {
115
+ if (changed.has('translations') || changed.has('accessibleLabel')) {
116
+ this._mergedTranslations = {
117
+ ...nlddBreadcrumbsTranslations,
118
+ ...this.translations,
119
+ };
120
+ if (this.accessibleLabel) {
121
+ this._mergedTranslations['components.breadcrumbs.accessible-label'] = this.accessibleLabel;
122
+ }
123
+ }
124
+ }
125
+ _t(key) {
126
+ // Return '' (not the key) for missing translations so callers can do
127
+ // `value || nothing` to suppress aria-label / text rather than
128
+ // announcing the raw key string. Warn in DEV.
129
+ const value = this._mergedTranslations[key];
130
+ if (value === undefined && import.meta.env?.DEV) {
131
+ console.warn(`<nldd-breadcrumbs>: missing translation for "${key}"`);
132
+ }
133
+ return value ?? '';
134
+ }
135
+ /**
136
+ * All slotted nldd-breadcrumbs-item children, in DOM order. Items MUST
137
+ * be direct children of nldd-breadcrumbs — wrapping them in another
138
+ * element (e.g. `<ul><nldd-breadcrumbs-item>`) is unsupported and will
139
+ * make them invisible to this component (separator handling, sm-viewport
140
+ * fallback, etc. all key off this set).
141
+ */
142
+ _items() {
143
+ return Array.from(this.querySelectorAll(':scope > nldd-breadcrumbs-item'));
144
+ }
145
+ /**
146
+ * The parent (one-level-up) item: the last non-current item with an
147
+ * `href` — the level-up link needs somewhere to navigate. Returns null
148
+ * when no eligible parent exists; the level-up element is not rendered
149
+ * in that case (so it can't appear in the link list of any AT).
150
+ */
151
+ _parentItem() {
152
+ const items = this._items();
153
+ for (let i = items.length - 1; i >= 0; i--) {
154
+ if (!items[i].current && items[i].href)
155
+ return items[i];
156
+ }
157
+ return null;
158
+ }
159
+ _observeItemAttrs() {
160
+ this._itemObserver?.disconnect();
161
+ this._itemObserver = new MutationObserver(() => {
162
+ this.toggleAttribute('has-parent', !!this._parentItem());
163
+ this.requestUpdate();
164
+ });
165
+ for (const item of this._items()) {
166
+ this._itemObserver.observe(item, {
167
+ attributes: true,
168
+ attributeFilter: ['href', 'current'],
169
+ });
170
+ }
171
+ }
172
+ disconnectedCallback() {
173
+ super.disconnectedCallback();
174
+ this._itemObserver?.disconnect();
175
+ this._itemObserver = undefined;
176
+ }
177
+ render() {
178
+ return breadcrumbsTemplate(this);
179
+ }
180
+ };
181
+ NLDDBreadcrumbs.styles = breadcrumbsStyles;
182
+ __decorate([
183
+ property({ type: String, attribute: 'accessible-label' })
184
+ ], NLDDBreadcrumbs.prototype, "accessibleLabel", void 0);
185
+ __decorate([
186
+ property({ type: Object })
187
+ ], NLDDBreadcrumbs.prototype, "translations", void 0);
188
+ NLDDBreadcrumbs = __decorate([
189
+ customElement('nldd-breadcrumbs')
190
+ ], NLDDBreadcrumbs);
191
+ export { NLDDBreadcrumbs };
192
+ //# sourceMappingURL=breadcrumbs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const breadcrumbsStyles: import("lit").CSSResult;
2
+ export declare const breadcrumbsItemStyles: import("lit").CSSResult;
3
+ //# sourceMappingURL=breadcrumbs.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,yBA8D7B,CAAC;AAEF,eAAO,MAAM,qBAAqB,yBAwDjC,CAAC"}
@@ -0,0 +1,124 @@
1
+ import { css, unsafeCSS } from 'lit';
2
+ import { breakpoints } from '../../../assets/styles/breakpoints.js';
3
+ const smMax = unsafeCSS(breakpoints.smMax);
4
+ export const breadcrumbsStyles = css `
5
+ :host {
6
+ container-type: inline-size;
7
+ display: block;
8
+ }
9
+
10
+ :host([hidden]) {
11
+ display: none;
12
+ }
13
+
14
+ .breadcrumbs {
15
+ display: block;
16
+ }
17
+
18
+ .breadcrumbs__items {
19
+ display: flex;
20
+ flex-wrap: wrap;
21
+ row-gap: var(--primitives-space-4);
22
+ }
23
+
24
+ :host([has-parent]) .breadcrumbs__items {
25
+ @container (max-width: ${smMax}) {
26
+ display: none;
27
+ }
28
+ }
29
+
30
+ .breadcrumbs__level-up {
31
+ display: none;
32
+ align-items: center;
33
+ gap: var(--primitives-space-4);
34
+ color: var(--semantics-links-color);
35
+ font: var(--primitives-font-body-md-regular-tight);
36
+ text-decoration: none;
37
+ }
38
+
39
+ :host([has-parent]) .breadcrumbs__level-up {
40
+ @container (max-width: ${smMax}) {
41
+ display: inline-flex;
42
+ }
43
+ }
44
+
45
+ .breadcrumbs__level-up:hover {
46
+ color: var(--semantics-links-is-hovered-color);
47
+ }
48
+
49
+ .breadcrumbs__level-up:active {
50
+ color: var(--semantics-links-is-active-color);
51
+ }
52
+
53
+ .breadcrumbs__level-up:focus-visible {
54
+ outline: var(--semantics-focus-ring-outline);
55
+ outline-offset: var(--semantics-focus-ring-outline-offset);
56
+ border-radius: var(--primitives-corner-radius-xs);
57
+ box-shadow: var(--semantics-focus-ring-box-shadow);
58
+ }
59
+
60
+ .breadcrumbs__level-up-icon {
61
+ display: inline-flex;
62
+ width: var(--primitives-space-20);
63
+ height: var(--primitives-space-20);
64
+ flex-shrink: 0;
65
+ }
66
+ `;
67
+ export const breadcrumbsItemStyles = css `
68
+ :host {
69
+ /* Small downward offset so the chevron-right-small icon sits closer
70
+ to the text's optical centerline (the icon's bbox renders slightly
71
+ above the visual baseline). */
72
+ --_separator-vertical-offset: 0.05em;
73
+
74
+ display: inline-flex;
75
+ align-items: center;
76
+ }
77
+
78
+ :host([hidden]) {
79
+ display: none;
80
+ }
81
+
82
+ .breadcrumbs__item {
83
+ display: inline-flex;
84
+ align-items: center;
85
+ color: var(--semantics-content-color);
86
+ font: var(--primitives-font-body-md-regular-tight);
87
+ }
88
+
89
+ .breadcrumbs__item-link {
90
+ color: var(--semantics-links-color);
91
+ text-decoration: underline;
92
+ }
93
+
94
+ .breadcrumbs__item-link:hover {
95
+ color: var(--semantics-links-is-hovered-color);
96
+ }
97
+
98
+ .breadcrumbs__item-link:active {
99
+ color: var(--semantics-links-is-active-color);
100
+ }
101
+
102
+ .breadcrumbs__item-link:focus-visible {
103
+ outline: var(--semantics-focus-ring-outline);
104
+ outline-offset: var(--semantics-focus-ring-outline-offset);
105
+ border-radius: var(--primitives-corner-radius-xs);
106
+ box-shadow: var(--semantics-focus-ring-box-shadow);
107
+ }
108
+
109
+ .breadcrumbs__separator {
110
+ display: inline-flex;
111
+ position: relative;
112
+ top: var(--_separator-vertical-offset);
113
+ margin-inline: var(--primitives-space-2);
114
+ color: var(--semantics-content-secondary-color);
115
+ width: var(--primitives-space-16);
116
+ height: var(--primitives-space-16);
117
+ flex-shrink: 0;
118
+ }
119
+
120
+ :host(:last-of-type) .breadcrumbs__separator {
121
+ display: none;
122
+ }
123
+ `;
124
+ //# sourceMappingURL=breadcrumbs.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.styles.js","sourceRoot":"","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAEpE,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;2BAqBT,KAAK;;;;;;;;;;;;;;;2BAeL,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B/B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDvC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type TemplateResult } from 'lit';
2
+ import type { NLDDBreadcrumbs, NLDDBreadcrumbsItem } from './breadcrumbs.js';
3
+ import '../../content/icon/icon.js';
4
+ export declare function breadcrumbsTemplate(component: NLDDBreadcrumbs): TemplateResult;
5
+ export declare function breadcrumbsItemTemplate(component: NLDDBreadcrumbsItem): TemplateResult;
6
+ //# sourceMappingURL=breadcrumbs.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.template.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,4BAA4B,CAAC;AAEpC,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,eAAe,GAAG,cAAc,CA6B9E;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,cAAc,CAuBtF"}
@@ -0,0 +1,57 @@
1
+ import { html, nothing } from 'lit';
2
+ import { ifDefined } from 'lit/directives/if-defined.js';
3
+ import '../../content/icon/icon.js';
4
+ export function breadcrumbsTemplate(component) {
5
+ const label = component._t('components.breadcrumbs.accessible-label');
6
+ const levelUpLabel = component._t('components.breadcrumbs.level-up-label');
7
+ const parent = component._parentItem();
8
+ const levelUpText = parent ? (parent.text || parent.textContent?.trim() || levelUpLabel) : '';
9
+ return html `
10
+ <nav class="breadcrumbs"
11
+ aria-label=${label || nothing}
12
+ >
13
+ ${parent ? html `
14
+ <a class="breadcrumbs__level-up"
15
+ href=${ifDefined(parent.href)}
16
+ >
17
+ <span class="breadcrumbs__level-up-icon"
18
+ aria-hidden="true"
19
+ >
20
+ <nldd-icon name="chevron-left"></nldd-icon>
21
+ </span>
22
+ <span class="breadcrumbs__level-up-text">${levelUpText}</span>
23
+ </a>
24
+ ` : nothing}
25
+ <div class="breadcrumbs__items"
26
+ role="list"
27
+ >
28
+ <slot @slotchange=${component._onSlotChange}></slot>
29
+ </div>
30
+ </nav>
31
+ `;
32
+ }
33
+ export function breadcrumbsItemTemplate(component) {
34
+ // `text=""` (empty string) intentionally falls through to the slot —
35
+ // Lit normalises the absent-attribute case to '', so a single falsy
36
+ // check covers both "no text attr" and "explicit empty text".
37
+ const label = component.text || html `<slot></slot>`;
38
+ const separator = html `<span class="breadcrumbs__separator"
39
+ aria-hidden="true"
40
+ ><nldd-icon name="chevron-right-small"></nldd-icon></span>`;
41
+ if (!component.current && component.href) {
42
+ return html `
43
+ <span class="breadcrumbs__item">
44
+ <a class="breadcrumbs__item-link"
45
+ href=${component.href}
46
+ >${label}</a>
47
+ </span>${separator}
48
+ `;
49
+ }
50
+ // aria-current also lives on the host (for the role=listitem) — mirroring
51
+ // here makes it visible to AT+browser combinations (e.g. VoiceOver/Safari)
52
+ // that miss reflected ARIA on shadow hosts.
53
+ return html `<span class="breadcrumbs__item"
54
+ aria-current=${component.current ? 'page' : nothing}
55
+ >${label}</span>${separator}`;
56
+ }
57
+ //# sourceMappingURL=breadcrumbs.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.template.js","sourceRoot":"","sources":["../../../../src/components/navigation/breadcrumbs/breadcrumbs.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,4BAA4B,CAAC;AAEpC,MAAM,UAAU,mBAAmB,CAAC,SAA0B;IAC7D,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,yCAAyC,CAAC,CAAC;IACtE,MAAM,YAAY,GAAG,SAAS,CAAC,EAAE,CAAC,uCAAuC,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9F,OAAO,IAAI,CAAA;;gBAEI,KAAK,IAAI,OAAO;;KAE3B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;;YAEN,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;;;;;;;gDAOc,WAAW;;IAEvD,CAAC,CAAC,CAAC,OAAO;;;;wBAIU,SAAS,CAAC,aAAa;;;EAG7C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,SAA8B;IACrE,qEAAqE;IACrE,oEAAoE;IACpE,8DAA8D;IAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,IAAI,IAAI,CAAA,eAAe,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,CAAA;;4DAEqC,CAAC;IAC5D,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAA;;;YAGD,SAAS,CAAC,IAAI;OACnB,KAAK;YACA,SAAS;GAClB,CAAC;IACH,CAAC;IACD,0EAA0E;IAC1E,2EAA2E;IAC3E,4CAA4C;IAC5C,OAAO,IAAI,CAAA;iBACK,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;IACjD,KAAK,UAAU,SAAS,EAAE,CAAC;AAC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"document-tab-bar.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/document-tab-bar/document-tab-bar.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,yBA2MhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,yBA0NpC,CAAC"}
1
+ {"version":3,"file":"document-tab-bar.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/document-tab-bar/document-tab-bar.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,yBA2MhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,yBAyNpC,CAAC"}
@@ -209,9 +209,8 @@ export const documentTabBarItemStyles = css `
209
209
  /* # Host */
210
210
 
211
211
  :host {
212
- display: block;
213
- container-name: document-tab-bar;
214
212
  container-type: inline-size;
213
+ display: block;
215
214
  min-width: 0;
216
215
  touch-action: pan-y;
217
216
  -webkit-tap-highlight-color: transparent;
@@ -289,7 +288,7 @@ export const documentTabBarItemStyles = css `
289
288
  .document-tab-bar__item-normal {
290
289
  display: contents;
291
290
 
292
- @container document-tab-bar (max-width: 200px) {
291
+ @container (max-width: 200px) {
293
292
  display: none;
294
293
  }
295
294
  }
@@ -297,7 +296,7 @@ export const documentTabBarItemStyles = css `
297
296
  .document-tab-bar__item-short {
298
297
  display: none;
299
298
 
300
- @container document-tab-bar (max-width: 200px) {
299
+ @container (max-width: 200px) {
301
300
  display: contents;
302
301
  }
303
302
  }
@@ -1 +1 @@
1
- {"version":3,"file":"document-tab-bar.styles.js","sourceRoot":"","sources":["../../../../src/components/navigation/document-tab-bar/document-tab-bar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2MtC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0N1C,CAAC"}
1
+ {"version":3,"file":"document-tab-bar.styles.js","sourceRoot":"","sources":["../../../../src/components/navigation/document-tab-bar/document-tab-bar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2MtC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyN1C,CAAC"}
@@ -3,7 +3,8 @@
3
3
  *
4
4
  * Interactief bouwblok voor gebruik in een menu bar. Rendert als <a> (met href)
5
5
  * of <button> (zonder href). Ondersteunt icon, text, disclosure indicator,
6
- * en expandable popover menu via slotted nldd-menu-item elementen.
6
+ * en een expandable popover via een geslotte `<nldd-menu>` (of ander
7
+ * popover-element).
7
8
  *
8
9
  * @element nldd-menu-bar-item
9
10
  * @attr {string} text - Tekst van het item
@@ -11,7 +12,7 @@
11
12
  * @attr {string} current-type - aria-current waarde als current is true ('page', 'step', 'location', 'true'). Standaard: 'page'
12
13
  * @attr {string} href - Optionele link URL. Zonder href rendert als button.
13
14
  * @attr {string} icon - Optioneel icon naam (nldd-icon)
14
- * @attr {boolean} expandable - Toon disclosure icon en open popover bij klik
15
+ * @attr {boolean} expandable - Toon disclosure icon en open de geslotte `<nldd-menu>` bij klik
15
16
  * @attr {boolean} icon-only - Verberg tekst visueel (altijd)
16
17
  * @attr {'icon'|'text'} content-priority - Bepaalt wat zichtbaar blijft in compact modus: 'icon' verbergt tekst, 'text' verbergt icon
17
18
  * @attr {boolean} compact - Activeert content-priority gedrag (gezet door parent nldd-menu-bar)
@@ -22,12 +23,12 @@
22
23
  *
23
24
  * @fires select - Bij klik op non-expandable button item (bubbles, composed)
24
25
  *
25
- * @slot - Slotted nldd-menu-item en nldd-menu-divider voor expandable popover.
26
- * Items worden gekloond naar het popover menu (cloneNode). JS event listeners
27
- * op slotted items worden niet meegenomen. Gebruik event delegation op een
28
- * parent element als custom click handlers nodig zijn.
26
+ * @slot - Inhoud van de expandable popover — wrap items in een `<nldd-menu>`
27
+ * zodat dit component de menu-API (variant, accessible-label, translations,
28
+ * filterFn, …) niet hoeft te dupliceren. Event listeners op items werken
29
+ * direct, omdat er niet meer gekloond wordt.
29
30
  */
30
- import { LitElement, type PropertyValues } from 'lit';
31
+ import { LitElement } from 'lit';
31
32
  import '../../content/icon/icon.js';
32
33
  import '../../lists-and-menus/menu/menu.js';
33
34
  export declare class NLDDMenuBarItem extends LitElement {
@@ -64,21 +65,17 @@ export declare class NLDDMenuBarItem extends LitElement {
64
65
  private _menu;
65
66
  private _menuOpen;
66
67
  private _pointerdownWhileMenuOpen;
68
+ private _menuToggleHandler;
67
69
  connectedCallback(): void;
70
+ firstUpdated(): void;
68
71
  disconnectedCallback(): void;
69
- updated(changed: PropertyValues): void;
72
+ _onSlotChange: () => void;
70
73
  focus(options?: FocusOptions): void;
71
- private _hasMenuItems;
74
+ private _findMenu;
75
+ private _wireMenu;
76
+ private _unwireMenu;
72
77
  private _handlePointerdown;
73
78
  private _handleClick;
74
- private _createMenu;
75
- /**
76
- * Clone slotted menu items into the popover menu.
77
- * Note: cloneNode(true) copies DOM structure and attributes but not JS event
78
- * listeners. Custom click handlers on slotted nldd-menu-item elements won't
79
- * fire in the popover. Use event delegation on a parent element instead.
80
- */
81
- private _syncMenuItems;
82
79
  private _toggleMenu;
83
80
  render(): import("lit-html").TemplateResult<1>;
84
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"menu-bar-item.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/menu-bar-item/menu-bar-item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAItD,OAAO,4BAA4B,CAAC;AACpC,OAAO,oCAAoC,CAAC;AAc5C,qBACa,eAAgB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,0BAAqB;IAG3C,IAAI,SAAM;IAGV,OAAO,UAAS;IAGhB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAU;IAG9E,IAAI,SAAM;IAGV,IAAI,SAAM;IAGV,UAAU,UAAS;IAGnB,QAAQ,UAAS;IAGjB,eAAe,SAAM;IAGrB,OAAO,UAAS;IAGhB,QAAQ,UAAS;IAGjB,eAAe,SAAM;IAGrB,QAAQ,SAAM;IAGd,QAAQ,UAAS;IAEjB;;;;;;OAMG;IAEH,oBAAoB,EAAE,OAAO,GAAG,IAAI,CAAQ;IAE5C;;;;;;OAMG;IAEH,mBAAmB,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAY;IAI3D,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,yBAAyB,CAAS;IAIjC,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAQ5B,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAQtC,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAO5C,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,kBAAkB,CAIxB;IAEF,OAAO,CAAC,YAAY,CAqBlB;IAIF,OAAO,CAAC,WAAW;IAgBnB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,WAAW;IAkBV,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,oBAAoB,EAAE,eAAe,CAAC;KACtC;CACD"}
1
+ {"version":3,"file":"menu-bar-item.d.ts","sourceRoot":"","sources":["../../../../src/components/navigation/menu-bar-item/menu-bar-item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAIjC,OAAO,4BAA4B,CAAC;AACpC,OAAO,oCAAoC,CAAC;AAc5C,qBACa,eAAgB,SAAQ,UAAU;IAC9C,OAAgB,MAAM,0BAAqB;IAG3C,IAAI,SAAM;IAGV,OAAO,UAAS;IAGhB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAU;IAG9E,IAAI,SAAM;IAGV,IAAI,SAAM;IAGV,UAAU,UAAS;IAGnB,QAAQ,UAAS;IAGjB,eAAe,SAAM;IAGrB,OAAO,UAAS;IAGhB,QAAQ,UAAS;IAGjB,eAAe,SAAM;IAGrB,QAAQ,SAAM;IAGd,QAAQ,UAAS;IAEjB;;;;;;OAMG;IAEH,oBAAoB,EAAE,OAAO,GAAG,IAAI,CAAQ;IAE5C;;;;;;OAMG;IAEH,mBAAmB,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAY;IAI3D,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,kBAAkB,CAAyC;IAI1D,iBAAiB,IAAI,IAAI;IAWzB,YAAY,IAAI,IAAI;IAQpB,oBAAoB,IAAI,IAAI;IAOrC,aAAa,QAAO,IAAI,CAGtB;IAEO,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAO5C,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,kBAAkB,CAIxB;IAEF,OAAO,CAAC,YAAY,CAqBlB;IAIF,OAAO,CAAC,WAAW;IAgBV,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,oBAAoB,EAAE,eAAe,CAAC;KACtC;CACD"}