@hokulea/ember 0.11.1 → 0.13.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.
Files changed (46) hide show
  1. package/declarations/components/alert.d.ts +2 -0
  2. package/declarations/components/alert.d.ts.map +1 -0
  3. package/declarations/components/controls/-menu.d.ts +2 -2
  4. package/declarations/components/controls/-menu.d.ts.map +1 -1
  5. package/declarations/components/controls/menu.d.ts.map +1 -1
  6. package/declarations/components/feedback/alert.d.ts +28 -0
  7. package/declarations/components/feedback/alert.d.ts.map +1 -0
  8. package/declarations/components/form/form.d.ts +9 -3
  9. package/declarations/components/form/form.d.ts.map +1 -1
  10. package/declarations/components/graphics/icon.d.ts +4 -1
  11. package/declarations/components/graphics/icon.d.ts.map +1 -1
  12. package/declarations/index.d.ts +3 -0
  13. package/declarations/index.d.ts.map +1 -1
  14. package/declarations/template-registry.d.ts +2 -0
  15. package/declarations/template-registry.d.ts.map +1 -1
  16. package/declarations/test-support/index.d.ts +1 -0
  17. package/declarations/test-support/index.d.ts.map +1 -1
  18. package/declarations/test-support/page-objects/-private/error.d.ts +7 -0
  19. package/declarations/test-support/page-objects/-private/error.d.ts.map +1 -0
  20. package/declarations/test-support/page-objects/-private/field.d.ts +2 -5
  21. package/declarations/test-support/page-objects/-private/field.d.ts.map +1 -1
  22. package/declarations/test-support/page-objects/alert.d.ts +13 -0
  23. package/declarations/test-support/page-objects/alert.d.ts.map +1 -0
  24. package/declarations/test-support/page-objects/form.d.ts +3 -1
  25. package/declarations/test-support/page-objects/form.d.ts.map +1 -1
  26. package/dist/_app_/components/alert.js +1 -0
  27. package/dist/alert-Dn7ePQlD.js +74 -0
  28. package/dist/alert-Dn7ePQlD.js.map +1 -0
  29. package/dist/{app-header-DKlDPWSe.js → app-header-Bb7kHBL2.js} +2 -2
  30. package/dist/{app-header-DKlDPWSe.js.map → app-header-Bb7kHBL2.js.map} +1 -1
  31. package/dist/components/alert.js +2 -0
  32. package/dist/components/alert.js.map +1 -0
  33. package/dist/components/app-header.js +1 -1
  34. package/dist/components/form.js +1 -1
  35. package/dist/components/menu.js +1 -1
  36. package/dist/{form-CXvWQbiY.js → form-B9MShV4J.js} +16 -8
  37. package/dist/{form-CXvWQbiY.js.map → form-B9MShV4J.js.map} +1 -1
  38. package/dist/icon-rlG6O1ps.js.map +1 -1
  39. package/dist/index.js +4 -3
  40. package/dist/index.js.map +1 -1
  41. package/dist/{menu-DCDUaqYZ.js → menu-BR3G9OgU.js} +2 -2
  42. package/dist/menu-BR3G9OgU.js.map +1 -0
  43. package/dist/test-support/index.js +30 -10
  44. package/dist/test-support/index.js.map +1 -1
  45. package/package.json +18 -17
  46. package/dist/menu-DCDUaqYZ.js.map +0 -1
@@ -3,6 +3,23 @@ import { click, select, triggerEvent } from '@ember/test-helpers';
3
3
  import { selectListbox, selectTab } from 'ember-aria-voyager/test-support';
4
4
  import { a as TabValue } from '../tabs-e_cUi6pL.js';
5
5
 
6
+ class AlertPageObject extends PageObject {
7
+ static SELECTOR = '[data-test-feedback]';
8
+ constructor(selector, parent, index) {
9
+ super(selector ?? AlertPageObject.SELECTOR, parent, index);
10
+ }
11
+ get indicator() {
12
+ return this.element?.getAttribute('data-indicator');
13
+ }
14
+ get importance() {
15
+ return this.element?.getAttribute('data-importance');
16
+ }
17
+ $icon = selector('[part="icon"]');
18
+ $title = selector('[part="title"]');
19
+ $content = selector('[part="content"]');
20
+ $actions = selector('[part="actions"]');
21
+ }
22
+
6
23
  class IconPageObject extends PageObject {
7
24
  static SELECTOR = '[data-test-icon]';
8
25
  constructor(selector, parent, index) {
@@ -241,6 +258,16 @@ class DataTablePageObject extends PageObject {
241
258
  });
242
259
  }
243
260
 
261
+ class Error extends PageObject {
262
+ static SELECTOR = '[data-test-error]';
263
+ get type() {
264
+ return this.element?.getAttribute('data-test-error-type');
265
+ }
266
+ get value() {
267
+ return this.element?.getAttribute('data-test-error-value');
268
+ }
269
+ }
270
+
244
271
  class InputBuilderPageObject extends PageObject {
245
272
  static SELECTOR = '[data-test-input-builder]';
246
273
  constructor(selector, parent, index) {
@@ -296,14 +323,6 @@ class ChoicesPageObject extends PageObject {
296
323
  }
297
324
  }
298
325
 
299
- class FieldError extends PageObject {
300
- get type() {
301
- return this.element?.getAttribute('data-test-error-type');
302
- }
303
- get value() {
304
- return this.element?.getAttribute('data-test-error-value');
305
- }
306
- }
307
326
  class FieldRule extends PageObject {
308
327
  get invalid() {
309
328
  return Boolean(this.element?.getAttribute('data-test-rule-invalid'));
@@ -329,7 +348,7 @@ class FieldPageObject extends PageObject {
329
348
  $checkbox = selector(CheckboxPageObject.SELECTOR, CheckboxPageObject);
330
349
  $list = selector(ListPageObject.SELECTOR, ListPageObject);
331
350
  $choices = selector(ChoicesPageObject.SELECTOR, ChoicesPageObject);
332
- $errors = selector('[data-test-error]', FieldError);
351
+ $errors = selector(Error.SELECTOR, Error);
333
352
  $rules = selector('[data-test-rule]', FieldRule);
334
353
  get $control() {
335
354
  if (this.$inputBuilder.element) {
@@ -368,6 +387,7 @@ class FormPageObject extends PageObject {
368
387
  $submit = selector('button[type="submit"]', ButtonPageObject);
369
388
  $reset = selector('button[type="reset"]', ButtonPageObject);
370
389
  $fields = selector(FieldPageObject.SELECTOR, FieldPageObject);
390
+ $errors = selector(Error.SELECTOR, Error);
371
391
  field(name) {
372
392
  return this.$fields.find(field => field.name === name);
373
393
  }
@@ -471,5 +491,5 @@ class TabsPageObject extends PageObject {
471
491
  }
472
492
  }
473
493
 
474
- export { AppHeaderPageObject, AvatarPageObject, ButtonPageObject, CheckboxPageObject, CurrencyInputPageObject, DataTablePageObject, DateInputPageObject, EmailInputPageObject, FormPageObject, IconButtonPageObject, IconPageObject, ListPageObject, MenuPageObject, NavigationListPageObject, NumberInputPageObject, PagePageObject, PaginationPageObject, PasswordInputPageObject, PhoneInputPageObject, PillButtonPageObject, PopoverPageObject, RadioPageObject, RangeInputPageObject, SectionPageObject, SectionedPagePageObject, SelectPageObject, TabsPageObject, TextAreaPageObject, TextInputPageObject };
494
+ export { AlertPageObject, AppHeaderPageObject, AvatarPageObject, ButtonPageObject, CheckboxPageObject, CurrencyInputPageObject, DataTablePageObject, DateInputPageObject, EmailInputPageObject, FormPageObject, IconButtonPageObject, IconPageObject, ListPageObject, MenuPageObject, NavigationListPageObject, NumberInputPageObject, PagePageObject, PaginationPageObject, PasswordInputPageObject, PhoneInputPageObject, PillButtonPageObject, PopoverPageObject, RadioPageObject, RangeInputPageObject, SectionPageObject, SectionedPagePageObject, SelectPageObject, TabsPageObject, TextAreaPageObject, TextInputPageObject };
475
495
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/test-support/page-objects/icon.ts","../../src/test-support/page-objects/icon-button.ts","../../src/test-support/page-objects/menu.ts","../../src/test-support/page-objects/app-header.ts","../../src/test-support/page-objects/avatar.ts","../../src/test-support/page-objects/button.ts","../../src/test-support/page-objects/choice.ts","../../src/test-support/page-objects/input.ts","../../src/test-support/page-objects/select.ts","../../src/test-support/page-objects/pagination.ts","../../src/test-support/page-objects/data-table.ts","../../src/test-support/page-objects/input-builder.ts","../../src/test-support/page-objects/list.ts","../../src/test-support/page-objects/text-area.ts","../../src/test-support/page-objects/-private/choices.ts","../../src/test-support/page-objects/-private/field.ts","../../src/test-support/page-objects/form.ts","../../src/test-support/page-objects/-navigation.ts","../../src/test-support/page-objects/navigation-list.ts","../../src/test-support/page-objects/page.ts","../../src/test-support/page-objects/pill-button.ts","../../src/test-support/page-objects/popover.ts","../../src/test-support/page-objects/section.ts","../../src/test-support/page-objects/tabs.ts"],"sourcesContent":["import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class IconPageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-icon]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? IconPageObject.SELECTOR, parent, index);\n }\n\n $svg = sel<SVGSVGElement>('svg');\n // $svg = sel<HTMLElement>('svg');\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconPageObject } from './icon.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class IconButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-icon-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? IconButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n\n $icon = sel('[data-test-icon-button=\"icon\"]', IconPageObject);\n}\n","import { globalSelector, PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { Menu, MenuElement, MenuItem, MenuItemElement } from './-menu.ts';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class MenuItemPageObject extends PageObject<MenuItemElement> implements MenuItem {\n static SELECTOR = '[role=\"menuitem\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? MenuItemPageObject.SELECTOR, parent, index);\n }\n\n get disabled() {\n return Boolean(this.element?.hasAttribute('aria-disabled'));\n }\n\n get expanded(): boolean {\n return Boolean(this.menu?.element?.matches(':popover-open'));\n }\n\n hasMenu() {\n return this.element?.getAttribute('aria-haspopup') === 'menu';\n }\n\n protected get menuId() {\n return this.element?.getAttribute('popovertarget');\n }\n\n protected get menu(): Menu | undefined {\n return this.menuId\n ? // eslint-disable-next-line @typescript-eslint/no-use-before-define\n globalSelector<MenuElement, Menu>(`#${this.menuId}`, MenuPageObject)\n : undefined;\n }\n\n get $menu() {\n return this.menu;\n }\n}\n\nexport class MenuPageObject extends PageObject<MenuElement> implements Menu {\n static SELECTOR = '[data-test-menu]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? MenuPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLDivElement;\n }\n\n $item = sel<MenuItemElement, MenuItem>(MenuItemPageObject.SELECTOR, MenuItemPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconButtonPageObject } from './icon-button.ts';\nimport { MenuItemPageObject } from './menu.ts';\n\nimport type { Menu, MenuItem, MenuItemElement } from './-menu.ts';\nimport type { ElementLike } from 'fractal-page-object';\n\nclass AppNavPageObject extends PageObject<HTMLElement> implements Menu<HTMLElement> {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n $item = sel<MenuItemElement, MenuItem>(NavItemPageObject.SELECTOR, NavItemPageObject);\n}\n\nexport class NavItemPageObject extends MenuItemPageObject implements MenuItem {\n static SELECTOR = '[part=\"item\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavItemPageObject.SELECTOR, parent, index);\n }\n\n hasMenu() {\n return super.hasMenu() || this.element?.tagName.toLowerCase() === 'summary';\n }\n\n isPopupNavItem() {\n return (\n this.element?.tagName.toLowerCase() === 'summary' ||\n this.element?.parentElement?.tagName === 'details'\n );\n }\n\n get expanded() {\n return Boolean(\n this.isPopupNavItem()\n ? (this.element?.parentElement as HTMLElement).matches('[open]')\n : super.expanded\n );\n }\n\n get $menu(): Menu | undefined {\n if (this.isPopupNavItem()) {\n return sel<HTMLElement, Menu>('+ div', AppNavPageObject);\n }\n\n return this.menu;\n }\n}\n\nexport class AppHeaderPageObject extends PageObject<HTMLElement> {\n static SELECTOR = '[data-test-app-header]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? AppHeaderPageObject.SELECTOR, parent, index);\n }\n\n get #prefix() {\n if (this.$menu.element) {\n return '[part=\"menu\"]';\n }\n\n return '';\n }\n\n get $brand() {\n return sel<HTMLDivElement>(`${this.#prefix} [part=\"brand\"]`);\n }\n\n get $nav() {\n return sel(`${this.#prefix} nav`, AppNavPageObject);\n }\n\n get $aux() {\n return sel(`${this.#prefix} [part=\"aux\"]`, AppNavPageObject);\n }\n\n $menu = sel(\n '[part=\"menu\"]',\n class extends PageObject<HTMLSpanElement> {\n $toggle = sel('[data-test-toggle]', IconButtonPageObject);\n\n $popover = sel(\n '[popover]',\n class extends PageObject<HTMLElement> {\n get expanded() {\n return Boolean(this.element?.matches(':popover-open'));\n }\n }\n );\n }\n );\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class AvatarPageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-avatar]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? AvatarPageObject.SELECTOR, parent, index);\n }\n\n $svg = sel<SVGSVGElement>('svg');\n $img = sel<HTMLImageElement>('img');\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class ButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input.ts';\nimport type { ElementLike } from 'fractal-page-object';\n\nclass ChoicePageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-choice]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ChoicePageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n}\n\nexport const RadioPageObject = ChoicePageObject;\nexport const CheckboxPageObject = ChoicePageObject;\n","import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport interface Input extends PageObject {\n control: HTMLInputElement;\n}\n\nexport class InputPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-input]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? InputPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n}\n\nexport class RangeInputPageObject extends InputPageObject {\n get orientation(): string | undefined {\n return this.control.dataset.orientation;\n }\n}\n\nexport const NumberInputPageObject = InputPageObject;\nexport const TextInputPageObject = InputPageObject;\nexport const PhoneInputPageObject = InputPageObject;\nexport const DateInputPageObject = InputPageObject;\nexport const EmailInputPageObject = InputPageObject;\nexport const PasswordInputPageObject = InputPageObject;\n","import { select } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { Target } from '@ember/test-helpers';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class SelectPageObject extends PageObject<HTMLSelectElement> {\n static SELECTOR = '[data-test-select]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? SelectPageObject.SELECTOR, parent, index);\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n get control() {\n return this.element as HTMLSelectElement;\n }\n\n $option = sel<HTMLOptionElement>('option');\n\n async select(options: string | string[], keepPreviouslySelected?: boolean) {\n await select(this.element as Target, options, keepPreviouslySelected);\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconButtonPageObject } from './icon-button.ts';\nimport { NumberInputPageObject } from './input.ts';\nimport { SelectPageObject } from './select.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PaginationPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-pagination]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PaginationPageObject.SELECTOR, parent, index);\n }\n\n $pageSize = sel(\n '[part=\"page-size\"]',\n class extends PageObject<HTMLElement> {\n $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n }\n );\n\n $page = sel(\n '[part=\"page\"]',\n class extends PageObject<HTMLElement> {\n $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n $input = sel(NumberInputPageObject.SELECTOR, NumberInputPageObject);\n }\n );\n\n $items = sel<HTMLElement>('[part=\"items\"]');\n\n $prev = sel('[data-test-prev]', IconButtonPageObject);\n $next = sel('[data-test-next]', IconButtonPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { PaginationPageObject } from './pagination.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class DataTablePageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-data-table]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? DataTablePageObject.SELECTOR, parent, index);\n }\n\n $col = sel<HTMLTableCellElement>('thead th');\n $rows = sel<HTMLTableRowElement>('tbody tr');\n $paginationFooter = sel(\n '[data-pagination]',\n class extends PageObject<HTMLTableCellElement> {\n $pagination = sel(PaginationPageObject.SELECTOR, PaginationPageObject);\n }\n );\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { InputPageObject } from './input.ts';\n\nimport type { Input } from './input.ts';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class InputBuilderPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-input-builder]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? InputBuilderPageObject.SELECTOR, parent, index);\n }\n\n $prefix = sel<HTMLSpanElement>('[data-test-input-builder=\"prefix\"]');\n $affix = sel<HTMLSpanElement>('[data-test-input-builder=\"affix\"]');\n $suffix = sel<HTMLSpanElement>('[data-test-input-builder=\"suffix\"]');\n $input = sel(InputPageObject.SELECTOR, InputPageObject);\n\n get control() {\n return this.$input.element as HTMLInputElement;\n }\n}\n\nexport const CurrencyInputPageObject = InputBuilderPageObject;\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { selectListbox } from 'ember-aria-voyager/test-support';\n\nimport type { Target } from '@ember/test-helpers';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class ListPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-list]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ListPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLDivElement;\n }\n\n $option = sel<HTMLOptionElement>('[role=\"option\"]');\n\n async select(options: string | string[]) {\n await selectListbox(this.element as Target, options);\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input.ts';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class TextAreaPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-textarea]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? TextAreaPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class OptionPageObject extends PageObject<HTMLDivElement> {\n $label = sel<HTMLLabelElement | HTMLLegendElement>('[data-test-label]');\n $description = sel<HTMLParagraphElement>('[data-test-description]');\n $control = sel<HTMLInputElement>('input');\n}\n\nexport class ChoicesPageObject extends PageObject<HTMLDivElement | HTMLFieldSetElement> {\n static SELECTOR = '[data-test-choices]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ChoicesPageObject.SELECTOR, parent, index);\n }\n\n $options = sel('[data-test-option]', OptionPageObject);\n\n option(value: string) {\n return this.$options.find(\n (option) => option.$control.element?.value === value\n ) as OptionPageObject;\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { CheckboxPageObject } from '../choice.ts';\nimport { InputPageObject } from '../input.ts';\nimport { InputBuilderPageObject } from '../input-builder.ts';\nimport { ListPageObject } from '../list.ts';\nimport { SelectPageObject } from '../select.ts';\nimport { TextAreaPageObject } from '../text-area.ts';\nimport { ChoicesPageObject } from './choices.ts';\n\nimport type { RangeInputPageObject } from '../input';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class FieldError extends PageObject<HTMLDivElement> {\n get type() {\n return this.element?.getAttribute('data-test-error-type');\n }\n\n get value() {\n return this.element?.getAttribute('data-test-error-value');\n }\n}\n\nexport class FieldRule extends PageObject<HTMLParagraphElement> {\n get invalid() {\n return Boolean(this.element?.getAttribute('data-test-rule-invalid'));\n }\n}\n\nexport class FieldPageObject extends PageObject<HTMLDivElement | HTMLFieldSetElement> {\n static SELECTOR = '[data-test-field]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? FieldPageObject.SELECTOR, parent, index);\n }\n\n $label = sel<HTMLLabelElement | HTMLLegendElement>('[data-test-label]');\n $description = sel<HTMLParagraphElement>('[data-test-description]');\n // $control = sel<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(\n // 'input,select,textarea'\n // );\n\n // controls\n\n private $input = sel(InputPageObject.SELECTOR, InputPageObject);\n private $inputBuilder = sel(InputBuilderPageObject.SELECTOR, InputBuilderPageObject);\n private $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n private $textArea = sel(TextAreaPageObject.SELECTOR, TextAreaPageObject);\n private $checkbox = sel(CheckboxPageObject.SELECTOR, CheckboxPageObject);\n private $list = sel(ListPageObject.SELECTOR, ListPageObject);\n\n $choices = sel(ChoicesPageObject.SELECTOR, ChoicesPageObject);\n $errors = sel('[data-test-error]', FieldError);\n $rules = sel('[data-test-rule]', FieldRule);\n\n get $control():\n | InputPageObject\n | RangeInputPageObject\n | InputBuilderPageObject\n | SelectPageObject\n | TextAreaPageObject\n | ListPageObject {\n if (this.$inputBuilder.element) {\n return this.$inputBuilder;\n }\n\n if (this.$checkbox.element) {\n return this.$checkbox;\n }\n\n if (this.$input.element?.type === 'range') {\n return this.$input as RangeInputPageObject;\n }\n\n if (this.$input.element) {\n return this.$input;\n }\n\n if (this.$select.element) {\n return this.$select;\n }\n\n if (this.$textArea.element) {\n return this.$textArea;\n }\n\n if (this.$list.element) {\n return this.$list;\n }\n\n return this.$input; // @TODO bad fallback for now\n }\n\n get name() {\n return this.element?.getAttribute('data-test-field');\n }\n}\n","import { triggerEvent } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { FieldPageObject } from './-private/field.ts';\nimport { ButtonPageObject } from './button.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport type { OptionPageObject } from './-private/choices.ts';\nexport type { FieldError } from './-private/field.ts';\n\nexport class FormPageObject extends PageObject<HTMLFormElement> {\n static SELECTOR = '[data-test-form]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? FormPageObject.SELECTOR, parent, index);\n }\n\n $submit = sel('button[type=\"submit\"]', ButtonPageObject);\n $reset = sel('button[type=\"reset\"]', ButtonPageObject);\n\n $fields = sel(FieldPageObject.SELECTOR, FieldPageObject);\n\n field(name: string) {\n return this.$fields.find((field) => field.name === name) as FieldPageObject;\n }\n\n async submit() {\n await triggerEvent(this.element as HTMLFormElement, 'submit');\n }\n\n async reset() {\n await triggerEvent(this.element as HTMLFormElement, 'reset');\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconPageObject } from './icon.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class NavLinkPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[part=\"item\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavLinkPageObject.SELECTOR, parent, index);\n }\n\n $icon = sel(IconPageObject.SELECTOR, IconPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { NavLinkPageObject } from './-navigation.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class NavigationListPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-navigation-list]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavigationListPageObject.SELECTOR, parent, index);\n }\n\n $items = sel('[part=\"item\"]', NavLinkPageObject);\n $titles = sel<HTMLElement>('[part=\"title\"]');\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PagePageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-page]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PagePageObject.SELECTOR, parent, index);\n }\n\n $header = sel<HTMLElement>('header');\n\n $title = sel<HTMLHeadingElement>('header > h1');\n $description = sel<HTMLParagraphElement>('header > p');\n\n $content = sel<HTMLElement>('[part=\"content\"]');\n}\n\nexport class SectionedPagePageObject extends PagePageObject {\n $nav = sel<HTMLElement>('header > nav');\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PillButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-pill-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PillButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PopoverPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-popover]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PopoverPageObject.SELECTOR, parent, index);\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class SectionPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-section]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? SectionPageObject.SELECTOR, parent, index);\n }\n\n $header = sel('[data-test-section=\"header\"]');\n $title = sel('[data-test-section=\"title\"]');\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { selectTab } from 'ember-aria-voyager/test-support';\n\nimport { TabValue } from '../../components/controls/tabs.gts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class TabsPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-tabs]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? TabsPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.$tablist.element as HTMLDivElement;\n }\n\n $tablist = sel<HTMLDivElement>('[role=\"tablist\"]');\n $tab = sel<HTMLButtonElement>('[role=\"tab\"]');\n $tabpanel = sel<HTMLElement>('[role=\"tabpanel\"]');\n\n async select(value: unknown) {\n // @ts-expect-error this is internal API\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const tab = this.$tab.find((t) => t.element[TabValue] === value);\n\n if (tab) {\n await selectTab(tab);\n }\n }\n}\n"],"names":["IconPageObject","PageObject","SELECTOR","constructor","selector","parent","index","$svg","sel","IconButtonPageObject","intent","element","getAttribute","importance","spacing","push","click","$icon","MenuItemPageObject","disabled","Boolean","hasAttribute","expanded","menu","matches","hasMenu","menuId","globalSelector","MenuPageObject","undefined","$menu","control","$item","AppNavPageObject","NavItemPageObject","tagName","toLowerCase","isPopupNavItem","parentElement","AppHeaderPageObject","#prefix","$brand","$nav","$aux","$toggle","$popover","AvatarPageObject","$img","ButtonPageObject","$before","$label","$after","ChoicePageObject","RadioPageObject","CheckboxPageObject","InputPageObject","RangeInputPageObject","orientation","dataset","NumberInputPageObject","TextInputPageObject","PhoneInputPageObject","DateInputPageObject","EmailInputPageObject","PasswordInputPageObject","SelectPageObject","$option","select","options","keepPreviouslySelected","PaginationPageObject","$pageSize","$select","$page","$input","$items","$prev","$next","DataTablePageObject","$col","$rows","$paginationFooter","$pagination","InputBuilderPageObject","$prefix","$affix","$suffix","CurrencyInputPageObject","ListPageObject","selectListbox","TextAreaPageObject","OptionPageObject","$description","$control","ChoicesPageObject","$options","option","value","find","FieldError","type","FieldRule","invalid","FieldPageObject","$inputBuilder","$textArea","$checkbox","$list","$choices","$errors","$rules","name","FormPageObject","$submit","$reset","$fields","field","submit","triggerEvent","reset","NavLinkPageObject","NavigationListPageObject","$titles","PagePageObject","$header","$title","$content","SectionedPagePageObject","PillButtonPageObject","PopoverPageObject","SectionPageObject","TabsPageObject","$tablist","$tab","$tabpanel","tab","t","TabValue","selectTab"],"mappings":";;;;;AAIO,MAAMA,cAAc,SAASC,UAAU,CAAkB;EAC9D,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIJ,cAAc,CAACE,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;AAEAC,EAAAA,IAAI,GAAGC,QAAG,CAAgB,KAAK,CAAC;AAChC;AACF;;ACLO,MAAMC,oBAAoB,SAASR,UAAU,CAElD;EACA,OAAOC,QAAQ,GAAG,yBAAyB;AAE3CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIK,oBAAoB,CAACP,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AACjE,EAAA;EAEA,IAAII,MAAMA,GAA8B;AACtC,IAAA,OAAO,IAAI,CAACC,OAAO,EAAEC,YAAY,CAAC,aAAa,CAAC;AAClD,EAAA;EAEA,IAAIC,UAAUA,GAA8B;AAC1C,IAAA,OAAO,IAAI,CAACF,OAAO,EAAEC,YAAY,CAAC,iBAAiB,CAAC;AACtD,EAAA;EAEA,IAAIE,OAAOA,GAA8B;AACvC,IAAA,OAAO,IAAI,CAACH,OAAO,EAAEC,YAAY,CAAC,cAAc,CAAC;AACnD,EAAA;EAEA,MAAMG,IAAIA,GAAG;IACX,IAAI,IAAI,CAACJ,OAAO,EAAE;AAChB,MAAA,MAAMK,KAAK,CAAC,IAAI,CAACL,OAAO,CAAC;AAC3B,IAAA;AACF,EAAA;AAEAM,EAAAA,KAAK,GAAGT,QAAG,CAAC,gCAAgC,EAAER,cAAc,CAAC;AAC/D;;AC/BO,MAAMkB,kBAAkB,SAASjB,UAAU,CAAsC;EACtF,OAAOC,QAAQ,GAAG,mBAAmB;AAErCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIc,kBAAkB,CAAChB,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC/D,EAAA;EAEA,IAAIa,QAAQA,GAAG;IACb,OAAOC,OAAO,CAAC,IAAI,CAACT,OAAO,EAAEU,YAAY,CAAC,eAAe,CAAC,CAAC;AAC7D,EAAA;EAEA,IAAIC,QAAQA,GAAY;AACtB,IAAA,OAAOF,OAAO,CAAC,IAAI,CAACG,IAAI,EAAEZ,OAAO,EAAEa,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9D,EAAA;AAEAC,EAAAA,OAAOA,GAAG;IACR,OAAO,IAAI,CAACd,OAAO,EAAEC,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM;AAC/D,EAAA;EAEA,IAAcc,MAAMA,GAAG;AACrB,IAAA,OAAO,IAAI,CAACf,OAAO,EAAEC,YAAY,CAAC,eAAe,CAAC;AACpD,EAAA;EAEA,IAAcW,IAAIA,GAAqB;IACrC,OAAO,IAAI,CAACG,MAAM;AACd;IACAC,cAAc,CAAoB,CAAA,CAAA,EAAI,IAAI,CAACD,MAAM,EAAE,EAAEE,cAAc,CAAC,GACpEC,SAAS;AACf,EAAA;EAEA,IAAIC,KAAKA,GAAG;IACV,OAAO,IAAI,CAACP,IAAI;AAClB,EAAA;AACF;AAEO,MAAMK,cAAc,SAAS3B,UAAU,CAA8B;EAC1E,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIwB,cAAc,CAAC1B,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;EAEA,IAAIyB,OAAOA,GAAG;IACZ,OAAO,IAAI,CAACpB,OAAO;AACrB,EAAA;EAEAqB,KAAK,GAAGxB,QAAG,CAA4BU,kBAAkB,CAAChB,QAAQ,EAAEgB,kBAAkB,CAAC;AACzF;;AC5CA,MAAMe,gBAAgB,SAAShC,UAAU,CAA2C;AAClF;EACA+B,KAAK,GAAGxB,QAAG,CAA4B0B,iBAAiB,CAAChC,QAAQ,EAAEgC,iBAAiB,CAAC;AACvF;AAEO,MAAMA,iBAAiB,SAAShB,kBAAkB,CAAqB;EAC5E,OAAOhB,QAAQ,GAAG,eAAe;AAEjCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI8B,iBAAiB,CAAChC,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC9D,EAAA;AAEAmB,EAAAA,OAAOA,GAAG;AACR,IAAA,OAAO,KAAK,CAACA,OAAO,EAAE,IAAI,IAAI,CAACd,OAAO,EAAEwB,OAAO,CAACC,WAAW,EAAE,KAAK,SAAS;AAC7E,EAAA;AAEAC,EAAAA,cAAcA,GAAG;IACf,OACE,IAAI,CAAC1B,OAAO,EAAEwB,OAAO,CAACC,WAAW,EAAE,KAAK,SAAS,IACjD,IAAI,CAACzB,OAAO,EAAE2B,aAAa,EAAEH,OAAO,KAAK,SAAS;AAEtD,EAAA;EAEA,IAAIb,QAAQA,GAAG;IACb,OAAOF,OAAO,CACZ,IAAI,CAACiB,cAAc,EAAE,GACjB,CAAC,IAAI,CAAC1B,OAAO,EAAE2B,aAAa,EAAiBd,OAAO,CAAC,QAAQ,CAAC,GAC9D,KAAK,CAACF,QACZ,CAAC;AACH,EAAA;EAEA,IAAIQ,KAAKA,GAAqB;AAC5B,IAAA,IAAI,IAAI,CAACO,cAAc,EAAE,EAAE;AACzB,MAAA,OAAO7B,QAAG,CAAoB,OAAO,EAAEyB,gBAAgB,CAAC;AAC1D,IAAA;IAEA,OAAO,IAAI,CAACV,IAAI;AAClB,EAAA;AACF;AAEO,MAAMgB,mBAAmB,SAAStC,UAAU,CAAc;EAC/D,OAAOC,QAAQ,GAAG,wBAAwB;AAE1CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAImC,mBAAmB,CAACrC,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAChE,EAAA;EAEA,IAAI,OAAOkC,GAAG;AACZ,IAAA,IAAI,IAAI,CAACV,KAAK,CAACnB,OAAO,EAAE;AACtB,MAAA,OAAO,eAAe;AACxB,IAAA;AAEA,IAAA,OAAO,EAAE;AACX,EAAA;EAEA,IAAI8B,MAAMA,GAAG;IACX,OAAOjC,QAAG,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,iBAAiB,CAAC;AAC9D,EAAA;EAEA,IAAIkC,IAAIA,GAAG;IACT,OAAOlC,QAAG,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAEyB,gBAAgB,CAAC;AACrD,EAAA;EAEA,IAAIU,IAAIA,GAAG;IACT,OAAOnC,QAAG,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,aAAA,CAAe,EAAEyB,gBAAgB,CAAC;AAC9D,EAAA;AAEAH,EAAAA,KAAK,GAAGtB,QAAG,CACT,eAAe,EACf,cAAcP,UAAU,CAAkB;AACxC2C,IAAAA,OAAO,GAAGpC,QAAG,CAAC,oBAAoB,EAAEC,oBAAoB,CAAC;AAEzDoC,IAAAA,QAAQ,GAAGrC,QAAG,CACZ,WAAW,EACX,cAAcP,UAAU,CAAc;MACpC,IAAIqB,QAAQA,GAAG;QACb,OAAOF,OAAO,CAAC,IAAI,CAACT,OAAO,EAAEa,OAAO,CAAC,eAAe,CAAC,CAAC;AACxD,MAAA;AACF,KACF,CAAC;AACH,GACF,CAAC;AACH;;ACtFO,MAAMsB,gBAAgB,SAAS7C,UAAU,CAAkB;EAChE,OAAOC,QAAQ,GAAG,oBAAoB;AAEtCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI0C,gBAAgB,CAAC5C,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC7D,EAAA;AAEAC,EAAAA,IAAI,GAAGC,QAAG,CAAgB,KAAK,CAAC;AAChCuC,EAAAA,IAAI,GAAGvC,QAAG,CAAmB,KAAK,CAAC;AACrC;;ACPO,MAAMwC,gBAAgB,SAAS/C,UAAU,CAE9C;EACA,OAAOC,QAAQ,GAAG,oBAAoB;AAEtCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI4C,gBAAgB,CAAC9C,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC7D,EAAA;EAEA,IAAII,MAAMA,GAA8B;AACtC,IAAA,OAAO,IAAI,CAACC,OAAO,EAAEC,YAAY,CAAC,aAAa,CAAC;AAClD,EAAA;EAEA,IAAIC,UAAUA,GAA8B;AAC1C,IAAA,OAAO,IAAI,CAACF,OAAO,EAAEC,YAAY,CAAC,iBAAiB,CAAC;AACtD,EAAA;EAEA,IAAIE,OAAOA,GAA8B;AACvC,IAAA,OAAO,IAAI,CAACH,OAAO,EAAEC,YAAY,CAAC,cAAc,CAAC;AACnD,EAAA;AAEAqC,EAAAA,OAAO,GAAGzC,QAAG,CAAkB,6BAA6B,CAAC;AAC7D0C,EAAAA,MAAM,GAAG1C,QAAG,CAAkB,4BAA4B,CAAC;AAC3D2C,EAAAA,MAAM,GAAG3C,QAAG,CAAkB,4BAA4B,CAAC;EAE3D,MAAMO,IAAIA,GAAG;IACX,IAAI,IAAI,CAACJ,OAAO,EAAE;AAChB,MAAA,MAAMK,KAAK,CAAC,IAAI,CAACL,OAAO,CAAC;AAC3B,IAAA;AACF,EAAA;AACF;;AC/BA,MAAMyC,gBAAgB,SAASnD,UAAU,CAAoC;EAC3E,OAAOC,QAAQ,GAAG,oBAAoB;AAEtCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIgD,gBAAgB,CAAClD,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC7D,EAAA;EAEA,IAAIyB,OAAOA,GAAG;IACZ,OAAO,IAAI,CAACpB,OAAO;AACrB,EAAA;AACF;AAEO,MAAM0C,eAAe,GAAGD;AACxB,MAAME,kBAAkB,GAAGF;;ACV3B,MAAMG,eAAe,SAAStD,UAAU,CAAoC;EACjF,OAAOC,QAAQ,GAAG,mBAAmB;AAErCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAImD,eAAe,CAACrD,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC5D,EAAA;EAEA,IAAIyB,OAAOA,GAAG;IACZ,OAAO,IAAI,CAACpB,OAAO;AACrB,EAAA;EAEA,IAAIG,OAAOA,GAA8B;AACvC,IAAA,OAAO,IAAI,CAACH,OAAO,EAAEC,YAAY,CAAC,cAAc,CAAC;AACnD,EAAA;AACF;AAEO,MAAM4C,oBAAoB,SAASD,eAAe,CAAC;EACxD,IAAIE,WAAWA,GAAuB;AACpC,IAAA,OAAO,IAAI,CAAC1B,OAAO,CAAC2B,OAAO,CAACD,WAAW;AACzC,EAAA;AACF;AAEO,MAAME,qBAAqB,GAAGJ;AAC9B,MAAMK,mBAAmB,GAAGL;AAC5B,MAAMM,oBAAoB,GAAGN;AAC7B,MAAMO,mBAAmB,GAAGP;AAC5B,MAAMQ,oBAAoB,GAAGR;AAC7B,MAAMS,uBAAuB,GAAGT;;AC5BhC,MAAMU,gBAAgB,SAAShE,UAAU,CAAoB;EAClE,OAAOC,QAAQ,GAAG,oBAAoB;AAEtCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI6D,gBAAgB,CAAC/D,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC7D,EAAA;EAEA,IAAIQ,OAAOA,GAA8B;AACvC,IAAA,OAAO,IAAI,CAACH,OAAO,EAAEC,YAAY,CAAC,cAAc,CAAC;AACnD,EAAA;EAEA,IAAImB,OAAOA,GAAG;IACZ,OAAO,IAAI,CAACpB,OAAO;AACrB,EAAA;AAEAuD,EAAAA,OAAO,GAAG1D,QAAG,CAAoB,QAAQ,CAAC;AAE1C,EAAA,MAAM2D,MAAMA,CAACC,OAA0B,EAAEC,sBAAgC,EAAE;IACzE,MAAMF,MAAM,CAAC,IAAI,CAACxD,OAAO,EAAYyD,OAAO,EAAEC,sBAAsB,CAAC;AACvE,EAAA;AACF;;ACnBO,MAAMC,oBAAoB,SAASrE,UAAU,CAAiB;EACnE,OAAOC,QAAQ,GAAG,wBAAwB;AAE1CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIkE,oBAAoB,CAACpE,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AACjE,EAAA;AAEAiE,EAAAA,SAAS,GAAG/D,QAAG,CACb,oBAAoB,EACpB,cAAcP,UAAU,CAAc;IACpCuE,OAAO,GAAGhE,QAAG,CAACyD,gBAAgB,CAAC/D,QAAQ,EAAE+D,gBAAgB,CAAC;AAC5D,GACF,CAAC;AAEDQ,EAAAA,KAAK,GAAGjE,QAAG,CACT,eAAe,EACf,cAAcP,UAAU,CAAc;IACpCuE,OAAO,GAAGhE,QAAG,CAACyD,gBAAgB,CAAC/D,QAAQ,EAAE+D,gBAAgB,CAAC;IAC1DS,MAAM,GAAGlE,QAAG,CAACmD,qBAAqB,CAACzD,QAAQ,EAAEyD,qBAAqB,CAAC;AACrE,GACF,CAAC;AAEDgB,EAAAA,MAAM,GAAGnE,QAAG,CAAc,gBAAgB,CAAC;AAE3CoE,EAAAA,KAAK,GAAGpE,QAAG,CAAC,kBAAkB,EAAEC,oBAAoB,CAAC;AACrDoE,EAAAA,KAAK,GAAGrE,QAAG,CAAC,kBAAkB,EAAEC,oBAAoB,CAAC;AACvD;;AC5BO,MAAMqE,mBAAmB,SAAS7E,UAAU,CAAkB;EACnE,OAAOC,QAAQ,GAAG,wBAAwB;AAE1CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI0E,mBAAmB,CAAC5E,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAChE,EAAA;AAEAyE,EAAAA,IAAI,GAAGvE,QAAG,CAAuB,UAAU,CAAC;AAC5CwE,EAAAA,KAAK,GAAGxE,QAAG,CAAsB,UAAU,CAAC;AAC5CyE,EAAAA,iBAAiB,GAAGzE,QAAG,CACrB,mBAAmB,EACnB,cAAcP,UAAU,CAAuB;IAC7CiF,WAAW,GAAG1E,QAAG,CAAC8D,oBAAoB,CAACpE,QAAQ,EAAEoE,oBAAoB,CAAC;AACxE,GACF,CAAC;AACH;;ACdO,MAAMa,sBAAsB,SAASlF,UAAU,CAAoC;EACxF,OAAOC,QAAQ,GAAG,2BAA2B;AAE7CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI+E,sBAAsB,CAACjF,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AACnE,EAAA;AAEA8E,EAAAA,OAAO,GAAG5E,QAAG,CAAkB,oCAAoC,CAAC;AACpE6E,EAAAA,MAAM,GAAG7E,QAAG,CAAkB,mCAAmC,CAAC;AAClE8E,EAAAA,OAAO,GAAG9E,QAAG,CAAkB,oCAAoC,CAAC;EACpEkE,MAAM,GAAGlE,QAAG,CAAC+C,eAAe,CAACrD,QAAQ,EAAEqD,eAAe,CAAC;EAEvD,IAAIxB,OAAOA,GAAG;AACZ,IAAA,OAAO,IAAI,CAAC2C,MAAM,CAAC/D,OAAO;AAC5B,EAAA;AACF;AAEO,MAAM4E,uBAAuB,GAAGJ;;ACjBhC,MAAMK,cAAc,SAASvF,UAAU,CAAiB;EAC7D,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIoF,cAAc,CAACtF,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;EAEA,IAAIyB,OAAOA,GAAG;IACZ,OAAO,IAAI,CAACpB,OAAO;AACrB,EAAA;AAEAuD,EAAAA,OAAO,GAAG1D,QAAG,CAAoB,iBAAiB,CAAC;EAEnD,MAAM2D,MAAMA,CAACC,OAA0B,EAAE;AACvC,IAAA,MAAMqB,aAAa,CAAC,IAAI,CAAC9E,OAAO,EAAYyD,OAAO,CAAC;AACtD,EAAA;AACF;;AClBO,MAAMsB,kBAAkB,SAASzF,UAAU,CAAoC;EACpF,OAAOC,QAAQ,GAAG,sBAAsB;AAExCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIsF,kBAAkB,CAACxF,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC/D,EAAA;EAEA,IAAIyB,OAAOA,GAAG;IACZ,OAAO,IAAI,CAACpB,OAAO;AACrB,EAAA;AACF;;ACXO,MAAMgF,gBAAgB,SAAS1F,UAAU,CAAiB;AAC/DiD,EAAAA,MAAM,GAAG1C,QAAG,CAAuC,mBAAmB,CAAC;AACvEoF,EAAAA,YAAY,GAAGpF,QAAG,CAAuB,yBAAyB,CAAC;AACnEqF,EAAAA,QAAQ,GAAGrF,QAAG,CAAmB,OAAO,CAAC;AAC3C;AAEO,MAAMsF,iBAAiB,SAAS7F,UAAU,CAAuC;EACtF,OAAOC,QAAQ,GAAG,qBAAqB;AAEvCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI0F,iBAAiB,CAAC5F,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC9D,EAAA;AAEAyF,EAAAA,QAAQ,GAAGvF,QAAG,CAAC,oBAAoB,EAAEmF,gBAAgB,CAAC;EAEtDK,MAAMA,CAACC,KAAa,EAAE;AACpB,IAAA,OAAO,IAAI,CAACF,QAAQ,CAACG,IAAI,CACtBF,MAAM,IAAKA,MAAM,CAACH,QAAQ,CAAClF,OAAO,EAAEsF,KAAK,KAAKA,KACjD,CAAC;AACH,EAAA;AACF;;ACXO,MAAME,UAAU,SAASlG,UAAU,CAAiB;EACzD,IAAImG,IAAIA,GAAG;AACT,IAAA,OAAO,IAAI,CAACzF,OAAO,EAAEC,YAAY,CAAC,sBAAsB,CAAC;AAC3D,EAAA;EAEA,IAAIqF,KAAKA,GAAG;AACV,IAAA,OAAO,IAAI,CAACtF,OAAO,EAAEC,YAAY,CAAC,uBAAuB,CAAC;AAC5D,EAAA;AACF;AAEO,MAAMyF,SAAS,SAASpG,UAAU,CAAuB;EAC9D,IAAIqG,OAAOA,GAAG;IACZ,OAAOlF,OAAO,CAAC,IAAI,CAACT,OAAO,EAAEC,YAAY,CAAC,wBAAwB,CAAC,CAAC;AACtE,EAAA;AACF;AAEO,MAAM2F,eAAe,SAAStG,UAAU,CAAuC;EACpF,OAAOC,QAAQ,GAAG,mBAAmB;AAErCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAImG,eAAe,CAACrG,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC5D,EAAA;AAEA4C,EAAAA,MAAM,GAAG1C,QAAG,CAAuC,mBAAmB,CAAC;AACvEoF,EAAAA,YAAY,GAAGpF,QAAG,CAAuB,yBAAyB,CAAC;AACnE;AACA;AACA;;AAEA;;EAEQkE,MAAM,GAAGlE,QAAG,CAAC+C,eAAe,CAACrD,QAAQ,EAAEqD,eAAe,CAAC;EACvDiD,aAAa,GAAGhG,QAAG,CAAC2E,sBAAsB,CAACjF,QAAQ,EAAEiF,sBAAsB,CAAC;EAC5EX,OAAO,GAAGhE,QAAG,CAACyD,gBAAgB,CAAC/D,QAAQ,EAAE+D,gBAAgB,CAAC;EAC1DwC,SAAS,GAAGjG,QAAG,CAACkF,kBAAkB,CAACxF,QAAQ,EAAEwF,kBAAkB,CAAC;EAChEgB,SAAS,GAAGlG,QAAG,CAAC8C,kBAAkB,CAACpD,QAAQ,EAAEoD,kBAAkB,CAAC;EAChEqD,KAAK,GAAGnG,QAAG,CAACgF,cAAc,CAACtF,QAAQ,EAAEsF,cAAc,CAAC;EAE5DoB,QAAQ,GAAGpG,QAAG,CAACsF,iBAAiB,CAAC5F,QAAQ,EAAE4F,iBAAiB,CAAC;AAC7De,EAAAA,OAAO,GAAGrG,QAAG,CAAC,mBAAmB,EAAE2F,UAAU,CAAC;AAC9CW,EAAAA,MAAM,GAAGtG,QAAG,CAAC,kBAAkB,EAAE6F,SAAS,CAAC;EAE3C,IAAIR,QAAQA,GAMO;AACjB,IAAA,IAAI,IAAI,CAACW,aAAa,CAAC7F,OAAO,EAAE;MAC9B,OAAO,IAAI,CAAC6F,aAAa;AAC3B,IAAA;AAEA,IAAA,IAAI,IAAI,CAACE,SAAS,CAAC/F,OAAO,EAAE;MAC1B,OAAO,IAAI,CAAC+F,SAAS;AACvB,IAAA;IAEA,IAAI,IAAI,CAAChC,MAAM,CAAC/D,OAAO,EAAEyF,IAAI,KAAK,OAAO,EAAE;MACzC,OAAO,IAAI,CAAC1B,MAAM;AACpB,IAAA;AAEA,IAAA,IAAI,IAAI,CAACA,MAAM,CAAC/D,OAAO,EAAE;MACvB,OAAO,IAAI,CAAC+D,MAAM;AACpB,IAAA;AAEA,IAAA,IAAI,IAAI,CAACF,OAAO,CAAC7D,OAAO,EAAE;MACxB,OAAO,IAAI,CAAC6D,OAAO;AACrB,IAAA;AAEA,IAAA,IAAI,IAAI,CAACiC,SAAS,CAAC9F,OAAO,EAAE;MAC1B,OAAO,IAAI,CAAC8F,SAAS;AACvB,IAAA;AAEA,IAAA,IAAI,IAAI,CAACE,KAAK,CAAChG,OAAO,EAAE;MACtB,OAAO,IAAI,CAACgG,KAAK;AACnB,IAAA;AAEA,IAAA,OAAO,IAAI,CAACjC,MAAM,CAAC;AACrB,EAAA;EAEA,IAAIqC,IAAIA,GAAG;AACT,IAAA,OAAO,IAAI,CAACpG,OAAO,EAAEC,YAAY,CAAC,iBAAiB,CAAC;AACtD,EAAA;AACF;;ACpFO,MAAMoG,cAAc,SAAS/G,UAAU,CAAkB;EAC9D,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI4G,cAAc,CAAC9G,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;AAEA2G,EAAAA,OAAO,GAAGzG,QAAG,CAAC,uBAAuB,EAAEwC,gBAAgB,CAAC;AACxDkE,EAAAA,MAAM,GAAG1G,QAAG,CAAC,sBAAsB,EAAEwC,gBAAgB,CAAC;EAEtDmE,OAAO,GAAG3G,QAAG,CAAC+F,eAAe,CAACrG,QAAQ,EAAEqG,eAAe,CAAC;EAExDa,KAAKA,CAACL,IAAY,EAAE;AAClB,IAAA,OAAO,IAAI,CAACI,OAAO,CAACjB,IAAI,CAAEkB,KAAK,IAAKA,KAAK,CAACL,IAAI,KAAKA,IAAI,CAAC;AAC1D,EAAA;EAEA,MAAMM,MAAMA,GAAG;AACb,IAAA,MAAMC,YAAY,CAAC,IAAI,CAAC3G,OAAO,EAAqB,QAAQ,CAAC;AAC/D,EAAA;EAEA,MAAM4G,KAAKA,GAAG;AACZ,IAAA,MAAMD,YAAY,CAAC,IAAI,CAAC3G,OAAO,EAAqB,OAAO,CAAC;AAC9D,EAAA;AACF;;AC7BO,MAAM6G,iBAAiB,SAASvH,UAAU,CAE/C;EACA,OAAOC,QAAQ,GAAG,eAAe;AAEjCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIoH,iBAAiB,CAACtH,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC9D,EAAA;EAEAW,KAAK,GAAGT,QAAG,CAACR,cAAc,CAACE,QAAQ,EAAEF,cAAc,CAAC;AACtD;;ACVO,MAAMyH,wBAAwB,SAASxH,UAAU,CAAiB;EACvE,OAAOC,QAAQ,GAAG,6BAA6B;AAE/CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIqH,wBAAwB,CAACvH,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AACrE,EAAA;AAEAqE,EAAAA,MAAM,GAAGnE,QAAG,CAAC,eAAe,EAAEgH,iBAAiB,CAAC;AAChDE,EAAAA,OAAO,GAAGlH,QAAG,CAAc,gBAAgB,CAAC;AAC9C;;ACXO,MAAMmH,cAAc,SAAS1H,UAAU,CAE5C;EACA,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIuH,cAAc,CAACzH,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;AAEAsH,EAAAA,OAAO,GAAGpH,QAAG,CAAc,QAAQ,CAAC;AAEpCqH,EAAAA,MAAM,GAAGrH,QAAG,CAAqB,aAAa,CAAC;AAC/CoF,EAAAA,YAAY,GAAGpF,QAAG,CAAuB,YAAY,CAAC;AAEtDsH,EAAAA,QAAQ,GAAGtH,QAAG,CAAc,kBAAkB,CAAC;AACjD;AAEO,MAAMuH,uBAAuB,SAASJ,cAAc,CAAC;AAC1DjF,EAAAA,IAAI,GAAGlC,QAAG,CAAc,cAAc,CAAC;AACzC;;ACjBO,MAAMwH,oBAAoB,SAAS/H,UAAU,CAElD;EACA,OAAOC,QAAQ,GAAG,yBAAyB;AAE3CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI4H,oBAAoB,CAAC9H,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AACjE,EAAA;EAEA,IAAII,MAAMA,GAA8B;AACtC,IAAA,OAAO,IAAI,CAACC,OAAO,EAAEC,YAAY,CAAC,aAAa,CAAC;AAClD,EAAA;EAEA,IAAIC,UAAUA,GAA8B;AAC1C,IAAA,OAAO,IAAI,CAACF,OAAO,EAAEC,YAAY,CAAC,iBAAiB,CAAC;AACtD,EAAA;EAEA,IAAIE,OAAOA,GAA8B;AACvC,IAAA,OAAO,IAAI,CAACH,OAAO,EAAEC,YAAY,CAAC,cAAc,CAAC;AACnD,EAAA;AAEAqC,EAAAA,OAAO,GAAGzC,QAAG,CAAkB,6BAA6B,CAAC;AAC7D0C,EAAAA,MAAM,GAAG1C,QAAG,CAAkB,4BAA4B,CAAC;AAC3D2C,EAAAA,MAAM,GAAG3C,QAAG,CAAkB,4BAA4B,CAAC;EAE3D,MAAMO,IAAIA,GAAG;IACX,IAAI,IAAI,CAACJ,OAAO,EAAE;AAChB,MAAA,MAAMK,KAAK,CAAC,IAAI,CAACL,OAAO,CAAC;AAC3B,IAAA;AACF,EAAA;AACF;;AChCO,MAAMsH,iBAAiB,SAAShI,UAAU,CAE/C;EACA,OAAOC,QAAQ,GAAG,qBAAqB;AAEvCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI6H,iBAAiB,CAAC/H,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC9D,EAAA;AACF;;ACRO,MAAM4H,iBAAiB,SAASjI,UAAU,CAE/C;EACA,OAAOC,QAAQ,GAAG,qBAAqB;AAEvCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI8H,iBAAiB,CAAChI,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC9D,EAAA;AAEAsH,EAAAA,OAAO,GAAGpH,QAAG,CAAC,8BAA8B,CAAC;AAC7CqH,EAAAA,MAAM,GAAGrH,QAAG,CAAC,6BAA6B,CAAC;AAC7C;;ACPO,MAAM2H,cAAc,SAASlI,UAAU,CAAiB;EAC7D,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI+H,cAAc,CAACjI,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;EAEA,IAAIyB,OAAOA,GAAG;AACZ,IAAA,OAAO,IAAI,CAACqG,QAAQ,CAACzH,OAAO;AAC9B,EAAA;AAEAyH,EAAAA,QAAQ,GAAG5H,QAAG,CAAiB,kBAAkB,CAAC;AAClD6H,EAAAA,IAAI,GAAG7H,QAAG,CAAoB,cAAc,CAAC;AAC7C8H,EAAAA,SAAS,GAAG9H,QAAG,CAAc,mBAAmB,CAAC;EAEjD,MAAM2D,MAAMA,CAAC8B,KAAc,EAAE;AAC3B;AACA;AACA,IAAA,MAAMsC,GAAG,GAAG,IAAI,CAACF,IAAI,CAACnC,IAAI,CAAEsC,CAAC,IAAKA,CAAC,CAAC7H,OAAO,CAAC8H,QAAQ,CAAC,KAAKxC,KAAK,CAAC;AAEhE,IAAA,IAAIsC,GAAG,EAAE;MACP,MAAMG,SAAS,CAACH,GAAG,CAAC;AACtB,IAAA;AACF,EAAA;AACF;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/test-support/page-objects/alert.ts","../../src/test-support/page-objects/icon.ts","../../src/test-support/page-objects/icon-button.ts","../../src/test-support/page-objects/menu.ts","../../src/test-support/page-objects/app-header.ts","../../src/test-support/page-objects/avatar.ts","../../src/test-support/page-objects/button.ts","../../src/test-support/page-objects/choice.ts","../../src/test-support/page-objects/input.ts","../../src/test-support/page-objects/select.ts","../../src/test-support/page-objects/pagination.ts","../../src/test-support/page-objects/data-table.ts","../../src/test-support/page-objects/-private/error.ts","../../src/test-support/page-objects/input-builder.ts","../../src/test-support/page-objects/list.ts","../../src/test-support/page-objects/text-area.ts","../../src/test-support/page-objects/-private/choices.ts","../../src/test-support/page-objects/-private/field.ts","../../src/test-support/page-objects/form.ts","../../src/test-support/page-objects/-navigation.ts","../../src/test-support/page-objects/navigation-list.ts","../../src/test-support/page-objects/page.ts","../../src/test-support/page-objects/pill-button.ts","../../src/test-support/page-objects/popover.ts","../../src/test-support/page-objects/section.ts","../../src/test-support/page-objects/tabs.ts"],"sourcesContent":["import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class AlertPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-feedback]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? AlertPageObject.SELECTOR, parent, index);\n }\n\n get indicator(): string | null | undefined {\n return this.element?.getAttribute('data-indicator');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n $icon = sel<HTMLSpanElement>('[part=\"icon\"]');\n $title = sel<HTMLSpanElement>('[part=\"title\"]');\n $content = sel<HTMLSpanElement>('[part=\"content\"]');\n $actions = sel<HTMLSpanElement>('[part=\"actions\"]');\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class IconPageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-icon]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? IconPageObject.SELECTOR, parent, index);\n }\n\n $svg = sel<SVGSVGElement>('svg');\n // $svg = sel<HTMLElement>('svg');\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconPageObject } from './icon.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class IconButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-icon-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? IconButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n\n $icon = sel('[data-test-icon-button=\"icon\"]', IconPageObject);\n}\n","import { globalSelector, PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { Menu, MenuElement, MenuItem, MenuItemElement } from './-menu.ts';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class MenuItemPageObject extends PageObject<MenuItemElement> implements MenuItem {\n static SELECTOR = '[role=\"menuitem\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? MenuItemPageObject.SELECTOR, parent, index);\n }\n\n get disabled() {\n return Boolean(this.element?.hasAttribute('aria-disabled'));\n }\n\n get expanded(): boolean {\n return Boolean(this.menu?.element?.matches(':popover-open'));\n }\n\n hasMenu() {\n return this.element?.getAttribute('aria-haspopup') === 'menu';\n }\n\n protected get menuId() {\n return this.element?.getAttribute('popovertarget');\n }\n\n protected get menu(): Menu | undefined {\n return this.menuId\n ? // eslint-disable-next-line @typescript-eslint/no-use-before-define\n globalSelector<MenuElement, Menu>(`#${this.menuId}`, MenuPageObject)\n : undefined;\n }\n\n get $menu() {\n return this.menu;\n }\n}\n\nexport class MenuPageObject extends PageObject<MenuElement> implements Menu {\n static SELECTOR = '[data-test-menu]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? MenuPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLDivElement;\n }\n\n $item = sel<MenuItemElement, MenuItem>(MenuItemPageObject.SELECTOR, MenuItemPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconButtonPageObject } from './icon-button.ts';\nimport { MenuItemPageObject } from './menu.ts';\n\nimport type { Menu, MenuItem, MenuItemElement } from './-menu.ts';\nimport type { ElementLike } from 'fractal-page-object';\n\nclass AppNavPageObject extends PageObject<HTMLElement> implements Menu<HTMLElement> {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n $item = sel<MenuItemElement, MenuItem>(NavItemPageObject.SELECTOR, NavItemPageObject);\n}\n\nexport class NavItemPageObject extends MenuItemPageObject implements MenuItem {\n static SELECTOR = '[part=\"item\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavItemPageObject.SELECTOR, parent, index);\n }\n\n hasMenu() {\n return super.hasMenu() || this.element?.tagName.toLowerCase() === 'summary';\n }\n\n isPopupNavItem() {\n return (\n this.element?.tagName.toLowerCase() === 'summary' ||\n this.element?.parentElement?.tagName === 'details'\n );\n }\n\n get expanded() {\n return Boolean(\n this.isPopupNavItem()\n ? (this.element?.parentElement as HTMLElement).matches('[open]')\n : super.expanded\n );\n }\n\n get $menu(): Menu | undefined {\n if (this.isPopupNavItem()) {\n return sel<HTMLElement, Menu>('+ div', AppNavPageObject);\n }\n\n return this.menu;\n }\n}\n\nexport class AppHeaderPageObject extends PageObject<HTMLElement> {\n static SELECTOR = '[data-test-app-header]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? AppHeaderPageObject.SELECTOR, parent, index);\n }\n\n get #prefix() {\n if (this.$menu.element) {\n return '[part=\"menu\"]';\n }\n\n return '';\n }\n\n get $brand() {\n return sel<HTMLDivElement>(`${this.#prefix} [part=\"brand\"]`);\n }\n\n get $nav() {\n return sel(`${this.#prefix} nav`, AppNavPageObject);\n }\n\n get $aux() {\n return sel(`${this.#prefix} [part=\"aux\"]`, AppNavPageObject);\n }\n\n $menu = sel(\n '[part=\"menu\"]',\n class extends PageObject<HTMLSpanElement> {\n $toggle = sel('[data-test-toggle]', IconButtonPageObject);\n\n $popover = sel(\n '[popover]',\n class extends PageObject<HTMLElement> {\n get expanded() {\n return Boolean(this.element?.matches(':popover-open'));\n }\n }\n );\n }\n );\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class AvatarPageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-avatar]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? AvatarPageObject.SELECTOR, parent, index);\n }\n\n $svg = sel<SVGSVGElement>('svg');\n $img = sel<HTMLImageElement>('img');\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class ButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input.ts';\nimport type { ElementLike } from 'fractal-page-object';\n\nclass ChoicePageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-choice]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ChoicePageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n}\n\nexport const RadioPageObject = ChoicePageObject;\nexport const CheckboxPageObject = ChoicePageObject;\n","import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport interface Input extends PageObject {\n control: HTMLInputElement;\n}\n\nexport class InputPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-input]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? InputPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n}\n\nexport class RangeInputPageObject extends InputPageObject {\n get orientation(): string | undefined {\n return this.control.dataset.orientation;\n }\n}\n\nexport const NumberInputPageObject = InputPageObject;\nexport const TextInputPageObject = InputPageObject;\nexport const PhoneInputPageObject = InputPageObject;\nexport const DateInputPageObject = InputPageObject;\nexport const EmailInputPageObject = InputPageObject;\nexport const PasswordInputPageObject = InputPageObject;\n","import { select } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { Target } from '@ember/test-helpers';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class SelectPageObject extends PageObject<HTMLSelectElement> {\n static SELECTOR = '[data-test-select]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? SelectPageObject.SELECTOR, parent, index);\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n get control() {\n return this.element as HTMLSelectElement;\n }\n\n $option = sel<HTMLOptionElement>('option');\n\n async select(options: string | string[], keepPreviouslySelected?: boolean) {\n await select(this.element as Target, options, keepPreviouslySelected);\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconButtonPageObject } from './icon-button.ts';\nimport { NumberInputPageObject } from './input.ts';\nimport { SelectPageObject } from './select.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PaginationPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-pagination]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PaginationPageObject.SELECTOR, parent, index);\n }\n\n $pageSize = sel(\n '[part=\"page-size\"]',\n class extends PageObject<HTMLElement> {\n $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n }\n );\n\n $page = sel(\n '[part=\"page\"]',\n class extends PageObject<HTMLElement> {\n $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n $input = sel(NumberInputPageObject.SELECTOR, NumberInputPageObject);\n }\n );\n\n $items = sel<HTMLElement>('[part=\"items\"]');\n\n $prev = sel('[data-test-prev]', IconButtonPageObject);\n $next = sel('[data-test-next]', IconButtonPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { PaginationPageObject } from './pagination.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class DataTablePageObject extends PageObject<HTMLSpanElement> {\n static SELECTOR = '[data-test-data-table]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? DataTablePageObject.SELECTOR, parent, index);\n }\n\n $col = sel<HTMLTableCellElement>('thead th');\n $rows = sel<HTMLTableRowElement>('tbody tr');\n $paginationFooter = sel(\n '[data-pagination]',\n class extends PageObject<HTMLTableCellElement> {\n $pagination = sel(PaginationPageObject.SELECTOR, PaginationPageObject);\n }\n );\n}\n","import { PageObject } from 'fractal-page-object';\n\nexport class Error extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-error]';\n\n get type() {\n return this.element?.getAttribute('data-test-error-type');\n }\n\n get value() {\n return this.element?.getAttribute('data-test-error-value');\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { InputPageObject } from './input.ts';\n\nimport type { Input } from './input.ts';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class InputBuilderPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-input-builder]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? InputBuilderPageObject.SELECTOR, parent, index);\n }\n\n $prefix = sel<HTMLSpanElement>('[data-test-input-builder=\"prefix\"]');\n $affix = sel<HTMLSpanElement>('[data-test-input-builder=\"affix\"]');\n $suffix = sel<HTMLSpanElement>('[data-test-input-builder=\"suffix\"]');\n $input = sel(InputPageObject.SELECTOR, InputPageObject);\n\n get control() {\n return this.$input.element as HTMLInputElement;\n }\n}\n\nexport const CurrencyInputPageObject = InputBuilderPageObject;\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { selectListbox } from 'ember-aria-voyager/test-support';\n\nimport type { Target } from '@ember/test-helpers';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class ListPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-list]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ListPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLDivElement;\n }\n\n $option = sel<HTMLOptionElement>('[role=\"option\"]');\n\n async select(options: string | string[]) {\n await selectListbox(this.element as Target, options);\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { Input } from './input.ts';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class TextAreaPageObject extends PageObject<HTMLInputElement> implements Input {\n static SELECTOR = '[data-test-textarea]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? TextAreaPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.element as HTMLInputElement;\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class OptionPageObject extends PageObject<HTMLDivElement> {\n $label = sel<HTMLLabelElement | HTMLLegendElement>('[data-test-label]');\n $description = sel<HTMLParagraphElement>('[data-test-description]');\n $control = sel<HTMLInputElement>('input');\n}\n\nexport class ChoicesPageObject extends PageObject<HTMLDivElement | HTMLFieldSetElement> {\n static SELECTOR = '[data-test-choices]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? ChoicesPageObject.SELECTOR, parent, index);\n }\n\n $options = sel('[data-test-option]', OptionPageObject);\n\n option(value: string) {\n return this.$options.find(\n (option) => option.$control.element?.value === value\n ) as OptionPageObject;\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { CheckboxPageObject } from '../choice.ts';\nimport { InputPageObject } from '../input.ts';\nimport { InputBuilderPageObject } from '../input-builder.ts';\nimport { ListPageObject } from '../list.ts';\nimport { SelectPageObject } from '../select.ts';\nimport { TextAreaPageObject } from '../text-area.ts';\nimport { ChoicesPageObject } from './choices.ts';\nimport { Error } from './error.ts';\n\nimport type { RangeInputPageObject } from '../input';\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class FieldRule extends PageObject<HTMLParagraphElement> {\n get invalid() {\n return Boolean(this.element?.getAttribute('data-test-rule-invalid'));\n }\n}\n\nexport class FieldPageObject extends PageObject<HTMLDivElement | HTMLFieldSetElement> {\n static SELECTOR = '[data-test-field]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? FieldPageObject.SELECTOR, parent, index);\n }\n\n $label = sel<HTMLLabelElement | HTMLLegendElement>('[data-test-label]');\n $description = sel<HTMLParagraphElement>('[data-test-description]');\n // $control = sel<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>(\n // 'input,select,textarea'\n // );\n\n // controls\n\n private $input = sel(InputPageObject.SELECTOR, InputPageObject);\n private $inputBuilder = sel(InputBuilderPageObject.SELECTOR, InputBuilderPageObject);\n private $select = sel(SelectPageObject.SELECTOR, SelectPageObject);\n private $textArea = sel(TextAreaPageObject.SELECTOR, TextAreaPageObject);\n private $checkbox = sel(CheckboxPageObject.SELECTOR, CheckboxPageObject);\n private $list = sel(ListPageObject.SELECTOR, ListPageObject);\n\n $choices = sel(ChoicesPageObject.SELECTOR, ChoicesPageObject);\n $errors = sel(Error.SELECTOR, Error);\n $rules = sel('[data-test-rule]', FieldRule);\n\n get $control():\n | InputPageObject\n | RangeInputPageObject\n | InputBuilderPageObject\n | SelectPageObject\n | TextAreaPageObject\n | ListPageObject {\n if (this.$inputBuilder.element) {\n return this.$inputBuilder;\n }\n\n if (this.$checkbox.element) {\n return this.$checkbox;\n }\n\n if (this.$input.element?.type === 'range') {\n return this.$input as RangeInputPageObject;\n }\n\n if (this.$input.element) {\n return this.$input;\n }\n\n if (this.$select.element) {\n return this.$select;\n }\n\n if (this.$textArea.element) {\n return this.$textArea;\n }\n\n if (this.$list.element) {\n return this.$list;\n }\n\n return this.$input; // @TODO bad fallback for now\n }\n\n get name() {\n return this.element?.getAttribute('data-test-field');\n }\n}\n","import { triggerEvent } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { Error } from './-private/error.ts';\nimport { FieldPageObject } from './-private/field.ts';\nimport { ButtonPageObject } from './button.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport type { OptionPageObject } from './-private/choices.ts';\n\nexport class FormPageObject extends PageObject<HTMLFormElement> {\n static SELECTOR = '[data-test-form]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? FormPageObject.SELECTOR, parent, index);\n }\n\n $submit = sel('button[type=\"submit\"]', ButtonPageObject);\n $reset = sel('button[type=\"reset\"]', ButtonPageObject);\n\n $fields = sel(FieldPageObject.SELECTOR, FieldPageObject);\n $errors = sel(Error.SELECTOR, Error);\n\n field(name: string) {\n return this.$fields.find((field) => field.name === name) as FieldPageObject;\n }\n\n async submit() {\n await triggerEvent(this.element as HTMLFormElement, 'submit');\n }\n\n async reset() {\n await triggerEvent(this.element as HTMLFormElement, 'reset');\n }\n}\n\nexport { type Error as FieldError } from './-private/error.ts';\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { IconPageObject } from './icon.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class NavLinkPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[part=\"item\"]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavLinkPageObject.SELECTOR, parent, index);\n }\n\n $icon = sel(IconPageObject.SELECTOR, IconPageObject);\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { NavLinkPageObject } from './-navigation.ts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class NavigationListPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-navigation-list]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? NavigationListPageObject.SELECTOR, parent, index);\n }\n\n $items = sel('[part=\"item\"]', NavLinkPageObject);\n $titles = sel<HTMLElement>('[part=\"title\"]');\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PagePageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-page]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PagePageObject.SELECTOR, parent, index);\n }\n\n $header = sel<HTMLElement>('header');\n\n $title = sel<HTMLHeadingElement>('header > h1');\n $description = sel<HTMLParagraphElement>('header > p');\n\n $content = sel<HTMLElement>('[part=\"content\"]');\n}\n\nexport class SectionedPagePageObject extends PagePageObject {\n $nav = sel<HTMLElement>('header > nav');\n}\n","import { click } from '@ember/test-helpers';\n\nimport { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PillButtonPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-pill-button]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PillButtonPageObject.SELECTOR, parent, index);\n }\n\n get intent(): string | null | undefined {\n return this.element?.getAttribute('data-intent');\n }\n\n get importance(): string | null | undefined {\n return this.element?.getAttribute('data-importance');\n }\n\n get spacing(): string | null | undefined {\n return this.element?.getAttribute('data-spacing');\n }\n\n $before = sel<HTMLSpanElement>('[data-test-button=\"before\"]');\n $label = sel<HTMLSpanElement>('[data-test-button=\"label\"]');\n $after = sel<HTMLSpanElement>('[data-test-button=\"after\"]');\n\n async push() {\n if (this.element) {\n await click(this.element);\n }\n }\n}\n","import { PageObject } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class PopoverPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-popover]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? PopoverPageObject.SELECTOR, parent, index);\n }\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class SectionPageObject extends PageObject<\n HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement\n> {\n static SELECTOR = '[data-test-section]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? SectionPageObject.SELECTOR, parent, index);\n }\n\n $header = sel('[data-test-section=\"header\"]');\n $title = sel('[data-test-section=\"title\"]');\n}\n","import { PageObject, selector as sel } from 'fractal-page-object';\n\nimport { selectTab } from 'ember-aria-voyager/test-support';\n\nimport { TabValue } from '../../components/controls/tabs.gts';\n\nimport type { ElementLike } from 'fractal-page-object';\n\nexport class TabsPageObject extends PageObject<HTMLDivElement> {\n static SELECTOR = '[data-test-tabs]';\n\n constructor(selector?: string, parent?: PageObject | ElementLike | null, index?: number | null) {\n super(selector ?? TabsPageObject.SELECTOR, parent, index);\n }\n\n get control() {\n return this.$tablist.element as HTMLDivElement;\n }\n\n $tablist = sel<HTMLDivElement>('[role=\"tablist\"]');\n $tab = sel<HTMLButtonElement>('[role=\"tab\"]');\n $tabpanel = sel<HTMLElement>('[role=\"tabpanel\"]');\n\n async select(value: unknown) {\n // @ts-expect-error this is internal API\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const tab = this.$tab.find((t) => t.element[TabValue] === value);\n\n if (tab) {\n await selectTab(tab);\n }\n }\n}\n"],"names":["AlertPageObject","PageObject","SELECTOR","constructor","selector","parent","index","indicator","element","getAttribute","importance","$icon","sel","$title","$content","$actions","IconPageObject","$svg","IconButtonPageObject","intent","spacing","push","click","MenuItemPageObject","disabled","Boolean","hasAttribute","expanded","menu","matches","hasMenu","menuId","globalSelector","MenuPageObject","undefined","$menu","control","$item","AppNavPageObject","NavItemPageObject","tagName","toLowerCase","isPopupNavItem","parentElement","AppHeaderPageObject","#prefix","$brand","$nav","$aux","$toggle","$popover","AvatarPageObject","$img","ButtonPageObject","$before","$label","$after","ChoicePageObject","RadioPageObject","CheckboxPageObject","InputPageObject","RangeInputPageObject","orientation","dataset","NumberInputPageObject","TextInputPageObject","PhoneInputPageObject","DateInputPageObject","EmailInputPageObject","PasswordInputPageObject","SelectPageObject","$option","select","options","keepPreviouslySelected","PaginationPageObject","$pageSize","$select","$page","$input","$items","$prev","$next","DataTablePageObject","$col","$rows","$paginationFooter","$pagination","Error","type","value","InputBuilderPageObject","$prefix","$affix","$suffix","CurrencyInputPageObject","ListPageObject","selectListbox","TextAreaPageObject","OptionPageObject","$description","$control","ChoicesPageObject","$options","option","find","FieldRule","invalid","FieldPageObject","$inputBuilder","$textArea","$checkbox","$list","$choices","$errors","$rules","name","FormPageObject","$submit","$reset","$fields","field","submit","triggerEvent","reset","NavLinkPageObject","NavigationListPageObject","$titles","PagePageObject","$header","SectionedPagePageObject","PillButtonPageObject","PopoverPageObject","SectionPageObject","TabsPageObject","$tablist","$tab","$tabpanel","tab","t","TabValue","selectTab"],"mappings":";;;;;AAIO,MAAMA,eAAe,SAASC,UAAU,CAE7C;EACA,OAAOC,QAAQ,GAAG,sBAAsB;AAExCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIJ,eAAe,CAACE,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC5D,EAAA;EAEA,IAAIC,SAASA,GAA8B;AACzC,IAAA,OAAO,IAAI,CAACC,OAAO,EAAEC,YAAY,CAAC,gBAAgB,CAAC;AACrD,EAAA;EAEA,IAAIC,UAAUA,GAA8B;AAC1C,IAAA,OAAO,IAAI,CAACF,OAAO,EAAEC,YAAY,CAAC,iBAAiB,CAAC;AACtD,EAAA;AAEAE,EAAAA,KAAK,GAAGC,QAAG,CAAkB,eAAe,CAAC;AAC7CC,EAAAA,MAAM,GAAGD,QAAG,CAAkB,gBAAgB,CAAC;AAC/CE,EAAAA,QAAQ,GAAGF,QAAG,CAAkB,kBAAkB,CAAC;AACnDG,EAAAA,QAAQ,GAAGH,QAAG,CAAkB,kBAAkB,CAAC;AACrD;;ACrBO,MAAMI,cAAc,SAASf,UAAU,CAAkB;EAC9D,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIY,cAAc,CAACd,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;AAEAW,EAAAA,IAAI,GAAGL,QAAG,CAAgB,KAAK,CAAC;AAChC;AACF;;ACLO,MAAMM,oBAAoB,SAASjB,UAAU,CAElD;EACA,OAAOC,QAAQ,GAAG,yBAAyB;AAE3CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIc,oBAAoB,CAAChB,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AACjE,EAAA;EAEA,IAAIa,MAAMA,GAA8B;AACtC,IAAA,OAAO,IAAI,CAACX,OAAO,EAAEC,YAAY,CAAC,aAAa,CAAC;AAClD,EAAA;EAEA,IAAIC,UAAUA,GAA8B;AAC1C,IAAA,OAAO,IAAI,CAACF,OAAO,EAAEC,YAAY,CAAC,iBAAiB,CAAC;AACtD,EAAA;EAEA,IAAIW,OAAOA,GAA8B;AACvC,IAAA,OAAO,IAAI,CAACZ,OAAO,EAAEC,YAAY,CAAC,cAAc,CAAC;AACnD,EAAA;EAEA,MAAMY,IAAIA,GAAG;IACX,IAAI,IAAI,CAACb,OAAO,EAAE;AAChB,MAAA,MAAMc,KAAK,CAAC,IAAI,CAACd,OAAO,CAAC;AAC3B,IAAA;AACF,EAAA;AAEAG,EAAAA,KAAK,GAAGC,QAAG,CAAC,gCAAgC,EAAEI,cAAc,CAAC;AAC/D;;AC/BO,MAAMO,kBAAkB,SAAStB,UAAU,CAAsC;EACtF,OAAOC,QAAQ,GAAG,mBAAmB;AAErCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAImB,kBAAkB,CAACrB,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC/D,EAAA;EAEA,IAAIkB,QAAQA,GAAG;IACb,OAAOC,OAAO,CAAC,IAAI,CAACjB,OAAO,EAAEkB,YAAY,CAAC,eAAe,CAAC,CAAC;AAC7D,EAAA;EAEA,IAAIC,QAAQA,GAAY;AACtB,IAAA,OAAOF,OAAO,CAAC,IAAI,CAACG,IAAI,EAAEpB,OAAO,EAAEqB,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9D,EAAA;AAEAC,EAAAA,OAAOA,GAAG;IACR,OAAO,IAAI,CAACtB,OAAO,EAAEC,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM;AAC/D,EAAA;EAEA,IAAcsB,MAAMA,GAAG;AACrB,IAAA,OAAO,IAAI,CAACvB,OAAO,EAAEC,YAAY,CAAC,eAAe,CAAC;AACpD,EAAA;EAEA,IAAcmB,IAAIA,GAAqB;IACrC,OAAO,IAAI,CAACG,MAAM;AACd;IACAC,cAAc,CAAoB,CAAA,CAAA,EAAI,IAAI,CAACD,MAAM,EAAE,EAAEE,cAAc,CAAC,GACpEC,SAAS;AACf,EAAA;EAEA,IAAIC,KAAKA,GAAG;IACV,OAAO,IAAI,CAACP,IAAI;AAClB,EAAA;AACF;AAEO,MAAMK,cAAc,SAAShC,UAAU,CAA8B;EAC1E,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI6B,cAAc,CAAC/B,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;EAEA,IAAI8B,OAAOA,GAAG;IACZ,OAAO,IAAI,CAAC5B,OAAO;AACrB,EAAA;EAEA6B,KAAK,GAAGzB,QAAG,CAA4BW,kBAAkB,CAACrB,QAAQ,EAAEqB,kBAAkB,CAAC;AACzF;;AC5CA,MAAMe,gBAAgB,SAASrC,UAAU,CAA2C;AAClF;EACAoC,KAAK,GAAGzB,QAAG,CAA4B2B,iBAAiB,CAACrC,QAAQ,EAAEqC,iBAAiB,CAAC;AACvF;AAEO,MAAMA,iBAAiB,SAAShB,kBAAkB,CAAqB;EAC5E,OAAOrB,QAAQ,GAAG,eAAe;AAEjCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAImC,iBAAiB,CAACrC,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC9D,EAAA;AAEAwB,EAAAA,OAAOA,GAAG;AACR,IAAA,OAAO,KAAK,CAACA,OAAO,EAAE,IAAI,IAAI,CAACtB,OAAO,EAAEgC,OAAO,CAACC,WAAW,EAAE,KAAK,SAAS;AAC7E,EAAA;AAEAC,EAAAA,cAAcA,GAAG;IACf,OACE,IAAI,CAAClC,OAAO,EAAEgC,OAAO,CAACC,WAAW,EAAE,KAAK,SAAS,IACjD,IAAI,CAACjC,OAAO,EAAEmC,aAAa,EAAEH,OAAO,KAAK,SAAS;AAEtD,EAAA;EAEA,IAAIb,QAAQA,GAAG;IACb,OAAOF,OAAO,CACZ,IAAI,CAACiB,cAAc,EAAE,GACjB,CAAC,IAAI,CAAClC,OAAO,EAAEmC,aAAa,EAAiBd,OAAO,CAAC,QAAQ,CAAC,GAC9D,KAAK,CAACF,QACZ,CAAC;AACH,EAAA;EAEA,IAAIQ,KAAKA,GAAqB;AAC5B,IAAA,IAAI,IAAI,CAACO,cAAc,EAAE,EAAE;AACzB,MAAA,OAAO9B,QAAG,CAAoB,OAAO,EAAE0B,gBAAgB,CAAC;AAC1D,IAAA;IAEA,OAAO,IAAI,CAACV,IAAI;AAClB,EAAA;AACF;AAEO,MAAMgB,mBAAmB,SAAS3C,UAAU,CAAc;EAC/D,OAAOC,QAAQ,GAAG,wBAAwB;AAE1CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIwC,mBAAmB,CAAC1C,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAChE,EAAA;EAEA,IAAI,OAAOuC,GAAG;AACZ,IAAA,IAAI,IAAI,CAACV,KAAK,CAAC3B,OAAO,EAAE;AACtB,MAAA,OAAO,eAAe;AACxB,IAAA;AAEA,IAAA,OAAO,EAAE;AACX,EAAA;EAEA,IAAIsC,MAAMA,GAAG;IACX,OAAOlC,QAAG,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,iBAAiB,CAAC;AAC9D,EAAA;EAEA,IAAImC,IAAIA,GAAG;IACT,OAAOnC,QAAG,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE0B,gBAAgB,CAAC;AACrD,EAAA;EAEA,IAAIU,IAAIA,GAAG;IACT,OAAOpC,QAAG,CAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,aAAA,CAAe,EAAE0B,gBAAgB,CAAC;AAC9D,EAAA;AAEAH,EAAAA,KAAK,GAAGvB,QAAG,CACT,eAAe,EACf,cAAcX,UAAU,CAAkB;AACxCgD,IAAAA,OAAO,GAAGrC,QAAG,CAAC,oBAAoB,EAAEM,oBAAoB,CAAC;AAEzDgC,IAAAA,QAAQ,GAAGtC,QAAG,CACZ,WAAW,EACX,cAAcX,UAAU,CAAc;MACpC,IAAI0B,QAAQA,GAAG;QACb,OAAOF,OAAO,CAAC,IAAI,CAACjB,OAAO,EAAEqB,OAAO,CAAC,eAAe,CAAC,CAAC;AACxD,MAAA;AACF,KACF,CAAC;AACH,GACF,CAAC;AACH;;ACtFO,MAAMsB,gBAAgB,SAASlD,UAAU,CAAkB;EAChE,OAAOC,QAAQ,GAAG,oBAAoB;AAEtCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI+C,gBAAgB,CAACjD,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC7D,EAAA;AAEAW,EAAAA,IAAI,GAAGL,QAAG,CAAgB,KAAK,CAAC;AAChCwC,EAAAA,IAAI,GAAGxC,QAAG,CAAmB,KAAK,CAAC;AACrC;;ACPO,MAAMyC,gBAAgB,SAASpD,UAAU,CAE9C;EACA,OAAOC,QAAQ,GAAG,oBAAoB;AAEtCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIiD,gBAAgB,CAACnD,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC7D,EAAA;EAEA,IAAIa,MAAMA,GAA8B;AACtC,IAAA,OAAO,IAAI,CAACX,OAAO,EAAEC,YAAY,CAAC,aAAa,CAAC;AAClD,EAAA;EAEA,IAAIC,UAAUA,GAA8B;AAC1C,IAAA,OAAO,IAAI,CAACF,OAAO,EAAEC,YAAY,CAAC,iBAAiB,CAAC;AACtD,EAAA;EAEA,IAAIW,OAAOA,GAA8B;AACvC,IAAA,OAAO,IAAI,CAACZ,OAAO,EAAEC,YAAY,CAAC,cAAc,CAAC;AACnD,EAAA;AAEA6C,EAAAA,OAAO,GAAG1C,QAAG,CAAkB,6BAA6B,CAAC;AAC7D2C,EAAAA,MAAM,GAAG3C,QAAG,CAAkB,4BAA4B,CAAC;AAC3D4C,EAAAA,MAAM,GAAG5C,QAAG,CAAkB,4BAA4B,CAAC;EAE3D,MAAMS,IAAIA,GAAG;IACX,IAAI,IAAI,CAACb,OAAO,EAAE;AAChB,MAAA,MAAMc,KAAK,CAAC,IAAI,CAACd,OAAO,CAAC;AAC3B,IAAA;AACF,EAAA;AACF;;AC/BA,MAAMiD,gBAAgB,SAASxD,UAAU,CAAoC;EAC3E,OAAOC,QAAQ,GAAG,oBAAoB;AAEtCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIqD,gBAAgB,CAACvD,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC7D,EAAA;EAEA,IAAI8B,OAAOA,GAAG;IACZ,OAAO,IAAI,CAAC5B,OAAO;AACrB,EAAA;AACF;AAEO,MAAMkD,eAAe,GAAGD;AACxB,MAAME,kBAAkB,GAAGF;;ACV3B,MAAMG,eAAe,SAAS3D,UAAU,CAAoC;EACjF,OAAOC,QAAQ,GAAG,mBAAmB;AAErCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIwD,eAAe,CAAC1D,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC5D,EAAA;EAEA,IAAI8B,OAAOA,GAAG;IACZ,OAAO,IAAI,CAAC5B,OAAO;AACrB,EAAA;EAEA,IAAIY,OAAOA,GAA8B;AACvC,IAAA,OAAO,IAAI,CAACZ,OAAO,EAAEC,YAAY,CAAC,cAAc,CAAC;AACnD,EAAA;AACF;AAEO,MAAMoD,oBAAoB,SAASD,eAAe,CAAC;EACxD,IAAIE,WAAWA,GAAuB;AACpC,IAAA,OAAO,IAAI,CAAC1B,OAAO,CAAC2B,OAAO,CAACD,WAAW;AACzC,EAAA;AACF;AAEO,MAAME,qBAAqB,GAAGJ;AAC9B,MAAMK,mBAAmB,GAAGL;AAC5B,MAAMM,oBAAoB,GAAGN;AAC7B,MAAMO,mBAAmB,GAAGP;AAC5B,MAAMQ,oBAAoB,GAAGR;AAC7B,MAAMS,uBAAuB,GAAGT;;AC5BhC,MAAMU,gBAAgB,SAASrE,UAAU,CAAoB;EAClE,OAAOC,QAAQ,GAAG,oBAAoB;AAEtCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIkE,gBAAgB,CAACpE,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC7D,EAAA;EAEA,IAAIc,OAAOA,GAA8B;AACvC,IAAA,OAAO,IAAI,CAACZ,OAAO,EAAEC,YAAY,CAAC,cAAc,CAAC;AACnD,EAAA;EAEA,IAAI2B,OAAOA,GAAG;IACZ,OAAO,IAAI,CAAC5B,OAAO;AACrB,EAAA;AAEA+D,EAAAA,OAAO,GAAG3D,QAAG,CAAoB,QAAQ,CAAC;AAE1C,EAAA,MAAM4D,MAAMA,CAACC,OAA0B,EAAEC,sBAAgC,EAAE;IACzE,MAAMF,MAAM,CAAC,IAAI,CAAChE,OAAO,EAAYiE,OAAO,EAAEC,sBAAsB,CAAC;AACvE,EAAA;AACF;;ACnBO,MAAMC,oBAAoB,SAAS1E,UAAU,CAAiB;EACnE,OAAOC,QAAQ,GAAG,wBAAwB;AAE1CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIuE,oBAAoB,CAACzE,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AACjE,EAAA;AAEAsE,EAAAA,SAAS,GAAGhE,QAAG,CACb,oBAAoB,EACpB,cAAcX,UAAU,CAAc;IACpC4E,OAAO,GAAGjE,QAAG,CAAC0D,gBAAgB,CAACpE,QAAQ,EAAEoE,gBAAgB,CAAC;AAC5D,GACF,CAAC;AAEDQ,EAAAA,KAAK,GAAGlE,QAAG,CACT,eAAe,EACf,cAAcX,UAAU,CAAc;IACpC4E,OAAO,GAAGjE,QAAG,CAAC0D,gBAAgB,CAACpE,QAAQ,EAAEoE,gBAAgB,CAAC;IAC1DS,MAAM,GAAGnE,QAAG,CAACoD,qBAAqB,CAAC9D,QAAQ,EAAE8D,qBAAqB,CAAC;AACrE,GACF,CAAC;AAEDgB,EAAAA,MAAM,GAAGpE,QAAG,CAAc,gBAAgB,CAAC;AAE3CqE,EAAAA,KAAK,GAAGrE,QAAG,CAAC,kBAAkB,EAAEM,oBAAoB,CAAC;AACrDgE,EAAAA,KAAK,GAAGtE,QAAG,CAAC,kBAAkB,EAAEM,oBAAoB,CAAC;AACvD;;AC5BO,MAAMiE,mBAAmB,SAASlF,UAAU,CAAkB;EACnE,OAAOC,QAAQ,GAAG,wBAAwB;AAE1CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI+E,mBAAmB,CAACjF,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAChE,EAAA;AAEA8E,EAAAA,IAAI,GAAGxE,QAAG,CAAuB,UAAU,CAAC;AAC5CyE,EAAAA,KAAK,GAAGzE,QAAG,CAAsB,UAAU,CAAC;AAC5C0E,EAAAA,iBAAiB,GAAG1E,QAAG,CACrB,mBAAmB,EACnB,cAAcX,UAAU,CAAuB;IAC7CsF,WAAW,GAAG3E,QAAG,CAAC+D,oBAAoB,CAACzE,QAAQ,EAAEyE,oBAAoB,CAAC;AACxE,GACF,CAAC;AACH;;ACnBO,MAAMa,KAAK,SAASvF,UAAU,CAAiB;EACpD,OAAOC,QAAQ,GAAG,mBAAmB;EAErC,IAAIuF,IAAIA,GAAG;AACT,IAAA,OAAO,IAAI,CAACjF,OAAO,EAAEC,YAAY,CAAC,sBAAsB,CAAC;AAC3D,EAAA;EAEA,IAAIiF,KAAKA,GAAG;AACV,IAAA,OAAO,IAAI,CAAClF,OAAO,EAAEC,YAAY,CAAC,uBAAuB,CAAC;AAC5D,EAAA;AACF;;ACLO,MAAMkF,sBAAsB,SAAS1F,UAAU,CAAoC;EACxF,OAAOC,QAAQ,GAAG,2BAA2B;AAE7CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIuF,sBAAsB,CAACzF,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AACnE,EAAA;AAEAsF,EAAAA,OAAO,GAAGhF,QAAG,CAAkB,oCAAoC,CAAC;AACpEiF,EAAAA,MAAM,GAAGjF,QAAG,CAAkB,mCAAmC,CAAC;AAClEkF,EAAAA,OAAO,GAAGlF,QAAG,CAAkB,oCAAoC,CAAC;EACpEmE,MAAM,GAAGnE,QAAG,CAACgD,eAAe,CAAC1D,QAAQ,EAAE0D,eAAe,CAAC;EAEvD,IAAIxB,OAAOA,GAAG;AACZ,IAAA,OAAO,IAAI,CAAC2C,MAAM,CAACvE,OAAO;AAC5B,EAAA;AACF;AAEO,MAAMuF,uBAAuB,GAAGJ;;ACjBhC,MAAMK,cAAc,SAAS/F,UAAU,CAAiB;EAC7D,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI4F,cAAc,CAAC9F,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;EAEA,IAAI8B,OAAOA,GAAG;IACZ,OAAO,IAAI,CAAC5B,OAAO;AACrB,EAAA;AAEA+D,EAAAA,OAAO,GAAG3D,QAAG,CAAoB,iBAAiB,CAAC;EAEnD,MAAM4D,MAAMA,CAACC,OAA0B,EAAE;AACvC,IAAA,MAAMwB,aAAa,CAAC,IAAI,CAACzF,OAAO,EAAYiE,OAAO,CAAC;AACtD,EAAA;AACF;;AClBO,MAAMyB,kBAAkB,SAASjG,UAAU,CAAoC;EACpF,OAAOC,QAAQ,GAAG,sBAAsB;AAExCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI8F,kBAAkB,CAAChG,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC/D,EAAA;EAEA,IAAI8B,OAAOA,GAAG;IACZ,OAAO,IAAI,CAAC5B,OAAO;AACrB,EAAA;AACF;;ACXO,MAAM2F,gBAAgB,SAASlG,UAAU,CAAiB;AAC/DsD,EAAAA,MAAM,GAAG3C,QAAG,CAAuC,mBAAmB,CAAC;AACvEwF,EAAAA,YAAY,GAAGxF,QAAG,CAAuB,yBAAyB,CAAC;AACnEyF,EAAAA,QAAQ,GAAGzF,QAAG,CAAmB,OAAO,CAAC;AAC3C;AAEO,MAAM0F,iBAAiB,SAASrG,UAAU,CAAuC;EACtF,OAAOC,QAAQ,GAAG,qBAAqB;AAEvCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIkG,iBAAiB,CAACpG,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC9D,EAAA;AAEAiG,EAAAA,QAAQ,GAAG3F,QAAG,CAAC,oBAAoB,EAAEuF,gBAAgB,CAAC;EAEtDK,MAAMA,CAACd,KAAa,EAAE;AACpB,IAAA,OAAO,IAAI,CAACa,QAAQ,CAACE,IAAI,CACtBD,MAAM,IAAKA,MAAM,CAACH,QAAQ,CAAC7F,OAAO,EAAEkF,KAAK,KAAKA,KACjD,CAAC;AACH,EAAA;AACF;;ACVO,MAAMgB,SAAS,SAASzG,UAAU,CAAuB;EAC9D,IAAI0G,OAAOA,GAAG;IACZ,OAAOlF,OAAO,CAAC,IAAI,CAACjB,OAAO,EAAEC,YAAY,CAAC,wBAAwB,CAAC,CAAC;AACtE,EAAA;AACF;AAEO,MAAMmG,eAAe,SAAS3G,UAAU,CAAuC;EACpF,OAAOC,QAAQ,GAAG,mBAAmB;AAErCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIwG,eAAe,CAAC1G,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC5D,EAAA;AAEAiD,EAAAA,MAAM,GAAG3C,QAAG,CAAuC,mBAAmB,CAAC;AACvEwF,EAAAA,YAAY,GAAGxF,QAAG,CAAuB,yBAAyB,CAAC;AACnE;AACA;AACA;;AAEA;;EAEQmE,MAAM,GAAGnE,QAAG,CAACgD,eAAe,CAAC1D,QAAQ,EAAE0D,eAAe,CAAC;EACvDiD,aAAa,GAAGjG,QAAG,CAAC+E,sBAAsB,CAACzF,QAAQ,EAAEyF,sBAAsB,CAAC;EAC5Ed,OAAO,GAAGjE,QAAG,CAAC0D,gBAAgB,CAACpE,QAAQ,EAAEoE,gBAAgB,CAAC;EAC1DwC,SAAS,GAAGlG,QAAG,CAACsF,kBAAkB,CAAChG,QAAQ,EAAEgG,kBAAkB,CAAC;EAChEa,SAAS,GAAGnG,QAAG,CAAC+C,kBAAkB,CAACzD,QAAQ,EAAEyD,kBAAkB,CAAC;EAChEqD,KAAK,GAAGpG,QAAG,CAACoF,cAAc,CAAC9F,QAAQ,EAAE8F,cAAc,CAAC;EAE5DiB,QAAQ,GAAGrG,QAAG,CAAC0F,iBAAiB,CAACpG,QAAQ,EAAEoG,iBAAiB,CAAC;EAC7DY,OAAO,GAAGtG,QAAG,CAAC4E,KAAK,CAACtF,QAAQ,EAAEsF,KAAK,CAAC;AACpC2B,EAAAA,MAAM,GAAGvG,QAAG,CAAC,kBAAkB,EAAE8F,SAAS,CAAC;EAE3C,IAAIL,QAAQA,GAMO;AACjB,IAAA,IAAI,IAAI,CAACQ,aAAa,CAACrG,OAAO,EAAE;MAC9B,OAAO,IAAI,CAACqG,aAAa;AAC3B,IAAA;AAEA,IAAA,IAAI,IAAI,CAACE,SAAS,CAACvG,OAAO,EAAE;MAC1B,OAAO,IAAI,CAACuG,SAAS;AACvB,IAAA;IAEA,IAAI,IAAI,CAAChC,MAAM,CAACvE,OAAO,EAAEiF,IAAI,KAAK,OAAO,EAAE;MACzC,OAAO,IAAI,CAACV,MAAM;AACpB,IAAA;AAEA,IAAA,IAAI,IAAI,CAACA,MAAM,CAACvE,OAAO,EAAE;MACvB,OAAO,IAAI,CAACuE,MAAM;AACpB,IAAA;AAEA,IAAA,IAAI,IAAI,CAACF,OAAO,CAACrE,OAAO,EAAE;MACxB,OAAO,IAAI,CAACqE,OAAO;AACrB,IAAA;AAEA,IAAA,IAAI,IAAI,CAACiC,SAAS,CAACtG,OAAO,EAAE;MAC1B,OAAO,IAAI,CAACsG,SAAS;AACvB,IAAA;AAEA,IAAA,IAAI,IAAI,CAACE,KAAK,CAACxG,OAAO,EAAE;MACtB,OAAO,IAAI,CAACwG,KAAK;AACnB,IAAA;AAEA,IAAA,OAAO,IAAI,CAACjC,MAAM,CAAC;AACrB,EAAA;EAEA,IAAIqC,IAAIA,GAAG;AACT,IAAA,OAAO,IAAI,CAAC5G,OAAO,EAAEC,YAAY,CAAC,iBAAiB,CAAC;AACtD,EAAA;AACF;;AC3EO,MAAM4G,cAAc,SAASpH,UAAU,CAAkB;EAC9D,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIiH,cAAc,CAACnH,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;AAEAgH,EAAAA,OAAO,GAAG1G,QAAG,CAAC,uBAAuB,EAAEyC,gBAAgB,CAAC;AACxDkE,EAAAA,MAAM,GAAG3G,QAAG,CAAC,sBAAsB,EAAEyC,gBAAgB,CAAC;EAEtDmE,OAAO,GAAG5G,QAAG,CAACgG,eAAe,CAAC1G,QAAQ,EAAE0G,eAAe,CAAC;EACxDM,OAAO,GAAGtG,QAAG,CAAC4E,KAAK,CAACtF,QAAQ,EAAEsF,KAAK,CAAC;EAEpCiC,KAAKA,CAACL,IAAY,EAAE;AAClB,IAAA,OAAO,IAAI,CAACI,OAAO,CAACf,IAAI,CAAEgB,KAAK,IAAKA,KAAK,CAACL,IAAI,KAAKA,IAAI,CAAC;AAC1D,EAAA;EAEA,MAAMM,MAAMA,GAAG;AACb,IAAA,MAAMC,YAAY,CAAC,IAAI,CAACnH,OAAO,EAAqB,QAAQ,CAAC;AAC/D,EAAA;EAEA,MAAMoH,KAAKA,GAAG;AACZ,IAAA,MAAMD,YAAY,CAAC,IAAI,CAACnH,OAAO,EAAqB,OAAO,CAAC;AAC9D,EAAA;AACF;;AC9BO,MAAMqH,iBAAiB,SAAS5H,UAAU,CAE/C;EACA,OAAOC,QAAQ,GAAG,eAAe;AAEjCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIyH,iBAAiB,CAAC3H,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC9D,EAAA;EAEAK,KAAK,GAAGC,QAAG,CAACI,cAAc,CAACd,QAAQ,EAAEc,cAAc,CAAC;AACtD;;ACVO,MAAM8G,wBAAwB,SAAS7H,UAAU,CAAiB;EACvE,OAAOC,QAAQ,GAAG,6BAA6B;AAE/CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI0H,wBAAwB,CAAC5H,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AACrE,EAAA;AAEA0E,EAAAA,MAAM,GAAGpE,QAAG,CAAC,eAAe,EAAEiH,iBAAiB,CAAC;AAChDE,EAAAA,OAAO,GAAGnH,QAAG,CAAc,gBAAgB,CAAC;AAC9C;;ACXO,MAAMoH,cAAc,SAAS/H,UAAU,CAE5C;EACA,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI4H,cAAc,CAAC9H,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;AAEA2H,EAAAA,OAAO,GAAGrH,QAAG,CAAc,QAAQ,CAAC;AAEpCC,EAAAA,MAAM,GAAGD,QAAG,CAAqB,aAAa,CAAC;AAC/CwF,EAAAA,YAAY,GAAGxF,QAAG,CAAuB,YAAY,CAAC;AAEtDE,EAAAA,QAAQ,GAAGF,QAAG,CAAc,kBAAkB,CAAC;AACjD;AAEO,MAAMsH,uBAAuB,SAASF,cAAc,CAAC;AAC1DjF,EAAAA,IAAI,GAAGnC,QAAG,CAAc,cAAc,CAAC;AACzC;;ACjBO,MAAMuH,oBAAoB,SAASlI,UAAU,CAElD;EACA,OAAOC,QAAQ,GAAG,yBAAyB;AAE3CC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAI+H,oBAAoB,CAACjI,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AACjE,EAAA;EAEA,IAAIa,MAAMA,GAA8B;AACtC,IAAA,OAAO,IAAI,CAACX,OAAO,EAAEC,YAAY,CAAC,aAAa,CAAC;AAClD,EAAA;EAEA,IAAIC,UAAUA,GAA8B;AAC1C,IAAA,OAAO,IAAI,CAACF,OAAO,EAAEC,YAAY,CAAC,iBAAiB,CAAC;AACtD,EAAA;EAEA,IAAIW,OAAOA,GAA8B;AACvC,IAAA,OAAO,IAAI,CAACZ,OAAO,EAAEC,YAAY,CAAC,cAAc,CAAC;AACnD,EAAA;AAEA6C,EAAAA,OAAO,GAAG1C,QAAG,CAAkB,6BAA6B,CAAC;AAC7D2C,EAAAA,MAAM,GAAG3C,QAAG,CAAkB,4BAA4B,CAAC;AAC3D4C,EAAAA,MAAM,GAAG5C,QAAG,CAAkB,4BAA4B,CAAC;EAE3D,MAAMS,IAAIA,GAAG;IACX,IAAI,IAAI,CAACb,OAAO,EAAE;AAChB,MAAA,MAAMc,KAAK,CAAC,IAAI,CAACd,OAAO,CAAC;AAC3B,IAAA;AACF,EAAA;AACF;;AChCO,MAAM4H,iBAAiB,SAASnI,UAAU,CAE/C;EACA,OAAOC,QAAQ,GAAG,qBAAqB;AAEvCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIgI,iBAAiB,CAAClI,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC9D,EAAA;AACF;;ACRO,MAAM+H,iBAAiB,SAASpI,UAAU,CAE/C;EACA,OAAOC,QAAQ,GAAG,qBAAqB;AAEvCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIiI,iBAAiB,CAACnI,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC9D,EAAA;AAEA2H,EAAAA,OAAO,GAAGrH,QAAG,CAAC,8BAA8B,CAAC;AAC7CC,EAAAA,MAAM,GAAGD,QAAG,CAAC,6BAA6B,CAAC;AAC7C;;ACPO,MAAM0H,cAAc,SAASrI,UAAU,CAAiB;EAC7D,OAAOC,QAAQ,GAAG,kBAAkB;AAEpCC,EAAAA,WAAWA,CAACC,QAAiB,EAAEC,MAAwC,EAAEC,KAAqB,EAAE;IAC9F,KAAK,CAACF,QAAQ,IAAIkI,cAAc,CAACpI,QAAQ,EAAEG,MAAM,EAAEC,KAAK,CAAC;AAC3D,EAAA;EAEA,IAAI8B,OAAOA,GAAG;AACZ,IAAA,OAAO,IAAI,CAACmG,QAAQ,CAAC/H,OAAO;AAC9B,EAAA;AAEA+H,EAAAA,QAAQ,GAAG3H,QAAG,CAAiB,kBAAkB,CAAC;AAClD4H,EAAAA,IAAI,GAAG5H,QAAG,CAAoB,cAAc,CAAC;AAC7C6H,EAAAA,SAAS,GAAG7H,QAAG,CAAc,mBAAmB,CAAC;EAEjD,MAAM4D,MAAMA,CAACkB,KAAc,EAAE;AAC3B;AACA;AACA,IAAA,MAAMgD,GAAG,GAAG,IAAI,CAACF,IAAI,CAAC/B,IAAI,CAAEkC,CAAC,IAAKA,CAAC,CAACnI,OAAO,CAACoI,QAAQ,CAAC,KAAKlD,KAAK,CAAC;AAEhE,IAAA,IAAIgD,GAAG,EAAE;MACP,MAAMG,SAAS,CAACH,GAAG,CAAC;AACtB,IAAA;AACF,EAAA;AACF;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hokulea/ember",
3
- "version": "0.11.1",
3
+ "version": "0.13.0",
4
4
  "description": "Hokulea Design System for Ember",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -45,17 +45,18 @@
45
45
  "dependencies": {
46
46
  "@embroider/addon-shim": "^1.10.0",
47
47
  "@floating-ui/dom": "^1.7.1",
48
- "@hokulea/ember-pahu": "^0.0.2",
48
+ "@hokulea/ember-pahu": "^0.0.3",
49
49
  "decorator-transforms": "^2.3.0",
50
50
  "ember-aria-voyager": "^0.2.4",
51
51
  "ember-stargate": "^1.0.1",
52
52
  "ember-strict-application-resolver": "^0.1.0",
53
53
  "tracked-built-ins": "^4.0.0",
54
- "@hokulea/core": "0.8.0"
54
+ "@hokulea/core": "0.9.1",
55
+ "@hokulea/tokens": "0.2.0"
55
56
  },
56
57
  "peerDependencies": {
57
58
  "@ember/test-helpers": "^5.0.0",
58
- "ember-command": "^2.0.2",
59
+ "ember-command": "^2.0.8",
59
60
  "ember-concurrency": "^5.0.0",
60
61
  "ember-element-helper": "^0.8.5",
61
62
  "ember-link": "^3.4.1",
@@ -78,15 +79,15 @@
78
79
  "@ember/app-tsconfig": "^1.0.3",
79
80
  "@ember/library-tsconfig": "^1.1.3",
80
81
  "@ember/render-modifiers": "^3.0.0",
81
- "@ember/test-helpers": "5.4.0",
82
+ "@ember/test-helpers": "5.4.1",
82
83
  "@embroider/addon-dev": "^8.1.0",
83
84
  "@embroider/compat": "^4.1.10",
84
85
  "@embroider/core": "^4.2.7",
85
86
  "@embroider/macros": "^1.19.4",
86
87
  "@embroider/vite": "^1.4.1",
87
88
  "@glimmer/component": "^2.0.0",
88
- "@glint/ember-tsc": "^1.0.7",
89
- "@glint/template": "^1.6.2",
89
+ "@glint/ember-tsc": "^1.0.8",
90
+ "@glint/template": "^1.7.3",
90
91
  "@gossi/config-eslint": "^1.3.1",
91
92
  "@gossi/config-prettier": "^1.1.1",
92
93
  "@gossi/config-stylelint": "^1.1.1",
@@ -97,12 +98,12 @@
97
98
  "@storybook/types": "^8.6.14",
98
99
  "@theemo/ember": "^1.0.1",
99
100
  "@theemo/vite": "^1.0.1",
100
- "@types/qunit": "2.19.12",
101
+ "@types/qunit": "2.19.13",
101
102
  "@types/sinon": "^17.0.4",
102
103
  "ember-cli-code-coverage": "3.1.0",
103
104
  "ember-cli-fastboot": "4.1.5",
104
105
  "ember-cli-htmlbars": "^6.3.0",
105
- "ember-command": "2.0.7",
106
+ "ember-command": "2.0.8",
106
107
  "ember-concurrency": "5.1.0",
107
108
  "ember-element-helper": "^0.8.8",
108
109
  "ember-link": "3.5.0",
@@ -120,21 +121,20 @@
120
121
  "iconify-icon": "^3.0.2",
121
122
  "postcss": "8.5.6",
122
123
  "prettier": "^3.6.2",
123
- "qunit": "^2.24.2",
124
+ "qunit": "^2.24.3",
124
125
  "qunit-dom": "^3.5.0",
125
- "rollup": "4.52.5",
126
+ "rollup": "4.53.3",
126
127
  "sinon": "^21.0.0",
127
- "storybook": "^9.1.15",
128
- "stylelint": "16.25.0",
129
- "testem": "^3.16.0",
128
+ "storybook": "^9.1.16",
129
+ "stylelint": "16.26.1",
130
+ "testem": "^3.17.0",
130
131
  "type-fest": "^5.1.0",
131
132
  "typescript": "5.9.3",
132
133
  "unplugin-icons": "^22.5.0",
133
134
  "valibot": "^1.1.0",
134
135
  "vite": "^7.1.12",
135
- "@hokulea/theme-moana": "0.3.0",
136
- "@hokulea/tokens": "0.1.2",
137
- "@hokulea/core": "0.8.0"
136
+ "@hokulea/theme-moana": "0.4.0",
137
+ "@hokulea/core": "0.9.1"
138
138
  },
139
139
  "ember": {
140
140
  "edition": "octane"
@@ -147,6 +147,7 @@
147
147
  "type": "addon",
148
148
  "main": "addon-main.cjs",
149
149
  "app-js": {
150
+ "./components/alert.js": "./dist/_app_/components/alert.js",
150
151
  "./components/app-header.js": "./dist/_app_/components/app-header.js",
151
152
  "./components/avatar.js": "./dist/_app_/components/avatar.js",
152
153
  "./components/box.js": "./dist/_app_/components/box.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu-DCDUaqYZ.js","sources":["../src/components/controls/menu.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\nimport { service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\n\nimport { ariaMenu } from 'ember-aria-voyager';\nimport { TrackedArray } from 'tracked-built-ins';\n\nimport disabled from '../../-private/modifiers/disabled.ts';\nimport { PushElement } from '../../-private/push.gts';\nimport { popover } from '../../helpers/popover.ts';\n\nimport type { MenuItemArgs, MenuItemBlocks, MenuItemElement } from './-menu.gts';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nimport type FastBoot from 'ember-cli-fastboot/services/fastboot';\n\nexport type MenuDefaultBlock = {\n Item: WithBoundArgs<typeof MenuItem, 'registerItem' | 'unregisterItem'>;\n};\n\nexport interface MenuItemSignature {\n Element: MenuItemElement;\n Args: MenuItemArgs & {\n registerItem: (item: MenuItem) => void;\n unregisterItem: (item: MenuItem) => void;\n };\n Blocks: MenuItemBlocks & {\n menu?: [MenuDefaultBlock];\n };\n}\n\n// below are attempts at conditional typing based on provided blocks in dynamic invocation\n\n// type MenuItemArgs = {\n// disabled?: boolean;\n// registerItem: (item: MenuItem) => void;\n// unregisterItem: (item: MenuItem) => void;\n// };\n\n// export interface MenuItemSignature<T = {}> {\n// Element: HTMLButtonElement | HTMLAnchorElement;\n// Args: T extends { Blocks: { default: [] } }\n// ? MenuItemArgs & {\n// push: CommandAction;\n// }\n// : MenuItemArgs;\n// Blocks: T extends { Blocks: { default: [] } }\n// ? { default: [] }\n// : { label: []; menu: [MenuDefaultBlock] };\n// }\n\n// & (\n// | {\n// Args: MenuItemArgs & {\n// push: CommandAction;\n// };\n// Blocks: {\n// default: [];\n// };\n// }\n// | {\n// Args: MenuItemArgs;\n// Blocks: {\n// label: [];\n// menu: [MenuDefaultBlock];\n// };\n// }\n// );\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nclass MenuItem extends Component<MenuItemSignature> {\n constructor(owner: Owner, args: MenuItemSignature['Args']) {\n super(owner, args);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n args.registerItem(this);\n\n registerDestructor(this, () => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n args.unregisterItem(this);\n });\n }\n\n <template>\n {{#if (has-block \"menu\")}}\n {{#let (popover position=\"right-start\") as |p|}}\n <button\n type=\"button\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n {{disabled when=(if @disabled @disabled false)}}\n {{p.trigger}}\n >\n {{~yield to=\"label\"~}}\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{else}}\n <PushElement\n @push={{@push}}\n @href={{@href}}\n {{disabled when=(if @disabled @disabled false)}}\n role=\"menuitem\"\n >\n {{~yield~}}\n </PushElement>\n {{/if}}\n </template>\n}\n/* eslint-enable @typescript-eslint/no-use-before-define */\n\nexport interface MenuSignature {\n Element: HTMLDivElement;\n Args: {\n disabled?: boolean;\n };\n Blocks: {\n default: [MenuDefaultBlock];\n };\n}\n\nexport class Menu extends Component<MenuSignature> {\n @service declare fastboot?: FastBoot;\n\n @tracked items: MenuItem[] = new TrackedArray();\n\n get hideInSSR() {\n return this.fastboot?.isFastBoot;\n }\n\n registerItem = (item: MenuItem) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.push(item);\n });\n };\n\n unregisterItem = (item: MenuItem) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.splice(this.items.indexOf(item), 1);\n });\n };\n\n <template>\n <div\n class=\"menu\"\n data-test-menu\n ...attributes\n {{ariaMenu items=this.items disabled=@disabled}}\n style={{if this.hideInSSR (htmlSafe \"display: none\")}}\n >\n {{yield\n (hash\n Item=(component\n MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem\n )\n )\n }}\n </div>\n </template>\n}\n"],"names":["MenuItem","Component","constructor","owner","args","registerItem","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","strictMode","scope","popover","disabled","Menu","PushElement","g","prototype","service","i","void 0","tracked","TrackedArray","hideInSSR","fastboot","isFastBoot","item","next","items","push","splice","indexOf","htmlSafe","ariaMenu","hash"],"mappings":";;;;;;;;;;;;;;;;AAmCA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,MAAMA,QAAA,SAAiBC,SAAA,CAAU;AAC/BC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAA+B,EAAE;AACzD,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;AAEb;AACAA,IAAAA,IAAA,CAAKC,YAAY,CAAC,IAAI,CAAA;IAEtBC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvB;AACAF,MAAAA,IAAA,CAAKG,cAAc,CAAC,IAAI,CAAA;AAC1B,IAAA,CAAA,CAAA;AACF,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,2kBAAA,EA2BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;QAAAC,QAAA;QAAAC,IAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;AACA;;AAYO,MAAMD,aAAab,SAAA,CAAU;AAAA,EAAA;IAAAe,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CACjCC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,OAAA,EAAA,CAEAI,OAAA,CAAA,EAAA,YAAA;MAAA,OAA4B,IAAIC,YAAA,EAAA;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,MAAA,IAAAH,CAAA,CAAA,IAAA,EAAA,OAAA,CAAA,EAAAC,MAAA;EAEjC,IAAIG,SAAAA,GAAY;AACd,IAAA,OAAO,IAAI,CAACC,QAAQ,EAAEC,UAAA;AACxB,EAAA;EAEApB,YAAA,GAAgBqB,IAAM,IAAA;AACpB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACH,IAAA,CAAA;AAClB,IAAA,CAAA,CAAA;EACF,CAAA;EAEAnB,cAAA,GAAkBmB,IAAM,IAAA;AACtB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,IAAI,CAACF,KAAK,CAACG,OAAO,CAACL,IAAA,CAAA,EAAO,CAAA,CAAA;AAC9C,IAAA,CAAA,CAAA;EACF,CAAA;AAEA,EAAA;IAAAlB,oBAAA,CAAAC,kBAAA,CAAA,uSAAA,EAgBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAqB,QAAA;QAAAC,QAAA;QAAAC,IAAA;AAAAlC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}