@hokulea/ember 0.9.0 → 0.10.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 (198) hide show
  1. package/declarations/-private/helpers.d.ts +3 -1
  2. package/declarations/-private/helpers.d.ts.map +1 -1
  3. package/declarations/-private/push.gts.d.ts +20 -0
  4. package/declarations/-private/push.gts.d.ts.map +1 -0
  5. package/declarations/-private/shapes.d.ts +5 -0
  6. package/declarations/-private/shapes.d.ts.map +1 -0
  7. package/declarations/components/actions/button.gts.d.ts +6 -7
  8. package/declarations/components/actions/button.gts.d.ts.map +1 -1
  9. package/declarations/components/actions/icon-button.gts.d.ts +6 -7
  10. package/declarations/components/actions/icon-button.gts.d.ts.map +1 -1
  11. package/declarations/components/avatar.gts.d.ts +2 -0
  12. package/declarations/components/avatar.gts.d.ts.map +1 -0
  13. package/declarations/components/controls/-input.d.ts +3 -2
  14. package/declarations/components/controls/-input.d.ts.map +1 -1
  15. package/declarations/components/controls/{-menu.d.ts → -menu.gts.d.ts} +3 -4
  16. package/declarations/components/controls/-menu.gts.d.ts.map +1 -0
  17. package/declarations/components/controls/currency-input.gts.d.ts.map +1 -1
  18. package/declarations/components/controls/date-input.gts.d.ts.map +1 -1
  19. package/declarations/components/controls/email-input.gts.d.ts.map +1 -1
  20. package/declarations/components/controls/input-builder.gts.d.ts +2 -1
  21. package/declarations/components/controls/input-builder.gts.d.ts.map +1 -1
  22. package/declarations/components/controls/menu.gts.d.ts +1 -1
  23. package/declarations/components/controls/menu.gts.d.ts.map +1 -1
  24. package/declarations/components/controls/number-input.gts.d.ts.map +1 -1
  25. package/declarations/components/controls/password-input.gts.d.ts.map +1 -1
  26. package/declarations/components/controls/phone-input.gts.d.ts.map +1 -1
  27. package/declarations/components/controls/radio.gts.d.ts.map +1 -1
  28. package/declarations/components/controls/range-input.gts.d.ts +1 -1
  29. package/declarations/components/controls/range-input.gts.d.ts.map +1 -1
  30. package/declarations/components/controls/select.gts.d.ts +3 -0
  31. package/declarations/components/controls/select.gts.d.ts.map +1 -1
  32. package/declarations/components/controls/text-area.gts.d.ts.map +1 -1
  33. package/declarations/components/controls/text-input.gts.d.ts.map +1 -1
  34. package/declarations/components/data/data-table.gts.d.ts +19 -0
  35. package/declarations/components/data/data-table.gts.d.ts.map +1 -0
  36. package/declarations/components/data-table.gts.d.ts +2 -0
  37. package/declarations/components/data-table.gts.d.ts.map +1 -0
  38. package/declarations/components/form/form.gts.d.ts +2 -1
  39. package/declarations/components/form/form.gts.d.ts.map +1 -1
  40. package/declarations/components/form/reset.gts.d.ts +4 -4
  41. package/declarations/components/form/reset.gts.d.ts.map +1 -1
  42. package/declarations/components/form/submit.gts.d.ts +4 -4
  43. package/declarations/components/form/submit.gts.d.ts.map +1 -1
  44. package/declarations/components/graphics/avatar.gts.d.ts +10 -0
  45. package/declarations/components/graphics/avatar.gts.d.ts.map +1 -0
  46. package/declarations/components/link.gts.d.ts +2 -0
  47. package/declarations/components/link.gts.d.ts.map +1 -0
  48. package/declarations/components/navigation/-pagination.d.ts +17 -0
  49. package/declarations/components/navigation/-pagination.d.ts.map +1 -0
  50. package/declarations/components/navigation/app-header.gts.d.ts +2 -3
  51. package/declarations/components/navigation/app-header.gts.d.ts.map +1 -1
  52. package/declarations/components/navigation/link.gts.d.ts +13 -0
  53. package/declarations/components/navigation/link.gts.d.ts.map +1 -0
  54. package/declarations/components/navigation/nav-link.gts.d.ts +4 -2
  55. package/declarations/components/navigation/nav-link.gts.d.ts.map +1 -1
  56. package/declarations/components/navigation/pagination.gts.d.ts +78 -0
  57. package/declarations/components/navigation/pagination.gts.d.ts.map +1 -0
  58. package/declarations/components/pagination.gts.d.ts +2 -0
  59. package/declarations/components/pagination.gts.d.ts.map +1 -0
  60. package/declarations/index.d.ts +5 -1
  61. package/declarations/index.d.ts.map +1 -1
  62. package/declarations/template-registry.d.ts +9 -1
  63. package/declarations/template-registry.d.ts.map +1 -1
  64. package/declarations/test-support/index.d.ts +3 -0
  65. package/declarations/test-support/index.d.ts.map +1 -1
  66. package/declarations/test-support/page-objects/avatar.d.ts +10 -0
  67. package/declarations/test-support/page-objects/avatar.d.ts.map +1 -0
  68. package/declarations/test-support/page-objects/data-table.d.ts +36 -0
  69. package/declarations/test-support/page-objects/data-table.d.ts.map +1 -0
  70. package/declarations/test-support/page-objects/input.d.ts +1 -0
  71. package/declarations/test-support/page-objects/input.d.ts.map +1 -1
  72. package/declarations/test-support/page-objects/pagination.d.ts +65 -0
  73. package/declarations/test-support/page-objects/pagination.d.ts.map +1 -0
  74. package/declarations/test-support/page-objects/select.d.ts +1 -0
  75. package/declarations/test-support/page-objects/select.d.ts.map +1 -1
  76. package/dist/-input-DGR-n9U_.js.map +1 -1
  77. package/dist/_app_/components/avatar.js +1 -0
  78. package/dist/_app_/components/data-table.js +1 -0
  79. package/dist/_app_/components/link.js +1 -0
  80. package/dist/_app_/components/pagination.js +1 -0
  81. package/dist/{app-header-B6Q7pbiY.js → app-header-nmqytjxx.js} +7 -12
  82. package/dist/app-header-nmqytjxx.js.map +1 -0
  83. package/dist/avatar-CtqAk4G6.js +29 -0
  84. package/dist/avatar-CtqAk4G6.js.map +1 -0
  85. package/dist/button-BhxkZ70u.js +26 -0
  86. package/dist/button-BhxkZ70u.js.map +1 -0
  87. package/dist/{card-Bdv-UvKX.js → card-tK78paQn.js} +2 -2
  88. package/dist/{card-Bdv-UvKX.js.map → card-tK78paQn.js.map} +1 -1
  89. package/dist/{checkbox-D4vALmT2.js → checkbox-D3_2ps5M.js} +2 -2
  90. package/dist/{checkbox-D4vALmT2.js.map → checkbox-D3_2ps5M.js.map} +1 -1
  91. package/dist/components/app-header.js +1 -1
  92. package/dist/components/avatar.js +2 -0
  93. package/dist/components/avatar.js.map +1 -0
  94. package/dist/components/button.js +1 -1
  95. package/dist/components/card.js +1 -1
  96. package/dist/components/checkbox.js +1 -1
  97. package/dist/components/currency-input.js +1 -1
  98. package/dist/components/data-table.js +2 -0
  99. package/dist/components/data-table.js.map +1 -0
  100. package/dist/components/date-input.js +1 -1
  101. package/dist/components/email-input.js +1 -1
  102. package/dist/components/focus-page.js +1 -1
  103. package/dist/components/form.js +1 -1
  104. package/dist/components/icon-button.js +1 -1
  105. package/dist/components/icon.js +1 -1
  106. package/dist/components/input-builder.js +1 -1
  107. package/dist/components/link.js +2 -0
  108. package/dist/components/link.js.map +1 -0
  109. package/dist/components/menu.js +1 -1
  110. package/dist/components/navigation-list.js +1 -1
  111. package/dist/components/number-input.js +1 -1
  112. package/dist/components/page.js +1 -1
  113. package/dist/components/pagination.js +2 -0
  114. package/dist/components/pagination.js.map +1 -0
  115. package/dist/components/password-input.js +1 -1
  116. package/dist/components/phone-input.js +1 -1
  117. package/dist/components/radio.js +1 -1
  118. package/dist/components/range-input.js +1 -1
  119. package/dist/components/sectioned-page.js +1 -1
  120. package/dist/components/select.js +1 -1
  121. package/dist/components/tabs.js +1 -1
  122. package/dist/components/text-area.js +1 -1
  123. package/dist/components/text-input.js +1 -1
  124. package/dist/{currency-input-8ef0Igfb.js → currency-input-tBhgIMTh.js} +4 -4
  125. package/dist/currency-input-tBhgIMTh.js.map +1 -0
  126. package/dist/data-table-5VDYeRya.js +18 -0
  127. package/dist/data-table-5VDYeRya.js.map +1 -0
  128. package/dist/{date-input-BayaBuSb.js → date-input-DLv9jE39.js} +3 -3
  129. package/dist/{date-input-BayaBuSb.js.map → date-input-DLv9jE39.js.map} +1 -1
  130. package/dist/{email-input-j-Z0KO4A.js → email-input-BR33Qevz.js} +3 -3
  131. package/dist/{email-input-j-Z0KO4A.js.map → email-input-BR33Qevz.js.map} +1 -1
  132. package/dist/{focus-page-B9myJVvL.js → focus-page-DFu6qtBk.js} +2 -2
  133. package/dist/{focus-page-B9myJVvL.js.map → focus-page-DFu6qtBk.js.map} +1 -1
  134. package/dist/{form-DWyQ6QHX.js → form-VsNkRlXs.js} +15 -15
  135. package/dist/{form-DWyQ6QHX.js.map → form-VsNkRlXs.js.map} +1 -1
  136. package/dist/{helpers-DS9du02l.js → helpers-D4So5-uK.js} +8 -2
  137. package/dist/helpers-D4So5-uK.js.map +1 -0
  138. package/dist/{icon-bLZqjTMP.js → icon-BfRBkZ72.js} +2 -2
  139. package/dist/icon-BfRBkZ72.js.map +1 -0
  140. package/dist/icon-button-DBt7fMi1.js +38 -0
  141. package/dist/icon-button-DBt7fMi1.js.map +1 -0
  142. package/dist/index.js +29 -25
  143. package/dist/index.js.map +1 -1
  144. package/dist/{input-builder-DmcQbywA.js → input-builder-DHYx-2Yz.js} +2 -2
  145. package/dist/input-builder-DHYx-2Yz.js.map +1 -0
  146. package/dist/link-bqsg26Cc.js +18 -0
  147. package/dist/link-bqsg26Cc.js.map +1 -0
  148. package/dist/{menu-CZKNGJ91.js → menu-s0AthZse.js} +6 -4
  149. package/dist/menu-s0AthZse.js.map +1 -0
  150. package/dist/nav-link-CDtYj6HW.js +22 -0
  151. package/dist/nav-link-CDtYj6HW.js.map +1 -0
  152. package/dist/{navigation-list-Cxs6uZdM.js → navigation-list-Ng5UsNCY.js} +2 -2
  153. package/dist/{navigation-list-Cxs6uZdM.js.map → navigation-list-Ng5UsNCY.js.map} +1 -1
  154. package/dist/{number-input-B84zcPlM.js → number-input-FJympEv2.js} +3 -3
  155. package/dist/{number-input-B84zcPlM.js.map → number-input-FJympEv2.js.map} +1 -1
  156. package/dist/{page-BcSgHxr7.js → page-BuLkLO08.js} +2 -2
  157. package/dist/{page-BcSgHxr7.js.map → page-BuLkLO08.js.map} +1 -1
  158. package/dist/pagination-DCMxI10i.js +124 -0
  159. package/dist/pagination-DCMxI10i.js.map +1 -0
  160. package/dist/{password-input-BMp5uscw.js → password-input-DV5yb10h.js} +3 -3
  161. package/dist/password-input-DV5yb10h.js.map +1 -0
  162. package/dist/{phone-input-DeaTM5yP.js → phone-input-Uv5v9hK9.js} +3 -3
  163. package/dist/{phone-input-DeaTM5yP.js.map → phone-input-Uv5v9hK9.js.map} +1 -1
  164. package/dist/push-DnJFFc_p.js +24 -0
  165. package/dist/push-DnJFFc_p.js.map +1 -0
  166. package/dist/{radio-CGBLrzK4.js → radio-CLF40kob.js} +3 -3
  167. package/dist/{radio-CGBLrzK4.js.map → radio-CLF40kob.js.map} +1 -1
  168. package/dist/{range-input-BiAPgpW8.js → range-input-BIb7GkKH.js} +2 -2
  169. package/dist/range-input-BIb7GkKH.js.map +1 -0
  170. package/dist/{sectioned-page-fB9mV5WD.js → sectioned-page-CgINWVQ2.js} +3 -3
  171. package/dist/{sectioned-page-fB9mV5WD.js.map → sectioned-page-CgINWVQ2.js.map} +1 -1
  172. package/dist/{select-DxyaUFuy.js → select-CeO8AZMK.js} +5 -2
  173. package/dist/select-CeO8AZMK.js.map +1 -0
  174. package/dist/{tabs-a9GhNQv9.js → tabs-DAscspzh.js} +2 -2
  175. package/dist/{tabs-a9GhNQv9.js.map → tabs-DAscspzh.js.map} +1 -1
  176. package/dist/test-support/index.js +61 -16
  177. package/dist/test-support/index.js.map +1 -1
  178. package/dist/{text-area-55_E1zv8.js → text-area-DF8-cDiy.js} +3 -3
  179. package/dist/{text-area-55_E1zv8.js.map → text-area-DF8-cDiy.js.map} +1 -1
  180. package/dist/{text-input-CK-yGbI5.js → text-input-CcIcYksE.js} +3 -3
  181. package/dist/{text-input-CK-yGbI5.js.map → text-input-CcIcYksE.js.map} +1 -1
  182. package/package.json +9 -5
  183. package/declarations/components/controls/-menu.d.ts.map +0 -1
  184. package/dist/app-header-B6Q7pbiY.js.map +0 -1
  185. package/dist/button-XdQyGTGA.js +0 -24
  186. package/dist/button-XdQyGTGA.js.map +0 -1
  187. package/dist/currency-input-8ef0Igfb.js.map +0 -1
  188. package/dist/helpers-DS9du02l.js.map +0 -1
  189. package/dist/icon-bLZqjTMP.js.map +0 -1
  190. package/dist/icon-button-7K-W_8jc.js +0 -37
  191. package/dist/icon-button-7K-W_8jc.js.map +0 -1
  192. package/dist/input-builder-DmcQbywA.js.map +0 -1
  193. package/dist/menu-CZKNGJ91.js.map +0 -1
  194. package/dist/nav-link-CGVtuqwC.js +0 -30
  195. package/dist/nav-link-CGVtuqwC.js.map +0 -1
  196. package/dist/password-input-BMp5uscw.js.map +0 -1
  197. package/dist/range-input-BiAPgpW8.js.map +0 -1
  198. package/dist/select-DxyaUFuy.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-a9GhNQv9.js","sources":["../src/components/controls/tabs.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash, uniqueId } from '@ember/helper';\nimport { guidFor } from '@ember/object/internals';\nimport { next } from '@ember/runloop';\n\nimport { ariaTablist, type Orientation, type TablistBehavior } from 'ember-aria-voyager';\nimport { modifier } from 'ember-modifier';\nimport Portal from 'ember-stargate/components/portal';\nimport PortalTarget from 'ember-stargate/components/portal-target';\nimport { TrackedArray } from 'tracked-built-ins';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { eq, not } from '../../-private/helpers.ts';\n\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\n\nexport const TabValue = Symbol('TabValue');\n\nconst attachValue = modifier((element, [value]) => {\n if (value) {\n // @ts-expect-error this is internal API\n element[TabValue] = value;\n }\n});\n\ninterface State {\n active: boolean;\n selected: boolean;\n}\n\ntype Item = string & {};\n\ntype TabSignature = {\n Element: HTMLDivElement;\n Args: {\n tablist: string;\n register: (tab: Tab) => void;\n unregister: (tab: Tab) => void;\n label?: string;\n value?: unknown;\n selection?: unknown;\n activeItem?: Item;\n };\n Blocks: {\n default?: [State];\n label?: [State];\n content?: [State];\n };\n};\n\nclass Tab extends Component<TabSignature> {\n constructor(owner: Owner, args: TabSignature['Args']) {\n super(owner, args);\n\n args.register(this);\n\n registerDestructor(this, () => {\n args.unregister(this);\n });\n }\n\n @cached\n get id() {\n return this.args.value ?? this.args.label ?? guidFor(this);\n }\n\n <template>\n {{#let\n (uniqueId) (hash active=(eq this.id @activeItem) selected=(eq this.id @selection))\n as |id state|\n }}\n <Portal @target={{@tablist}}>\n {{! template-lint-disable require-context-role }}\n <button\n type=\"button\"\n role=\"tab\"\n aria-controls={{id}}\n aria-selected={{if state.selected \"true\"}}\n id=\"{{id}}-label\"\n {{attachValue @value}}\n >\n <span>\n {{#if (has-block \"label\")}}\n {{yield state to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </span>\n </button>\n </Portal>\n\n <section\n id={{id}}\n role=\"tabpanel\"\n aria-labelledby=\"{{id}}-label\"\n local-class=\"content\"\n hidden={{not state.selected}}\n >\n {{#if (has-block \"content\")}}\n {{yield state to=\"content\"}}\n {{else}}\n {{yield state}}\n {{/if}}\n </section>\n {{/let}}\n </template>\n}\n\ninterface TabsSignature {\n Element: HTMLDivElement;\n Args: {\n disabled?: boolean;\n selection?: unknown;\n update?: (value: unknown) => void;\n behavior?: TablistBehavior;\n orientation?: Orientation;\n };\n Blocks: {\n default: [\n {\n Tab: WithBoundArgs<\n typeof Tab,\n 'selection' | 'activeItem' | 'tablist' | 'register' | 'unregister'\n >;\n }\n ];\n };\n}\n\nexport class Tabs extends Component<TabsSignature> {\n @tracked tabs: Tab[] = new TrackedArray();\n @tracked internalSelection?: Tab;\n @tracked activeItem?: Item;\n\n get items() {\n return this.tabs.map((t) => t.id);\n }\n\n get selection() {\n return this.args.selection ?? this.internalSelection?.id;\n }\n\n register = (tab: Tab) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.tabs.push(tab);\n });\n };\n\n unregister = (tab: Tab) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.tabs.splice(this.tabs.indexOf(tab), 1);\n });\n };\n\n select = (id: Item) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const tab = this.tabs.find((t) => t.id === id)!;\n\n this.internalSelection = tab;\n this.args.update?.(tab.args.value ?? tab.args.label ?? undefined);\n };\n\n activateItem = (id: Item) => {\n this.activeItem = id;\n };\n\n <template>\n <div class={{styles.tabs}} data-test-tabs>\n {{#let (uniqueId) as |tablistId|}}\n <PortalTarget\n @name={{tablistId}}\n @multiple={{true}}\n role=\"tablist\"\n {{ariaTablist\n items=this.items\n select=this.select\n selection=this.selection\n activateItem=this.activateItem\n disabled=@disabled\n behavior=@behavior\n orientation=@orientation\n }}\n />\n\n {{yield\n (hash\n Tab=(component\n Tab\n register=this.register\n unregister=this.unregister\n tablist=tablistId\n selection=this.selection\n activeItem=this.activeItem\n )\n )\n }}\n {{/let}}\n </div>\n </template>\n}\n"],"names":["TabValue","Symbol","attachValue","modifier","element","value","Tab","Component","constructor","owner","args","register","registerDestructor","unregister","id","label","guidFor","n","prototype","cached","setComponentTemplate","precompileTemplate","strictMode","scope","uniqueId","hash","eq","Portal","not","Tabs","g","tracked","TrackedArray","i","void 0","items","tabs","map","t","selection","internalSelection","tab","next","push","splice","indexOf","select","find","update","undefined","activateItem","activeItem","styles","PortalTarget","ariaTablist"],"mappings":"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"}
1
+ {"version":3,"file":"tabs-DAscspzh.js","sources":["../src/components/controls/tabs.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash, uniqueId } from '@ember/helper';\nimport { guidFor } from '@ember/object/internals';\nimport { next } from '@ember/runloop';\n\nimport { ariaTablist, type Orientation, type TablistBehavior } from 'ember-aria-voyager';\nimport { modifier } from 'ember-modifier';\nimport Portal from 'ember-stargate/components/portal';\nimport PortalTarget from 'ember-stargate/components/portal-target';\nimport { TrackedArray } from 'tracked-built-ins';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { eq, not } from '../../-private/helpers.ts';\n\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\n\nexport const TabValue = Symbol('TabValue');\n\nconst attachValue = modifier((element, [value]) => {\n if (value) {\n // @ts-expect-error this is internal API\n element[TabValue] = value;\n }\n});\n\ninterface State {\n active: boolean;\n selected: boolean;\n}\n\ntype Item = string & {};\n\ntype TabSignature = {\n Element: HTMLDivElement;\n Args: {\n tablist: string;\n register: (tab: Tab) => void;\n unregister: (tab: Tab) => void;\n label?: string;\n value?: unknown;\n selection?: unknown;\n activeItem?: Item;\n };\n Blocks: {\n default?: [State];\n label?: [State];\n content?: [State];\n };\n};\n\nclass Tab extends Component<TabSignature> {\n constructor(owner: Owner, args: TabSignature['Args']) {\n super(owner, args);\n\n args.register(this);\n\n registerDestructor(this, () => {\n args.unregister(this);\n });\n }\n\n @cached\n get id() {\n return this.args.value ?? this.args.label ?? guidFor(this);\n }\n\n <template>\n {{#let\n (uniqueId) (hash active=(eq this.id @activeItem) selected=(eq this.id @selection))\n as |id state|\n }}\n <Portal @target={{@tablist}}>\n {{! template-lint-disable require-context-role }}\n <button\n type=\"button\"\n role=\"tab\"\n aria-controls={{id}}\n aria-selected={{if state.selected \"true\"}}\n id=\"{{id}}-label\"\n {{attachValue @value}}\n >\n <span>\n {{#if (has-block \"label\")}}\n {{yield state to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </span>\n </button>\n </Portal>\n\n <section\n id={{id}}\n role=\"tabpanel\"\n aria-labelledby=\"{{id}}-label\"\n local-class=\"content\"\n hidden={{not state.selected}}\n >\n {{#if (has-block \"content\")}}\n {{yield state to=\"content\"}}\n {{else}}\n {{yield state}}\n {{/if}}\n </section>\n {{/let}}\n </template>\n}\n\ninterface TabsSignature {\n Element: HTMLDivElement;\n Args: {\n disabled?: boolean;\n selection?: unknown;\n update?: (value: unknown) => void;\n behavior?: TablistBehavior;\n orientation?: Orientation;\n };\n Blocks: {\n default: [\n {\n Tab: WithBoundArgs<\n typeof Tab,\n 'selection' | 'activeItem' | 'tablist' | 'register' | 'unregister'\n >;\n }\n ];\n };\n}\n\nexport class Tabs extends Component<TabsSignature> {\n @tracked tabs: Tab[] = new TrackedArray();\n @tracked internalSelection?: Tab;\n @tracked activeItem?: Item;\n\n get items() {\n return this.tabs.map((t) => t.id);\n }\n\n get selection() {\n return this.args.selection ?? this.internalSelection?.id;\n }\n\n register = (tab: Tab) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.tabs.push(tab);\n });\n };\n\n unregister = (tab: Tab) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.tabs.splice(this.tabs.indexOf(tab), 1);\n });\n };\n\n select = (id: Item) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const tab = this.tabs.find((t) => t.id === id)!;\n\n this.internalSelection = tab;\n this.args.update?.(tab.args.value ?? tab.args.label ?? undefined);\n };\n\n activateItem = (id: Item) => {\n this.activeItem = id;\n };\n\n <template>\n <div class={{styles.tabs}} data-test-tabs>\n {{#let (uniqueId) as |tablistId|}}\n <PortalTarget\n @name={{tablistId}}\n @multiple={{true}}\n role=\"tablist\"\n {{ariaTablist\n items=this.items\n select=this.select\n selection=this.selection\n activateItem=this.activateItem\n disabled=@disabled\n behavior=@behavior\n orientation=@orientation\n }}\n />\n\n {{yield\n (hash\n Tab=(component\n Tab\n register=this.register\n unregister=this.unregister\n tablist=tablistId\n selection=this.selection\n activeItem=this.activeItem\n )\n )\n }}\n {{/let}}\n </div>\n </template>\n}\n"],"names":["TabValue","Symbol","attachValue","modifier","element","value","Tab","Component","constructor","owner","args","register","registerDestructor","unregister","id","label","guidFor","n","prototype","cached","setComponentTemplate","precompileTemplate","strictMode","scope","uniqueId","hash","eq","Portal","not","Tabs","g","tracked","TrackedArray","i","void 0","items","tabs","map","t","selection","internalSelection","tab","next","push","splice","indexOf","select","find","update","undefined","activateItem","activeItem","styles","PortalTarget","ariaTablist"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { PageObject, selector, globalSelector } from 'fractal-page-object';
2
2
  import { click, select, triggerEvent } from '@ember/test-helpers';
3
3
  import { selectListbox, selectTab } from 'ember-aria-voyager/test-support';
4
- import { a as TabValue } from '../tabs-a9GhNQv9.js';
4
+ import { a as TabValue } from '../tabs-DAscspzh.js';
5
5
 
6
6
  class IconPageObject extends PageObject {
7
7
  static SELECTOR = '[data-test-icon]';
@@ -126,6 +126,16 @@ class AppHeaderPageObject extends PageObject {
126
126
  });
127
127
  }
128
128
 
129
+ class AvatarPageObject extends PageObject {
130
+ static SELECTOR = '[data-test-avatar]';
131
+ constructor(selector, parent, index) {
132
+ super(selector ?? AvatarPageObject.SELECTOR, parent, index);
133
+ }
134
+ $svg = selector('svg');
135
+ $img = selector('img');
136
+ $span = selector('span');
137
+ }
138
+
129
139
  class ButtonPageObject extends PageObject {
130
140
  static SELECTOR = '[data-test-button]';
131
141
  constructor(selector, parent, index) {
@@ -170,6 +180,9 @@ class InputPageObject extends PageObject {
170
180
  get control() {
171
181
  return this.element;
172
182
  }
183
+ get spacing() {
184
+ return this.element?.getAttribute('data-spacing');
185
+ }
173
186
  }
174
187
  class RangeInputPageObject extends InputPageObject {
175
188
  get orientation() {
@@ -183,6 +196,52 @@ const DateInputPageObject = InputPageObject;
183
196
  const EmailInputPageObject = InputPageObject;
184
197
  const PasswordInputPageObject = InputPageObject;
185
198
 
199
+ class SelectPageObject extends PageObject {
200
+ static SELECTOR = '[data-test-select]';
201
+ constructor(selector, parent, index) {
202
+ super(selector ?? SelectPageObject.SELECTOR, parent, index);
203
+ }
204
+ get spacing() {
205
+ return this.element?.getAttribute('data-spacing');
206
+ }
207
+ get control() {
208
+ return this.element;
209
+ }
210
+ $option = selector('option');
211
+ async select(options, keepPreviouslySelected) {
212
+ await select(this.element, options, keepPreviouslySelected);
213
+ }
214
+ }
215
+
216
+ class PaginationPageObject extends PageObject {
217
+ static SELECTOR = '[data-test-pagination]';
218
+ constructor(selector, parent, index) {
219
+ super(selector ?? PaginationPageObject.SELECTOR, parent, index);
220
+ }
221
+ $pageSize = selector('[part="page-size"]', class extends PageObject {
222
+ $select = selector(SelectPageObject.SELECTOR, SelectPageObject);
223
+ });
224
+ $page = selector('[part="page"]', class extends PageObject {
225
+ $select = selector(SelectPageObject.SELECTOR, SelectPageObject);
226
+ $input = selector(NumberInputPageObject.SELECTOR, NumberInputPageObject);
227
+ });
228
+ $items = selector('[part="items"]');
229
+ $prev = selector('[data-test-prev]', IconButtonPageObject);
230
+ $next = selector('[data-test-next]', IconButtonPageObject);
231
+ }
232
+
233
+ class DataTablePageObject extends PageObject {
234
+ static SELECTOR = '[data-test-data-table]';
235
+ constructor(selector, parent, index) {
236
+ super(selector ?? DataTablePageObject.SELECTOR, parent, index);
237
+ }
238
+ $col = selector('thead th');
239
+ $rows = selector('tbody tr');
240
+ $paginationFooter = selector('[data-pagination]', class extends PageObject {
241
+ $pagination = selector(PaginationPageObject.SELECTOR, PaginationPageObject);
242
+ });
243
+ }
244
+
186
245
  class InputBuilderPageObject extends PageObject {
187
246
  static SELECTOR = '[data-test-input-builder]';
188
247
  constructor(selector, parent, index) {
@@ -212,20 +271,6 @@ class ListPageObject extends PageObject {
212
271
  }
213
272
  }
214
273
 
215
- class SelectPageObject extends PageObject {
216
- static SELECTOR = '[data-test-select]';
217
- constructor(selector, parent, index) {
218
- super(selector ?? SelectPageObject.SELECTOR, parent, index);
219
- }
220
- get control() {
221
- return this.element;
222
- }
223
- $option = selector('option');
224
- async select(options, keepPreviouslySelected) {
225
- await select(this.element, options, keepPreviouslySelected);
226
- }
227
- }
228
-
229
274
  class TextAreaPageObject extends PageObject {
230
275
  static SELECTOR = '[data-test-textarea]';
231
276
  constructor(selector, parent, index) {
@@ -427,5 +472,5 @@ class TabsPageObject extends PageObject {
427
472
  }
428
473
  }
429
474
 
430
- export { AppHeaderPageObject, ButtonPageObject, CheckboxPageObject, CurrencyInputPageObject, DateInputPageObject, EmailInputPageObject, FormPageObject, IconButtonPageObject, IconPageObject, ListPageObject, MenuPageObject, NavigationListPageObject, NumberInputPageObject, PagePageObject, PasswordInputPageObject, PhoneInputPageObject, PillButtonPageObject, PopoverPageObject, RadioPageObject, RangeInputPageObject, SectionPageObject, SectionedPagePageObject, SelectPageObject, TabsPageObject, TextAreaPageObject, TextInputPageObject };
475
+ 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 };
431
476
  //# 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/button.ts","../../src/test-support/page-objects/choice.ts","../../src/test-support/page-objects/input.ts","../../src/test-support/page-objects/input-builder.ts","../../src/test-support/page-objects/list.ts","../../src/test-support/page-objects/select.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 { 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\nexport class RangeInputPageObject extends InputPageObject {\n get orientation(): string | undefined {\n return this.control.dataset.orientation;\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 { 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 { 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 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 } 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","ButtonPageObject","$before","$label","$after","ChoicePageObject","RadioPageObject","CheckboxPageObject","InputPageObject","RangeInputPageObject","orientation","dataset","NumberInputPageObject","TextInputPageObject","PhoneInputPageObject","DateInputPageObject","EmailInputPageObject","PasswordInputPageObject","InputBuilderPageObject","$prefix","$affix","$suffix","$input","CurrencyInputPageObject","ListPageObject","$option","select","options","selectListbox","SelectPageObject","keepPreviouslySelected","TextAreaPageObject","OptionPageObject","$description","$control","ChoicesPageObject","$options","option","value","find","FieldError","type","FieldRule","invalid","FieldPageObject","$inputBuilder","$select","$textArea","$checkbox","$list","$choices","$errors","$rules","name","FormPageObject","$submit","$reset","$fields","field","submit","triggerEvent","reset","NavLinkPageObject","NavigationListPageObject","$items","$titles","PagePageObject","$header","$title","$content","SectionedPagePageObject","PillButtonPageObject","PopoverPageObject","SectionPageObject","TabsPageObject","$tablist","$tab","$tabpanel","tab","t","TabValue","selectTab"],"mappings":"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"}
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 $span = sel<HTMLElement>('span');\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","$span","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":"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"}
@@ -1,11 +1,11 @@
1
1
  import { on } from '@ember/modifier';
2
2
  import styles from '@hokulea/core/controls.module.css';
3
- import { p as pick } from './helpers-DS9du02l.js';
3
+ import { p as pick } from './helpers-D4So5-uK.js';
4
4
  import { precompileTemplate } from '@ember/template-compilation';
5
5
  import { setComponentTemplate } from '@ember/component';
6
6
  import templateOnly from '@ember/component/template-only';
7
7
 
8
- const TextArea = setComponentTemplate(precompileTemplate("\n <textarea class={{styles.textarea}} type=\"text\" disabled={{@disabled}} data-test-textarea {{on \"input\" (pick \"target.value\" @update) capture=true}} ...attributes>{{@value}}</textarea>\n", {
8
+ const TextArea = setComponentTemplate(precompileTemplate("\n <textarea class={{styles.textarea}} type=\"text\" disabled={{@disabled}} data-spacing={{@spacing}} data-test-textarea {{on \"input\" (pick \"target.value\" @update) capture=true}} ...attributes>{{@value}}</textarea>\n", {
9
9
  strictMode: true,
10
10
  scope: () => ({
11
11
  styles,
@@ -15,4 +15,4 @@ const TextArea = setComponentTemplate(precompileTemplate("\n <textarea class={{
15
15
  }), templateOnly());
16
16
 
17
17
  export { TextArea as T };
18
- //# sourceMappingURL=text-area-55_E1zv8.js.map
18
+ //# sourceMappingURL=text-area-DF8-cDiy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-area-55_E1zv8.js","sources":["../src/components/controls/text-area.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../../-private/helpers.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface TextAreaSignature {\n Element: HTMLTextAreaElement;\n Args: InputArgs<string>;\n}\n\nexport const TextArea: TOC<TextAreaSignature> = <template>\n <textarea\n class={{styles.textarea}}\n type=\"text\"\n disabled={{@disabled}}\n data-test-textarea\n {{on \"input\" (pick \"target.value\" @update) capture=true}}\n ...attributes\n >{{@value}}</textarea>\n</template>;\n"],"names":["TextArea","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;MAcaA,QAAc,GAAAC,oBAAA,CAAqBC,kBAAA,CAAA,qMAAA,EAShD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"text-area-DF8-cDiy.js","sources":["../src/components/controls/text-area.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../../-private/helpers.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface TextAreaSignature {\n Element: HTMLTextAreaElement;\n Args: InputArgs<string>;\n}\n\nexport const TextArea: TOC<TextAreaSignature> = <template>\n <textarea\n class={{styles.textarea}}\n type=\"text\"\n disabled={{@disabled}}\n data-spacing={{@spacing}}\n data-test-textarea\n {{on \"input\" (pick \"target.value\" @update) capture=true}}\n ...attributes\n >{{@value}}</textarea>\n</template>;\n"],"names":["TextArea","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;MAcaA,QAAc,GAAAC,oBAAA,CAAqBC,kBAAA,CAAA,+NAAA,EAUhD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1,11 +1,11 @@
1
1
  import { on } from '@ember/modifier';
2
2
  import styles from '@hokulea/core/controls.module.css';
3
- import { p as pick } from './helpers-DS9du02l.js';
3
+ import { p as pick } from './helpers-D4So5-uK.js';
4
4
  import { precompileTemplate } from '@ember/template-compilation';
5
5
  import { setComponentTemplate } from '@ember/component';
6
6
  import templateOnly from '@ember/component/template-only';
7
7
 
8
- const TextInput = setComponentTemplate(precompileTemplate("\n <input class={{styles.input}} type=\"text\" value={{@value}} disabled={{@disabled}} data-test-input {{on \"input\" (pick \"target.value\" @update) capture=true}} ...attributes />\n", {
8
+ const TextInput = setComponentTemplate(precompileTemplate("\n <input class={{styles.input}} type=\"text\" value={{@value}} disabled={{@disabled}} data-spacing={{@spacing}} data-test-input {{on \"input\" (pick \"target.value\" @update) capture=true}} ...attributes />\n", {
9
9
  strictMode: true,
10
10
  scope: () => ({
11
11
  styles,
@@ -15,4 +15,4 @@ const TextInput = setComponentTemplate(precompileTemplate("\n <input class={{st
15
15
  }), templateOnly());
16
16
 
17
17
  export { TextInput as T };
18
- //# sourceMappingURL=text-input-CK-yGbI5.js.map
18
+ //# sourceMappingURL=text-input-CcIcYksE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text-input-CK-yGbI5.js","sources":["../src/components/controls/text-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../../-private/helpers.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface TextInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<string>;\n}\n\nexport const TextInput: TOC<TextInputSignature> = <template>\n <input\n class={{styles.input}}\n type=\"text\"\n value={{@value}}\n disabled={{@disabled}}\n data-test-input\n {{on \"input\" (pick \"target.value\" @update) capture=true}}\n ...attributes\n />\n</template>;\n"],"names":["TextInput","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;MAcaA,SAAe,GAAAC,oBAAA,CAAsBC,kBAAA,CAAA,0LAAA,EAUlD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
1
+ {"version":3,"file":"text-input-CcIcYksE.js","sources":["../src/components/controls/text-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../../-private/helpers.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface TextInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<string>;\n}\n\nexport const TextInput: TOC<TextInputSignature> = <template>\n <input\n class={{styles.input}}\n type=\"text\"\n value={{@value}}\n disabled={{@disabled}}\n data-spacing={{@spacing}}\n data-test-input\n {{on \"input\" (pick \"target.value\" @update) capture=true}}\n ...attributes\n />\n</template>;\n"],"names":["TextInput","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;MAcaA,SAAe,GAAAC,oBAAA,CAAsBC,kBAAA,CAAA,oNAAA,EAWlD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hokulea/ember",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "Hokulea Design System for Ember",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -51,7 +51,7 @@
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.6.0"
54
+ "@hokulea/core": "0.7.0"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@ember/test-helpers": "^5.0.0",
@@ -124,7 +124,7 @@
124
124
  "prettier": "^3.6.2",
125
125
  "qunit": "^2.24.1",
126
126
  "qunit-dom": "^3.4.0",
127
- "rollup": "4.49.0",
127
+ "rollup": "4.50.0",
128
128
  "sinon": "^21.0.0",
129
129
  "storybook": "^9.1.3",
130
130
  "stylelint": "16.23.1",
@@ -134,9 +134,9 @@
134
134
  "unplugin-icons": "^22.2.0",
135
135
  "valibot": "^1.1.0",
136
136
  "vite": "^7.1.3",
137
+ "@hokulea/core": "0.7.0",
137
138
  "@hokulea/theme-moana": "0.2.0",
138
- "@hokulea/tokens": "0.1.1",
139
- "@hokulea/core": "0.6.0"
139
+ "@hokulea/tokens": "0.1.2"
140
140
  },
141
141
  "ember": {
142
142
  "edition": "octane"
@@ -150,11 +150,13 @@
150
150
  "main": "addon-main.cjs",
151
151
  "app-js": {
152
152
  "./components/app-header.js": "./dist/_app_/components/app-header.js",
153
+ "./components/avatar.js": "./dist/_app_/components/avatar.js",
153
154
  "./components/box.js": "./dist/_app_/components/box.js",
154
155
  "./components/button.js": "./dist/_app_/components/button.js",
155
156
  "./components/card.js": "./dist/_app_/components/card.js",
156
157
  "./components/checkbox.js": "./dist/_app_/components/checkbox.js",
157
158
  "./components/currency-input.js": "./dist/_app_/components/currency-input.js",
159
+ "./components/data-table.js": "./dist/_app_/components/data-table.js",
158
160
  "./components/date-input.js": "./dist/_app_/components/date-input.js",
159
161
  "./components/email-input.js": "./dist/_app_/components/email-input.js",
160
162
  "./components/focus-page.js": "./dist/_app_/components/focus-page.js",
@@ -162,11 +164,13 @@
162
164
  "./components/icon-button.js": "./dist/_app_/components/icon-button.js",
163
165
  "./components/icon.js": "./dist/_app_/components/icon.js",
164
166
  "./components/input-builder.js": "./dist/_app_/components/input-builder.js",
167
+ "./components/link.js": "./dist/_app_/components/link.js",
165
168
  "./components/list.js": "./dist/_app_/components/list.js",
166
169
  "./components/menu.js": "./dist/_app_/components/menu.js",
167
170
  "./components/navigation-list.js": "./dist/_app_/components/navigation-list.js",
168
171
  "./components/number-input.js": "./dist/_app_/components/number-input.js",
169
172
  "./components/page.js": "./dist/_app_/components/page.js",
173
+ "./components/pagination.js": "./dist/_app_/components/pagination.js",
170
174
  "./components/password-input.js": "./dist/_app_/components/password-input.js",
171
175
  "./components/phone-input.js": "./dist/_app_/components/phone-input.js",
172
176
  "./components/popover.js": "./dist/_app_/components/popover.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"-menu.d.ts","sourceRoot":"","sources":["../../../src/components/controls/-menu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAEtF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAE5D,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,KAAK,CAAC,EAAE,EAAE,CAAC;IACX,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;CACpB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-header-B6Q7pbiY.js","sources":["../src/components/navigation/app-header.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { hash, uniqueId } from '@ember/helper';\n\nimport { type CommandAction, CommandElement } from 'ember-command';\nimport { keepLatestTask, timeout } from 'ember-concurrency';\nimport { modifier } from 'ember-modifier';\n\nimport styles from '@hokulea/core/navigation.module.css';\n\nimport { and, not, or } from '../../-private/helpers.ts';\nimport { popover } from '../../helpers/popover.ts';\nimport { IconButton } from '../actions/icon-button.gts';\nimport { Menu } from '../controls/menu.gts';\nimport { NavLink } from './nav-link.gts';\n\nimport type { MenuItemSignature } from '../controls/-menu';\nimport type { TOC } from '@ember/component/template-only';\nimport type { Placement } from '@floating-ui/dom';\nimport type { ComponentLike } from '@glint/template';\nimport type { Link } from 'ember-link';\n\nconst asLink = (value: unknown): Link => {\n return value as Link;\n};\n\ninterface NavItemSignature extends MenuItemSignature {\n Args: MenuItemSignature['Args'] & {\n href?: string;\n position?: Placement;\n };\n}\n\nconst NavItem: TOC<NavItemSignature> = <template>\n {{#if (has-block)}}\n <NavLink @push={{asLink @push}} @href={{@href}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n {{#let (popover position=(if @position @position \"bottom-start\")) as |p|}}\n <button type=\"button\" aria-haspopup=\"menu\" part=\"item\" {{p.trigger}}>\n <span>{{yield to=\"label\"}}</span>\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{/if}}\n</template>;\n\nconst PopoverNavItem: TOC<NavItemSignature> = <template>\n {{#if (has-block)}}\n <NavLink @push={{asLink @push}} @href={{@href}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n <details>\n <summary part=\"item\">{{yield to=\"label\"}}</summary>\n\n <div>\n {{yield (hash Item=PopoverNavItem) to=\"menu\"}}\n </div>\n </details>\n {{/if}}\n</template>;\n\nconst CloseIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M205.66 194.34a8 8 0 0 1-11.32 11.32L128 139.31l-66.34 66.35a8 8 0 0 1-11.32-11.32L116.69 128L50.34 61.66a8 8 0 0 1 11.32-11.32L128 116.69l66.34-66.35a8 8 0 0 1 11.32 11.32L139.31 128Z\"/></svg>';\nconst ListIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M224 128a8 8 0 0 1-8 8H40a8 8 0 0 1 0-16h176a8 8 0 0 1 8 8M40 72h176a8 8 0 0 0 0-16H40a8 8 0 0 0 0 16m176 112H40a8 8 0 0 0 0 16h176a8 8 0 0 0 0-16\"/></svg>';\n\ninterface AppHeaderSignature {\n Element: HTMLElement;\n Args: {\n /**\n * Position of the navbar\n *\n * @default start\n */\n position?: 'start' | 'center' | 'end';\n\n home?: CommandAction;\n };\n Blocks: {\n brand?: [];\n nav?: [{ Item: typeof NavItem }];\n aux?: [{ Item: ComponentLike<typeof NavItem> }];\n };\n}\n\nexport class AppHeader extends Component<AppHeaderSignature> {\n @tracked topNavShown = true;\n @tracked sensing = false;\n\n detectOverflow = keepLatestTask(async (element: HTMLElement) => {\n await timeout(30);\n\n this.sensing = true;\n\n // wait till sensing is flushed to the browser and made elements visible\n await timeout(0);\n\n const relevantChildren = [...element.children].filter(\n (elem) => elem.tagName.toLowerCase() === 'nav' || elem.getAttribute('part') === 'aux'\n );\n\n if (relevantChildren.length === 0) {\n this.sensing = false;\n\n return;\n }\n\n let headerWidth = [...element.children]\n .filter((elem) => elem.getAttribute('part') !== 'menu')\n .map((e) => Math.floor(e.scrollWidth))\n .reduce((sum, elemWidth) => sum + elemWidth, 0);\n\n // + padding\n headerWidth +=\n Number.parseInt(getComputedStyle(element).getPropertyValue('padding-inline'), 10) * 2;\n\n // + gap\n headerWidth +=\n Number.parseInt(getComputedStyle(element).getPropertyValue('gap'), 10) *\n (element.childElementCount - 1);\n\n this.topNavShown = element.clientWidth >= headerWidth;\n this.sensing = false;\n });\n\n flipflop = modifier((element: HTMLElement) => {\n const sensor = () => this.detectOverflow.perform(element);\n\n void sensor();\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n window.addEventListener('resize', sensor);\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n window.removeEventListener('resize', sensor);\n };\n });\n\n closeWhenLink = modifier((element: HTMLElement) => {\n const checkForClose = (event: Event) => {\n const hitALink = event\n .composedPath()\n .some(\n (target: EventTarget) =>\n (target as HTMLElement | null)?.tagName &&\n ['a', 'button'].includes((target as HTMLElement).tagName.toLowerCase()) &&\n !(target as HTMLElement).getAttribute('aria-haspopup')\n );\n\n if (hitALink) {\n element.hidePopover();\n }\n };\n\n element.addEventListener('click', checkForClose);\n\n return () => {\n element.removeEventListener('click', checkForClose);\n };\n });\n\n <template>\n {{#let (uniqueId) as |brandId|}}\n <header class={{styles.appHeader}} data-test-app-header ...attributes>\n <div class={{styles.appHeaderContent}} data-sensing={{this.sensing}} {{this.flipflop}}>\n {{#if (has-block \"brand\")}}\n <CommandElement @command={{@home}} part=\"brand\" id={{brandId}}>\n {{yield to=\"brand\"}}\n </CommandElement>\n {{/if}}\n\n {{#if (or this.topNavShown this.sensing)}}\n <nav data-position={{if @position @position}} aria-labelledby={{brandId}}>\n {{yield (hash Item=NavItem) to=\"nav\"}}\n </nav>\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=NavItem) to=\"aux\"}}\n </span>\n {{/if}}\n {{/if}}\n\n {{#if (not this.topNavShown)}}\n <span part=\"menu\">\n {{#let (popover) as |p|}}\n <IconButton\n @importance=\"plain\"\n @icon={{if p.opened CloseIcon ListIcon}}\n {{p.trigger}}\n data-test-toggle\n @label=\"toggle\"\n />\n\n <div popover {{p.target}} {{this.closeWhenLink}}>\n <div data-menu-header>\n {{#if (has-block \"brand\")}}\n <span part=\"brand\">\n {{yield to=\"brand\"}}\n </span>\n {{/if}}\n </div>\n\n <div data-menu-content>\n {{! template-lint-disable no-duplicate-landmark-elements }}\n <nav aria-labelledby={{brandId}}>\n {{yield (hash Item=PopoverNavItem) to=\"nav\"}}\n </nav>\n {{! template-lint-enable no-duplicate-landmark-elements }}\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=(component NavItem position=\"top-start\")) to=\"aux\"}}\n </span>\n {{/if}}\n </div>\n </div>\n {{/let}}\n </span>\n {{/if}}\n </div>\n </header>\n {{/let}}\n </template>\n}\n"],"names":["asLink","value","NavItem","setComponentTemplate","precompileTemplate","strictMode","scope","NavLink","and","popover","Menu","templateOnly","PopoverNavItem","hash","CloseIcon","ListIcon","AppHeader","Component","g","prototype","tracked","i","void 0","detectOverflow","_buildTask","context","generator","element","timeout","sensing","relevantChildren","children","filter","elem","tagName","toLowerCase","getAttribute","length","headerWidth","map","e","Math","floor","scrollWidth","reduce","sum","elemWidth","Number","parseInt","getComputedStyle","getPropertyValue","childElementCount","topNavShown","clientWidth","flipflop","modifier","sensor","perform","window","addEventListener","removeEventListener","closeWhenLink","checkForClose","event","hitALink","composedPath","some","target","includes","hidePopover","uniqueId","styles","CommandElement","or","not","IconButton"],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { CommandElement } from 'ember-command';
2
- import { element } from 'ember-element-helper';
3
- import styles from '@hokulea/core/actions.module.css';
4
- import { n as not } from './helpers-DS9du02l.js';
5
- import { d as disabled } from './disabled-B_FQ0Z51.js';
6
- import { i as isLink } from './-button-KUaJCQaB.js';
7
- import { precompileTemplate } from '@ember/template-compilation';
8
- import { setComponentTemplate } from '@ember/component';
9
- import templateOnly from '@ember/component/template-only';
10
-
11
- const Button = setComponentTemplate(precompileTemplate("\n <CommandElement @element={{element \"button\"}} @command={{@push}} class=\"{{styles.button}}\" type={{if (not (isLink @push)) \"button\"}} data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} {{disabled when=(if @disabled @disabled false)}} data-test-button ...attributes>\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n </CommandElement>\n", {
12
- strictMode: true,
13
- scope: () => ({
14
- CommandElement,
15
- element,
16
- styles,
17
- not,
18
- isLink,
19
- disabled
20
- })
21
- }), templateOnly());
22
-
23
- export { Button as B };
24
- //# sourceMappingURL=button-XdQyGTGA.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-XdQyGTGA.js","sources":["../src/components/actions/button.gts"],"sourcesContent":["import { CommandElement } from 'ember-command';\nimport { element } from 'ember-element-helper';\n\nimport styles from '@hokulea/core/actions.module.css';\n\nimport { not } from '../../-private/helpers.ts';\nimport disabled from '../../-private/modifiers/disabled.ts';\nimport { isLink } from './-button.ts';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { Importance, Importances, Intent, Intents, Spacing, Spacings } from '@hokulea/tokens';\nimport type { CommandAction } from 'ember-command';\n\nexport interface ButtonSignature {\n Element: HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement;\n Args: {\n push?: CommandAction;\n intent?: Intent | Intents;\n importance?: Importance | Importances;\n spacing?: Spacing | Spacings;\n disabled?: boolean;\n };\n Blocks: {\n /** The label for the button */\n default: [];\n\n /** The label for the button */\n label: [];\n\n /** A slot in front of the label */\n before: [];\n\n /** A slot after the label */\n after: [];\n };\n}\n\nexport const Button: TOC<ButtonSignature> = <template>\n <CommandElement\n @element={{element \"button\"}}\n @command={{@push}}\n class=\"{{styles.button}}\"\n type={{if (not (isLink @push)) \"button\"}}\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-button\n ...attributes\n >\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n </CommandElement>\n</template>;\n"],"names":["Button","setComponentTemplate","precompileTemplate","strictMode","scope","CommandElement","element","styles","not","isLink","disabled","templateOnly"],"mappings":";;;;;;;;;;MAqCaA,MAAY,GAAAC,oBAAA,CAAmBC,kBAAA,CAAA,y1BAAA,EAmC5C;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,cAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,GAAA;IAAAC,MAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"currency-input-8ef0Igfb.js","sources":["../src/components/controls/currency-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../../-private/helpers.ts';\nimport { pickAsNumber } from './-input.ts';\nimport { InputBuilder } from './input-builder.gts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface CurrencyInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<number>;\n}\n\nexport const CurrencyInput: TOC<CurrencyInputSignature> = <template>\n <InputBuilder @disabled={{@disabled}} as |b|>\n <input\n class=\"{{styles.input}} {{styles.currency}}\"\n type=\"text\"\n inputmode=\"decimal\"\n value={{@value}}\n disabled={{@disabled}}\n data-test-input\n {{on \"input\" (pick \"target.value\" (pickAsNumber @update)) capture=true}}\n ...attributes\n />\n <b.Affix>€</b.Affix>\n </InputBuilder>\n</template>;\n"],"names":["CurrencyInput","setComponentTemplate","precompileTemplate","strictMode","scope","InputBuilder","styles","on","pick","pickAsNumber","templateOnly"],"mappings":";;;;;;;;;MAgBaA,aAAmB,GAAAC,oBAAA,CAA0BC,kBAAA,CAAA,4VAAA,EAc1D;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,YAAA;IAAAC,MAAA;IAAAC,EAAA;IAAAC,IAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers-DS9du02l.js","sources":["../src/-private/helpers.ts"],"sourcesContent":["import { get } from '@ember/object';\n\n/* Shamelessly stolen from: https://github.com/DockYard/ember-composable-helpers/blob/master/addon/helpers/pick.js */\nfunction pick<V = unknown>(path: string, action?: (value: V) => void) {\n return function (event: object): V | void {\n const value = get(event, path) as V;\n\n if (!action) {\n return value;\n }\n\n action(value);\n };\n}\n\n// eslint-disable-next-line unicorn/no-array-reduce, @typescript-eslint/prefer-nullish-coalescing\nconst or = (...conditions: unknown[]) => conditions.reduce((a, b) => a || b, false);\n\nconst and = (a: unknown, b: unknown) => a && b;\n\nconst eq = (a: unknown, b: unknown) => a === b;\n\nconst not = (a: boolean) => !a;\n\nconst notEq = (a: unknown, b: unknown) => a !== b;\n\nconst asString = (value: unknown): string => {\n return value as string;\n};\n\nconst asNumber = (value: unknown): number => {\n return value as number;\n};\n\nconst asBoolean = (value: unknown): boolean => {\n return value as boolean;\n};\n\nexport { and, asBoolean, asNumber, asString, eq, not, notEq, or, pick };\n"],"names":["pick","path","action","event","value","get","or","conditions","reduce","a","b","and","eq","not","asString","asNumber","asBoolean"],"mappings":";;AAEA;AACA,SAASA,IAAIA,CAAcC,IAAY,EAAEC,MAA2B,EAAE;EACpE,OAAO,UAAUC,KAAa,EAAY;AACxC,IAAA,MAAMC,KAAK,GAAGC,GAAG,CAACF,KAAK,EAAEF,IAAI,CAAM;IAEnC,IAAI,CAACC,MAAM,EAAE;AACX,MAAA,OAAOE,KAAK;AACd,IAAA;IAEAF,MAAM,CAACE,KAAK,CAAC;EACf,CAAC;AACH;;AAEA;AACA,MAAME,EAAE,GAAGA,CAAC,GAAGC,UAAqB,KAAKA,UAAU,CAACC,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,IAAIC,CAAC,EAAE,KAAK;AAElF,MAAMC,GAAG,GAAGA,CAACF,CAAU,EAAEC,CAAU,KAAKD,CAAC,IAAIC;AAE7C,MAAME,EAAE,GAAGA,CAACH,CAAU,EAAEC,CAAU,KAAKD,CAAC,KAAKC;AAE7C,MAAMG,GAAG,GAAIJ,CAAU,IAAK,CAACA;AAI7B,MAAMK,QAAQ,GAAIV,KAAc,IAAa;AAC3C,EAAA,OAAOA,KAAK;AACd;AAEA,MAAMW,QAAQ,GAAIX,KAAc,IAAa;AAC3C,EAAA,OAAOA,KAAK;AACd;AAEA,MAAMY,SAAS,GAAIZ,KAAc,IAAc;AAC7C,EAAA,OAAOA,KAAK;AACd;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-bLZqjTMP.js","sources":["../src/components/graphics/icon.gts"],"sourcesContent":["import { htmlSafe } from '@ember/template';\n\nimport styles from '@hokulea/core/icons.module.css';\n\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface IconSignature {\n Element: HTMLSpanElement;\n Args: {\n /**\n * A string containing a `<svg>` element.\n * Make sure to use `currentColor` to comply with the styling\n */\n icon: string;\n };\n}\n\nexport const Icon: TOC<IconSignature> = <template>\n <span class={{styles.icon}} data-test-icon ...attributes>\n {{htmlSafe @icon}}\n </span>\n</template>;\n"],"names":["Icon","setComponentTemplate","precompileTemplate","strictMode","scope","styles","htmlSafe","templateOnly"],"mappings":";;;;;;MAiBaA,IAAU,GAAAC,oBAAA,CAAiBC,kBAAA,CAAA,oGAAA,EAIxC;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}