@nldd/design-system 0.8.82 → 0.8.83

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 (146) hide show
  1. package/custom-elements.json +436 -68
  2. package/dist/components/actions/button/button.d.ts +5 -0
  3. package/dist/components/actions/button/button.d.ts.map +1 -1
  4. package/dist/components/actions/button/button.js +8 -0
  5. package/dist/components/actions/button/button.js.map +1 -1
  6. package/dist/components/actions/button/button.template.d.ts.map +1 -1
  7. package/dist/components/actions/button/button.template.js +2 -0
  8. package/dist/components/actions/button/button.template.js.map +1 -1
  9. package/dist/components/actions/icon-button/icon-button.d.ts +1 -1
  10. package/dist/components/actions/icon-button/icon-button.js +1 -1
  11. package/dist/components/components.js +894 -226
  12. package/dist/components/content/avatar/avatar.styles.d.ts.map +1 -1
  13. package/dist/components/content/avatar/avatar.styles.js +5 -1
  14. package/dist/components/content/avatar/avatar.styles.js.map +1 -1
  15. package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
  16. package/dist/components/content/icon/icon-aliases.js +78 -6
  17. package/dist/components/content/icon/icon-aliases.js.map +1 -1
  18. package/dist/components/content/icon/icon-gallery-status.d.ts.map +1 -1
  19. package/dist/components/content/icon/icon-gallery-status.js +55 -94
  20. package/dist/components/content/icon/icon-gallery-status.js.map +1 -1
  21. package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
  22. package/dist/components/content/icon/icon-registry.js +34 -4
  23. package/dist/components/content/icon/icon-registry.js.map +1 -1
  24. package/dist/components/content/icon/icon.d.ts +8 -2
  25. package/dist/components/content/icon/icon.d.ts.map +1 -1
  26. package/dist/components/content/icon/icon.js +17 -2
  27. package/dist/components/content/icon/icon.js.map +1 -1
  28. package/dist/components/content/icon/icon.styles.d.ts.map +1 -1
  29. package/dist/components/content/icon/icon.styles.js +8 -0
  30. package/dist/components/content/icon/icon.styles.js.map +1 -1
  31. package/dist/components/content/text/text.d.ts +50 -0
  32. package/dist/components/content/text/text.d.ts.map +1 -0
  33. package/dist/components/content/text/text.js +81 -0
  34. package/dist/components/content/text/text.js.map +1 -0
  35. package/dist/components/content/text/text.styles.d.ts +2 -0
  36. package/dist/components/content/text/text.styles.d.ts.map +1 -0
  37. package/dist/components/content/text/text.styles.js +116 -0
  38. package/dist/components/content/text/text.styles.js.map +1 -0
  39. package/dist/components/content/text/text.template.d.ts +3 -0
  40. package/dist/components/content/text/text.template.d.ts.map +1 -0
  41. package/dist/components/content/text/text.template.js +7 -0
  42. package/dist/components/content/text/text.template.js.map +1 -0
  43. package/dist/components/content/title/title.styles.d.ts.map +1 -1
  44. package/dist/components/content/title/title.styles.js +9 -13
  45. package/dist/components/content/title/title.styles.js.map +1 -1
  46. package/dist/components/{icon-CIpJq_cf.js → icon-C1Kikpol.js} +100 -10
  47. package/dist/components/{icon-button-BAkUJTn6.js → icon-button-BYy6hnAY.js} +2 -2
  48. package/dist/components/index.d.ts +2 -1
  49. package/dist/components/index.d.ts.map +1 -1
  50. package/dist/components/index.js +2 -1
  51. package/dist/components/index.js.map +1 -1
  52. package/dist/components/inputs/combo-box/combo-box.d.ts +2 -0
  53. package/dist/components/inputs/combo-box/combo-box.d.ts.map +1 -1
  54. package/dist/components/inputs/combo-box/combo-box.js +22 -0
  55. package/dist/components/inputs/combo-box/combo-box.js.map +1 -1
  56. package/dist/components/inputs/combo-box/combo-box.styles.d.ts.map +1 -1
  57. package/dist/components/inputs/combo-box/combo-box.styles.js +5 -0
  58. package/dist/components/inputs/combo-box/combo-box.styles.js.map +1 -1
  59. package/dist/components/inputs/combo-box/combo-box.template.d.ts.map +1 -1
  60. package/dist/components/inputs/combo-box/combo-box.template.js +23 -20
  61. package/dist/components/inputs/combo-box/combo-box.template.js.map +1 -1
  62. package/dist/components/inputs/date-field/date-field.template.d.ts.map +1 -1
  63. package/dist/components/inputs/date-field/date-field.template.js +7 -1
  64. package/dist/components/inputs/date-field/date-field.template.js.map +1 -1
  65. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts +8 -1
  66. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts.map +1 -1
  67. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js +8 -0
  68. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js.map +1 -1
  69. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.d.ts.map +1 -1
  70. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.js +2 -0
  71. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.js.map +1 -1
  72. package/dist/components/inputs/text-field/text-field.d.ts +21 -0
  73. package/dist/components/inputs/text-field/text-field.d.ts.map +1 -1
  74. package/dist/components/inputs/text-field/text-field.js +48 -0
  75. package/dist/components/inputs/text-field/text-field.js.map +1 -1
  76. package/dist/components/inputs/text-field/text-field.template.d.ts.map +1 -1
  77. package/dist/components/inputs/text-field/text-field.template.js +2 -0
  78. package/dist/components/inputs/text-field/text-field.template.js.map +1 -1
  79. package/dist/components/inputs/time-field/time-field.template.d.ts.map +1 -1
  80. package/dist/components/inputs/time-field/time-field.template.js +7 -1
  81. package/dist/components/inputs/time-field/time-field.template.js.map +1 -1
  82. package/dist/components/layout/box/box.d.ts +3 -3
  83. package/dist/components/layout/box/box.d.ts.map +1 -1
  84. package/dist/components/layout/box/box.js +3 -3
  85. package/dist/components/layout/box/box.js.map +1 -1
  86. package/dist/components/layout/box/box.styles.d.ts.map +1 -1
  87. package/dist/components/layout/box/box.styles.js +3 -6
  88. package/dist/components/layout/box/box.styles.js.map +1 -1
  89. package/dist/components/layout/sheet/sheet.styles.d.ts.map +1 -1
  90. package/dist/components/layout/sheet/sheet.styles.js +10 -3
  91. package/dist/components/layout/sheet/sheet.styles.js.map +1 -1
  92. package/dist/components/lists-and-tables/list/list.d.ts +60 -45
  93. package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
  94. package/dist/components/lists-and-tables/list/list.js +94 -80
  95. package/dist/components/lists-and-tables/list/list.js.map +1 -1
  96. package/dist/components/lists-and-tables/list-item/list-item.d.ts +94 -21
  97. package/dist/components/lists-and-tables/list-item/list-item.d.ts.map +1 -1
  98. package/dist/components/lists-and-tables/list-item/list-item.js +275 -48
  99. package/dist/components/lists-and-tables/list-item/list-item.js.map +1 -1
  100. package/dist/components/lists-and-tables/list-item/list-item.styles.d.ts.map +1 -1
  101. package/dist/components/lists-and-tables/list-item/list-item.styles.js +116 -34
  102. package/dist/components/lists-and-tables/list-item/list-item.styles.js.map +1 -1
  103. package/dist/components/lists-and-tables/list-item/list-item.template.d.ts +1 -1
  104. package/dist/components/lists-and-tables/list-item/list-item.template.d.ts.map +1 -1
  105. package/dist/components/lists-and-tables/list-item/list-item.template.js +5 -2
  106. package/dist/components/lists-and-tables/list-item/list-item.template.js.map +1 -1
  107. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.d.ts +116 -0
  108. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.d.ts.map +1 -0
  109. package/dist/components/lists-and-tables/{list-item-action/list-item-action.js → list-item-segment/list-item-segment.js} +77 -52
  110. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.js.map +1 -0
  111. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.d.ts +2 -0
  112. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.d.ts.map +1 -0
  113. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.js +179 -0
  114. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.js.map +1 -0
  115. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.d.ts +3 -0
  116. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.d.ts.map +1 -0
  117. package/dist/components/lists-and-tables/{list-item-action/list-item-action.template.js → list-item-segment/list-item-segment.template.js} +5 -4
  118. package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.js.map +1 -0
  119. package/dist/components/status-and-feedback/badge/badge.d.ts +8 -2
  120. package/dist/components/status-and-feedback/badge/badge.d.ts.map +1 -1
  121. package/dist/components/status-and-feedback/badge/badge.js +17 -1
  122. package/dist/components/status-and-feedback/badge/badge.js.map +1 -1
  123. package/dist/components/status-and-feedback/badge/badge.styles.d.ts.map +1 -1
  124. package/dist/components/status-and-feedback/badge/badge.styles.js +35 -6
  125. package/dist/components/status-and-feedback/badge/badge.styles.js.map +1 -1
  126. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.d.ts.map +1 -1
  127. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.js +7 -0
  128. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.js.map +1 -1
  129. package/dist/css/variables.css +25 -1
  130. package/dist/nldd.min.js +1002 -593
  131. package/dist/types/vue.d.ts +93 -47
  132. package/dist/utilities/scroll-mode-controller.d.ts +9 -1
  133. package/dist/utilities/scroll-mode-controller.d.ts.map +1 -1
  134. package/dist/utilities/scroll-mode-controller.js +10 -2
  135. package/dist/utilities/scroll-mode-controller.js.map +1 -1
  136. package/package.json +8 -4
  137. package/dist/components/lists-and-tables/list-item-action/list-item-action.d.ts +0 -108
  138. package/dist/components/lists-and-tables/list-item-action/list-item-action.d.ts.map +0 -1
  139. package/dist/components/lists-and-tables/list-item-action/list-item-action.js.map +0 -1
  140. package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.d.ts +0 -2
  141. package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.d.ts.map +0 -1
  142. package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.js +0 -145
  143. package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.js.map +0 -1
  144. package/dist/components/lists-and-tables/list-item-action/list-item-action.template.d.ts +0 -3
  145. package/dist/components/lists-and-tables/list-item-action/list-item-action.template.d.ts.map +0 -1
  146. package/dist/components/lists-and-tables/list-item-action/list-item-action.template.js.map +0 -1
@@ -10,7 +10,7 @@ declare const NLDDListItem_base: (abstract new (...args: any[]) => LitElement &
10
10
  /**
11
11
  * A row within an `nldd-list`. Renders as a link when `href` is set, as a
12
12
  * checkbox when `checkbox` is set, as a button when `button` is set, or as a
13
- * plain container otherwise. All cells and action segmented actions share one flat
13
+ * plain container otherwise. All cells and segments share one flat
14
14
  * slot, in source order.
15
15
  *
16
16
  * ## Geometry
@@ -24,7 +24,7 @@ declare const NLDDListItem_base: (abstract new (...args: any[]) => LitElement &
24
24
  * itself outward (`is-interactive` host class → negative inline margin)
25
25
  * and pads the row block back by the same amount, so content stays on the
26
26
  * grid. A row-wide action owns that padding itself, making the whole
27
- * widened box one hit area; slotted segmented actions stay in the grid, so their
27
+ * widened box one hit area; slotted segments stay in the grid, so their
28
28
  * footprint is position-independent and tree columns line up at any depth.
29
29
  *
30
30
  * ## Divider
@@ -33,7 +33,7 @@ declare const NLDDListItem_base: (abstract new (...args: any[]) => LitElement &
33
33
  * an avatar, a checkbox, or the spacers a tree indents with. Rows of different
34
34
  * shapes then still line their dividers up with each other, and a tree's
35
35
  * dividers step inward with its indentation. Text inside an
36
- * `nldd-list-item-action` counts as the row's content, and the marker is that
36
+ * `nldd-list-item-segment` counts as the row's content, and the marker is that
37
37
  * text cell rather than the action: the action carries its own inline padding,
38
38
  * so its edge sits before the words. A row with no text or title cell keeps the
39
39
  * full content width. Mark a cell with `divider-start` and/or `divider-end` to
@@ -45,7 +45,7 @@ declare const NLDDListItem_base: (abstract new (...args: any[]) => LitElement &
45
45
  *
46
46
  * ## Disclosure
47
47
  * A branch row can disclose its children in two ways: a dedicated
48
- * `nldd-list-item-action[disclosure]` segment (only the chevron is clickable),
48
+ * `nldd-list-item-segment[disclosure]` segment (only the chevron is clickable),
49
49
  * or the row itself as the control (`button` + `expanded`, the whole row
50
50
  * toggles). In the second case, mark the chevron's `nldd-icon-cell` with
51
51
  * `disclosure` and the row turns it with `expanded` — the same affordance,
@@ -78,17 +78,19 @@ declare const NLDDListItem_base: (abstract new (...args: any[]) => LitElement &
78
78
  * @element nldd-list-item
79
79
  *
80
80
  * @attr {'sm'|'md'} size - Row size (default: 'md'). Pushed onto the cells whose `size` means the same scale (nldd-text-cell, nldd-drag-handle-cell), so it is written once per row instead of once per cell. A size set on the cell itself wins. Cells where `size` means something else — pixels on nldd-icon-cell / nldd-spacer-cell, a heading scale on nldd-title-cell — are left alone.
81
- * @attr {boolean} selected - Marks the item as selected. Selection is consumer-managed; the list never sets it. In a `navigation` parent it puts `aria-current="page"` on the inner action, in a `listbox` parent it drives `aria-selected`.
82
- * @attr {boolean} button - Renders the item as a `<button>`; ignored when `href` is set (a link wins)
83
- * @attr {boolean} checkbox - Makes the whole row a `role="checkbox"` control; ignored when `href` is set
81
+ * @attr {boolean} selected - Marks the item as selected: it is one of the rows you picked. Selection is consumer-managed; the list never sets it. In a `navigation` parent it puts `aria-current="page"` on the inner action, in a `listbox` parent it drives `aria-selected`.
82
+ * @attr {boolean} current - Marks the item as the one you are on: the page a menu row points at, the record a list has open. Exactly one row in a list carries it, where `selected` may be on many. It paints like `selected` at rest, and takes the highlighted fill while focus is anywhere in the row — including inside a nested `nldd-list-item-segment`, which is what a segmented row needs: the focus never reaches the row's own control, because there is none. In a `navigation` parent it puts `aria-current="page"` on the inner action. On a segmented row set it on the segment that holds the link instead: the row reads `current` off its own segments and paints itself, so it is written once, where `aria-current` belongs.
83
+ * @attr {boolean} button - Renders the item as a `<button>`. Last of the three: `href` and `checkbox` both win over it.
84
+ * @attr {boolean} checkbox - Makes the whole row a `role="checkbox"` control. Wins over `button`, loses to `href`.
84
85
  * @attr {boolean} checked - Checked state of a `checkbox` row; the item toggles it on activation
85
- * @attr {boolean} expanded - Disclosure state. Drives the `children` group's visibility AND supplies `aria-expanded` to the row's own control when the row is interactive, or to the segmented action marked `disclosure`. Written once either way; the item DEV-warns when there is nowhere for it to live.
86
- * @attr {string} href - Renders the item as an `<a>` with this URL. Takes precedence over `button`; without either the item is a plain container with no action.
86
+ * @attr {boolean} disabled - Switches the row's own control off: a `button` or `checkbox` row stops responding and dims, a `href` row gets `aria-disabled` and its click is blocked (a link cannot be disabled natively). A row without a control of its own has nothing to switch off, and segments carry their own `disabled`. The arrow keys skip a disabled row.
87
+ * @attr {boolean} expanded - Disclosure state. Drives the `children` group's visibility AND supplies `aria-expanded` to the row's own control when the row is interactive, or to the segment marked `disclosure`. Written once either way; the item DEV-warns when there is nowhere for it to live.
88
+ * @attr {string} href - Renders the item as an `<a>` with this URL. Wins over `checkbox` and `button`; without any of the three the item is a plain container with no action.
87
89
  * @attr {string} target - Link target forwarded to the `<a>` (e.g. '_blank'); only applies with `href`. With '_blank' a visually hidden "opens in new tab" announcement is added for assistive technology.
88
90
  * @attr {string} rel - Link rel forwarded to the `<a>` (e.g. 'noopener noreferrer'); only applies with `href`
89
91
  * @attr {boolean} reorderable - Set by the parent `nldd-list` when its own `reorderable` is on (with `type="list"`); consumers do not set this. Serves as a CSS hook for drag handle visibility.
90
92
  *
91
- * @slot - Cells and segmented actions, in source order
93
+ * @slot - Cells and segments, in source order
92
94
  * @slot children - Child rows of a branch in an `nldd-list type="tree"`. Rendered as a `role="group"` below the row, hidden while `expanded` is false. The nesting IS the hierarchy, so aria-level / -posinset / -setsize are derived, not authored. The group has no styling of its own: repeat a spacer-cell per level to indent, or show depth some other way.
93
95
  *
94
96
  * @fires change - On a `checkbox` row after it toggles; detail: { checked: boolean }
@@ -97,12 +99,30 @@ export declare class NLDDListItem extends NLDDListItem_base {
97
99
  static styles: import("lit").CSSResult[];
98
100
  size: ListItemSize;
99
101
  selected: boolean;
102
+ /**
103
+ * The row you are on, as opposed to the rows you picked (`selected`).
104
+ *
105
+ * Kept apart because the two say different things and a list can show both:
106
+ * a checkbox list where three rows are ticked and one is open. At rest they
107
+ * paint the same, so a menu reads the same as it always did; the difference
108
+ * shows when focus is in the row.
109
+ */
110
+ current: boolean;
100
111
  /** When set, renders the item as a button; ignored when href is set. */
101
112
  button: boolean;
102
113
  /** When set, the whole row is the checkbox control. Ignored when href is set. */
103
114
  checkbox: boolean;
104
115
  /** Checked state of a `checkbox` row. Toggled by the item on activation. */
105
116
  checked: boolean;
117
+ /**
118
+ * Switches off the row's own control.
119
+ *
120
+ * Only the row's own: a row built out of segments has no control here, and
121
+ * each segment carries its own `disabled`. A link cannot be disabled the way
122
+ * a button can, so there it is `aria-disabled` plus a blocked click, the
123
+ * same trade `nldd-button` makes.
124
+ */
125
+ disabled: boolean;
106
126
  /**
107
127
  * Disclosure state of a row that opens something (a tree row's children, a
108
128
  * details panel). Reflected as `aria-expanded` on the row's own control —
@@ -125,10 +145,11 @@ export declare class NLDDListItem extends NLDDListItem_base {
125
145
  reorderable: boolean;
126
146
  private _showChildren;
127
147
  private _parentType;
128
- /** Set by the parent nldd-list when `arrow-navigation` (roving tabindex) is on.
148
+ /** Set by the parent nldd-list when it runs the roving tabindex (everywhere
149
+ * except a listbox and a reorderable list).
129
150
  * Switches the inner action from a normal tab stop to a roving one. */
130
151
  _arrowNavigation: boolean;
131
- /** Set by the parent nldd-list: when arrow-navigation is on, exactly one item
152
+ /** Set by the parent nldd-list: while the roving runs, exactly one item
132
153
  * is the roving entry point (tabindex 0); the rest are tabindex -1. */
133
154
  _rovingActive: boolean;
134
155
  /** Set by the parent nldd-list in `type="listbox"`: marks this option as
@@ -141,6 +162,10 @@ export declare class NLDDListItem extends NLDDListItem_base {
141
162
  private _isBoxed;
142
163
  private _hasCheckedSegment;
143
164
  private _lightDomObserver;
165
+ /** The controls in this row the roving takes in and out of the tab order.
166
+ * Rebuilt when the row's light DOM changes, so a keypress does not walk
167
+ * every cell of every row again. */
168
+ private _rovingControlsCache;
144
169
  /** Watches the row and its divider-marker cells for size changes; marker
145
170
  * insets are measured, so any reflow can move them. */
146
171
  private _dividerMarkerObserver;
@@ -149,20 +174,53 @@ export declare class NLDDListItem extends NLDDListItem_base {
149
174
  connectedCallback(): void;
150
175
  disconnectedCallback(): void;
151
176
  private _onLightDomChange;
177
+ private get _parentList();
178
+ /**
179
+ * The controls in this row that own a tab stop: a design-system control that
180
+ * carries `no-tab`, or anything natively focusable. Segments are left
181
+ * out — they have their own channel (`_tabbable`) — but a control slotted
182
+ * inside one is not, so it is managed here.
183
+ *
184
+ * Custom elements that have not upgraded yet cannot answer whether they carry
185
+ * `no-tab`, so the cache is dropped and the row re-syncs once they do.
186
+ */
187
+ private _rovingControls;
188
+ /**
189
+ * Whether the arrow keys stop at this row.
190
+ *
191
+ * Anything you can operate makes a row a stop: its own link, button or
192
+ * checkbox, a segment, or a control sitting in one of its cells. A
193
+ * row of nothing but text is skipped, because focus that leads nowhere is a
194
+ * dead end for a keyboard.
195
+ *
196
+ * @internal Read by the parent nldd-list.
197
+ */
198
+ get _isRovingStop(): boolean;
199
+ /**
200
+ * A segment marked `current` makes the whole row the current one.
201
+ *
202
+ * A row cut into segments has no control of its own, so `aria-current="page"`
203
+ * belongs on the segment that holds the link. Written there, the row would
204
+ * stay unpainted and the consumer had to set `current` twice, once for the
205
+ * semantics and once for the colour, with nothing to catch the two drifting
206
+ * apart. The row reads it off its own segments instead — reading, not
207
+ * writing: the attributes stay the consumer's.
208
+ */
209
+ private _updateCurrentSegment;
152
210
  /** A checked checkbox-segment reads as "this row is selected", so the fill
153
211
  * covers the whole row — including a disclosure segment — instead of
154
- * stopping at the segmented action boundary. Scoped to own descendants: a checked
212
+ * stopping at the segment boundary. Scoped to own descendants: a checked
155
213
  * row in a nested branch must not light up its ancestors. */
156
214
  private _updateCheckedSegment;
157
215
  /** A row with any action — its own href/button/checkbox or a slotted
158
216
  * segment — carries the widened geometry: negative host margin plus the
159
217
  * compensating row padding (see the geometry rules in the class doc).
160
218
  *
161
- * An action segment at a row edge owns the padding for that side itself,
162
- * so the row drops its own there and the segmented action lands on the row's edge.
219
+ * An segment at a row edge owns the padding for that side itself,
220
+ * so the row drops its own there and the segment lands on the row's edge.
163
221
  * Stamped as classes because the CSS cannot ask: `:has()` is not allowed
164
222
  * inside `:host()`, and the row's own padding is what has to change — a
165
- * `::slotted()` rule could only reach the segmented action. */
223
+ * `::slotted()` rule could only reach the segment. */
166
224
  private _updateInteractive;
167
225
  firstUpdated(): void;
168
226
  /**
@@ -175,12 +233,12 @@ export declare class NLDDListItem extends NLDDListItem_base {
175
233
  private _ownCellSize;
176
234
  /**
177
235
  * The row's own descendants for `selector` — everything down to and inside
178
- * its action segmented actions, but NOT inside a nested row. In a tree the child rows
236
+ * its segments, but NOT inside a nested row. In a tree the child rows
179
237
  * are DOM children of this row, so a plain querySelectorAll would push this
180
238
  * row's state into theirs (a parent's `expanded` turning every nested
181
239
  * chevron, its `size` overwriting theirs). A `:scope >` child selector is
182
240
  * too strict the other way: cells legitimately sit one level deeper, inside
183
- * an nldd-list-item-action.
241
+ * an nldd-list-item-segment.
184
242
  */
185
243
  private _ownDescendants;
186
244
  /**
@@ -256,6 +314,13 @@ export declare class NLDDListItem extends NLDDListItem_base {
256
314
  private _handleClick;
257
315
  private _handleFocusIn;
258
316
  private _handleFocusOut;
317
+ /**
318
+ * See the same handler in nldd-list-item-segment: Safari hands focus to the
319
+ * body while the mouse is down, which drops a row out of its lit state until
320
+ * you let go. Left alone on a reorderable row and on a row whose press came
321
+ * from a nested one, where the default is doing real work (dragging).
322
+ */
323
+ private _onMouseDown;
259
324
  private _onPointerDown;
260
325
  /** Whether the event started in a row nested inside this one. Only the part
261
326
  * of the path BELOW this row counts — everything above it is this row's own
@@ -270,8 +335,9 @@ export declare class NLDDListItem extends NLDDListItem_base {
270
335
  /**
271
336
  * The roving tab stop, spread over the row and the controls inside it: the
272
337
  * current row is reachable with Tab, everything else only with the arrow
273
- * keys. Within the current row Tab then walks its segmented actions, so a row
274
- * that holds a checkbox and a chevron stays fully operable.
338
+ * keys. Within the current row Tab then walks its segments and any
339
+ * control in its cells, so a row that holds a checkbox and a chevron, or a
340
+ * menu button at its end, stays fully operable.
275
341
  *
276
342
  * A row that is not the current one carries NO tabindex at all rather than
277
343
  * -1. A shadow host with a tabindex is a focus scope of its own, and Chromium
@@ -283,7 +349,7 @@ export declare class NLDDListItem extends NLDDListItem_base {
283
349
  * tab stop is in the DOM before focus is handed over.
284
350
  */
285
351
  _syncRovingTabStops(): void;
286
- /** The control that opens and closes this row: the segmented action marked
352
+ /** The control that opens and closes this row: the segment marked
287
353
  * `disclosure`, or the row itself when it is a button. Never a link — Left
288
354
  * and Right may not navigate away. */
289
355
  private get _disclosureControl();
@@ -291,6 +357,13 @@ export declare class NLDDListItem extends NLDDListItem_base {
291
357
  * and stays the only place `expanded` is written. Returns false when the row
292
358
  * has nothing to activate. */
293
359
  _activateDisclosure(): boolean;
360
+ /**
361
+ * Activates what this row is FOR, as opposed to what folds it: the first
362
+ * segment that is not the disclosure. A row that is its own control
363
+ * needs none of this, because the key reaches that control by itself.
364
+ * Returns false when there is nothing but a chevron.
365
+ */
366
+ _activatePrimary(): boolean;
294
367
  /** The branch this row hangs under, or undefined for a top-level row. */
295
368
  get parentRow(): NLDDListItem | undefined;
296
369
  render(): import("lit-html").TemplateResult<1>;
@@ -1 +1 @@
1
- {"version":3,"file":"list-item.d.ts","sourceRoot":"","sources":["../../../../src/components/lists-and-tables/list-item/list-item.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-item.d.ts","sourceRoot":"","sources":["../../../../src/components/lists-and-tables/list-item/list-item.ts"],"names":[],"mappings":"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"}