@nldd/design-system 0.8.43 → 0.8.44

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 (235) hide show
  1. package/dist/components/actions/button/button.d.ts +19 -1
  2. package/dist/components/actions/button/button.d.ts.map +1 -1
  3. package/dist/components/actions/button/button.js +25 -1
  4. package/dist/components/actions/button/button.js.map +1 -1
  5. package/dist/components/actions/button/button.styles.js +28 -28
  6. package/dist/components/actions/button/button.template.d.ts.map +1 -1
  7. package/dist/components/actions/button/button.template.js +7 -0
  8. package/dist/components/actions/button/button.template.js.map +1 -1
  9. package/dist/components/actions/button-bar/button-bar.styles.js +4 -4
  10. package/dist/components/actions/button-group/button-group.styles.js +1 -1
  11. package/dist/components/actions/icon-button/icon-button.d.ts +28 -7
  12. package/dist/components/actions/icon-button/icon-button.d.ts.map +1 -1
  13. package/dist/components/actions/icon-button/icon-button.js +36 -9
  14. package/dist/components/actions/icon-button/icon-button.js.map +1 -1
  15. package/dist/components/actions/icon-button/icon-button.styles.js +25 -25
  16. package/dist/components/actions/icon-button/icon-button.template.d.ts.map +1 -1
  17. package/dist/components/actions/icon-button/icon-button.template.js +9 -2
  18. package/dist/components/actions/icon-button/icon-button.template.js.map +1 -1
  19. package/dist/components/actions/split-button/split-button.d.ts +5 -5
  20. package/dist/components/actions/split-button/split-button.d.ts.map +1 -1
  21. package/dist/components/actions/split-button/split-button.js +19 -15
  22. package/dist/components/actions/split-button/split-button.js.map +1 -1
  23. package/dist/components/actions/split-button/split-button.styles.js +1 -1
  24. package/dist/components/actions/split-button/split-button.template.d.ts.map +1 -1
  25. package/dist/components/actions/split-button/split-button.template.js +14 -12
  26. package/dist/components/actions/split-button/split-button.template.js.map +1 -1
  27. package/dist/components/actions/toolbar/toolbar.d.ts +0 -2
  28. package/dist/components/actions/toolbar/toolbar.d.ts.map +1 -1
  29. package/dist/components/actions/toolbar/toolbar.js +20 -17
  30. package/dist/components/actions/toolbar/toolbar.js.map +1 -1
  31. package/dist/components/actions/toolbar/toolbar.styles.js +17 -17
  32. package/dist/components/actions/toolbar/toolbar.template.d.ts +1 -1
  33. package/dist/components/actions/toolbar/toolbar.template.d.ts.map +1 -1
  34. package/dist/components/actions/toolbar/toolbar.template.js +13 -5
  35. package/dist/components/actions/toolbar/toolbar.template.js.map +1 -1
  36. package/dist/components/components.js +1 -1
  37. package/dist/components/content/blockquote/blockquote.styles.js +5 -5
  38. package/dist/components/content/code/code.styles.js +3 -3
  39. package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
  40. package/dist/components/content/icon/icon-aliases.js +15 -0
  41. package/dist/components/content/icon/icon-aliases.js.map +1 -1
  42. package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
  43. package/dist/components/content/icon/icon-registry.js +11 -5
  44. package/dist/components/content/icon/icon-registry.js.map +1 -1
  45. package/dist/components/content/icon/icon.styles.js +1 -1
  46. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.d.ts +22 -0
  47. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.d.ts.map +1 -1
  48. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.js +46 -2
  49. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  50. package/dist/components/content/keyboard-shortcut/keyboard-shortcut.styles.js +5 -5
  51. package/dist/components/content/rich-text/rich-text.d.ts +3 -1
  52. package/dist/components/content/rich-text/rich-text.d.ts.map +1 -1
  53. package/dist/components/content/rich-text/rich-text.js +6 -1
  54. package/dist/components/content/rich-text/rich-text.js.map +1 -1
  55. package/dist/components/content/tag/tag.styles.js +6 -6
  56. package/dist/components/content/title/title.styles.js +2 -2
  57. package/dist/components/content/tooltip/tooltip.styles.js +8 -8
  58. package/dist/components/forms/form-actions/form-actions.styles.js +2 -2
  59. package/dist/components/forms/form-field/form-field.styles.js +6 -6
  60. package/dist/components/{index-By2jYHEw.js → index-1v33GjGX.js} +2950 -2632
  61. package/dist/components/index.d.ts +1 -1
  62. package/dist/components/index.d.ts.map +1 -1
  63. package/dist/components/index.js +1 -1
  64. package/dist/components/index.js.map +1 -1
  65. package/dist/components/inputs/checkbox/checkbox.styles.js +9 -9
  66. package/dist/components/inputs/checkbox-field/checkbox-field.styles.js +4 -4
  67. package/dist/components/inputs/code-editor/code-editor.styles.js +14 -14
  68. package/dist/components/inputs/combo-box/combo-box.styles.d.ts.map +1 -1
  69. package/dist/components/inputs/combo-box/combo-box.styles.js +15 -14
  70. package/dist/components/inputs/combo-box/combo-box.styles.js.map +1 -1
  71. package/dist/components/inputs/combo-box/combo-box.template.js +2 -2
  72. package/dist/components/inputs/dropdown/dropdown.d.ts +7 -5
  73. package/dist/components/inputs/dropdown/dropdown.d.ts.map +1 -1
  74. package/dist/components/inputs/dropdown/dropdown.js +11 -9
  75. package/dist/components/inputs/dropdown/dropdown.js.map +1 -1
  76. package/dist/components/inputs/dropdown/dropdown.styles.d.ts.map +1 -1
  77. package/dist/components/inputs/dropdown/dropdown.styles.js +23 -17
  78. package/dist/components/inputs/dropdown/dropdown.styles.js.map +1 -1
  79. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.d.ts.map +1 -1
  80. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.js +12 -11
  81. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.js.map +1 -1
  82. package/dist/components/inputs/number-field/number-field.styles.d.ts.map +1 -1
  83. package/dist/components/inputs/number-field/number-field.styles.js +16 -15
  84. package/dist/components/inputs/number-field/number-field.styles.js.map +1 -1
  85. package/dist/components/inputs/number-field/number-field.template.js +2 -2
  86. package/dist/components/inputs/password-field/password-field.d.ts +8 -8
  87. package/dist/components/inputs/password-field/password-field.d.ts.map +1 -1
  88. package/dist/components/inputs/password-field/password-field.js +16 -16
  89. package/dist/components/inputs/password-field/password-field.js.map +1 -1
  90. package/dist/components/inputs/password-field/password-field.styles.d.ts.map +1 -1
  91. package/dist/components/inputs/password-field/password-field.styles.js +18 -17
  92. package/dist/components/inputs/password-field/password-field.styles.js.map +1 -1
  93. package/dist/components/inputs/password-field/password-field.template.js +3 -3
  94. package/dist/components/inputs/password-field/password-field.template.js.map +1 -1
  95. package/dist/components/inputs/radio-button/radio-button.styles.js +11 -11
  96. package/dist/components/inputs/radio-button-field/radio-button-field.styles.js +4 -4
  97. package/dist/components/inputs/search-field/search-field.styles.d.ts.map +1 -1
  98. package/dist/components/inputs/search-field/search-field.styles.js +17 -16
  99. package/dist/components/inputs/search-field/search-field.styles.js.map +1 -1
  100. package/dist/components/inputs/segmented-control/segmented-control.styles.d.ts.map +1 -1
  101. package/dist/components/inputs/segmented-control/segmented-control.styles.js +37 -67
  102. package/dist/components/inputs/segmented-control/segmented-control.styles.js.map +1 -1
  103. package/dist/components/inputs/stepper/stepper.styles.js +2 -2
  104. package/dist/components/inputs/stepper/stepper.template.js +2 -2
  105. package/dist/components/inputs/switch/switch.styles.js +13 -13
  106. package/dist/components/inputs/switch-field/switch-field.styles.js +4 -4
  107. package/dist/components/inputs/text-field/text-field.styles.d.ts.map +1 -1
  108. package/dist/components/inputs/text-field/text-field.styles.js +17 -16
  109. package/dist/components/inputs/text-field/text-field.styles.js.map +1 -1
  110. package/dist/components/inputs/toggle-button/toggle-button.styles.js +12 -12
  111. package/dist/components/inputs/token/token.styles.js +5 -5
  112. package/dist/components/inputs/token/token.template.js +1 -1
  113. package/dist/components/layout/app-view/app-view.styles.js +4 -4
  114. package/dist/components/layout/box/box.styles.js +2 -2
  115. package/dist/components/layout/card/card.styles.js +4 -4
  116. package/dist/components/layout/collection/collection.styles.js +6 -6
  117. package/dist/components/layout/divider/divider.styles.js +2 -2
  118. package/dist/components/layout/page/page.styles.js +9 -9
  119. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.styles.d.ts.map +1 -1
  120. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.styles.js +15 -14
  121. package/dist/components/layout/page-sections/full-bleed-section/full-bleed-section.styles.js.map +1 -1
  122. package/dist/components/layout/page-sections/one-half-one-half-section/one-half-one-half-section.styles.js +6 -6
  123. package/dist/components/layout/page-sections/one-third-two-thirds-section/one-third-two-thirds-section.styles.js +6 -6
  124. package/dist/components/layout/page-sections/simple-section/simple-section.styles.js +14 -14
  125. package/dist/components/layout/page-sections/simple-section/simple-section.styles.js.map +1 -1
  126. package/dist/components/layout/page-sections/two-thirds-one-third-section/two-thirds-one-third-section.styles.js +6 -6
  127. package/dist/components/layout/popover/popover.styles.js +4 -4
  128. package/dist/components/layout/sheet/sheet.d.ts +17 -4
  129. package/dist/components/layout/sheet/sheet.d.ts.map +1 -1
  130. package/dist/components/layout/sheet/sheet.js +40 -6
  131. package/dist/components/layout/sheet/sheet.js.map +1 -1
  132. package/dist/components/layout/sheet/sheet.styles.d.ts.map +1 -1
  133. package/dist/components/layout/sheet/sheet.styles.js +28 -35
  134. package/dist/components/layout/sheet/sheet.styles.js.map +1 -1
  135. package/dist/components/layout/spacer/spacer.styles.js +5 -5
  136. package/dist/components/layout/split-views/bar-split-view/bar-split-view.styles.js +9 -9
  137. package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.styles.js +34 -34
  138. package/dist/components/layout/split-views/side-by-side-split-view/side-by-side-split-view.styles.js +6 -6
  139. package/dist/components/layout/split-views/split-view-divider/split-view-divider.styles.js +4 -4
  140. package/dist/components/layout/split-views/split-view-pane/split-view-pane.styles.js +3 -3
  141. package/dist/components/layout/split-views/stacked-split-view/stacked-split-view.styles.js +7 -7
  142. package/dist/components/layout/window/window.styles.js +8 -8
  143. package/dist/components/lists-and-menus/cells/cell/cell.styles.js +5 -5
  144. package/dist/components/lists-and-menus/cells/description-cell/description-cell.styles.js +5 -5
  145. package/dist/components/lists-and-menus/cells/drag-handle-cell/drag-handle-cell.styles.js +9 -9
  146. package/dist/components/lists-and-menus/cells/spacer-cell/spacer-cell.styles.js +1 -1
  147. package/dist/components/lists-and-menus/cells/text-cell/text-cell.styles.js +6 -6
  148. package/dist/components/lists-and-menus/cells/title-cell/title-cell.styles.js +6 -6
  149. package/dist/components/lists-and-menus/list/list.styles.js +13 -13
  150. package/dist/components/lists-and-menus/list-item/list-item.styles.js +21 -21
  151. package/dist/components/lists-and-menus/menu/menu.d.ts +160 -29
  152. package/dist/components/lists-and-menus/menu/menu.d.ts.map +1 -1
  153. package/dist/components/lists-and-menus/menu/menu.i18n.d.ts +2 -0
  154. package/dist/components/lists-and-menus/menu/menu.i18n.d.ts.map +1 -1
  155. package/dist/components/lists-and-menus/menu/menu.i18n.js +2 -0
  156. package/dist/components/lists-and-menus/menu/menu.i18n.js.map +1 -1
  157. package/dist/components/lists-and-menus/menu/menu.js +534 -102
  158. package/dist/components/lists-and-menus/menu/menu.js.map +1 -1
  159. package/dist/components/lists-and-menus/menu/menu.styles.d.ts.map +1 -1
  160. package/dist/components/lists-and-menus/menu/menu.styles.js +93 -32
  161. package/dist/components/lists-and-menus/menu/menu.styles.js.map +1 -1
  162. package/dist/components/lists-and-menus/menu/menu.template.d.ts.map +1 -1
  163. package/dist/components/lists-and-menus/menu/menu.template.js +13 -0
  164. package/dist/components/lists-and-menus/menu/menu.template.js.map +1 -1
  165. package/dist/components/navigation/document-tab-bar/document-tab-bar.d.ts +0 -2
  166. package/dist/components/navigation/document-tab-bar/document-tab-bar.d.ts.map +1 -1
  167. package/dist/components/navigation/document-tab-bar/document-tab-bar.js +20 -22
  168. package/dist/components/navigation/document-tab-bar/document-tab-bar.js.map +1 -1
  169. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.js +48 -48
  170. package/dist/components/navigation/document-tab-bar/document-tab-bar.template.d.ts.map +1 -1
  171. package/dist/components/navigation/document-tab-bar/document-tab-bar.template.js +11 -9
  172. package/dist/components/navigation/document-tab-bar/document-tab-bar.template.js.map +1 -1
  173. package/dist/components/navigation/link/link.d.ts.map +1 -0
  174. package/dist/components/navigation/link/link.js.map +1 -0
  175. package/dist/components/navigation/link/link.styles.d.ts.map +1 -0
  176. package/dist/components/{actions → navigation}/link/link.styles.js +4 -4
  177. package/dist/components/navigation/link/link.styles.js.map +1 -0
  178. package/dist/components/navigation/link/link.template.d.ts.map +1 -0
  179. package/dist/components/navigation/link/link.template.js.map +1 -0
  180. package/dist/components/navigation/menu-bar/menu-bar.d.ts +17 -5
  181. package/dist/components/navigation/menu-bar/menu-bar.d.ts.map +1 -1
  182. package/dist/components/navigation/menu-bar/menu-bar.js +79 -34
  183. package/dist/components/navigation/menu-bar/menu-bar.js.map +1 -1
  184. package/dist/components/navigation/menu-bar/menu-bar.styles.js +2 -2
  185. package/dist/components/navigation/menu-bar/menu-bar.template.d.ts.map +1 -1
  186. package/dist/components/navigation/menu-bar/menu-bar.template.js +12 -2
  187. package/dist/components/navigation/menu-bar/menu-bar.template.js.map +1 -1
  188. package/dist/components/navigation/menu-bar-item/menu-bar-item.d.ts +16 -0
  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 +22 -0
  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.styles.js +19 -19
  193. package/dist/components/navigation/menu-bar-item/menu-bar-item.template.d.ts.map +1 -1
  194. package/dist/components/navigation/menu-bar-item/menu-bar-item.template.js +2 -0
  195. package/dist/components/navigation/menu-bar-item/menu-bar-item.template.js.map +1 -1
  196. package/dist/components/navigation/pagination/pagination.d.ts +12 -0
  197. package/dist/components/navigation/pagination/pagination.d.ts.map +1 -1
  198. package/dist/components/navigation/pagination/pagination.js +19 -0
  199. package/dist/components/navigation/pagination/pagination.js.map +1 -1
  200. package/dist/components/navigation/pagination/pagination.styles.d.ts.map +1 -1
  201. package/dist/components/navigation/pagination/pagination.styles.js +47 -77
  202. package/dist/components/navigation/pagination/pagination.styles.js.map +1 -1
  203. package/dist/components/navigation/pagination/pagination.template.d.ts.map +1 -1
  204. package/dist/components/navigation/pagination/pagination.template.js +23 -16
  205. package/dist/components/navigation/pagination/pagination.template.js.map +1 -1
  206. package/dist/components/navigation/skip-link/skip-link.styles.js +9 -9
  207. package/dist/components/navigation/tab-bar/tab-bar.styles.d.ts.map +1 -1
  208. package/dist/components/navigation/tab-bar/tab-bar.styles.js +28 -51
  209. package/dist/components/navigation/tab-bar/tab-bar.styles.js.map +1 -1
  210. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.d.ts.map +1 -1
  211. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js +57 -70
  212. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js.map +1 -1
  213. package/dist/components/navigation/top-title-bar/top-title-bar.styles.js +15 -15
  214. package/dist/components/{prism-typescript-BlIir5CV.js → prism-typescript-D2EqsCqV.js} +1 -1
  215. package/dist/components/status-and-feedback/badge/badge.styles.js +7 -7
  216. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.js +7 -7
  217. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.js +5 -5
  218. package/dist/css/rich-text.css +85 -58
  219. package/dist/css/settings.css +36 -33
  220. package/dist/utilities/os.d.ts +27 -0
  221. package/dist/utilities/os.d.ts.map +1 -0
  222. package/dist/utilities/os.js +60 -0
  223. package/dist/utilities/os.js.map +1 -0
  224. package/package.json +5 -5
  225. package/dist/components/actions/link/link.d.ts.map +0 -1
  226. package/dist/components/actions/link/link.js.map +0 -1
  227. package/dist/components/actions/link/link.styles.d.ts.map +0 -1
  228. package/dist/components/actions/link/link.styles.js.map +0 -1
  229. package/dist/components/actions/link/link.template.d.ts.map +0 -1
  230. package/dist/components/actions/link/link.template.js.map +0 -1
  231. /package/dist/components/{actions → navigation}/link/link.d.ts +0 -0
  232. /package/dist/components/{actions → navigation}/link/link.js +0 -0
  233. /package/dist/components/{actions → navigation}/link/link.styles.d.ts +0 -0
  234. /package/dist/components/{actions → navigation}/link/link.template.d.ts +0 -0
  235. /package/dist/components/{actions → navigation}/link/link.template.js +0 -0
@@ -11,12 +11,12 @@ export const descriptionCellStyles = css `
11
11
  --_min-height: 0;
12
12
 
13
13
  display: flex;
14
- flex-direction: column;
15
- justify-content: center;
16
14
  width: var(--_width);
17
15
  min-width: var(--_min-width);
18
16
  max-width: var(--_max-width);
19
17
  min-height: var(--_min-height);
18
+ flex-direction: column;
19
+ justify-content: center;
20
20
  }
21
21
 
22
22
  :host([hidden]) {
@@ -34,10 +34,10 @@ export const descriptionCellStyles = css `
34
34
  }
35
35
 
36
36
  :host([width='fit-content']) {
37
+ width: fit-content;
37
38
  flex-grow: 0;
38
39
  flex-shrink: 0;
39
40
  flex-basis: auto;
40
- width: fit-content;
41
41
  }
42
42
 
43
43
  :host([width]:not([width='full']):not([width='fit-content']):not([width=''])) {
@@ -75,8 +75,8 @@ export const descriptionCellStyles = css `
75
75
 
76
76
  ::slotted([slot='title']) {
77
77
  margin: 0;
78
- align-self: stretch;
79
78
  min-width: 0;
79
+ align-self: stretch;
80
80
  font: var(--primitives-font-body-sm-regular-flat);
81
81
  color: var(--context-cell-content-color, var(--semantics-content-secondary-color));
82
82
  }
@@ -86,8 +86,8 @@ export const descriptionCellStyles = css `
86
86
 
87
87
  ::slotted([slot='description']) {
88
88
  margin: 0;
89
- align-self: stretch;
90
89
  min-width: 0;
90
+ align-self: stretch;
91
91
  font: var(--primitives-font-body-md-regular-tight);
92
92
  color: var(--context-cell-content-color, var(--semantics-content-color));
93
93
  }
@@ -6,10 +6,10 @@ export const dragHandleCellStyles = css `
6
6
 
7
7
  :host {
8
8
  display: inline-flex;
9
+ cursor: grab;
10
+ width: fit-content;
9
11
  align-items: center;
10
12
  justify-content: center;
11
- width: fit-content;
12
- cursor: grab;
13
13
  }
14
14
 
15
15
  :host([hidden]) {
@@ -25,13 +25,13 @@ export const dragHandleCellStyles = css `
25
25
 
26
26
  .drag-handle-cell__control {
27
27
  display: flex;
28
- align-items: center;
29
- justify-content: center;
30
- background-color: var(--semantics-grab-handles-background-color);
31
- border: none;
32
- padding: 0;
33
28
  margin: 0;
29
+ border: none;
30
+ background-color: var(--semantics-grab-handles-background-color);
34
31
  cursor: inherit;
32
+ padding: 0;
33
+ align-items: center;
34
+ justify-content: center;
35
35
  -webkit-appearance: none;
36
36
  appearance: none;
37
37
  }
@@ -47,18 +47,18 @@ export const dragHandleCellStyles = css `
47
47
 
48
48
  :host([size="md"]) .drag-handle-cell__control,
49
49
  :host(:not([size])) .drag-handle-cell__control {
50
+ border-radius: var(--semantics-controls-md-corner-radius);
50
51
  width: var(--semantics-controls-sm-min-size);
51
52
  height: var(--semantics-controls-md-min-size);
52
- border-radius: var(--semantics-controls-md-corner-radius);
53
53
  }
54
54
 
55
55
 
56
56
  /* ## Size: SM */
57
57
 
58
58
  :host([size="sm"]) .drag-handle-cell__control {
59
+ border-radius: var(--semantics-controls-sm-corner-radius);
59
60
  width: var(--semantics-controls-xs-min-size);
60
61
  height: var(--semantics-controls-sm-min-size);
61
- border-radius: var(--semantics-controls-sm-corner-radius);
62
62
  }
63
63
 
64
64
 
@@ -40,8 +40,8 @@ export const spacerCellStyles = css `
40
40
  :host([size="96"]) { width: var(--primitives-space-96); }
41
41
 
42
42
  :host([size="flexible"]) {
43
- flex-grow: 1;
44
43
  width: auto;
44
+ flex-grow: 1;
45
45
  }
46
46
  `;
47
47
  //# sourceMappingURL=spacer-cell.styles.js.map
@@ -11,12 +11,12 @@ export const textCellStyles = css `
11
11
  --_min-height: 0;
12
12
 
13
13
  display: flex;
14
- flex-direction: column;
15
- justify-content: center;
16
14
  width: var(--_width);
17
15
  min-width: var(--_min-width);
18
16
  max-width: var(--_max-width);
19
17
  min-height: var(--_min-height);
18
+ flex-direction: column;
19
+ justify-content: center;
20
20
  }
21
21
 
22
22
  :host([hidden]) {
@@ -34,10 +34,10 @@ export const textCellStyles = css `
34
34
  }
35
35
 
36
36
  :host([width='fit-content']) {
37
+ width: fit-content;
37
38
  flex-grow: 0;
38
39
  flex-shrink: 0;
39
40
  flex-basis: auto;
40
- width: fit-content;
41
41
  }
42
42
 
43
43
  :host([width]:not([width='full']):not([width='fit-content']):not([width=''])) {
@@ -91,8 +91,8 @@ export const textCellStyles = css `
91
91
 
92
92
  .text-cell__overline {
93
93
  margin: 0;
94
- align-self: stretch;
95
94
  min-width: 0;
95
+ align-self: stretch;
96
96
  overflow-wrap: anywhere;
97
97
  color: var(--context-cell-content-color, var(--semantics-content-secondary-color));
98
98
  }
@@ -119,8 +119,8 @@ export const textCellStyles = css `
119
119
 
120
120
  .text-cell__text {
121
121
  margin: 0;
122
- align-self: stretch;
123
122
  min-width: 0;
123
+ align-self: stretch;
124
124
  overflow-wrap: anywhere;
125
125
  text-wrap: pretty;
126
126
  }
@@ -195,8 +195,8 @@ export const textCellStyles = css `
195
195
 
196
196
  .text-cell__supporting-text {
197
197
  margin: 0;
198
- align-self: stretch;
199
198
  min-width: 0;
199
+ align-self: stretch;
200
200
  overflow-wrap: anywhere;
201
201
  color: var(--context-cell-content-color, var(--semantics-content-secondary-color));
202
202
  }
@@ -11,12 +11,12 @@ export const titleCellStyles = css `
11
11
  --_min-height: 0;
12
12
 
13
13
  display: flex;
14
- flex-direction: column;
15
- justify-content: center;
16
14
  width: var(--_width);
17
15
  min-width: var(--_min-width);
18
16
  max-width: var(--_max-width);
19
17
  min-height: var(--_min-height);
18
+ flex-direction: column;
19
+ justify-content: center;
20
20
  }
21
21
 
22
22
  :host([hidden]) {
@@ -34,10 +34,10 @@ export const titleCellStyles = css `
34
34
  }
35
35
 
36
36
  :host([width='fit-content']) {
37
+ width: fit-content;
37
38
  flex-grow: 0;
38
39
  flex-shrink: 0;
39
40
  flex-basis: auto;
40
- width: fit-content;
41
41
  }
42
42
 
43
43
  :host([width]:not([width='full']):not([width='fit-content']):not([width=''])) {
@@ -91,8 +91,8 @@ export const titleCellStyles = css `
91
91
 
92
92
  .title-cell__overline {
93
93
  margin: 0;
94
- align-self: stretch;
95
94
  min-width: 0;
95
+ align-self: stretch;
96
96
  overflow-wrap: anywhere;
97
97
  font: var(--primitives-font-body-xs-regular-tight);
98
98
  color: var(--context-cell-content-color, var(--semantics-content-secondary-color));
@@ -111,8 +111,8 @@ export const titleCellStyles = css `
111
111
 
112
112
  .title-cell__title {
113
113
  margin: 0;
114
- align-self: stretch;
115
114
  min-width: 0;
115
+ align-self: stretch;
116
116
  overflow-wrap: break-word;
117
117
  color: var(--context-cell-content-color, var(--semantics-content-color));
118
118
  text-wrap: pretty;
@@ -168,8 +168,8 @@ export const titleCellStyles = css `
168
168
 
169
169
  .title-cell__supporting-text {
170
170
  margin: 0;
171
- align-self: stretch;
172
171
  min-width: 0;
172
+ align-self: stretch;
173
173
  overflow-wrap: anywhere;
174
174
  font: var(--primitives-font-body-sm-regular-tight);
175
175
  color: var(--context-cell-content-color, var(--semantics-content-secondary-color));
@@ -64,8 +64,8 @@ export const listStyles = css `
64
64
  /* # Variant: box */
65
65
 
66
66
  :host([variant='box']) .list__items {
67
- background-color: var(--semantics-surfaces-tinted-background-color);
68
67
  border-radius: var(--components-list-corner-radius);
68
+ background-color: var(--semantics-surfaces-tinted-background-color);
69
69
  overflow: hidden;
70
70
  }
71
71
 
@@ -73,8 +73,8 @@ export const listStyles = css `
73
73
  /* # Variant: box-on-tinted */
74
74
 
75
75
  :host([variant='box-on-tinted']) .list__items {
76
- background-color: var(--semantics-surfaces-background-color);
77
76
  border-radius: var(--components-list-corner-radius);
77
+ background-color: var(--semantics-surfaces-background-color);
78
78
  overflow: hidden;
79
79
  }
80
80
 
@@ -83,9 +83,9 @@ export const listStyles = css `
83
83
 
84
84
  ::slotted(.nldd-list-drag-placeholder) {
85
85
  box-sizing: border-box;
86
+ border-radius: var(--components-list-item-indicator-corner-radius);
86
87
  background-color: var(--components-list-drag-placeholder-background-color);
87
88
  pointer-events: none;
88
- border-radius: var(--components-list-item-indicator-corner-radius);
89
89
  }
90
90
 
91
91
 
@@ -95,17 +95,17 @@ export const listStyles = css `
95
95
  position: absolute;
96
96
  top: var(--_drag-clone-top);
97
97
  left: var(--_drag-clone-left);
98
- width: var(--_drag-clone-width);
99
- height: var(--_drag-clone-height);
100
98
  display: flex;
101
- flex-direction: row;
102
- align-items: stretch;
103
- pointer-events: none;
104
99
  opacity: var(--_drag-clone-opacity);
100
+ z-index: var(--_drag-clone-z-index);
105
101
  border-radius: var(--components-list-item-indicator-corner-radius);
106
102
  background: var(--semantics-surfaces-background-color);
107
- z-index: var(--_drag-clone-z-index);
103
+ pointer-events: none;
104
+ width: var(--_drag-clone-width);
105
+ height: var(--_drag-clone-height);
108
106
  overflow: hidden;
107
+ flex-direction: row;
108
+ align-items: stretch;
109
109
  }
110
110
 
111
111
 
@@ -114,14 +114,14 @@ export const listStyles = css `
114
114
  .list__polite-announcer,
115
115
  .list__assertive-announcer {
116
116
  position: absolute;
117
+ margin: -1px;
118
+ border: 0;
117
119
  width: 1px;
118
120
  height: 1px;
119
- padding: 0;
120
- margin: -1px;
121
121
  overflow: hidden;
122
- clip-path: inset(50%);
122
+ padding: 0;
123
123
  white-space: nowrap;
124
- border: 0;
124
+ clip-path: inset(50%);
125
125
  }
126
126
  `;
127
127
  //# sourceMappingURL=list.styles.js.map
@@ -12,10 +12,10 @@ export const listItemStyles = css `
12
12
  --_focus-outline-offset: 6px;
13
13
 
14
14
  display: block;
15
- width: 100%;
16
- -webkit-tap-highlight-color: transparent;
17
15
  container-type: inline-size;
18
16
  container-name: list-item;
17
+ width: 100%;
18
+ -webkit-tap-highlight-color: transparent;
19
19
  }
20
20
 
21
21
  :host([hidden]) {
@@ -54,12 +54,12 @@ export const listItemStyles = css `
54
54
  .list-item {
55
55
  box-sizing: border-box;
56
56
  display: flex;
57
+ position: relative;
57
58
  min-height: var(--semantics-controls-md-min-size);
59
+ width: 100%;
58
60
  flex-direction: row;
59
61
  align-items: stretch;
60
- position: relative;
61
62
  isolation: isolate;
62
- width: 100%;
63
63
  }
64
64
 
65
65
  :host([size='sm']) .list-item {
@@ -71,17 +71,17 @@ export const listItemStyles = css `
71
71
 
72
72
  .list-item__action {
73
73
  display: flex;
74
- flex-direction: row;
75
- align-items: stretch;
76
- width: 100%;
77
- background: none;
74
+ margin: 0;
78
75
  border: none;
76
+ outline: none;
77
+ background: none;
78
+ width: 100%;
79
79
  padding: 0;
80
- margin: 0;
80
+ flex-direction: row;
81
+ align-items: stretch;
81
82
  text-align: start;
82
83
  text-decoration: none;
83
84
  color: inherit;
84
- outline: none;
85
85
  }
86
86
 
87
87
  a.list-item__action {
@@ -103,9 +103,9 @@ export const listItemStyles = css `
103
103
  position: absolute;
104
104
  inset-block: 0;
105
105
  inset-inline: min(calc(var(--primitives-space-8) * -1), calc(var(--components-list-item-indicator-corner-radius) * -1));
106
+ z-index: var(--_z-index-indicator);
106
107
  border-radius: var(--components-list-item-indicator-corner-radius);
107
108
  background-color: var(--_background-color);
108
- z-index: var(--_z-index-indicator);
109
109
  pointer-events: none;
110
110
  }
111
111
 
@@ -124,9 +124,9 @@ export const listItemStyles = css `
124
124
  position: absolute;
125
125
  inset-block: 0;
126
126
  inset-inline: min(calc(var(--primitives-space-8) * -1), calc(var(--components-list-item-indicator-corner-radius) * -1));
127
+ z-index: var(--_z-index-indicator);
127
128
  border-radius: var(--components-list-item-indicator-corner-radius);
128
129
  background-color: var(--_background-color);
129
- z-index: var(--_z-index-indicator);
130
130
  pointer-events: none;
131
131
  }
132
132
 
@@ -166,10 +166,10 @@ export const listItemStyles = css `
166
166
  content: '';
167
167
  display: block;
168
168
  position: absolute;
169
- pointer-events: none;
170
169
  outline: var(--semantics-focus-ring-outline);
171
170
  outline-offset: var(--semantics-focus-ring-outline-offset);
172
171
  box-shadow: var(--semantics-focus-ring-box-shadow);
172
+ pointer-events: none;
173
173
  }
174
174
 
175
175
  :host(:not(.is-boxed)) .list-item__action:focus-visible:not(.is-pointer-focus)::after {
@@ -198,12 +198,12 @@ export const listItemStyles = css `
198
198
  .list-item__start-area,
199
199
  .list-item__end-area {
200
200
  display: none;
201
- flex-direction: row;
202
- align-items: center;
203
- flex-shrink: 0;
204
201
  position: relative;
205
202
  z-index: var(--_z-index-content);
206
203
  padding-block: var(--components-list-item-md-padding-block);
204
+ flex-direction: row;
205
+ align-items: center;
206
+ flex-shrink: 0;
207
207
  }
208
208
 
209
209
  .list-item__start-area.is-visible,
@@ -221,13 +221,13 @@ export const listItemStyles = css `
221
221
 
222
222
  .list-item__main-area {
223
223
  display: flex;
224
- flex-direction: row;
225
- align-items: center;
226
- flex-grow: 1;
227
- min-width: 0;
228
224
  position: relative;
229
225
  z-index: var(--_z-index-content);
226
+ min-width: 0;
230
227
  padding-block: var(--components-list-item-md-padding-block);
228
+ flex-direction: row;
229
+ align-items: center;
230
+ flex-grow: 1;
231
231
  }
232
232
 
233
233
  :host([size='sm']) .list-item__main-area {
@@ -242,8 +242,8 @@ export const listItemStyles = css `
242
242
  position: absolute;
243
243
  inset-block-end: 0;
244
244
  inset-inline: 0;
245
- height: var(--semantics-dividers-thickness);
246
245
  background-color: var(--semantics-dividers-color);
246
+ height: var(--semantics-dividers-thickness);
247
247
  }
248
248
 
249
249
  :host([selected]) .list-item__divider,
@@ -84,7 +84,7 @@ export declare class NLDDMenuItem extends LitElement {
84
84
  get _hasSubmenu(): boolean;
85
85
  firstUpdated(): void;
86
86
  disconnectedCallback(): void;
87
- _handleClick(): void;
87
+ _handleClick(event?: Event): void;
88
88
  /** Programmatically select this item. */
89
89
  select(): void;
90
90
  render(): import("lit-html").TemplateResult<1>;
@@ -160,6 +160,30 @@ export declare class NLDDMenu extends LitElement {
160
160
  * by one of this menu's items). null when no submenu is open. */
161
161
  private _activeSubmenu;
162
162
  private _activeSubmenuOpener;
163
+ /** Cleanup closure for the currently open child submenu. Invoked by the
164
+ * submenu's `toggle→closed` event, but also callable directly from a
165
+ * chain-close walk so the upper levels can be torn down without waiting
166
+ * for stale toggle events that will never fire (e.g. a hidden drill-in
167
+ * parent whose popover state is already 'closed'). */
168
+ private _activeSubmenuCleanup;
169
+ /** Signal that this menu is hiding itself to make room for a deeper drill-in
170
+ * level — its parent's onToggle should skip the normal close cleanup
171
+ * (re-parent + re-show) so the chain stays in deeper-level state. */
172
+ _drillInHidingForDeeper: boolean;
173
+ /** Root-owned registry of every submenu currently open in this chain,
174
+ * in open order. Lives on the root menu only; submenus reach it via
175
+ * `_chainRoot`. Drives `_collapseChain()` so collapsing the whole
176
+ * stack never depends on `_activeSubmenu`/`_parentMenu` threading
177
+ * (which real interaction can leave stale). @internal */
178
+ _openChain: NLDDMenu[];
179
+ /** Back-reference to the chain's root, set on every submenu when it
180
+ * opens. Lets `_collapseChain()` find the registry without walking
181
+ * the (possibly stale) parent links. null on the root. @internal */
182
+ _chainRoot: NLDDMenu | null;
183
+ /** Force-teardown for this submenu (detach toggle listener, hide,
184
+ * restore DOM, reset state — no parent re-show). Set when the submenu
185
+ * opens; called by `_collapseChain()`. @internal */
186
+ _collapseSelf: (() => void) | null;
163
187
  /** When this menu is itself a submenu, points to the parent menu that
164
188
  * opened it. Set by the parent's _handleSubmenuOpen. null on the root.
165
189
  * @internal */
@@ -170,6 +194,12 @@ export declare class NLDDMenu extends LitElement {
170
194
  _parentItem: NLDDMenuItem | null;
171
195
  private _isOpen;
172
196
  private _closedAt;
197
+ /** Set on the root when a pointer gesture (outside/anchor pointerdown
198
+ * or confirmed tap) collapsed the chain. The trailing `click` of that
199
+ * same gesture consumes it in `_handleDocumentClick` and must NOT
200
+ * reopen — gesture-correlated, so it's reliable on touch where the
201
+ * pointerup→click gap exceeds the time-based reopen guard. @internal */
202
+ _collapsedByPointerGesture: boolean;
173
203
  private _cleanupAutoUpdate;
174
204
  private _t;
175
205
  /** Resolved empty text: emptyText attribute takes precedence, then i18n fallback. */
@@ -179,20 +209,70 @@ export declare class NLDDMenu extends LitElement {
179
209
  * Bestand" instead of an ambiguous "Bestand, button". Only used when
180
210
  * this menu is itself a submenu in drill-in mode. */
181
211
  get _resolvedBackLabel(): string;
212
+ /** Double-rAF handle for the announcement awaiting flush, so a rapid
213
+ * follow-up transition can cancel the stale one instead of stacking it. */
214
+ private _announceRaf;
215
+ /** Message currently queued (not yet flushed to the region). Used to
216
+ * drop a doubled event in the same tick while still allowing the same
217
+ * text to be re-announced on a later, genuine transition. */
218
+ private _pendingAnnouncement;
219
+ /**
220
+ * Write `message` to this menu's polite live region. Clears first, then
221
+ * sets on a double rAF — the empty→text transition is what makes screen
222
+ * readers reliably re-announce unchanged-looking content across engines.
223
+ *
224
+ * Spam control without muting real navigation: a doubled event in the
225
+ * same tick (identical message still pending) is dropped; a *different*
226
+ * message arriving first cancels the stale pending one (rapid navigation
227
+ * announces only the level you land on); once flushed, the same text may
228
+ * be announced again for a later genuine transition (e.g. re-entering a
229
+ * submenu after going back).
230
+ */
231
+ private _announce;
182
232
  updated(changedProperties: Map<string, unknown>): void;
183
233
  private _getAnchorEl;
234
+ /**
235
+ * Pick the drill-in side (above vs below the anchor) purely from the
236
+ * available viewport space around the anchor — never from content
237
+ * size. Content-independent so every level of the chain resolves to
238
+ * the same side and a bigger submenu scrolls internally rather than
239
+ * flipping the whole stack. Keeps the configured alignment suffix
240
+ * (`-start` / `-end`) from `placement`.
241
+ */
242
+ private _resolveDrillInPlacement;
243
+ /**
244
+ * Reflect this menu's open state on the anchor so an anchor button (or
245
+ * any element exposing an `expanded` IDL property) shows the active
246
+ * "is-expanded" visual while we're open. Skip menu-items as anchors —
247
+ * they manage their own `_submenuOpen` lifecycle and don't have an
248
+ * `expanded` property. Also default `popupType` to 'menu' / 'listbox'
249
+ * (matching this menu's variant) when the anchor supports it and the
250
+ * consumer hasn't already chosen a value, so screen readers announce
251
+ * the popup role without each consumer having to set it manually.
252
+ *
253
+ * Finally, drive the anchor's `popoverTargetAction` so the browser's
254
+ * native invoker action always matches the current state explicitly:
255
+ * `'hide'` while open, `'show'` while closed. We avoid `'toggle'` on
256
+ * purpose — toggle re-evaluates the popover's live state at click time
257
+ * and would re-open the menu if it had just been light-dismissed
258
+ * milliseconds earlier (the source of the "menu briefly closes and
259
+ * reopens" bug). With explicit show/hide, the worst case is a no-op
260
+ * (e.g. `'hide'` on an already-closed menu) — never a spurious open.
261
+ *
262
+ * The invoker association (`popoverTargetElement`) is set elsewhere
263
+ * — persistently on anchor change rather than per-toggle — so the
264
+ * browser's light-dismiss exclusion is in place from the very first
265
+ * click instead of only after the menu has already opened once.
266
+ */
267
+ private _syncAnchorPopupState;
184
268
  private _handleDocumentClick;
185
269
  private _hoverOpenTimer;
186
- private _hoverCloseTimer;
187
270
  private _safeTriangleListener;
188
271
  private _safeTriangleStallTimer;
189
272
  private _lastCursorPos;
190
273
  private _safeTriangleApex;
191
274
  private _safeTriangleSubmenu;
192
275
  private _movingTowardSubmenu;
193
- /** Wait this long after cursor stops being on a path toward the submenu
194
- * before closing. Smooths over brief cursor stalls and accidental nudges. */
195
- private static readonly _SUBMENU_LINGER_CLOSE_MS;
196
276
  /** When the cursor sits motionless inside the safe triangle for this
197
277
  * long, dismiss the triangle and let whatever item is under the cursor
198
278
  * become interactive. Without this, a paused cursor would stay
@@ -266,10 +346,6 @@ export declare class NLDDMenu extends LitElement {
266
346
  * inside the safe triangle long enough, drop the protection so the
267
347
  * element under the cursor can become interactive without nudging. */
268
348
  private _safeTriangleScheduleStall;
269
- /** Schedule submenu close when cursor sits outside the parent menu rect.
270
- * No-op if cursor is inside the menu (peer-hover logic handles it) or
271
- * if a close is already scheduled. */
272
- private _safeTriangleMaybeScheduleLingerClose;
273
349
  /** True when the rect contains the point (inclusive). Returns false for
274
350
  * a missing rect or point — convenient for the optional-chained call
275
351
  * sites in the safe-triangle logic. */
@@ -279,12 +355,11 @@ export declare class NLDDMenu extends LitElement {
279
355
  private _renderSafeTriangleOverlay;
280
356
  private _removeSafeTriangleOverlay;
281
357
  private _cancelHoverOpen;
282
- private _cancelHoverClose;
283
358
  /** Recursively checks whether a point sits inside the given menu OR any of
284
- * its descendant submenus. Used by the hover guard so a cursor deep inside
285
- * a nested submenu still reads as "in the safe area" for ancestor menus —
286
- * without this, an ancestor's linger-close fires and cascades the whole
287
- * chain shut. */
359
+ * its descendant submenus. Used by the safe-triangle "arrived" check so a
360
+ * cursor that has continued past the immediate submenu into a deeper
361
+ * nested submenu still reads as "in the safe area" — without the recursive
362
+ * walk we'd treat the deeper hover as an exit and re-pin a stale apex. */
288
363
  private static _isPointInMenuTree;
289
364
  /** Convex point-in-polygon test via consistent edge-cross-product sign.
290
365
  * Vertices must be ordered (clockwise or counter-clockwise). */
@@ -302,8 +377,7 @@ export declare class NLDDMenu extends LitElement {
302
377
  *
303
378
  * Cached MediaQueryList shared across instances — `matchMedia()` returns
304
379
  * a live object and re-evaluating it for every mouseenter/submenu-open
305
- * is wasteful. Instances also subscribe to `change` so resize events
306
- * naturally route through `_handleViewportResize`.
380
+ * is wasteful.
307
381
  */
308
382
  private static _drillInModeQuery;
309
383
  private static _getDrillInModeQuery;
@@ -331,21 +405,75 @@ export declare class NLDDMenu extends LitElement {
331
405
  * item that was auto-highlighted on open).
332
406
  * @internal */
333
407
  _handleBackMouseenter: () => void;
334
- /** Last cached drill-in mode value, so we only act when it actually
335
- * changes across a resize event. */
336
- private _lastDrillInMode;
337
- /** Close any open submenu when the cascade ↔ drill-in threshold is
338
- * crossed during a resize. Switching the rendering of an already-open
339
- * submenu mid-flight (anchor + placement + back button) is more
340
- * disorienting than a clean reset to the root view. */
341
- private _handleViewportResize;
408
+ private static readonly _TOUCH_SCROLL_THRESHOLD_PX;
409
+ private _touchStartX;
410
+ private _touchStartY;
411
+ /** @internal */
412
+ _handleMenuTouchStart: (event: TouchEvent) => void;
413
+ /** @internal */
414
+ _handleMenuTouchMove: (event: TouchEvent) => void;
415
+ /** @internal */
416
+ _handleMenuTouchEnd: () => void;
417
+ /** Close the menu on a window resize. Floating-UI's autoUpdate keeps
418
+ * the position in sync with scrolls (where users genuinely expect the
419
+ * menu to follow the anchor), but a full window resize is a layout-
420
+ * shifting interaction the user isn't currently tracking — better to
421
+ * dismiss with a clean slate than to chase the anchor across a
422
+ * reflow, repaint a flipped placement, or get stuck mid-flight when
423
+ * crossing the cascade ↔ drill-in viewport threshold. The window
424
+ * listener is wired only while we're open and torn down on close, so
425
+ * idle menus pay nothing. */
426
+ private _handleWindowResize;
427
+ /**
428
+ * Collapse the entire menu chain at once — root + every open submenu —
429
+ * with no "back one level" re-show. Used when the action is final:
430
+ * selecting an item, clicking the anchor, clicking/tapping outside, or
431
+ * a viewport resize.
432
+ *
433
+ * Driven by the root's `_openChain` registry and each submenu's
434
+ * `_collapseSelf`, so it never depends on `_activeSubmenu` /
435
+ * `_parentMenu` threading being intact at collapse time — real
436
+ * interaction can leave those stale, which was the source of the
437
+ * recurring "anchor click doesn't close after the 2nd navigation"
438
+ * bug. Idempotent: every chain level's `select` listener may call it,
439
+ * but the first run empties the registry so the rest are no-ops.
440
+ */
441
+ private _collapseChain;
342
442
  /**
343
- * Close this menu when a `select` event bubbles up — selecting an item
344
- * anywhere in the menu (or any descendant submenu) closes the entire
345
- * popover chain so the action feels final. The select event is dispatched
346
- * with `composed: true` so it crosses every ancestor menu in the chain.
443
+ * Drill-in click-outside: collapse the entire chain.
444
+ *
445
+ * In drill-in mode only the deepest level is `:popover-open` popover
446
+ * light-dismiss would close just that level, and our onToggle cleanup
447
+ * would helpfully re-show the previous level. That's the wrong outcome
448
+ * for a click outside the menu: the user is dismissing the whole menu,
449
+ * not navigating one step back. Detect the outside click here and route
450
+ * to `_collapseChain`, which collapses every level at once.
451
+ *
452
+ * Cascade mode falls back to the native popover stack behaviour: a click
453
+ * outside light-dismisses every popover down to the click target's
454
+ * closest ancestor popover, so no extra handling is needed there.
455
+ *
456
+ * For mouse/pen, pointerdown (capture) is the right hook: it fires
457
+ * before light-dismiss does its work, so by the time the toggle event
458
+ * fires our chain walk has already detached listeners and prevented
459
+ * the parent re-show.
460
+ *
461
+ * For touch, an outside pointerdown is ambiguous: it's also how a page
462
+ * scroll begins. Closing the chain on the scroll-start would be
463
+ * inconsistent with a root menu (which native light-dismiss leaves
464
+ * open while you scroll outside it) and annoying. So on touch we defer
465
+ * the decision: track the pointer and only chain-close on a confirmed
466
+ * tap (pointerup without crossing the scroll threshold); a scroll
467
+ * leaves the chain untouched, matching root-menu behaviour.
347
468
  */
348
- private _handleSelectChainClose;
469
+ private _handleDocumentPointerdown;
470
+ private _outsideTapStartX;
471
+ private _outsideTapStartY;
472
+ private _outsideTapTracking;
473
+ private _outsideTapMove;
474
+ private _outsideTapEnd;
475
+ private _outsideTapCancel;
476
+ private _teardownOutsideTap;
349
477
  private static _menuIdCounter;
350
478
  connectedCallback(): void;
351
479
  firstUpdated(): void;
@@ -385,6 +513,9 @@ export declare class NLDDMenu extends LitElement {
385
513
  getHighlighted(): NLDDMenuItem | null;
386
514
  /** Returns the ID of the currently highlighted item, or empty string if none. */
387
515
  getHighlightedId(): string;
516
+ /** Read a px-valued CSS custom property as a number. `parseFloat`
517
+ * keeps fractional pixels; an unset/NaN value falls back to 0. */
518
+ private _cssPx;
388
519
  /** Recalculate position and size relative to the anchor element. */
389
520
  reposition(): Promise<void>;
390
521
  private _handleKeydown;