@nldd/design-system 0.8.42 → 0.8.43

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 (254) hide show
  1. package/README.md +1 -1
  2. package/dist/components/actions/button/button.d.ts +18 -5
  3. package/dist/components/actions/button/button.d.ts.map +1 -1
  4. package/dist/components/actions/button/button.js +38 -6
  5. package/dist/components/actions/button/button.js.map +1 -1
  6. package/dist/components/actions/button/button.styles.d.ts.map +1 -1
  7. package/dist/components/actions/button/button.styles.js +136 -50
  8. package/dist/components/actions/button/button.styles.js.map +1 -1
  9. package/dist/components/actions/button/button.template.d.ts.map +1 -1
  10. package/dist/components/actions/button/button.template.js +12 -1
  11. package/dist/components/actions/button/button.template.js.map +1 -1
  12. package/dist/components/actions/button-group/button-group.js +2 -2
  13. package/dist/components/actions/button-group/button-group.js.map +1 -1
  14. package/dist/components/actions/icon-button/icon-button.d.ts +16 -5
  15. package/dist/components/actions/icon-button/icon-button.d.ts.map +1 -1
  16. package/dist/components/actions/icon-button/icon-button.js +33 -6
  17. package/dist/components/actions/icon-button/icon-button.js.map +1 -1
  18. package/dist/components/actions/icon-button/icon-button.styles.d.ts.map +1 -1
  19. package/dist/components/actions/icon-button/icon-button.styles.js +153 -96
  20. package/dist/components/actions/icon-button/icon-button.styles.js.map +1 -1
  21. package/dist/components/actions/icon-button/icon-button.template.d.ts.map +1 -1
  22. package/dist/components/actions/icon-button/icon-button.template.js +11 -0
  23. package/dist/components/actions/icon-button/icon-button.template.js.map +1 -1
  24. package/dist/components/actions/split-button/split-button.template.js +2 -2
  25. package/dist/components/actions/split-button/split-button.template.js.map +1 -1
  26. package/dist/components/actions/toolbar/toolbar.d.ts +4 -4
  27. package/dist/components/actions/toolbar/toolbar.d.ts.map +1 -1
  28. package/dist/components/actions/toolbar/toolbar.js +11 -11
  29. package/dist/components/actions/toolbar/toolbar.js.map +1 -1
  30. package/dist/components/actions/toolbar/toolbar.template.d.ts +2 -2
  31. package/dist/components/actions/toolbar/toolbar.template.d.ts.map +1 -1
  32. package/dist/components/actions/toolbar/toolbar.template.js +4 -4
  33. package/dist/components/actions/toolbar/toolbar.template.js.map +1 -1
  34. package/dist/components/components.js +1 -1
  35. package/dist/components/content/blockquote/blockquote.styles.js +1 -1
  36. package/dist/components/content/blockquote/blockquote.styles.js.map +1 -1
  37. package/dist/components/content/tag/tag.d.ts +3 -3
  38. package/dist/components/content/tag/tag.d.ts.map +1 -1
  39. package/dist/components/content/tag/tag.js +3 -3
  40. package/dist/components/content/tag/tag.js.map +1 -1
  41. package/dist/components/content/tag/tag.styles.d.ts.map +1 -1
  42. package/dist/components/content/tag/tag.styles.js +107 -9
  43. package/dist/components/content/tag/tag.styles.js.map +1 -1
  44. package/dist/components/content/title/title.styles.js +18 -18
  45. package/dist/components/content/title/title.styles.js.map +1 -1
  46. package/dist/components/content/tooltip/tooltip.d.ts +13 -7
  47. package/dist/components/content/tooltip/tooltip.d.ts.map +1 -1
  48. package/dist/components/content/tooltip/tooltip.js +34 -22
  49. package/dist/components/content/tooltip/tooltip.js.map +1 -1
  50. package/dist/components/{index-CJ3mdHHo.js → index-By2jYHEw.js} +1438 -908
  51. package/dist/components/inputs/combo-box/combo-box.d.ts +1 -1
  52. package/dist/components/inputs/combo-box/combo-box.d.ts.map +1 -1
  53. package/dist/components/inputs/combo-box/combo-box.js +8 -2
  54. package/dist/components/inputs/combo-box/combo-box.js.map +1 -1
  55. package/dist/components/inputs/combo-box/combo-box.styles.d.ts.map +1 -1
  56. package/dist/components/inputs/combo-box/combo-box.styles.js +2 -0
  57. package/dist/components/inputs/combo-box/combo-box.styles.js.map +1 -1
  58. package/dist/components/inputs/combo-box/combo-box.template.d.ts.map +1 -1
  59. package/dist/components/inputs/combo-box/combo-box.template.js +2 -0
  60. package/dist/components/inputs/combo-box/combo-box.template.js.map +1 -1
  61. package/dist/components/inputs/dropdown/dropdown.d.ts +11 -1
  62. package/dist/components/inputs/dropdown/dropdown.d.ts.map +1 -1
  63. package/dist/components/inputs/dropdown/dropdown.js +31 -2
  64. package/dist/components/inputs/dropdown/dropdown.js.map +1 -1
  65. package/dist/components/inputs/dropdown/dropdown.styles.d.ts.map +1 -1
  66. package/dist/components/inputs/dropdown/dropdown.styles.js +3 -1
  67. package/dist/components/inputs/dropdown/dropdown.styles.js.map +1 -1
  68. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts +1 -1
  69. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts.map +1 -1
  70. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js +8 -2
  71. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js.map +1 -1
  72. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.d.ts.map +1 -1
  73. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.js +2 -0
  74. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.js.map +1 -1
  75. package/dist/components/inputs/number-field/number-field.d.ts +2 -4
  76. package/dist/components/inputs/number-field/number-field.d.ts.map +1 -1
  77. package/dist/components/inputs/number-field/number-field.js +8 -12
  78. package/dist/components/inputs/number-field/number-field.js.map +1 -1
  79. package/dist/components/inputs/number-field/number-field.styles.js +3 -3
  80. package/dist/components/inputs/password-field/password-field.d.ts +1 -1
  81. package/dist/components/inputs/password-field/password-field.d.ts.map +1 -1
  82. package/dist/components/inputs/password-field/password-field.js +8 -2
  83. package/dist/components/inputs/password-field/password-field.js.map +1 -1
  84. package/dist/components/inputs/password-field/password-field.styles.d.ts.map +1 -1
  85. package/dist/components/inputs/password-field/password-field.styles.js +2 -0
  86. package/dist/components/inputs/password-field/password-field.styles.js.map +1 -1
  87. package/dist/components/inputs/search-field/search-field.d.ts +1 -1
  88. package/dist/components/inputs/search-field/search-field.d.ts.map +1 -1
  89. package/dist/components/inputs/search-field/search-field.js +8 -2
  90. package/dist/components/inputs/search-field/search-field.js.map +1 -1
  91. package/dist/components/inputs/search-field/search-field.styles.d.ts.map +1 -1
  92. package/dist/components/inputs/search-field/search-field.styles.js +2 -0
  93. package/dist/components/inputs/search-field/search-field.styles.js.map +1 -1
  94. package/dist/components/inputs/segmented-control/segmented-control.d.ts +8 -2
  95. package/dist/components/inputs/segmented-control/segmented-control.d.ts.map +1 -1
  96. package/dist/components/inputs/segmented-control/segmented-control.js +25 -4
  97. package/dist/components/inputs/segmented-control/segmented-control.js.map +1 -1
  98. package/dist/components/inputs/segmented-control/segmented-control.styles.d.ts.map +1 -1
  99. package/dist/components/inputs/segmented-control/segmented-control.styles.js +65 -64
  100. package/dist/components/inputs/segmented-control/segmented-control.styles.js.map +1 -1
  101. package/dist/components/inputs/segmented-control/segmented-control.template.js +1 -1
  102. package/dist/components/inputs/text-field/text-field.d.ts +1 -1
  103. package/dist/components/inputs/text-field/text-field.d.ts.map +1 -1
  104. package/dist/components/inputs/text-field/text-field.js +8 -2
  105. package/dist/components/inputs/text-field/text-field.js.map +1 -1
  106. package/dist/components/inputs/text-field/text-field.styles.d.ts.map +1 -1
  107. package/dist/components/inputs/text-field/text-field.styles.js +2 -0
  108. package/dist/components/inputs/text-field/text-field.styles.js.map +1 -1
  109. package/dist/components/inputs/toggle-button/toggle-button.styles.d.ts.map +1 -1
  110. package/dist/components/inputs/toggle-button/toggle-button.styles.js +26 -6
  111. package/dist/components/inputs/toggle-button/toggle-button.styles.js.map +1 -1
  112. package/dist/components/inputs/token/token.d.ts +3 -3
  113. package/dist/components/inputs/token/token.d.ts.map +1 -1
  114. package/dist/components/inputs/token/token.js +6 -6
  115. package/dist/components/inputs/token/token.js.map +1 -1
  116. package/dist/components/inputs/token/token.styles.js +2 -2
  117. package/dist/components/inputs/token/token.template.js +1 -1
  118. package/dist/components/inputs/token/token.template.js.map +1 -1
  119. package/dist/components/layout/card/card.js +1 -1
  120. package/dist/components/layout/card/card.js.map +1 -1
  121. package/dist/components/layout/container/container.d.ts +4 -4
  122. package/dist/components/layout/container/container.js +4 -4
  123. package/dist/components/layout/container/container.styles.js +399 -399
  124. package/dist/components/layout/container/container.styles.js.map +1 -1
  125. package/dist/components/layout/page/page.js +1 -1
  126. package/dist/components/layout/page/page.js.map +1 -1
  127. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.d.ts +6 -3
  128. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.d.ts.map +1 -1
  129. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.js +21 -5
  130. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.js.map +1 -1
  131. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.styles.js +9 -9
  132. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.styles.js.map +1 -1
  133. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.d.ts +6 -3
  134. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.d.ts.map +1 -1
  135. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.js +21 -5
  136. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.js.map +1 -1
  137. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.styles.js +12 -12
  138. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.styles.js.map +1 -1
  139. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.d.ts +6 -3
  140. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.d.ts.map +1 -1
  141. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.js +21 -5
  142. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.js.map +1 -1
  143. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.styles.js +12 -12
  144. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.styles.js.map +1 -1
  145. package/dist/components/layout/page-sections/simple-section/simple-section.d.ts +6 -3
  146. package/dist/components/layout/page-sections/simple-section/simple-section.d.ts.map +1 -1
  147. package/dist/components/layout/page-sections/simple-section/simple-section.js +21 -5
  148. package/dist/components/layout/page-sections/simple-section/simple-section.js.map +1 -1
  149. package/dist/components/layout/page-sections/simple-section/simple-section.styles.js +9 -9
  150. package/dist/components/layout/page-sections/simple-section/simple-section.styles.js.map +1 -1
  151. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.d.ts +6 -3
  152. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.d.ts.map +1 -1
  153. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.js +21 -5
  154. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.js.map +1 -1
  155. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.styles.js +12 -12
  156. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.styles.js.map +1 -1
  157. package/dist/components/layout/popover/popover.js +1 -1
  158. package/dist/components/layout/popover/popover.js.map +1 -1
  159. package/dist/components/layout/sheet/sheet.js +3 -3
  160. package/dist/components/layout/sheet/sheet.js.map +1 -1
  161. package/dist/components/layout/sheet/sheet.styles.js +5 -5
  162. package/dist/components/layout/split-views/split-view-pane/split-view-pane.js +1 -1
  163. package/dist/components/layout/split-views/split-view-pane/split-view-pane.js.map +1 -1
  164. package/dist/components/layout/window/window.js +1 -1
  165. package/dist/components/layout/window/window.js.map +1 -1
  166. package/dist/components/lists-and-menus/cells/cell/cell.d.ts +4 -2
  167. package/dist/components/lists-and-menus/cells/cell/cell.d.ts.map +1 -1
  168. package/dist/components/lists-and-menus/cells/cell/cell.js +17 -6
  169. package/dist/components/lists-and-menus/cells/cell/cell.js.map +1 -1
  170. package/dist/components/lists-and-menus/cells/cell/cell.styles.d.ts.map +1 -1
  171. package/dist/components/lists-and-menus/cells/cell/cell.styles.js +22 -11
  172. package/dist/components/lists-and-menus/cells/cell/cell.styles.js.map +1 -1
  173. package/dist/components/lists-and-menus/cells/description-cell/description-cell.d.ts +2 -2
  174. package/dist/components/lists-and-menus/cells/description-cell/description-cell.d.ts.map +1 -1
  175. package/dist/components/lists-and-menus/cells/description-cell/description-cell.js +12 -7
  176. package/dist/components/lists-and-menus/cells/description-cell/description-cell.js.map +1 -1
  177. package/dist/components/lists-and-menus/cells/description-cell/description-cell.styles.d.ts.map +1 -1
  178. package/dist/components/lists-and-menus/cells/description-cell/description-cell.styles.js +4 -3
  179. package/dist/components/lists-and-menus/cells/description-cell/description-cell.styles.js.map +1 -1
  180. package/dist/components/lists-and-menus/cells/icon-cell/icon-cell.d.ts.map +1 -1
  181. package/dist/components/lists-and-menus/cells/icon-cell/icon-cell.js +1 -1
  182. package/dist/components/lists-and-menus/cells/icon-cell/icon-cell.js.map +1 -1
  183. package/dist/components/lists-and-menus/cells/spacer-cell/spacer-cell.d.ts.map +1 -1
  184. package/dist/components/lists-and-menus/cells/spacer-cell/spacer-cell.js +1 -1
  185. package/dist/components/lists-and-menus/cells/spacer-cell/spacer-cell.js.map +1 -1
  186. package/dist/components/lists-and-menus/cells/text-cell/text-cell.d.ts +3 -4
  187. package/dist/components/lists-and-menus/cells/text-cell/text-cell.d.ts.map +1 -1
  188. package/dist/components/lists-and-menus/cells/text-cell/text-cell.js +13 -9
  189. package/dist/components/lists-and-menus/cells/text-cell/text-cell.js.map +1 -1
  190. package/dist/components/lists-and-menus/cells/text-cell/text-cell.styles.d.ts.map +1 -1
  191. package/dist/components/lists-and-menus/cells/text-cell/text-cell.styles.js +20 -3
  192. package/dist/components/lists-and-menus/cells/text-cell/text-cell.styles.js.map +1 -1
  193. package/dist/components/lists-and-menus/cells/title-cell/title-cell.d.ts +3 -4
  194. package/dist/components/lists-and-menus/cells/title-cell/title-cell.d.ts.map +1 -1
  195. package/dist/components/lists-and-menus/cells/title-cell/title-cell.js +12 -8
  196. package/dist/components/lists-and-menus/cells/title-cell/title-cell.js.map +1 -1
  197. package/dist/components/lists-and-menus/cells/title-cell/title-cell.styles.d.ts.map +1 -1
  198. package/dist/components/lists-and-menus/cells/title-cell/title-cell.styles.js +20 -3
  199. package/dist/components/lists-and-menus/cells/title-cell/title-cell.styles.js.map +1 -1
  200. package/dist/components/lists-and-menus/list/list.d.ts.map +1 -1
  201. package/dist/components/lists-and-menus/list/list.i18n.js +1 -1
  202. package/dist/components/lists-and-menus/list/list.i18n.js.map +1 -1
  203. package/dist/components/lists-and-menus/list/list.js +7 -0
  204. package/dist/components/lists-and-menus/list/list.js.map +1 -1
  205. package/dist/components/navigation/document-tab-bar/document-tab-bar.template.js +1 -1
  206. package/dist/components/navigation/document-tab-bar/document-tab-bar.template.js.map +1 -1
  207. package/dist/components/navigation/menu-bar/menu-bar.js +4 -4
  208. package/dist/components/navigation/menu-bar/menu-bar.js.map +1 -1
  209. package/dist/components/navigation/menu-bar-item/menu-bar-item.d.ts +1 -1
  210. package/dist/components/navigation/menu-bar-item/menu-bar-item.d.ts.map +1 -1
  211. package/dist/components/navigation/menu-bar-item/menu-bar-item.js +6 -6
  212. package/dist/components/navigation/menu-bar-item/menu-bar-item.js.map +1 -1
  213. package/dist/components/navigation/menu-bar-item/menu-bar-item.styles.js +2 -2
  214. package/dist/components/navigation/menu-bar-item/menu-bar-item.template.js +1 -1
  215. package/dist/components/navigation/menu-bar-item/menu-bar-item.template.js.map +1 -1
  216. package/dist/components/navigation/pagination/pagination.d.ts +3 -2
  217. package/dist/components/navigation/pagination/pagination.d.ts.map +1 -1
  218. package/dist/components/navigation/pagination/pagination.js +5 -4
  219. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  220. package/dist/components/navigation/pagination/pagination.styles.d.ts.map +1 -1
  221. package/dist/components/navigation/pagination/pagination.styles.js +5 -3
  222. package/dist/components/navigation/pagination/pagination.styles.js.map +1 -1
  223. package/dist/components/navigation/tab-bar/tab-bar.d.ts +3 -1
  224. package/dist/components/navigation/tab-bar/tab-bar.d.ts.map +1 -1
  225. package/dist/components/navigation/tab-bar/tab-bar.js +5 -3
  226. package/dist/components/navigation/tab-bar/tab-bar.js.map +1 -1
  227. package/dist/components/navigation/tab-bar/tab-bar.styles.d.ts.map +1 -1
  228. package/dist/components/navigation/tab-bar/tab-bar.styles.js +35 -15
  229. package/dist/components/navigation/tab-bar/tab-bar.styles.js.map +1 -1
  230. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.js +2 -2
  231. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.js.map +1 -1
  232. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js +6 -6
  233. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js.map +1 -1
  234. package/dist/components/navigation/top-title-bar/top-title-bar.styles.d.ts.map +1 -1
  235. package/dist/components/navigation/top-title-bar/top-title-bar.styles.js +2 -0
  236. package/dist/components/navigation/top-title-bar/top-title-bar.styles.js.map +1 -1
  237. package/dist/components/navigation/top-title-bar/top-title-bar.template.d.ts.map +1 -1
  238. package/dist/components/navigation/top-title-bar/top-title-bar.template.js +1 -0
  239. package/dist/components/navigation/top-title-bar/top-title-bar.template.js.map +1 -1
  240. package/dist/components/{prism-typescript-Cdpexfvg.js → prism-typescript-BlIir5CV.js} +1 -1
  241. package/dist/components/status-and-feedback/badge/badge.d.ts +3 -3
  242. package/dist/components/status-and-feedback/badge/badge.d.ts.map +1 -1
  243. package/dist/components/status-and-feedback/badge/badge.js +3 -3
  244. package/dist/components/status-and-feedback/badge/badge.js.map +1 -1
  245. package/dist/components/status-and-feedback/badge/badge.styles.js +6 -6
  246. package/dist/css/global.css +1 -0
  247. package/dist/css/reset.css +7 -0
  248. package/dist/css/rich-text.css +21 -21
  249. package/dist/css/settings.css +110 -81
  250. package/dist/utilities/visibility-mixin.d.ts +18 -12
  251. package/dist/utilities/visibility-mixin.d.ts.map +1 -1
  252. package/dist/utilities/visibility-mixin.js +21 -14
  253. package/dist/utilities/visibility-mixin.js.map +1 -1
  254. package/package.json +2 -2
@@ -2,12 +2,14 @@
2
2
  * Nederlandse Digitale Dienst Icon Button Component (Lit + TypeScript)
3
3
  *
4
4
  * @element nldd-icon-button
5
- * @attr {string} variant - Button variant: 'accent-filled' | 'accent-outlined' | 'accent-transparent' | 'neutral-tinted' | 'neutral-transparent' | 'critical-tinted' | 'primary' | 'secondary' | 'destructive'
5
+ * @attr {string} variant - Button variant: 'accent-filled' | 'accent-transparent' | 'neutral-tinted' | 'neutral-transparent' | 'critical-tinted' | 'critical-transparent' | 'primary' | 'secondary' | 'destructive'
6
6
  * @attr {string} size - Button size: 'xs' | 'sm' | 'md' | 'lg' (default: 'md')
7
7
  * @attr {boolean} disabled - Disabled state
8
8
  * @attr {string} type - Button type for form submission: 'button' | 'submit' | 'reset' (ignored when href is set)
9
9
  * @attr {boolean} expandable - Whether the button opens a menu or popover and shows chevron next to the icon
10
- * @attr {boolean} full-width - Whether the button stretches to fill its container width
10
+ * @attr {boolean} expanded - Whether the popover/menu controlled by this button is currently open. Forwarded as aria-expanded on the inner button; toggles the is-open visual state.
11
+ * @attr {string} popup-type - Type of popup container this button opens: 'menu' | 'listbox' | 'dialog' | 'tree' | 'grid'. Sets aria-haspopup on the inner button and forces aria-expanded to always be present (true/false) so screen readers know the popup state.
12
+ * @attr {string} width - Width mode: 'full' (stretches to container) or any CSS length (e.g. '240px')
11
13
  * @attr {string} text - Button text, used as aria-label and shown below the icon in lg size
12
14
  * @attr {string} icon - Icon name for the nldd-icon element
13
15
  * @attr {string} accessible-label - Accessible label for screen readers. Overrides text as aria-label
@@ -35,8 +37,9 @@
35
37
  import { LitElement } from 'lit';
36
38
  import './../../content/icon/icon.js';
37
39
  export type Size = 'xs' | 'sm' | 'md' | 'lg';
38
- export type Variant = 'primary' | 'secondary' | 'destructive' | 'accent-filled' | 'accent-outlined' | 'accent-transparent' | 'neutral-tinted' | 'neutral-transparent' | 'critical-tinted';
40
+ export type Variant = 'primary' | 'secondary' | 'destructive' | 'accent-filled' | 'accent-transparent' | 'neutral-tinted' | 'neutral-transparent' | 'critical-tinted' | 'critical-transparent';
39
41
  export type ButtonType = 'button' | 'submit' | 'reset';
42
+ export type PopupType = 'menu' | 'listbox' | 'dialog' | 'tree' | 'grid';
40
43
  export declare class NLDDIconButton extends LitElement {
41
44
  static styles: import("lit").CSSResult;
42
45
  variant: Variant;
@@ -44,7 +47,15 @@ export declare class NLDDIconButton extends LitElement {
44
47
  disabled: boolean;
45
48
  type: ButtonType;
46
49
  expandable: boolean;
47
- fullWidth: boolean;
50
+ expanded: boolean;
51
+ /**
52
+ * Type of popup container this button opens. Sets `aria-haspopup` on the
53
+ * inner button and forces `aria-expanded` to always be present (true/false)
54
+ * so screen readers can announce both the popup type and its current state.
55
+ */
56
+ popupType?: PopupType;
57
+ /** Width mode: 'full' (stretch to container) or any CSS length. */
58
+ width: string;
48
59
  popovertarget: string | undefined;
49
60
  /** Button text, used as aria-label and shown below the icon in lg size. */
50
61
  text: string;
@@ -67,7 +78,7 @@ export declare class NLDDIconButton extends LitElement {
67
78
  /** Whether an icon is present via attribute or slot. */
68
79
  private get _hasIcon();
69
80
  private _warnedA11y;
70
- updated(): void;
81
+ updated(changedProperties: Map<string, unknown>): void;
71
82
  /** Resolves the effective rel value for link rendering. */
72
83
  _resolvedRel(): string;
73
84
  protected _handleClick(e: MouseEvent): void;
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAIjC,OAAO,8BAA8B,CAAC;AAEtC,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,MAAM,MAAM,OAAO,GAChB,SAAS,GACT,WAAW,GACX,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,iBAAiB,CAAC;AACrB,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvD,qBACa,cAAe,SAAQ,UAAU;IAC7C,OAAgB,MAAM,0BAAoB;IAG1C,OAAO,EAAE,OAAO,CAAoB;IAGpC,IAAI,EAAE,IAAI,CAAQ;IAGlB,QAAQ,UAAS;IAGjB,IAAI,EAAE,UAAU,CAAY;IAG5B,UAAU,UAAS;IAGnB,SAAS,UAAS;IAGlB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAa;IAE9C,2EAA2E;IAE3E,IAAI,SAAM;IAEV,gFAAgF;IAEhF,IAAI,SAAM;IAEV;kEAC8D;IAE9D,eAAe,SAAM;IAErB,mEAAmE;IAEnE,WAAW,UAAS;IAEpB,4DAA4D;IAE5D,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC,+DAA+D;IAE/D,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IAEvC;;;OAGG;IAEH,GAAG,EAAE,MAAM,GAAG,SAAS,CAAa;IAEpC,wDAAwD;IACxD,OAAO,KAAK,QAAQ,GAInB;IAED,OAAO,CAAC,WAAW,CAAS;IAEnB,OAAO,IAAI,IAAI;IAUxB,2DAA2D;IAC3D,YAAY,IAAI,MAAM;IAMtB,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAQ3C;;;OAGG;IACM,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAInC,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,kBAAkB,EAAE,cAAc,CAAC;KACnC;CACD"}
1
+ {"version":3,"file":"icon-button.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAIjC,OAAO,8BAA8B,CAAC;AAEtC,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC7C,MAAM,MAAM,OAAO,GAChB,SAAS,GACT,WAAW,GACX,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,iBAAiB,GACjB,sBAAsB,CAAC;AAC1B,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AACvD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAExE,qBACa,cAAe,SAAQ,UAAU;IAC7C,OAAgB,MAAM,0BAAoB;IAG1C,OAAO,EAAE,OAAO,CAAoB;IAGpC,IAAI,EAAE,IAAI,CAAQ;IAGlB,QAAQ,UAAS;IAGjB,IAAI,EAAE,UAAU,CAAY;IAG5B,UAAU,UAAS;IAGnB,QAAQ,UAAS;IAEjB;;;;OAIG;IAEH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,mEAAmE;IAEnE,KAAK,SAAM;IAGX,aAAa,EAAE,MAAM,GAAG,SAAS,CAAa;IAE9C,2EAA2E;IAE3E,IAAI,SAAM;IAEV,gFAAgF;IAEhF,IAAI,SAAM;IAEV;kEAC8D;IAE9D,eAAe,SAAM;IAErB,mEAAmE;IAEnE,WAAW,UAAS;IAEpB,4DAA4D;IAE5D,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC,+DAA+D;IAE/D,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IAEvC;;;OAGG;IAEH,GAAG,EAAE,MAAM,GAAG,SAAS,CAAa;IAEpC,wDAAwD;IACxD,OAAO,KAAK,QAAQ,GAInB;IAED,OAAO,CAAC,WAAW,CAAS;IAEnB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA0B/D,2DAA2D;IAC3D,YAAY,IAAI,MAAM;IAMtB,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAQ3C;;;OAGG;IACM,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAInC,MAAM;CAGf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,kBAAkB,EAAE,cAAc,CAAC;KACnC;CACD"}
@@ -8,12 +8,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  * Nederlandse Digitale Dienst Icon Button Component (Lit + TypeScript)
9
9
  *
10
10
  * @element nldd-icon-button
11
- * @attr {string} variant - Button variant: 'accent-filled' | 'accent-outlined' | 'accent-transparent' | 'neutral-tinted' | 'neutral-transparent' | 'critical-tinted' | 'primary' | 'secondary' | 'destructive'
11
+ * @attr {string} variant - Button variant: 'accent-filled' | 'accent-transparent' | 'neutral-tinted' | 'neutral-transparent' | 'critical-tinted' | 'critical-transparent' | 'primary' | 'secondary' | 'destructive'
12
12
  * @attr {string} size - Button size: 'xs' | 'sm' | 'md' | 'lg' (default: 'md')
13
13
  * @attr {boolean} disabled - Disabled state
14
14
  * @attr {string} type - Button type for form submission: 'button' | 'submit' | 'reset' (ignored when href is set)
15
15
  * @attr {boolean} expandable - Whether the button opens a menu or popover and shows chevron next to the icon
16
- * @attr {boolean} full-width - Whether the button stretches to fill its container width
16
+ * @attr {boolean} expanded - Whether the popover/menu controlled by this button is currently open. Forwarded as aria-expanded on the inner button; toggles the is-open visual state.
17
+ * @attr {string} popup-type - Type of popup container this button opens: 'menu' | 'listbox' | 'dialog' | 'tree' | 'grid'. Sets aria-haspopup on the inner button and forces aria-expanded to always be present (true/false) so screen readers know the popup state.
18
+ * @attr {string} width - Width mode: 'full' (stretches to container) or any CSS length (e.g. '240px')
17
19
  * @attr {string} text - Button text, used as aria-label and shown below the icon in lg size
18
20
  * @attr {string} icon - Icon name for the nldd-icon element
19
21
  * @attr {string} accessible-label - Accessible label for screen readers. Overrides text as aria-label
@@ -51,7 +53,9 @@ let NLDDIconButton = class NLDDIconButton extends LitElement {
51
53
  this.disabled = false;
52
54
  this.type = 'button';
53
55
  this.expandable = false;
54
- this.fullWidth = false;
56
+ this.expanded = false;
57
+ /** Width mode: 'full' (stretch to container) or any CSS length. */
58
+ this.width = '';
55
59
  this.popovertarget = undefined;
56
60
  /** Button text, used as aria-label and shown below the icon in lg size. */
57
61
  this.text = '';
@@ -80,7 +84,24 @@ let NLDDIconButton = class NLDDIconButton extends LitElement {
80
84
  const slot = this.shadowRoot?.querySelector('slot[name="icon"]');
81
85
  return (slot?.assignedElements().length ?? 0) > 0;
82
86
  }
83
- updated() {
87
+ updated(changedProperties) {
88
+ if (changedProperties.has('width')) {
89
+ const w = this.width;
90
+ // 'full' switches host to block + 100% via CSS attribute selector.
91
+ // A valid CSS length is applied as inline style.width on the host.
92
+ // In either case the inner button stretches via --_width, so
93
+ // a custom width on the host translates to a wide button instead
94
+ // of leaving the size-based square. Invalid values do nothing.
95
+ const isFull = w === 'full';
96
+ const isValidLength = !!w && !isFull && CSS.supports('width', w);
97
+ this.style.width = isValidLength ? w : '';
98
+ if (isFull || isValidLength) {
99
+ this.style.setProperty('--_width', '100%');
100
+ }
101
+ else {
102
+ this.style.removeProperty('--_width');
103
+ }
104
+ }
84
105
  const inaccessible = this._hasIcon && !this.text && !this.accessibleLabel;
85
106
  if (import.meta.env?.DEV && inaccessible && !this._warnedA11y) {
86
107
  this._warnedA11y = true;
@@ -133,8 +154,14 @@ __decorate([
133
154
  property({ type: Boolean, reflect: true, attribute: 'expandable' })
134
155
  ], NLDDIconButton.prototype, "expandable", void 0);
135
156
  __decorate([
136
- property({ type: Boolean, reflect: true, attribute: 'full-width' })
137
- ], NLDDIconButton.prototype, "fullWidth", void 0);
157
+ property({ type: Boolean, reflect: true })
158
+ ], NLDDIconButton.prototype, "expanded", void 0);
159
+ __decorate([
160
+ property({ type: String, reflect: true, attribute: 'popup-type' })
161
+ ], NLDDIconButton.prototype, "popupType", void 0);
162
+ __decorate([
163
+ property({ type: String, reflect: true })
164
+ ], NLDDIconButton.prototype, "width", void 0);
138
165
  __decorate([
139
166
  property({ type: String })
140
167
  ], NLDDIconButton.prototype, "popovertarget", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,yBAuV5B,CAAC"}
1
+ {"version":3,"file":"icon-button.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,yBAgZ5B,CAAC"}
@@ -5,11 +5,19 @@ export const iconButtonStyles = css `
5
5
  /* # Host */
6
6
 
7
7
  :host {
8
+ --_width: auto;
9
+ --_disclosure-icon-size: var(--primitives-space-20);
10
+
8
11
  display: inline-block;
12
+ max-width: 100%;
9
13
  -webkit-tap-highlight-color: transparent;
10
14
  }
11
15
 
12
- :host([full-width]) {
16
+ :host([size='xs']) {
17
+ --_disclosure-icon-size: var(--primitives-space-16);
18
+ }
19
+
20
+ :host([width="full"]) {
13
21
  display: block;
14
22
  width: 100%;
15
23
  flex-grow: 1;
@@ -35,13 +43,20 @@ export const iconButtonStyles = css `
35
43
  background: none;
36
44
  font: inherit;
37
45
  box-sizing: border-box;
46
+ text-decoration: none;
38
47
  display: inline-flex;
39
48
  flex-direction: column;
40
49
  align-items: center;
41
50
  justify-content: center;
51
+ width: var(--_width);
42
52
  transition:
43
53
  background-color var(--primitives-transition-duration-fast) var(--primitives-transition-easing-default),
44
- color var(--primitives-transition-duration-fast) var(--primitives-transition-easing-default);
54
+ color var(--primitives-transition-duration-fast) var(--primitives-transition-easing-default)
55
+ ;
56
+ }
57
+
58
+ a.icon-button {
59
+ cursor: var(--semantics-controls-link-cursor);
45
60
  }
46
61
 
47
62
  @media (prefers-reduced-motion: reduce) {
@@ -50,10 +65,6 @@ export const iconButtonStyles = css `
50
65
  }
51
66
  }
52
67
 
53
- a.icon-button {
54
- cursor: var(--semantics-controls-link-cursor);
55
- }
56
-
57
68
 
58
69
  /* # Focus */
59
70
 
@@ -73,75 +84,37 @@ export const iconButtonStyles = css `
73
84
  /* ## Size: XS */
74
85
 
75
86
  :host([size='xs']) .icon-button {
76
- width: auto;
77
87
  height: var(--semantics-controls-xs-min-size);
78
88
  min-width: var(--semantics-controls-xs-min-size);
79
89
  min-height: var(--semantics-controls-xs-min-size);
80
- padding: var(--primitives-space-4);
90
+ padding: calc((var(--semantics-controls-xs-min-size) - var(--semantics-buttons-xs-icon-only-icon-size)) / 2);
81
91
  border-radius: var(--semantics-controls-xs-corner-radius);
82
92
  }
83
93
 
84
- :host([size='xs']) .icon-button__icon {
85
- width: var(--primitives-space-16);
86
- height: var(--primitives-space-16);
87
- }
88
-
89
- :host([size='xs']) .icon-button__disclosure-icon {
90
- width: var(--primitives-space-16);
91
- height: var(--primitives-space-16);
92
- }
93
-
94
94
  /* ## Size: SM */
95
95
 
96
96
  :host([size='sm']) .icon-button {
97
- width: auto;
98
97
  height: var(--semantics-controls-sm-min-size);
99
98
  min-width: var(--semantics-controls-sm-min-size);
100
99
  min-height: var(--semantics-controls-sm-min-size);
101
- padding: var(--primitives-space-6);
100
+ padding: calc((var(--semantics-controls-sm-min-size) - var(--semantics-buttons-sm-icon-only-icon-size)) / 2);
102
101
  border-radius: var(--semantics-controls-sm-corner-radius);
103
102
  }
104
103
 
105
- :host([size='sm']) .icon-button__icon {
106
- width: var(--primitives-space-20);
107
- height: var(--primitives-space-20);
108
- }
109
-
110
- :host([size='sm']) .icon-button__disclosure-icon {
111
- width: var(--primitives-space-20);
112
- height: var(--primitives-space-20);
113
- margin-right: calc(var(--primitives-space-2) * -1);
114
- }
115
-
116
104
  /* ## Size: MD (Default) */
117
105
 
118
106
  :host([size='md']) .icon-button,
119
107
  :host(:not([size])) .icon-button {
120
- width: auto;
121
108
  height: var(--semantics-controls-md-min-size);
122
109
  min-width: var(--semantics-controls-md-min-size);
123
110
  min-height: var(--semantics-controls-md-min-size);
124
- padding: var(--primitives-space-8);
111
+ padding: calc((var(--semantics-controls-md-min-size) - var(--semantics-buttons-md-icon-only-icon-size)) / 2);
125
112
  border-radius: var(--semantics-controls-md-corner-radius);
126
113
  }
127
114
 
128
- :host([size='md']) .icon-button__icon,
129
- :host(:not([size])) .icon-button__icon {
130
- width: var(--primitives-space-24);
131
- height: var(--primitives-space-24);
132
- }
133
-
134
- :host([size='md']) .icon-button__disclosure-icon,
135
- :host(:not([size])) .icon-button__disclosure-icon {
136
- width: var(--primitives-space-20);
137
- height: var(--primitives-space-20);
138
- margin-right: calc(var(--primitives-space-2) * -1);
139
- }
140
-
141
115
  /* ## Size: LG */
142
116
 
143
117
  :host([size='lg']) .icon-button {
144
- width: auto;
145
118
  height: var(--semantics-controls-lg-min-size);
146
119
  min-width: var(--semantics-controls-lg-min-size);
147
120
  min-height: var(--semantics-controls-lg-min-size);
@@ -149,25 +122,11 @@ export const iconButtonStyles = css `
149
122
  border-radius: var(--semantics-controls-lg-corner-radius);
150
123
  }
151
124
 
152
- :host([size='lg']) .icon-button__icon {
153
- width: var(--primitives-space-24);
154
- height: var(--primitives-space-24);
155
- }
156
-
157
- :host([size='lg']) .icon-button__disclosure-icon {
158
- width: var(--primitives-space-20);
159
- height: var(--primitives-space-20);
160
- margin-right: calc(var(--primitives-space-2) * -1);
161
- }
162
-
163
- :host([full-width]) .icon-button {
164
- width: 100%;
165
- }
166
-
167
-
168
125
  /* # Variants */
169
126
 
170
- /* ## Variant: neutral-tinted (secondary, default) */
127
+ /* ## Neutral Tinted (Secondary, Default) */
128
+
129
+ /* ### Default neutral tinted icon button */
171
130
 
172
131
  :host([variant='neutral-tinted']) .icon-button,
173
132
  :host([variant='secondary']) .icon-button,
@@ -176,6 +135,8 @@ export const iconButtonStyles = css `
176
135
  color: var(--semantics-buttons-neutral-tinted-content-color);
177
136
  }
178
137
 
138
+ /* ### Hovered neutral tinted icon button */
139
+
179
140
  @media (hover: hover) {
180
141
  :host([variant='neutral-tinted']) .icon-button:hover,
181
142
  :host([variant='secondary']) .icon-button:hover,
@@ -185,6 +146,8 @@ export const iconButtonStyles = css `
185
146
  }
186
147
  }
187
148
 
149
+ /* ### Active neutral tinted icon button */
150
+
188
151
  :host([variant='neutral-tinted']) .icon-button:active,
189
152
  :host([variant='secondary']) .icon-button:active,
190
153
  :host(:not([variant])) .icon-button:active {
@@ -192,13 +155,46 @@ export const iconButtonStyles = css `
192
155
  color: var(--semantics-buttons-neutral-tinted-is-active-content-color);
193
156
  }
194
157
 
195
- /* ## Variant: neutral-transparent */
158
+ /* ### Open neutral tinted icon button */
159
+
160
+ :host([expanded][variant='neutral-tinted']) .icon-button,
161
+ :host([expanded][variant='secondary']) .icon-button,
162
+ :host([expanded]:not([variant])) .icon-button {
163
+ background-color: var(--semantics-buttons-neutral-tinted-is-open-background-color);
164
+ color: var(--semantics-buttons-neutral-tinted-is-open-content-color);
165
+ }
166
+
167
+ /* ### Open hovered neutral tinted icon button */
168
+
169
+ @media (hover: hover) {
170
+ :host([expanded][variant='neutral-tinted']) .icon-button:hover,
171
+ :host([expanded][variant='secondary']) .icon-button:hover,
172
+ :host([expanded]:not([variant])) .icon-button:hover {
173
+ background-color: var(--semantics-buttons-neutral-tinted-is-open-is-hovered-background-color);
174
+ color: var(--semantics-buttons-neutral-tinted-is-open-is-hovered-content-color);
175
+ }
176
+ }
177
+
178
+ /* ### Open active neutral tinted icon button */
179
+
180
+ :host([expanded][variant='neutral-tinted']) .icon-button:active,
181
+ :host([expanded][variant='secondary']) .icon-button:active,
182
+ :host([expanded]:not([variant])) .icon-button:active {
183
+ background-color: var(--semantics-buttons-neutral-tinted-is-open-is-active-background-color);
184
+ color: var(--semantics-buttons-neutral-tinted-is-open-is-active-content-color);
185
+ }
186
+
187
+ /* ## Neutral Transparent */
188
+
189
+ /* ### Default neutral transparent icon button */
196
190
 
197
191
  :host([variant='neutral-transparent']) .icon-button {
198
192
  background-color: transparent;
199
193
  color: var(--semantics-buttons-neutral-transparent-content-color);
200
194
  }
201
195
 
196
+ /* ### Hovered neutral transparent icon button */
197
+
202
198
  @media (hover: hover) {
203
199
  :host([variant='neutral-transparent']) .icon-button:hover {
204
200
  background-color: transparent;
@@ -206,11 +202,15 @@ export const iconButtonStyles = css `
206
202
  }
207
203
  }
208
204
 
205
+ /* ### Active neutral transparent icon button */
206
+
209
207
  :host([variant='neutral-transparent']) .icon-button:active {
210
208
  color: var(--semantics-buttons-neutral-transparent-is-active-content-color);
211
209
  }
212
210
 
213
- /* ## Variant: accent-filled (primary) */
211
+ /* ## Accent Filled (Primary) */
212
+
213
+ /* ### Default accent filled icon button */
214
214
 
215
215
  :host([variant='accent-filled']) .icon-button,
216
216
  :host([variant='primary']) .icon-button {
@@ -218,6 +218,8 @@ export const iconButtonStyles = css `
218
218
  color: var(--semantics-buttons-accent-filled-content-color);
219
219
  }
220
220
 
221
+ /* ### Hovered accent filled icon button */
222
+
221
223
  @media (hover: hover) {
222
224
  :host([variant='accent-filled']) .icon-button:hover,
223
225
  :host([variant='primary']) .icon-button:hover {
@@ -226,68 +228,66 @@ export const iconButtonStyles = css `
226
228
  }
227
229
  }
228
230
 
231
+ /* ### Active accent filled icon button */
232
+
229
233
  :host([variant='accent-filled']) .icon-button:active,
230
234
  :host([variant='primary']) .icon-button:active {
231
235
  background-color: var(--semantics-buttons-accent-filled-is-active-background-color);
232
236
  color: var(--semantics-buttons-accent-filled-is-active-content-color);
233
237
  }
234
238
 
235
- /* ## Variant: accent-outlined */
236
-
237
- :host([variant='accent-outlined']) .icon-button {
238
- background-color: transparent;
239
- border-width: var(--semantics-buttons-accent-outlined-border-thickness);
240
- border-style: solid;
241
- border-color: var(--semantics-buttons-accent-outlined-border-color);
242
- color: var(--semantics-buttons-accent-outlined-content-color);
243
- }
239
+ /* ### Open accent filled icon button */
244
240
 
245
- :host([variant='accent-outlined'][size='lg']) .icon-button {
246
- padding: calc(var(--primitives-space-8) - var(--semantics-buttons-accent-outlined-border-thickness));
241
+ :host([expanded][variant='accent-filled']) .icon-button,
242
+ :host([expanded][variant='primary']) .icon-button {
243
+ background-color: var(--semantics-buttons-accent-filled-is-open-background-color);
244
+ color: var(--semantics-buttons-accent-filled-is-open-content-color);
247
245
  }
248
246
 
249
- :host([variant='accent-outlined'][size='md']) .icon-button {
250
- padding: calc(var(--primitives-space-8) - var(--semantics-buttons-accent-outlined-border-thickness));
251
- }
252
-
253
- :host([variant='accent-outlined'][size='sm']) .icon-button {
254
- padding: calc(var(--primitives-space-6) - var(--semantics-buttons-accent-outlined-border-thickness));
255
- }
256
-
257
- :host([variant='accent-outlined'][size='xs']) .icon-button {
258
- padding: calc(var(--primitives-space-4) - var(--semantics-buttons-accent-outlined-border-thickness));
259
- }
247
+ /* ### Open hovered accent filled icon button */
260
248
 
261
249
  @media (hover: hover) {
262
- :host([variant='accent-outlined']) .icon-button:hover {
263
- border-color: var(--semantics-buttons-accent-outlined-is-hovered-border-color);
264
- color: var(--semantics-buttons-accent-outlined-is-hovered-content-color);
250
+ :host([expanded][variant='accent-filled']) .icon-button:hover,
251
+ :host([expanded][variant='primary']) .icon-button:hover {
252
+ background-color: var(--semantics-buttons-accent-filled-is-open-is-hovered-background-color);
253
+ color: var(--semantics-buttons-accent-filled-is-open-is-hovered-content-color);
265
254
  }
266
255
  }
267
256
 
268
- :host([variant='accent-outlined']) .icon-button:active {
269
- border-color: var(--semantics-buttons-accent-outlined-is-active-border-color);
270
- color: var(--semantics-buttons-accent-outlined-is-active-content-color);
257
+ /* ### Open active accent filled icon button */
258
+
259
+ :host([expanded][variant='accent-filled']) .icon-button:active,
260
+ :host([expanded][variant='primary']) .icon-button:active {
261
+ background-color: var(--semantics-buttons-accent-filled-is-open-is-active-background-color);
262
+ color: var(--semantics-buttons-accent-filled-is-open-is-active-content-color);
271
263
  }
272
264
 
273
- /* ## Variant: accent-transparent */
265
+ /* ## Accent Transparent */
266
+
267
+ /* ### Default accent transparent icon button */
274
268
 
275
269
  :host([variant='accent-transparent']) .icon-button {
276
270
  background-color: transparent;
277
271
  color: var(--semantics-buttons-accent-transparent-content-color);
278
272
  }
279
273
 
274
+ /* ### Hovered accent transparent icon button */
275
+
280
276
  @media (hover: hover) {
281
277
  :host([variant='accent-transparent']) .icon-button:hover {
282
278
  color: var(--semantics-buttons-accent-transparent-is-hovered-content-color);
283
279
  }
284
280
  }
285
281
 
282
+ /* ### Active accent transparent icon button */
283
+
286
284
  :host([variant='accent-transparent']) .icon-button:active {
287
285
  color: var(--semantics-buttons-accent-transparent-is-active-content-color);
288
286
  }
289
287
 
290
- /* ## Variant: critical-tinted (destructive) */
288
+ /* ## Critical Tinted (Destructive) */
289
+
290
+ /* ### Default critical tinted icon button */
291
291
 
292
292
  :host([variant='critical-tinted']) .icon-button,
293
293
  :host([variant='destructive']) .icon-button {
@@ -295,6 +295,8 @@ export const iconButtonStyles = css `
295
295
  color: var(--semantics-buttons-critical-tinted-content-color);
296
296
  }
297
297
 
298
+ /* ### Hovered critical tinted icon button */
299
+
298
300
  @media (hover: hover) {
299
301
  :host([variant='critical-tinted']) .icon-button:hover,
300
302
  :host([variant='destructive']) .icon-button:hover {
@@ -303,12 +305,37 @@ export const iconButtonStyles = css `
303
305
  }
304
306
  }
305
307
 
308
+ /* ### Active critical tinted icon button */
309
+
306
310
  :host([variant='critical-tinted']) .icon-button:active,
307
311
  :host([variant='destructive']) .icon-button:active {
308
312
  background-color: var(--semantics-buttons-critical-tinted-is-active-background-color);
309
313
  color: var(--semantics-buttons-critical-tinted-is-active-content-color);
310
314
  }
311
315
 
316
+ /* ## Critical Transparent */
317
+
318
+ /* ### Default critical transparent icon button */
319
+
320
+ :host([variant='critical-transparent']) .icon-button {
321
+ background-color: transparent;
322
+ color: var(--semantics-buttons-critical-transparent-content-color);
323
+ }
324
+
325
+ /* ### Hovered critical transparent icon button */
326
+
327
+ @media (hover: hover) {
328
+ :host([variant='critical-transparent']) .icon-button:hover {
329
+ color: var(--semantics-buttons-critical-transparent-is-hovered-content-color);
330
+ }
331
+ }
332
+
333
+ /* ### Active critical transparent icon button */
334
+
335
+ :host([variant='critical-transparent']) .icon-button:active {
336
+ color: var(--semantics-buttons-critical-transparent-is-active-content-color);
337
+ }
338
+
312
339
 
313
340
  /* # Elements */
314
341
 
@@ -326,9 +353,39 @@ export const iconButtonStyles = css `
326
353
  justify-content: center;
327
354
  }
328
355
 
356
+ :host([size='xs']) .icon-button__icon {
357
+ width: var(--semantics-buttons-xs-icon-only-icon-size);
358
+ height: var(--semantics-buttons-xs-icon-only-icon-size);
359
+ }
360
+
361
+ :host([size='sm']) .icon-button__icon {
362
+ width: var(--semantics-buttons-sm-icon-only-icon-size);
363
+ height: var(--semantics-buttons-sm-icon-only-icon-size);
364
+ }
365
+
366
+ :host([size='md']) .icon-button__icon,
367
+ :host(:not([size])) .icon-button__icon {
368
+ width: var(--semantics-buttons-md-icon-only-icon-size);
369
+ height: var(--semantics-buttons-md-icon-only-icon-size);
370
+ }
371
+
372
+ :host([size='lg']) .icon-button__icon {
373
+ width: var(--semantics-buttons-md-icon-only-icon-size);
374
+ height: var(--semantics-buttons-md-icon-only-icon-size);
375
+ }
376
+
329
377
  .icon-button__disclosure-icon {
330
378
  display: flex;
331
379
  flex-shrink: 0;
380
+ width: var(--_disclosure-icon-size);
381
+ height: var(--_disclosure-icon-size);
382
+ }
383
+
384
+ :host([size='sm']) .icon-button__disclosure-icon,
385
+ :host([size='md']) .icon-button__disclosure-icon,
386
+ :host(:not([size])) .icon-button__disclosure-icon,
387
+ :host([size='lg']) .icon-button__disclosure-icon {
388
+ margin-right: calc(var(--primitives-space-2) * -1);
332
389
  }
333
390
 
334
391
  .icon-button__text {
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.styles.js","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuVlC,CAAC"}
1
+ {"version":3,"file":"icon-button.styles.js","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgZlC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.template.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.template.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,kCAAkC,CAAC;AAsB1C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,wCAgD5C"}
1
+ {"version":3,"file":"icon-button.template.d.ts","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.template.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,kCAAkC,CAAC;AAsB1C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,wCA4D5C"}
@@ -25,6 +25,13 @@ export function template() {
25
25
  // Tooltip text: accessible-label always, or text when not visible (non-lg)
26
26
  const tooltipText = this.accessibleLabel
27
27
  || (this.size !== 'lg' ? this.text : '');
28
+ // `expandable` (disclosure widget signal) or `popup-type` (popup container
29
+ // signal) both require aria-expanded to always be present so screen
30
+ // readers know the current open/closed state. Without one of these, only
31
+ // open=true forwards aria-expanded — keeps plain buttons free of
32
+ // irrelevant ARIA attributes.
33
+ const isDisclosure = this.expandable || !!this.popupType;
34
+ const ariaExpanded = isDisclosure ? String(this.expanded) : (this.expanded ? 'true' : nothing);
28
35
  const renderButton = () => {
29
36
  if (this.href) {
30
37
  const resolvedRel = this._resolvedRel();
@@ -35,6 +42,8 @@ export function template() {
35
42
  rel=${resolvedRel || nothing}
36
43
  aria-disabled=${this.disabled ? 'true' : nothing}
37
44
  aria-label=${label}
45
+ aria-haspopup=${this.popupType || nothing}
46
+ aria-expanded=${ariaExpanded}
38
47
  @click=${this._handleClick}
39
48
  >
40
49
  ${content}
@@ -47,6 +56,8 @@ export function template() {
47
56
  ?disabled=${this.disabled}
48
57
  aria-disabled=${this.disabled ? 'true' : nothing}
49
58
  aria-label=${label}
59
+ aria-haspopup=${this.popupType || nothing}
60
+ aria-expanded=${ariaExpanded}
50
61
  popovertarget=${this.popovertarget || nothing}
51
62
  @click=${this._handleClick}
52
63
  >
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.template.js","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,kCAAkC,CAAC;AAE1C,SAAS,aAAa,CAAC,SAAyB;IAC/C,OAAO,IAAI,CAAA;;;MAGN,SAAS,CAAC,IAAI;QACf,CAAC,CAAC,IAAI,CAAA,mBAAmB,SAAS,CAAC,IAAI,eAAe;QACtD,CAAC,CAAC,IAAI,CAAA,iCAAiC,SAAS,CAAC,aAAa,UAAU;;KAExE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA;;;;IAI5B,CAAC,CAAC,CAAC,OAAO;;IAEV,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;qCACY,SAAS,CAAC,IAAI;GAChD,CAAC,CAAC,CAAC,EAAE;EACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAC3D,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEpC,2EAA2E;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe;WACpC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE1C,MAAM,YAAY,GAAG,GAAG,EAAE;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,OAAO,IAAI,CAAA;;YAEF,IAAI,CAAC,IAAI;cACP,IAAI,CAAC,MAAM,IAAI,OAAO;WACzB,WAAW,IAAI,OAAO;qBACZ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;kBACnC,KAAK;cACT,IAAI,CAAC,YAAY;;OAExB,OAAO;;IAEV,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;;WAEF,IAAI,CAAC,IAAI;gBACJ,IAAI,CAAC,QAAQ;oBACT,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;iBACnC,KAAK;oBACF,IAAI,CAAC,aAAa,IAAI,OAAO;aACpC,IAAI,CAAC,YAAY;;MAExB,OAAO;;GAEV,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,OAAO,IAAI,CAAA;wBACW,WAAW;MAC7B,YAAY,EAAE;;GAEjB,CAAC;IACH,CAAC;IAED,OAAO,YAAY,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"icon-button.template.js","sourceRoot":"","sources":["../../../../src/components/actions/icon-button/icon-button.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEpC,OAAO,kCAAkC,CAAC;AAE1C,SAAS,aAAa,CAAC,SAAyB;IAC/C,OAAO,IAAI,CAAA;;;MAGN,SAAS,CAAC,IAAI;QACf,CAAC,CAAC,IAAI,CAAA,mBAAmB,SAAS,CAAC,IAAI,eAAe;QACtD,CAAC,CAAC,IAAI,CAAA,iCAAiC,SAAS,CAAC,aAAa,UAAU;;KAExE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA;;;;IAI5B,CAAC,CAAC,CAAC,OAAO;;IAEV,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;qCACY,SAAS,CAAC,IAAI;GAChD,CAAC,CAAC,CAAC,EAAE;EACN,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACvB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;IAC3D,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEpC,2EAA2E;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe;WACpC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE1C,2EAA2E;IAC3E,oEAAoE;IACpE,yEAAyE;IACzE,iEAAiE;IACjE,8BAA8B;IAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACzD,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAE/F,MAAM,YAAY,GAAG,GAAG,EAAE;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,OAAO,IAAI,CAAA;;YAEF,IAAI,CAAC,IAAI;cACP,IAAI,CAAC,MAAM,IAAI,OAAO;WACzB,WAAW,IAAI,OAAO;qBACZ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;kBACnC,KAAK;qBACF,IAAI,CAAC,SAAS,IAAI,OAAO;qBACzB,YAAY;cACnB,IAAI,CAAC,YAAY;;OAExB,OAAO;;IAEV,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;;WAEF,IAAI,CAAC,IAAI;gBACJ,IAAI,CAAC,QAAQ;oBACT,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;iBACnC,KAAK;oBACF,IAAI,CAAC,SAAS,IAAI,OAAO;oBACzB,YAAY;oBACZ,IAAI,CAAC,aAAa,IAAI,OAAO;aACpC,IAAI,CAAC,YAAY;;MAExB,OAAO;;GAEV,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtC,OAAO,IAAI,CAAA;wBACW,WAAW;MAC7B,YAAY,EAAE;;GAEjB,CAAC;IACH,CAAC;IAED,OAAO,YAAY,EAAE,CAAC;AACvB,CAAC"}
@@ -18,8 +18,8 @@ export function template() {
18
18
  text=${this._t('components.split-button.menu-action')}
19
19
  hide-tooltip
20
20
  ?disabled=${this.disabled}
21
- aria-haspopup="menu"
22
- aria-expanded=${this._hasMenuItems ? String(this._menuIsOpen) : nothing}
21
+ ?expanded=${this._menuIsOpen}
22
+ popup-type="menu"
23
23
  @click=${this._handleMenuClick}
24
24
  ></nldd-icon-button>
25
25
  </div>