@nldd/design-system 0.8.88 → 0.8.90

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 (108) hide show
  1. package/README.md +4 -4
  2. package/custom-elements.json +303 -64
  3. package/dist/components/components.js +897 -201
  4. package/dist/components/content/image/image.d.ts +23 -3
  5. package/dist/components/content/image/image.d.ts.map +1 -1
  6. package/dist/components/content/image/image.js +74 -17
  7. package/dist/components/content/image/image.js.map +1 -1
  8. package/dist/components/content/image/image.template.js +1 -1
  9. package/dist/components/content/image/image.template.js.map +1 -1
  10. package/dist/components/{dist-LX8LuMac.js → dist-BLaE_n_F.js} +1 -1
  11. package/dist/components/{dist-CX3DK4i7.js → dist-BeymuiGt.js} +3 -3
  12. package/dist/components/{dist-CbCO0WCd.js → dist-CENYEz7C.js} +1 -1
  13. package/dist/components/{dist-B_Mnmrj4.js → dist-CYLM5ciE.js} +1 -1
  14. package/dist/components/{dist-fIxe0l7k.js → dist-DHA-0RyT.js} +91 -34
  15. package/dist/components/{dist-CgDuh26K.js → dist-D_ckX1sK.js} +1 -1
  16. package/dist/components/{dist-eVFegyjM.js → dist-Dh_b9r4M.js} +1 -1
  17. package/dist/components/{dist-DXZ-cFAl.js → dist-DkZlotgT.js} +2 -2
  18. package/dist/components/{dist-CSrO_mYe.js → dist-TCqV9dho.js} +1 -1
  19. package/dist/components/{dist-ByH8hQze.js → dist-Y54Lma86.js} +2 -2
  20. package/dist/components/{dist-CRwuSgMM.js → dist-yyE8P2O6.js} +2 -2
  21. package/dist/components/inputs/radio-button/radio-button.d.ts +58 -18
  22. package/dist/components/inputs/radio-button/radio-button.d.ts.map +1 -1
  23. package/dist/components/inputs/radio-button/radio-button.js +136 -29
  24. package/dist/components/inputs/radio-button/radio-button.js.map +1 -1
  25. package/dist/components/inputs/radio-button/radio-button.styles.d.ts.map +1 -1
  26. package/dist/components/inputs/radio-button/radio-button.styles.js +17 -23
  27. package/dist/components/inputs/radio-button/radio-button.styles.js.map +1 -1
  28. package/dist/components/inputs/radio-button/radio-button.template.d.ts.map +1 -1
  29. package/dist/components/inputs/radio-button/radio-button.template.js +13 -10
  30. package/dist/components/inputs/radio-button/radio-button.template.js.map +1 -1
  31. package/dist/components/inputs/radio-button-field/radio-button-field.d.ts +65 -18
  32. package/dist/components/inputs/radio-button-field/radio-button-field.d.ts.map +1 -1
  33. package/dist/components/inputs/radio-button-field/radio-button-field.js +151 -29
  34. package/dist/components/inputs/radio-button-field/radio-button-field.js.map +1 -1
  35. package/dist/components/inputs/radio-button-field/radio-button-field.styles.d.ts.map +1 -1
  36. package/dist/components/inputs/radio-button-field/radio-button-field.styles.js +17 -0
  37. package/dist/components/inputs/radio-button-field/radio-button-field.styles.js.map +1 -1
  38. package/dist/components/inputs/radio-button-field/radio-button-field.template.d.ts.map +1 -1
  39. package/dist/components/inputs/radio-button-field/radio-button-field.template.js +21 -12
  40. package/dist/components/inputs/radio-button-field/radio-button-field.template.js.map +1 -1
  41. package/dist/components/inputs/radio-button-group/radio-button-group.d.ts +3 -0
  42. package/dist/components/inputs/radio-button-group/radio-button-group.d.ts.map +1 -1
  43. package/dist/components/inputs/radio-button-group/radio-button-group.js +16 -4
  44. package/dist/components/inputs/radio-button-group/radio-button-group.js.map +1 -1
  45. package/dist/components/inputs/segmented-control/segmented-control.d.ts +46 -13
  46. package/dist/components/inputs/segmented-control/segmented-control.d.ts.map +1 -1
  47. package/dist/components/inputs/segmented-control/segmented-control.js +145 -16
  48. package/dist/components/inputs/segmented-control/segmented-control.js.map +1 -1
  49. package/dist/components/inputs/segmented-control/segmented-control.styles.d.ts.map +1 -1
  50. package/dist/components/inputs/segmented-control/segmented-control.styles.js +16 -0
  51. package/dist/components/inputs/segmented-control/segmented-control.styles.js.map +1 -1
  52. package/dist/components/inputs/segmented-control/segmented-control.template.d.ts.map +1 -1
  53. package/dist/components/inputs/segmented-control/segmented-control.template.js +47 -24
  54. package/dist/components/inputs/segmented-control/segmented-control.template.js.map +1 -1
  55. package/dist/components/inputs/text-editor/text-editor.cursor.d.ts.map +1 -1
  56. package/dist/components/inputs/text-editor/text-editor.cursor.js +14 -1
  57. package/dist/components/inputs/text-editor/text-editor.cursor.js.map +1 -1
  58. package/dist/components/inputs/text-editor/text-editor.mentions.d.ts.map +1 -1
  59. package/dist/components/inputs/text-editor/text-editor.mentions.js +3 -1
  60. package/dist/components/inputs/text-editor/text-editor.mentions.js.map +1 -1
  61. package/dist/components/inputs/toggle-button/toggle-button.d.ts +36 -2
  62. package/dist/components/inputs/toggle-button/toggle-button.d.ts.map +1 -1
  63. package/dist/components/inputs/toggle-button/toggle-button.js +116 -3
  64. package/dist/components/inputs/toggle-button/toggle-button.js.map +1 -1
  65. package/dist/components/inputs/toggle-button/toggle-button.styles.d.ts.map +1 -1
  66. package/dist/components/inputs/toggle-button/toggle-button.styles.js +17 -1
  67. package/dist/components/inputs/toggle-button/toggle-button.styles.js.map +1 -1
  68. package/dist/components/inputs/toggle-button/toggle-button.template.d.ts.map +1 -1
  69. package/dist/components/inputs/toggle-button/toggle-button.template.js +25 -2
  70. package/dist/components/inputs/toggle-button/toggle-button.template.js.map +1 -1
  71. package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts +4 -0
  72. package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts.map +1 -1
  73. package/dist/components/inputs/toggle-button-group/toggle-button-group.js +21 -2
  74. package/dist/components/inputs/toggle-button-group/toggle-button-group.js.map +1 -1
  75. package/dist/components/lists-and-tables/list/list.d.ts +1 -1
  76. package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
  77. package/dist/components/lists-and-tables/list/list.js +4 -3
  78. package/dist/components/lists-and-tables/list/list.js.map +1 -1
  79. package/dist/components/lists-and-tables/list/list.template.d.ts.map +1 -1
  80. package/dist/components/lists-and-tables/list/list.template.js +15 -10
  81. package/dist/components/lists-and-tables/list/list.template.js.map +1 -1
  82. package/dist/components/status-and-feedback/notification/notification-region.d.ts +4 -0
  83. package/dist/components/status-and-feedback/notification/notification-region.d.ts.map +1 -1
  84. package/dist/components/status-and-feedback/notification/notification-region.js +99 -30
  85. package/dist/components/status-and-feedback/notification/notification-region.js.map +1 -1
  86. package/dist/components/status-and-feedback/notification/notification.d.ts +7 -1
  87. package/dist/components/status-and-feedback/notification/notification.d.ts.map +1 -1
  88. package/dist/components/status-and-feedback/notification/notification.js +21 -1
  89. package/dist/components/status-and-feedback/notification/notification.js.map +1 -1
  90. package/dist/components/status-and-feedback/notification/notification.styles.d.ts.map +1 -1
  91. package/dist/components/status-and-feedback/notification/notification.styles.js +6 -0
  92. package/dist/components/status-and-feedback/notification/notification.styles.js.map +1 -1
  93. package/dist/css/variables.css +2 -2
  94. package/dist/nldd.min.js +618 -540
  95. package/dist/types/vue.d.ts +22 -18
  96. package/dist/utilities/described-by-mixin.d.ts +2 -2
  97. package/dist/utilities/described-by-mixin.d.ts.map +1 -1
  98. package/dist/utilities/described-by-mixin.js +11 -6
  99. package/dist/utilities/described-by-mixin.js.map +1 -1
  100. package/dist/utilities/radio-grouping.d.ts +66 -0
  101. package/dist/utilities/radio-grouping.d.ts.map +1 -0
  102. package/dist/utilities/radio-grouping.js +133 -0
  103. package/dist/utilities/radio-grouping.js.map +1 -0
  104. package/dist/utilities/radio-position.d.ts +20 -0
  105. package/dist/utilities/radio-position.d.ts.map +1 -0
  106. package/dist/utilities/radio-position.js +11 -0
  107. package/dist/utilities/radio-position.js.map +1 -0
  108. package/package.json +10 -10
@@ -8,11 +8,11 @@
8
8
  * @attr {string} value - Selected value for radio type
9
9
  * @prop {string[]} values - Selected values for checkbox type (property binding only, not an attribute)
10
10
  * @attr {string} size - Control size: 'sm' | 'md' | 'lg' (default: 'md')
11
- * @attr {string} type - Input type: 'radio' | 'checkbox' (default: 'radio').
11
+ * @attr {string} type - Selection mode: 'radio' | 'checkbox' (default: 'radio').
12
12
  * @attr {string} variant - Content type for all items: 'text' | 'icon' | 'icon-and-text' (default: 'text')
13
13
  * @attr {boolean} disabled - Disabled state for all items
14
14
  * @attr {string} width - Width mode: 'full' (stretches to container), 'fit-content' (per-item content size), or any CSS length (e.g. '240px')
15
- * @attr {string} name - Name for form submission, forwarded to native inputs
15
+ * @attr {string} name - Name for form submission
16
16
  * @attr {string} accessible-label - Accessible name for the group, set as aria-label
17
17
  * @attr {string} accessible-labeled-by - Id of an external label element, set as aria-labelledby on the group
18
18
  * @attr {boolean} required - Marks the group as required. Enforced in radio mode; in checkbox mode only announced.
@@ -32,9 +32,9 @@
32
32
  * @attr {string} icon - Icon name for nldd-icon
33
33
  * @attr {string} size - Control size: 'sm' | 'md' | 'lg' (default: 'md'). Set by nldd-segmented-control.
34
34
  * @attr {string} variant - Content type: 'text' | 'icon' | 'icon-and-text' (default: 'text'). Set by nldd-segmented-control.
35
- * @attr {string} input-type - Type of the native input: 'radio' | 'checkbox' (default: 'radio'). Set by nldd-segmented-control.
36
- * @attr {string} group-name - Name of the group for form submission, put on the native input. Set by nldd-segmented-control.
37
- * @attr {boolean} required - Required state. Set by nldd-segmented-control.
35
+ * @attr {string} input-type - Selection mode: 'radio' | 'checkbox' (default: 'radio'). In radio mode the item is the radio itself, in checkbox mode it renders a native checkbox. Set by nldd-segmented-control.
36
+ * @attr {string} group-name - Name of the group for form submission, put on the native checkbox. Set by nldd-segmented-control.
37
+ * @attr {boolean} required - Required state of the native checkbox. In radio mode the group carries the constraint.
38
38
  *
39
39
  * @slot icon - Slot for a custom icon (e.g. custom SVG). Only used when icon attribute is not set.
40
40
  *
@@ -42,6 +42,7 @@
42
42
  */
43
43
  import { LitElement } from 'lit';
44
44
  import { type FormValue } from '../../../utilities/form-associated-mixin.js';
45
+ import { type RadioPosition } from '../../../utilities/radio-position.js';
45
46
  import './../../content/icon/icon.js';
46
47
  export type SegmentedControlSize = 'sm' | 'md' | 'lg';
47
48
  export type SegmentedControlType = 'radio' | 'checkbox';
@@ -68,9 +69,40 @@ export declare class NLDDSegmentedControlItem extends LitElement {
68
69
  /** Icon name for nldd-icon. When not set, the icon slot is used; the icon and
69
70
  * icon-and-text variants show a placeholder icon when neither is provided. */
70
71
  icon: string;
72
+ /** Set by nldd-segmented-control in radio mode: this item's place in the
73
+ * group, which it cannot count by itself. */
74
+ _groupPosition: RadioPosition | null;
75
+ /** The aria-label this item wrote on itself, so it only takes back its own. */
76
+ private _appliedRadioLabel;
77
+ connectedCallback(): void;
78
+ disconnectedCallback(): void;
79
+ /**
80
+ * The tooltip of the icon variant, which shows itself when focus moves into
81
+ * it. In radio mode the focus is on this element, outside it, so it hears
82
+ * about focus and Escape from here.
83
+ */
84
+ private get _tooltip();
85
+ private _onRadioFocus;
86
+ private _onRadioBlur;
87
+ updated(): void;
88
+ /**
89
+ * In radio mode this element is the radio.
90
+ *
91
+ * A native radio in a shadow root of its own is a group of one: a screen
92
+ * reader counts it as "1 of 1" and Tab stops at every option. The role on the
93
+ * element itself puts the whole group back in one tree, under the radiogroup
94
+ * the control carries. Checkbox mode keeps its native input.
95
+ */
96
+ private _syncRadioAria;
97
+ /** Checked, the way a click or the space bar does it. A radio never
98
+ * unchecks itself, so an option that is already selected says nothing. */
99
+ private _select;
100
+ private _onRadioClick;
101
+ private _onRadioKeyDown;
71
102
  _handleChange(e: Event): void;
72
103
  /**
73
- * Delegates focus to the inner native `<input>`, so consumers can call
104
+ * Delegates focus to whichever control this mode renders: the element itself
105
+ * in radio mode, the native `<input>` in checkbox mode. Lets consumers call
74
106
  * `itemEl.focus()` without reaching into shadow DOM.
75
107
  */
76
108
  focus(options?: FocusOptions): void;
@@ -81,15 +113,16 @@ export declare class NLDDSegmentedControl extends NLDDSegmentedControl_base {
81
113
  /**
82
114
  * Marks the group as required: something has to be selected.
83
115
  *
84
- * Handed to the items, because that is where the platform reads it. One
85
- * required radio makes the whole group required, and the browser writes its
86
- * own message in the user's language.
116
+ * The group carries the constraint, on a radio of its own that is checked as
117
+ * soon as anything is selected. The items are the radios the user meets, and
118
+ * they have no input left to read it from. The browser writes the message in
119
+ * the user's language.
87
120
  *
88
121
  * Only in radio mode. The same attribute on a checkbox means that box has to
89
- * be ticked, so spreading it over a checkbox group would demand all of them
90
- * instead of one. HTML has no way to say "at least one of these", and
91
- * neither do we: `aria-required` still goes on the group so assistive
92
- * software says it, but nothing enforces it.
122
+ * be ticked, so a required checkbox group would demand all of them instead of
123
+ * one. HTML has no way to say "at least one of these", and neither do we:
124
+ * `aria-required` still goes on the group so assistive software says it, but
125
+ * nothing enforces it.
93
126
  */
94
127
  required: boolean;
95
128
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"segmented-control.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"segmented-control.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,11 @@ var NLDDSegmentedControl_1;
15
15
  * @attr {string} value - Selected value for radio type
16
16
  * @prop {string[]} values - Selected values for checkbox type (property binding only, not an attribute)
17
17
  * @attr {string} size - Control size: 'sm' | 'md' | 'lg' (default: 'md')
18
- * @attr {string} type - Input type: 'radio' | 'checkbox' (default: 'radio').
18
+ * @attr {string} type - Selection mode: 'radio' | 'checkbox' (default: 'radio').
19
19
  * @attr {string} variant - Content type for all items: 'text' | 'icon' | 'icon-and-text' (default: 'text')
20
20
  * @attr {boolean} disabled - Disabled state for all items
21
21
  * @attr {string} width - Width mode: 'full' (stretches to container), 'fit-content' (per-item content size), or any CSS length (e.g. '240px')
22
- * @attr {string} name - Name for form submission, forwarded to native inputs
22
+ * @attr {string} name - Name for form submission
23
23
  * @attr {string} accessible-label - Accessible name for the group, set as aria-label
24
24
  * @attr {string} accessible-labeled-by - Id of an external label element, set as aria-labelledby on the group
25
25
  * @attr {boolean} required - Marks the group as required. Enforced in radio mode; in checkbox mode only announced.
@@ -39,22 +39,24 @@ var NLDDSegmentedControl_1;
39
39
  * @attr {string} icon - Icon name for nldd-icon
40
40
  * @attr {string} size - Control size: 'sm' | 'md' | 'lg' (default: 'md'). Set by nldd-segmented-control.
41
41
  * @attr {string} variant - Content type: 'text' | 'icon' | 'icon-and-text' (default: 'text'). Set by nldd-segmented-control.
42
- * @attr {string} input-type - Type of the native input: 'radio' | 'checkbox' (default: 'radio'). Set by nldd-segmented-control.
43
- * @attr {string} group-name - Name of the group for form submission, put on the native input. Set by nldd-segmented-control.
44
- * @attr {boolean} required - Required state. Set by nldd-segmented-control.
42
+ * @attr {string} input-type - Selection mode: 'radio' | 'checkbox' (default: 'radio'). In radio mode the item is the radio itself, in checkbox mode it renders a native checkbox. Set by nldd-segmented-control.
43
+ * @attr {string} group-name - Name of the group for form submission, put on the native checkbox. Set by nldd-segmented-control.
44
+ * @attr {boolean} required - Required state of the native checkbox. In radio mode the group carries the constraint.
45
45
  *
46
46
  * @slot icon - Slot for a custom icon (e.g. custom SVG). Only used when icon attribute is not set.
47
47
  *
48
48
  * @fires item-change - When item is activated; detail: { value: string, checked: boolean }
49
49
  */
50
50
  import { LitElement } from 'lit';
51
- import { customElement, property } from 'lit/decorators.js';
51
+ import { customElement, property, state } from 'lit/decorators.js';
52
52
  import { FormAssociated } from '../../../utilities/form-associated-mixin.js';
53
53
  import { reflectNonDefault } from '../../../utilities/reflect-non-default.js';
54
+ import { radioPositions } from '../../../utilities/radio-position.js';
54
55
  import { segmentedControlStyles, segmentedControlItemStyles, } from './segmented-control.styles.js';
55
56
  import { segmentedControlTemplate, segmentedControlItemTemplate, } from './segmented-control.template.js';
56
57
  import './../../content/icon/icon.js';
57
58
  import { setOwnedAttribute } from '../../../utilities/owned-attribute.js';
59
+ import { submitOnEnter } from '../../../utilities/implicit-submission.js';
58
60
  // # nldd-segmented-control-item
59
61
  let NLDDSegmentedControlItem = class NLDDSegmentedControlItem extends LitElement {
60
62
  constructor() {
@@ -79,6 +81,110 @@ let NLDDSegmentedControlItem = class NLDDSegmentedControlItem extends LitElement
79
81
  /** Icon name for nldd-icon. When not set, the icon slot is used; the icon and
80
82
  * icon-and-text variants show a placeholder icon when neither is provided. */
81
83
  this.icon = '';
84
+ /** Set by nldd-segmented-control in radio mode: this item's place in the
85
+ * group, which it cannot count by itself. */
86
+ this._groupPosition = null;
87
+ /** The aria-label this item wrote on itself, so it only takes back its own. */
88
+ this._appliedRadioLabel = null;
89
+ this._onRadioFocus = () => {
90
+ this._tooltip?._handleFocusIn();
91
+ };
92
+ this._onRadioBlur = () => {
93
+ this._tooltip?._handleTriggerLeave();
94
+ };
95
+ this._onRadioClick = () => {
96
+ if (this.inputType !== 'radio')
97
+ return;
98
+ this._select();
99
+ };
100
+ this._onRadioKeyDown = (e) => {
101
+ if (this.inputType !== 'radio' || this.disabled)
102
+ return;
103
+ // Space is the key a radio answers to itself. The arrow keys and Enter
104
+ // belong to the group: it knows the form.
105
+ if (e.key === ' ') {
106
+ e.preventDefault();
107
+ this._select();
108
+ return;
109
+ }
110
+ // Escape puts the tooltip away without moving focus, as WCAG 1.4.13 asks.
111
+ if (e.key === 'Escape')
112
+ this._tooltip?._handleTriggerLeave();
113
+ };
114
+ }
115
+ connectedCallback() {
116
+ super.connectedCallback();
117
+ this.addEventListener('click', this._onRadioClick);
118
+ this.addEventListener('keydown', this._onRadioKeyDown);
119
+ this.addEventListener('focus', this._onRadioFocus);
120
+ this.addEventListener('blur', this._onRadioBlur);
121
+ }
122
+ disconnectedCallback() {
123
+ super.disconnectedCallback();
124
+ this.removeEventListener('click', this._onRadioClick);
125
+ this.removeEventListener('keydown', this._onRadioKeyDown);
126
+ this.removeEventListener('focus', this._onRadioFocus);
127
+ this.removeEventListener('blur', this._onRadioBlur);
128
+ }
129
+ /**
130
+ * The tooltip of the icon variant, which shows itself when focus moves into
131
+ * it. In radio mode the focus is on this element, outside it, so it hears
132
+ * about focus and Escape from here.
133
+ */
134
+ get _tooltip() {
135
+ return this.inputType === 'radio'
136
+ ? this.shadowRoot?.querySelector('nldd-tooltip') ?? null
137
+ : null;
138
+ }
139
+ updated() {
140
+ this._syncRadioAria();
141
+ }
142
+ /**
143
+ * In radio mode this element is the radio.
144
+ *
145
+ * A native radio in a shadow root of its own is a group of one: a screen
146
+ * reader counts it as "1 of 1" and Tab stops at every option. The role on the
147
+ * element itself puts the whole group back in one tree, under the radiogroup
148
+ * the control carries. Checkbox mode keeps its native input.
149
+ */
150
+ _syncRadioAria() {
151
+ if (this.inputType !== 'radio') {
152
+ for (const name of ['role', 'aria-checked', 'aria-disabled', 'aria-posinset', 'aria-setsize', 'tabindex']) {
153
+ this.removeAttribute(name);
154
+ }
155
+ this._appliedRadioLabel = setOwnedAttribute(this, 'aria-label', '', this._appliedRadioLabel);
156
+ return;
157
+ }
158
+ this.setAttribute('role', 'radio');
159
+ this.setAttribute('aria-checked', String(this.selected));
160
+ this._appliedRadioLabel = setOwnedAttribute(this, 'aria-label', this.text, this._appliedRadioLabel);
161
+ if (this.disabled)
162
+ this.setAttribute('aria-disabled', 'true');
163
+ else
164
+ this.removeAttribute('aria-disabled');
165
+ const position = this._groupPosition;
166
+ if (position) {
167
+ this.setAttribute('aria-posinset', String(position.posInSet));
168
+ this.setAttribute('aria-setsize', String(position.setSize));
169
+ }
170
+ else {
171
+ this.removeAttribute('aria-posinset');
172
+ this.removeAttribute('aria-setsize');
173
+ }
174
+ // A disabled option is not in the tab order, as a native one is not.
175
+ const tabbable = !this.disabled && position?.tabbable !== false;
176
+ this.setAttribute('tabindex', tabbable ? '0' : '-1');
177
+ }
178
+ /** Checked, the way a click or the space bar does it. A radio never
179
+ * unchecks itself, so an option that is already selected says nothing. */
180
+ _select() {
181
+ if (this.disabled || this.selected)
182
+ return;
183
+ this.dispatchEvent(new CustomEvent('item-change', {
184
+ detail: { value: this.value, checked: true },
185
+ bubbles: true,
186
+ composed: true,
187
+ }));
82
188
  }
83
189
  _handleChange(e) {
84
190
  const input = e.target;
@@ -89,10 +195,15 @@ let NLDDSegmentedControlItem = class NLDDSegmentedControlItem extends LitElement
89
195
  }));
90
196
  }
91
197
  /**
92
- * Delegates focus to the inner native `<input>`, so consumers can call
198
+ * Delegates focus to whichever control this mode renders: the element itself
199
+ * in radio mode, the native `<input>` in checkbox mode. Lets consumers call
93
200
  * `itemEl.focus()` without reaching into shadow DOM.
94
201
  */
95
202
  focus(options) {
203
+ if (this.inputType === 'radio') {
204
+ super.focus(options);
205
+ return;
206
+ }
96
207
  this.shadowRoot
97
208
  ?.querySelector('.segmented-control__item-input')
98
209
  ?.focus(options);
@@ -132,6 +243,9 @@ __decorate([
132
243
  __decorate([
133
244
  property({ type: String })
134
245
  ], NLDDSegmentedControlItem.prototype, "icon", void 0);
246
+ __decorate([
247
+ state()
248
+ ], NLDDSegmentedControlItem.prototype, "_groupPosition", void 0);
135
249
  NLDDSegmentedControlItem = __decorate([
136
250
  customElement('nldd-segmented-control-item')
137
251
  ], NLDDSegmentedControlItem);
@@ -143,15 +257,16 @@ let NLDDSegmentedControl = NLDDSegmentedControl_1 = class NLDDSegmentedControl e
143
257
  /**
144
258
  * Marks the group as required: something has to be selected.
145
259
  *
146
- * Handed to the items, because that is where the platform reads it. One
147
- * required radio makes the whole group required, and the browser writes its
148
- * own message in the user's language.
260
+ * The group carries the constraint, on a radio of its own that is checked as
261
+ * soon as anything is selected. The items are the radios the user meets, and
262
+ * they have no input left to read it from. The browser writes the message in
263
+ * the user's language.
149
264
  *
150
265
  * Only in radio mode. The same attribute on a checkbox means that box has to
151
- * be ticked, so spreading it over a checkbox group would demand all of them
152
- * instead of one. HTML has no way to say "at least one of these", and
153
- * neither do we: `aria-required` still goes on the group so assistive
154
- * software says it, but nothing enforces it.
266
+ * be ticked, so a required checkbox group would demand all of them instead of
267
+ * one. HTML has no way to say "at least one of these", and neither do we:
268
+ * `aria-required` still goes on the group so assistive software says it, but
269
+ * nothing enforces it.
155
270
  */
156
271
  this.required = false;
157
272
  /**
@@ -235,6 +350,12 @@ let NLDDSegmentedControl = NLDDSegmentedControl_1 = class NLDDSegmentedControl e
235
350
  this._handleKeydown = (e) => {
236
351
  if (this.disabled || this.type === 'checkbox')
237
352
  return;
353
+ // Enter on a radio submits the form it belongs to, and the group is what
354
+ // the form knows.
355
+ if (e.key === 'Enter') {
356
+ submitOnEnter(this, e);
357
+ return;
358
+ }
238
359
  const items = this._getItems().filter(item => !item.disabled);
239
360
  if (items.length === 0)
240
361
  return;
@@ -266,7 +387,7 @@ let NLDDSegmentedControl = NLDDSegmentedControl_1 = class NLDDSegmentedControl e
266
387
  this.value = items[nextIndex].value;
267
388
  this._syncItems();
268
389
  this.commitFormValue();
269
- items[nextIndex].shadowRoot?.querySelector('input')?.focus();
390
+ items[nextIndex].focus();
270
391
  this.dispatchEvent(new CustomEvent('change', {
271
392
  detail: { value: this.value },
272
393
  bubbles: true,
@@ -384,7 +505,6 @@ let NLDDSegmentedControl = NLDDSegmentedControl_1 = class NLDDSegmentedControl e
384
505
  }
385
506
  _syncItems() {
386
507
  const items = this._getItems();
387
- items.forEach(item => { item.required = this.required && this.type !== 'checkbox'; });
388
508
  this.toggleAttribute('aria-required', this.required);
389
509
  // Announced, not drawn. See the note on `invalid`.
390
510
  if (this.invalid)
@@ -423,6 +543,15 @@ let NLDDSegmentedControl = NLDDSegmentedControl_1 = class NLDDSegmentedControl e
423
543
  ? selectedValues.includes(item.value)
424
544
  : item.value === this.value;
425
545
  });
546
+ // Radio mode only: each item its place in the group, and the group one stop
547
+ // for Tab. Every item renders its input in a shadow root of its own, so the
548
+ // browser would count each as a group of one.
549
+ const positions = this.type === 'radio'
550
+ ? radioPositions(items, (item) => item.selected, (item) => item.disabled)
551
+ : [];
552
+ items.forEach((item, index) => {
553
+ item._groupPosition = positions[index] ?? null;
554
+ });
426
555
  }
427
556
  get _autoName() {
428
557
  if (!this._generatedName) {
@@ -1 +1 @@
1
- {"version":3,"file":"segmented-control.js","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"segmented-control.js","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"segmented-control.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,yBA+ElC,CAAC;AAEF,eAAO,MAAM,0BAA0B,yBAyMtC,CAAC"}
1
+ {"version":3,"file":"segmented-control.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.styles.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,sBAAsB,yBAyFlC,CAAC;AAEF,eAAO,MAAM,0BAA0B,yBA+MtC,CAAC"}
@@ -70,6 +70,16 @@ export const segmentedControlStyles = css `
70
70
 
71
71
  /* # Elements */
72
72
 
73
+ .segmented-control__validation-input {
74
+ position: absolute;
75
+ inset: 0;
76
+ opacity: 0;
77
+ margin: 0;
78
+ pointer-events: none;
79
+ width: 100%;
80
+ height: 100%;
81
+ }
82
+
73
83
  ::slotted(nldd-segmented-control-item[selected]) {
74
84
  position: relative;
75
85
  z-index: var(--_selected-z-index);
@@ -224,12 +234,18 @@ export const segmentedControlItemStyles = css `
224
234
  opacity: var(--primitives-opacity-disabled);
225
235
  }
226
236
 
237
+ :host(:focus-visible) {
238
+ outline: none;
239
+ }
240
+
241
+ :host(:focus-visible) .segmented-control__item,
227
242
  .segmented-control__item:has(:focus-visible) {
228
243
  outline: var(--semantics-focus-ring-outline);
229
244
  outline-offset: var(--semantics-focus-ring-outline-offset);
230
245
  box-shadow: var(--semantics-focus-ring-box-shadow);
231
246
  }
232
247
 
248
+ :host([selected]:focus-visible) .segmented-control__item,
233
249
  :host([selected]) .segmented-control__item:has(:focus-visible) {
234
250
  box-shadow: var(--semantics-focus-ring-box-shadow), inset 0 0 0 var(--primitives-border-width-thin) var(--_highlight-border-color);
235
251
  }
@@ -1 +1 @@
1
- {"version":3,"file":"segmented-control.styles.js","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;IAerC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgErB,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;IAezC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0LrB,CAAC"}
1
+ {"version":3,"file":"segmented-control.styles.js","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;IAerC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0ErB,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;IAezC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgMrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"segmented-control.template.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAE,MAAM,KAAK,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,kCAAkC,CAAC;AAE1C,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,oBAAoB,GAAG,cAAc,CAExF;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,wBAAwB,GAAG,cAAc,CAqChG"}
1
+ {"version":3,"file":"segmented-control.template.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAE,MAAM,KAAK,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,kCAAkC,CAAC;AAE1C,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,oBAAoB,GAAG,cAAc,CAkBxF;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,wBAAwB,GAAG,cAAc,CA6ChG"}
@@ -1,7 +1,23 @@
1
1
  import { html, nothing } from 'lit';
2
2
  import '../../content/tooltip/tooltip.js';
3
3
  export function segmentedControlTemplate(component) {
4
- return html `<slot @slotchange=${component._onSlotChange}></slot>`;
4
+ // The group carries `required`, on a radio of its own: the items are the
5
+ // radios now and have no input to read it from. Checked as soon as something
6
+ // is selected, because that is what a radio asks — one of these, not this one.
7
+ // The name is for the platform: a radio without one is in no group, and a
8
+ // radio in no group never reports a missing value.
9
+ return html `
10
+ <input class="segmented-control__validation-input"
11
+ type="radio"
12
+ name="nldd-validation"
13
+ ?required=${component.required && component.type !== 'checkbox'}
14
+ ?disabled=${component.disabled}
15
+ .checked=${!!component.value}
16
+ tabindex="-1"
17
+ aria-hidden="true"
18
+ >
19
+ <slot @slotchange=${component._onSlotChange}></slot>
20
+ `;
5
21
  }
6
22
  export function segmentedControlItemTemplate(component) {
7
23
  const isIcon = component.variant === 'icon';
@@ -9,31 +25,38 @@ export function segmentedControlItemTemplate(component) {
9
25
  * placeholder whenever the consumer provided no icon. */
10
26
  const showPlaceholder = isIcon || component.variant === 'icon-and-text';
11
27
  const labelText = component.text || nothing;
12
- const label = html `
13
- <label class="segmented-control__item">
14
- <input class="segmented-control__item-input"
15
- type=${component.inputType}
16
- name=${component.groupName || nothing}
17
- value=${component.value}
18
- .checked=${component.selected}
19
- ?disabled=${component.disabled}
20
- ?required=${component.required}
21
- aria-label=${isIcon ? labelText : nothing}
22
- @change=${component._handleChange}
23
- >
24
- <span class="segmented-control__item-icon"
25
- aria-hidden=${isIcon ? nothing : 'true'}
26
- >
27
- ${component.icon
28
+ const content = html `
29
+ <span class="segmented-control__item-icon"
30
+ aria-hidden=${isIcon ? nothing : 'true'}
31
+ >
32
+ ${component.icon
28
33
  ? html `<nldd-icon name=${component.icon}></nldd-icon>`
29
34
  : html `<slot name="icon">${showPlaceholder ? html `<nldd-icon name="icon-placeholder"></nldd-icon>` : nothing}</slot>`}
30
- </span>
31
- <span class="segmented-control__item-text"
32
- aria-hidden=${isIcon ? 'true' : nothing}
33
- >
34
- ${component.text}
35
- </span>
36
- </label>`;
35
+ </span>
36
+ <span class="segmented-control__item-text"
37
+ aria-hidden=${isIcon ? 'true' : nothing}
38
+ >
39
+ ${component.text}
40
+ </span>`;
41
+ // In radio mode the item itself is the radio: it carries the role, the state
42
+ // and its place in the group, and nothing in here is announced or focused.
43
+ // A checkbox keeps its native input, which groups by nothing and counts as one.
44
+ const label = component.inputType === 'radio'
45
+ ? html `<div class="segmented-control__item">${content}</div>`
46
+ : html `
47
+ <label class="segmented-control__item">
48
+ <input class="segmented-control__item-input"
49
+ type="checkbox"
50
+ name=${component.groupName || nothing}
51
+ value=${component.value}
52
+ .checked=${component.selected}
53
+ ?disabled=${component.disabled}
54
+ ?required=${component.required}
55
+ aria-label=${isIcon ? labelText : nothing}
56
+ @change=${component._handleChange}
57
+ >
58
+ ${content}
59
+ </label>`;
37
60
  if (isIcon && labelText) {
38
61
  return html `<nldd-tooltip text=${labelText}>${label}</nldd-tooltip>`;
39
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"segmented-control.template.js","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAkB,MAAM,KAAK,CAAC;AAEpD,OAAO,kCAAkC,CAAC;AAE1C,MAAM,UAAU,wBAAwB,CAAC,SAA+B;IACvE,OAAO,IAAI,CAAA,qBAAqB,SAAS,CAAC,aAAa,UAAU,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,SAAmC;IAC/E,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC;IAC5C;6DACyD;IACzD,MAAM,eAAe,GAAG,MAAM,IAAI,SAAS,CAAC,OAAO,KAAK,eAAe,CAAC;IACxE,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC;IAE5C,MAAM,KAAK,GAAG,IAAI,CAAA;;;WAGR,SAAS,CAAC,SAAS;WACnB,SAAS,CAAC,SAAS,IAAI,OAAO;YAC7B,SAAS,CAAC,KAAK;eACZ,SAAS,CAAC,QAAQ;gBACjB,SAAS,CAAC,QAAQ;gBAClB,SAAS,CAAC,QAAQ;iBACjB,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;cAC/B,SAAS,CAAC,aAAa;;;kBAGnB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;;MAErC,SAAS,CAAC,IAAI;QACf,CAAC,CAAC,IAAI,CAAA,mBAAmB,SAAS,CAAC,IAAI,eAAe;QACtD,CAAC,CAAC,IAAI,CAAA,qBAAqB,eAAe,CAAC,CAAC,CAAC,IAAI,CAAA,iDAAiD,CAAC,CAAC,CAAC,OAAO,SAAS;;;kBAGxG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;MAErC,SAAS,CAAC,IAAI;;WAET,CAAC;IAEX,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA,sBAAsB,SAAS,IAAI,KAAK,iBAAiB,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"segmented-control.template.js","sourceRoot":"","sources":["../../../../src/components/inputs/segmented-control/segmented-control.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAkB,MAAM,KAAK,CAAC;AAEpD,OAAO,kCAAkC,CAAC;AAE1C,MAAM,UAAU,wBAAwB,CAAC,SAA+B;IACvE,yEAAyE;IACzE,6EAA6E;IAC7E,+EAA+E;IAC/E,0EAA0E;IAC1E,mDAAmD;IACnD,OAAO,IAAI,CAAA;;;;eAIG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU;eACnD,SAAS,CAAC,QAAQ;cACnB,CAAC,CAAC,SAAS,CAAC,KAAK;;;;sBAIT,SAAS,CAAC,aAAa;EAC3C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,SAAmC;IAC/E,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC;IAC5C;6DACyD;IACzD,MAAM,eAAe,GAAG,MAAM,IAAI,SAAS,CAAC,OAAO,KAAK,eAAe,CAAC;IACxE,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC;IAE5C,MAAM,OAAO,GAAG,IAAI,CAAA;;iBAEJ,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;;KAErC,SAAS,CAAC,IAAI;QACf,CAAC,CAAC,IAAI,CAAA,mBAAmB,SAAS,CAAC,IAAI,eAAe;QACtD,CAAC,CAAC,IAAI,CAAA,qBAAqB,eAAe,CAAC,CAAC,CAAC,IAAI,CAAA,iDAAiD,CAAC,CAAC,CAAC,OAAO,SAAS;;;iBAGxG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;KAErC,SAAS,CAAC,IAAI;UACT,CAAC;IAEV,6EAA6E;IAC7E,2EAA2E;IAC3E,gFAAgF;IAChF,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,KAAK,OAAO;QAC5C,CAAC,CAAC,IAAI,CAAA,wCAAwC,OAAO,QAAQ;QAC7D,CAAC,CAAC,IAAI,CAAA;;;;YAII,SAAS,CAAC,SAAS,IAAI,OAAO;aAC7B,SAAS,CAAC,KAAK;gBACZ,SAAS,CAAC,QAAQ;iBACjB,SAAS,CAAC,QAAQ;iBAClB,SAAS,CAAC,QAAQ;kBACjB,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;eAC/B,SAAS,CAAC,aAAa;;MAEhC,OAAO;YACD,CAAC;IAEZ,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA,sBAAsB,SAAS,IAAI,KAAK,iBAAiB,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"text-editor.cursor.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAwE,MAAM,kBAAkB,CAAC;AAgEpH;gFACgF;AAChF,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAahF;AAiID,eAAO,MAAM,YAAY,EAAE,SAA+E,CAAC"}
1
+ {"version":3,"file":"text-editor.cursor.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAwE,MAAM,kBAAkB,CAAC;AAgEpH;gFACgF;AAChF,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAahF;AA8ID,eAAO,MAAM,YAAY,EAAE,SAA+E,CAAC"}
@@ -169,7 +169,20 @@ const cursorLayer = layer({
169
169
  // period after a link goes, the caret does not hop over the badge.
170
170
  // Editing at the badge itself keeps the side it was on, which is the
171
171
  // URL being typed.
172
- const fromOutside = linkEndsAt(update.state, head) && !linkEndsAt(update.startState, oldHead);
172
+ //
173
+ // A link that only now ends here is one the edit just made, and what
174
+ // it is decides where the caret belongs. A `[text](url)` link is
175
+ // finished by its `)`, so the caret goes after the badge. A bare URL
176
+ // is still growing: `www.apple.c` parses as a whole link the moment
177
+ // it is typed, while the user is on their way to `.com`, so the caret
178
+ // stays on the link's side and the next letter extends the URL. A
179
+ // space, or anything else that ends a URL, is what puts you outside.
180
+ // Only while typing: a Backspace that eats the period behind a URL
181
+ // arrives at the badge from the right and stays there.
182
+ const grew = tr.isUserEvent('input') && bareUrlEndsAt(update.state, head);
183
+ const fromOutside = linkEndsAt(update.state, head)
184
+ && !linkEndsAt(update.startState, oldHead)
185
+ && !grew;
173
186
  hint = { head, side: fromOutside ? 1 : -1 };
174
187
  }
175
188
  else if (tr.isUserEvent('delete.forward'))