ember-aria-voyager 1.0.1 → 1.2.0

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/README.md CHANGED
@@ -101,6 +101,7 @@ type ListboxSignature<T = HTMLElement> = {
101
101
  items?: T[];
102
102
  selection?: T | T[];
103
103
  activateItem?: (item: T) => void;
104
+ check?: (selection: T[]) => void;
104
105
  } & (
105
106
  | {
106
107
  multi: true;
@@ -1,6 +1,6 @@
1
1
  import Modifier, { ArgsFor, NamedArgs, PositionalArgs } from "ember-modifier";
2
2
  import Owner from "@ember/owner";
3
- import { Orientation, TablistBehavior } from "aria-voyager";
3
+ import { ListboxBehavior, Orientation, TablistBehavior } from "aria-voyager";
4
4
 
5
5
  //#region src/modifiers/aria-group.d.ts
6
6
  interface GroupSignature<T> {
@@ -93,6 +93,7 @@ type ActivateHandler<T> = {
93
93
  };
94
94
  type CheckHandler<T> = {
95
95
  check?: (selection: T[]) => void;
96
+ checks?: T[];
96
97
  };
97
98
  type SingleSelectionHandler<T> = {
98
99
  multi?: false;
@@ -107,8 +108,9 @@ type MultiSelectionHandler<T> = {
107
108
  type SelectionHandler<T> = SingleSelectionHandler<T> | MultiSelectionHandler<T>;
108
109
  //#endregion
109
110
  //#region src/modifiers/aria-listbox.d.ts
110
- type ListboxOptions<T> = Simplify<SelectionHandler<T> & (Items<T> | Partial<Items<T>>) & ActivateHandler<T> & {
111
+ type ListboxOptions<T> = Simplify<SelectionHandler<T> & (Items<T> | Partial<Items<T>>) & ActivateHandler<T> & CheckHandler<T> & {
111
112
  disabled?: boolean;
113
+ behavior?: ListboxBehavior;
112
114
  }>;
113
115
  interface ListboxSignature<T> {
114
116
  Args: {
@@ -124,6 +126,7 @@ declare class ListboxModifier<T> extends Modifier<ListboxSignature<T>> {
124
126
  private prevSelection?;
125
127
  private prevMulti?;
126
128
  private prevDisabled?;
129
+ private prevChecks?;
127
130
  constructor(owner: Owner, args: ArgsFor<ListboxSignature<T>>);
128
131
  modify(element: Element, _: PositionalArgs<ListboxSignature<T>>, options: NamedArgs<ListboxSignature<T>>): void;
129
132
  }
@@ -145,6 +148,7 @@ declare class MenuModifier<T> extends Modifier<MenuSignature<T>> {
145
148
  private emitter;
146
149
  private prevItems?;
147
150
  private prevDisabled?;
151
+ private prevChecks?;
148
152
  constructor(owner: Owner, args: ArgsFor<MenuSignature<T>>);
149
153
  modify(element: Element, _: PositionalArgs<MenuSignature<T>>, options: NamedArgs<MenuSignature<T>>): void;
150
154
  }
@@ -1,4 +1,4 @@
1
- import { IndexEmitStrategy, ItemEmitStrategy, Orientation, TablistBehavior } from "aria-voyager";
1
+ import { IndexEmitStrategy, ItemEmitStrategy, ListboxBehavior, Orientation, TablistBehavior } from "aria-voyager";
2
2
  import Modifier, { ArgsFor, NamedArgs, PositionalArgs } from "ember-modifier";
3
3
  import Owner from "@ember/owner";
4
4
 
@@ -93,6 +93,7 @@ type ActivateHandler<T> = {
93
93
  };
94
94
  type CheckHandler<T> = {
95
95
  check?: (selection: T[]) => void;
96
+ checks?: T[];
96
97
  };
97
98
  type SingleSelectionHandler<T> = {
98
99
  multi?: false;
@@ -107,8 +108,9 @@ type MultiSelectionHandler<T> = {
107
108
  type SelectionHandler<T> = SingleSelectionHandler<T> | MultiSelectionHandler<T>;
108
109
  //#endregion
109
110
  //#region src/modifiers/aria-listbox.d.ts
110
- type ListboxOptions<T> = Simplify<SelectionHandler<T> & (Items<T> | Partial<Items<T>>) & ActivateHandler<T> & {
111
+ type ListboxOptions<T> = Simplify<SelectionHandler<T> & (Items<T> | Partial<Items<T>>) & ActivateHandler<T> & CheckHandler<T> & {
111
112
  disabled?: boolean;
113
+ behavior?: ListboxBehavior;
112
114
  }>;
113
115
  interface ListboxSignature<T> {
114
116
  Args: {
@@ -124,6 +126,7 @@ declare class ListboxModifier<T> extends Modifier<ListboxSignature<T>> {
124
126
  private prevSelection?;
125
127
  private prevMulti?;
126
128
  private prevDisabled?;
129
+ private prevChecks?;
127
130
  constructor(owner: Owner, args: ArgsFor<ListboxSignature<T>>);
128
131
  modify(element: Element, _: PositionalArgs<ListboxSignature<T>>, options: NamedArgs<ListboxSignature<T>>): void;
129
132
  }
@@ -145,6 +148,7 @@ declare class MenuModifier<T> extends Modifier<MenuSignature<T>> {
145
148
  private emitter;
146
149
  private prevItems?;
147
150
  private prevDisabled?;
151
+ private prevChecks?;
148
152
  constructor(owner: Owner, args: ArgsFor<MenuSignature<T>>);
149
153
  modify(element: Element, _: PositionalArgs<MenuSignature<T>>, options: NamedArgs<MenuSignature<T>>): void;
150
154
  }
package/dist/index.cjs CHANGED
@@ -250,6 +250,7 @@ var ListboxModifier = class extends ember_modifier.default {
250
250
  prevSelection;
251
251
  prevMulti;
252
252
  prevDisabled;
253
+ prevChecks;
253
254
  constructor(owner, args) {
254
255
  super(owner, args);
255
256
  (0, _ember_destroyable.registerDestructor)(this, () => {
@@ -259,7 +260,10 @@ var ListboxModifier = class extends ember_modifier.default {
259
260
  modify(element, _, options) {
260
261
  if (!this.listbox) {
261
262
  this.updater = new aria_voyager.ReactiveUpdateStrategy();
262
- this.listbox = new aria_voyager.Listbox(element, { updater: this.updater });
263
+ this.listbox = new aria_voyager.Listbox(element, {
264
+ updater: this.updater,
265
+ behavior: { check: options.behavior?.check }
266
+ });
263
267
  }
264
268
  if (options.items && !(this.emitter instanceof aria_voyager.IndexEmitStrategy)) this.emitter = createIndexEmitter(this.listbox, options);
265
269
  else if (!options.items && !(this.emitter instanceof aria_voyager.ItemEmitStrategy)) this.emitter = createItemEmitter(this.listbox, options);
@@ -271,6 +275,10 @@ var ListboxModifier = class extends ember_modifier.default {
271
275
  this.updater.updateSelection();
272
276
  this.prevSelection = asArray(options.selection);
273
277
  }
278
+ if (options.checks && !isEqual(this.prevChecks, options.checks)) {
279
+ this.updater.updateChecks();
280
+ this.prevChecks = options.checks;
281
+ }
274
282
  let optionsChanged = false;
275
283
  if (this.prevMulti !== options.multi) {
276
284
  if (options.multi) element.setAttribute("aria-multiselectable", "true");
@@ -293,6 +301,7 @@ var MenuModifier = class extends ember_modifier.default {
293
301
  menu;
294
302
  prevItems;
295
303
  prevDisabled;
304
+ prevChecks;
296
305
  constructor(owner, args) {
297
306
  super(owner, args);
298
307
  (0, _ember_destroyable.registerDestructor)(this, () => {
@@ -318,6 +327,10 @@ var MenuModifier = class extends ember_modifier.default {
318
327
  this.updater.updateItems();
319
328
  this.prevItems = [...options.items];
320
329
  }
330
+ if (options.checks && !isEqual(this.prevChecks, options.checks)) {
331
+ this.updater.updateChecks();
332
+ this.prevChecks = options.checks;
333
+ }
321
334
  let optionsChanged = false;
322
335
  if (this.prevDisabled !== options.disabled) {
323
336
  if (options.disabled) element.setAttribute("aria-disabled", "true");
package/dist/index.d.cts CHANGED
@@ -1,3 +1,3 @@
1
- import { a as GroupModifier, i as ListboxModifier, n as RadioGroupModifier, r as MenuModifier, t as TablistModifier } from "./aria-tablist-Bpm0pW99.cjs";
1
+ import { a as GroupModifier, i as ListboxModifier, n as RadioGroupModifier, r as MenuModifier, t as TablistModifier } from "./aria-tablist-BjAobkb7.cjs";
2
2
  import { Orientation, TablistBehavior } from "aria-voyager";
3
3
  export { type Orientation, type TablistBehavior, GroupModifier as ariaGroup, GroupModifier as group, ListboxModifier as ariaListbox, ListboxModifier as listbox, MenuModifier as ariaMenu, MenuModifier as menu, RadioGroupModifier as ariaRadioGroup, RadioGroupModifier as radiogroup, TablistModifier as ariaTablist, TablistModifier as tablist };
package/dist/index.d.mts CHANGED
@@ -1,3 +1,3 @@
1
- import { a as GroupModifier, i as ListboxModifier, n as RadioGroupModifier, r as MenuModifier, t as TablistModifier } from "./aria-tablist-ZH-aeJQW.mjs";
1
+ import { a as GroupModifier, i as ListboxModifier, n as RadioGroupModifier, r as MenuModifier, t as TablistModifier } from "./aria-tablist-DExQ2kKO.mjs";
2
2
  import { Orientation, TablistBehavior } from "aria-voyager";
3
3
  export { type Orientation, type TablistBehavior, GroupModifier as ariaGroup, GroupModifier as group, ListboxModifier as ariaListbox, ListboxModifier as listbox, MenuModifier as ariaMenu, MenuModifier as menu, RadioGroupModifier as ariaRadioGroup, RadioGroupModifier as radiogroup, TablistModifier as ariaTablist, TablistModifier as tablist };
package/dist/index.mjs CHANGED
@@ -247,6 +247,7 @@ var ListboxModifier = class extends Modifier {
247
247
  prevSelection;
248
248
  prevMulti;
249
249
  prevDisabled;
250
+ prevChecks;
250
251
  constructor(owner, args) {
251
252
  super(owner, args);
252
253
  registerDestructor(this, () => {
@@ -256,7 +257,10 @@ var ListboxModifier = class extends Modifier {
256
257
  modify(element, _, options) {
257
258
  if (!this.listbox) {
258
259
  this.updater = new ReactiveUpdateStrategy();
259
- this.listbox = new Listbox(element, { updater: this.updater });
260
+ this.listbox = new Listbox(element, {
261
+ updater: this.updater,
262
+ behavior: { check: options.behavior?.check }
263
+ });
260
264
  }
261
265
  if (options.items && !(this.emitter instanceof IndexEmitStrategy)) this.emitter = createIndexEmitter(this.listbox, options);
262
266
  else if (!options.items && !(this.emitter instanceof ItemEmitStrategy)) this.emitter = createItemEmitter(this.listbox, options);
@@ -268,6 +272,10 @@ var ListboxModifier = class extends Modifier {
268
272
  this.updater.updateSelection();
269
273
  this.prevSelection = asArray(options.selection);
270
274
  }
275
+ if (options.checks && !isEqual(this.prevChecks, options.checks)) {
276
+ this.updater.updateChecks();
277
+ this.prevChecks = options.checks;
278
+ }
271
279
  let optionsChanged = false;
272
280
  if (this.prevMulti !== options.multi) {
273
281
  if (options.multi) element.setAttribute("aria-multiselectable", "true");
@@ -290,6 +298,7 @@ var MenuModifier = class extends Modifier {
290
298
  menu;
291
299
  prevItems;
292
300
  prevDisabled;
301
+ prevChecks;
293
302
  constructor(owner, args) {
294
303
  super(owner, args);
295
304
  registerDestructor(this, () => {
@@ -315,6 +324,10 @@ var MenuModifier = class extends Modifier {
315
324
  this.updater.updateItems();
316
325
  this.prevItems = [...options.items];
317
326
  }
327
+ if (options.checks && !isEqual(this.prevChecks, options.checks)) {
328
+ this.updater.updateChecks();
329
+ this.prevChecks = options.checks;
330
+ }
318
331
  let optionsChanged = false;
319
332
  if (this.prevDisabled !== options.disabled) {
320
333
  if (options.disabled) element.setAttribute("aria-disabled", "true");
@@ -1,4 +1,4 @@
1
- import { a as GroupModifier, i as ListboxModifier, n as RadioGroupModifier, r as MenuModifier, t as TablistModifier } from "./aria-tablist-Bpm0pW99.cjs";
1
+ import { a as GroupModifier, i as ListboxModifier, n as RadioGroupModifier, r as MenuModifier, t as TablistModifier } from "./aria-tablist-BjAobkb7.cjs";
2
2
 
3
3
  //#region src/template-registry.d.ts
4
4
  interface AriaVoyagerRegistry {
@@ -1,4 +1,4 @@
1
- import { a as GroupModifier, i as ListboxModifier, n as RadioGroupModifier, r as MenuModifier, t as TablistModifier } from "./aria-tablist-ZH-aeJQW.mjs";
1
+ import { a as GroupModifier, i as ListboxModifier, n as RadioGroupModifier, r as MenuModifier, t as TablistModifier } from "./aria-tablist-DExQ2kKO.mjs";
2
2
 
3
3
  //#region src/template-registry.d.ts
4
4
  interface AriaVoyagerRegistry {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-aria-voyager",
3
- "version": "1.0.1",
3
+ "version": "1.2.0",
4
4
  "description": "Navigation patterns for various aria roles and features in ember.js",
5
5
  "author": "gossi",
6
6
  "license": "MIT",
@@ -41,7 +41,7 @@
41
41
  "@embroider/addon-shim": "^1.10.0",
42
42
  "dom-element-descriptors": "^0.5.1",
43
43
  "ember-modifier": "^4.2.2",
44
- "aria-voyager": "1.0.1"
44
+ "aria-voyager": "1.2.0"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "@ember/test-helpers": "^2.9.3 || ^3.0.0 || ^4.0.0 || ^5.0.0",
@@ -74,7 +74,7 @@
74
74
  "@gossi/config-eslint": "^1.3.4",
75
75
  "@gossi/config-prettier": "^1.2.2",
76
76
  "@gossi/config-template-lint": "^1.2.3",
77
- "@rollup/plugin-babel": "^7.0.0",
77
+ "@rollup/plugin-babel": "^7.1.0",
78
78
  "@types/qunit": "2.19.14",
79
79
  "@types/sinon": "21.0.1",
80
80
  "babel-plugin-ember-template-compilation": "^4.0.0",
@@ -94,7 +94,7 @@
94
94
  "qunit-dom": "3.5.0",
95
95
  "sinon": "^21.0.3",
96
96
  "testem": "^3.18.0",
97
- "tsdown": "0.22.2",
97
+ "tsdown": "0.22.3",
98
98
  "type-fest": "^5.7.0",
99
99
  "typescript": "6.0.3",
100
100
  "vite": "8.0.16"