stimeo-ui 0.18.0 → 0.18.1
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.
- package/CHANGELOG.md +31 -2
- package/dist/cable/index.d.ts +2 -1
- package/dist/controllers/command_palette_controller.js +1 -0
- package/dist/controllers/command_palette_controller.js.map +1 -1
- package/dist/controllers/dismissible_controller.js +2 -0
- package/dist/controllers/dismissible_controller.js.map +1 -1
- package/dist/controllers/editable_controller.js +1 -0
- package/dist/controllers/editable_controller.js.map +1 -1
- package/dist/controllers/form_field_controller.d.ts +2 -1
- package/dist/controllers/input_mask_controller.d.ts +2 -1
- package/dist/controllers/input_mask_controller.js +23 -0
- package/dist/controllers/input_mask_controller.js.map +1 -1
- package/dist/controllers/multi_select_controller.d.ts +2 -1
- package/dist/controllers/multi_select_controller.js +21 -1
- package/dist/controllers/multi_select_controller.js.map +1 -1
- package/dist/controllers/pointer_drag_controller.d.ts +1 -0
- package/dist/controllers/pointer_drag_controller.js +6 -1
- package/dist/controllers/pointer_drag_controller.js.map +1 -1
- package/dist/controllers/popover_controller.d.ts +6 -2
- package/dist/controllers/popover_controller.js +9 -0
- package/dist/controllers/popover_controller.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +63 -2
- package/dist/index.js.map +1 -1
- package/dist/inspector/cli.d.ts +10 -1
- package/dist/inspector/cli.js +5 -0
- package/dist/inspector/cli.js.map +1 -1
- package/dist/inspector/cli_bin.d.ts +1 -1
- package/dist/inspector/cli_bin.js +9 -0
- package/dist/inspector/cli_bin.js.map +1 -1
- package/dist/inspector/manifest.json +2 -2
- package/dist/positioning/index.d.ts +2 -1
- package/package.json +5 -5
|
@@ -193,8 +193,9 @@ declare class MultiSelectController extends Controller<HTMLElement> {
|
|
|
193
193
|
* list shown without one is a popup no assistive technology is told about. So
|
|
194
194
|
* opening is skipped entirely, where {@link MultiSelectController.close | close}
|
|
195
195
|
* still closes.
|
|
196
|
+
* A focus action delivered by chip Tab keeps the list closed.
|
|
196
197
|
*/
|
|
197
|
-
open(): void;
|
|
198
|
+
open(event?: Event): void;
|
|
198
199
|
/**
|
|
199
200
|
* Closes the list and clears the active option.
|
|
200
201
|
*
|
|
@@ -1118,7 +1118,9 @@ var MultiSelectController = class _MultiSelectController extends Controller {
|
|
|
1118
1118
|
focusAfterEnd: () => this.#focusInput()
|
|
1119
1119
|
});
|
|
1120
1120
|
#listeners = new ListenerSet();
|
|
1121
|
+
#tab = null;
|
|
1121
1122
|
connect() {
|
|
1123
|
+
this.#tab = null;
|
|
1122
1124
|
this.#tabindex.reclaim(this.element);
|
|
1123
1125
|
this.#rows.connect();
|
|
1124
1126
|
this.#normalizeSelection([]);
|
|
@@ -1130,6 +1132,9 @@ var MultiSelectController = class _MultiSelectController extends Controller {
|
|
|
1130
1132
|
this.#selectionValues = this.#values;
|
|
1131
1133
|
this.#syncFields();
|
|
1132
1134
|
this.#listeners.add(document, "click", this.#onOutsideClick, { capture: true });
|
|
1135
|
+
this.#listeners.add(this.element, "keydown", this.#onTab);
|
|
1136
|
+
for (const type of ["focus", "keydown", "keyup", "pointerdown"])
|
|
1137
|
+
this.#listeners.add(document, type, this.#trackTab, { capture: true });
|
|
1133
1138
|
this.#connected = true;
|
|
1134
1139
|
this.#reconcile.observe(this.element);
|
|
1135
1140
|
}
|
|
@@ -1151,6 +1156,7 @@ var MultiSelectController = class _MultiSelectController extends Controller {
|
|
|
1151
1156
|
this.#composition.disconnect();
|
|
1152
1157
|
this.#chipRow.disconnect();
|
|
1153
1158
|
this.#listeners.dispose();
|
|
1159
|
+
this.#tab = null;
|
|
1154
1160
|
this.#releaseTabindex();
|
|
1155
1161
|
}
|
|
1156
1162
|
optionTargetConnected() {
|
|
@@ -1320,7 +1326,11 @@ var MultiSelectController = class _MultiSelectController extends Controller {
|
|
|
1320
1326
|
this.#setActive(visible[0] ?? null);
|
|
1321
1327
|
this.dispatch("filter", { detail: { query } });
|
|
1322
1328
|
}
|
|
1323
|
-
open() {
|
|
1329
|
+
open(event) {
|
|
1330
|
+
if (event instanceof FocusEvent && event === this.#tab) {
|
|
1331
|
+
this.#tab = null;
|
|
1332
|
+
return;
|
|
1333
|
+
}
|
|
1324
1334
|
if (!this.hasListTarget || !this.hasInputTarget) {
|
|
1325
1335
|
this.#reflectEmpty();
|
|
1326
1336
|
return;
|
|
@@ -1407,6 +1417,16 @@ var MultiSelectController = class _MultiSelectController extends Controller {
|
|
|
1407
1417
|
break;
|
|
1408
1418
|
}
|
|
1409
1419
|
}
|
|
1420
|
+
#onTab = (event) => {
|
|
1421
|
+
if (event.key !== "Tab" || event.defaultPrevented || event.isComposing || !this.hasTagsTarget || !this.tagsTarget.contains(event.target))
|
|
1422
|
+
return;
|
|
1423
|
+
this.#tab = event;
|
|
1424
|
+
this.close();
|
|
1425
|
+
};
|
|
1426
|
+
#trackTab = (event) => {
|
|
1427
|
+
const key = this.#tab;
|
|
1428
|
+
this.#tab = event.type === "focus" && key instanceof KeyboardEvent && !key.defaultPrevented && event.target === this.inputTargets[0] ? event : null;
|
|
1429
|
+
};
|
|
1410
1430
|
toggleOption(source) {
|
|
1411
1431
|
const { event, host, origin, reason } = actionSource(source);
|
|
1412
1432
|
if (origin && origin.closest(`[data-controller~="${this.identifier}"]`) !== this.element)
|