@hokulea/ember 0.1.0 → 0.3.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 (33) hide show
  1. package/declarations/components/-button.d.ts +4 -0
  2. package/declarations/components/-button.d.ts.map +1 -0
  3. package/declarations/components/app-header.d.ts +1 -0
  4. package/declarations/components/app-header.d.ts.map +1 -1
  5. package/declarations/components/button.d.ts.map +1 -1
  6. package/declarations/components/icon-button.d.ts.map +1 -1
  7. package/declarations/components/icon.d.ts.map +1 -1
  8. package/declarations/components/menu.d.ts +4 -0
  9. package/declarations/components/menu.d.ts.map +1 -1
  10. package/declarations/helpers/popover.d.ts +8 -3
  11. package/declarations/helpers/popover.d.ts.map +1 -1
  12. package/declarations/test-support/page-objects/app-header.d.ts +2 -27
  13. package/declarations/test-support/page-objects/app-header.d.ts.map +1 -1
  14. package/dist/-button-CJL1yb2d.js +32 -0
  15. package/dist/-button-CJL1yb2d.js.map +1 -0
  16. package/dist/components/app-header.js +11 -4
  17. package/dist/components/app-header.js.map +1 -1
  18. package/dist/components/button.js +1 -26
  19. package/dist/components/button.js.map +1 -1
  20. package/dist/components/form.js.map +1 -1
  21. package/dist/components/icon-button.js +5 -1
  22. package/dist/components/icon-button.js.map +1 -1
  23. package/dist/components/icon.js +1 -1
  24. package/dist/components/icon.js.map +1 -1
  25. package/dist/components/list.js.map +1 -1
  26. package/dist/components/menu.js +16 -1
  27. package/dist/components/menu.js.map +1 -1
  28. package/dist/components/page.js.map +1 -1
  29. package/dist/helpers/popover.js +29 -14
  30. package/dist/helpers/popover.js.map +1 -1
  31. package/dist/test-support/index.js +24 -26
  32. package/dist/test-support/index.js.map +1 -1
  33. package/package.json +42 -41
@@ -1,8 +1,10 @@
1
1
  import Component from '@glimmer/component';
2
2
  import { assert } from '@ember/debug';
3
3
  import CommandElement from 'ember-command/components/command-element';
4
+ import { element } from 'ember-element-helper';
4
5
  import styles from '@hokulea/core/actions.module.css';
5
6
  import { d as disabled } from '../disabled-B_FQ0Z51.js';
7
+ import { i as isLink } from '../-button-CJL1yb2d.js';
6
8
  import Icon from './icon.js';
7
9
  import { precompileTemplate } from '@ember/template-compilation';
8
10
  import { setComponentTemplate } from '@ember/component';
@@ -13,10 +15,12 @@ class IconButton extends Component {
13
15
  return this.args.label;
14
16
  }
15
17
  static {
16
- setComponentTemplate(precompileTemplate("\n <CommandElement @command={{@push}} class=\"{{styles.iconButton}}\" data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} aria-label={{this.label}} {{disabled when=(if @disabled @disabled false)}} data-test-icon-button ...attributes>\n <Icon @icon={{@icon}} @style={{@iconStyle}} data-test-icon-button=\"icon\" />\n </CommandElement>\n ", {
18
+ setComponentTemplate(precompileTemplate("\n <CommandElement @element={{element \"button\"}} @command={{@push}} class=\"{{styles.iconButton}}\" type={{if (isLink @push) \"button\"}} data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} aria-label={{this.label}} {{disabled when=(if @disabled @disabled false)}} data-test-icon-button ...attributes>\n <Icon @icon={{@icon}} @style={{@iconStyle}} data-test-icon-button=\"icon\" />\n </CommandElement>\n ", {
17
19
  scope: () => ({
18
20
  CommandElement,
21
+ element,
19
22
  styles,
23
+ isLink,
20
24
  disabled,
21
25
  Icon
22
26
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.js","sources":["../../src/components/icon-button.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport CommandElement from 'ember-command/components/command-element';\nimport styles from '@hokulea/core/actions.module.css';\nimport disabled from '../-private/modifiers/disabled';\nimport Icon from './icon';\nimport type { Importance, Importances, Intent, Intents, Spacing, Spacings } from '@hokulea/tokens';\nimport type { CommandAction } from 'ember-command';\nexport interface IconButtonSignature {\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 label: string;\n /** The name of the icon */ icon: string;\n /**\n * @defaultValue regular\n */ iconStyle?: 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone';\n };\n Blocks: {\n default: [];\n };\n}\nexport default class IconButton extends Component<IconButtonSignature> {\n get label() {\n assert('Please provide a `@label` to `<IconButton>` for accessibility reasons.', this.args.label !== undefined);\n return this.args.label;\n }\n static{\n template(`\n <CommandElement\n @command={{@push}}\n class=\"{{styles.iconButton}}\"\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n aria-label={{this.label}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-icon-button\n ...attributes\n >\n <Icon @icon={{@icon}} @style={{@iconStyle}} data-test-icon-button=\"icon\" />\n </CommandElement>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9pY29uLWJ1dHRvbi5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGVtYmVyL2RlYnVnJztcblxuaW1wb3J0IENvbW1hbmRFbGVtZW50IGZyb20gJ2VtYmVyLWNvbW1hbmQvY29tcG9uZW50cy9jb21tYW5kLWVsZW1lbnQnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvYWN0aW9ucy5tb2R1bGUuY3NzJztcblxuaW1wb3J0IGRpc2FibGVkIGZyb20gJy4uLy1wcml2YXRlL21vZGlmaWVycy9kaXNhYmxlZCc7XG5pbXBvcnQgSWNvbiBmcm9tICcuL2ljb24nO1xuXG5pbXBvcnQgdHlwZSB7IEltcG9ydGFuY2UsIEltcG9ydGFuY2VzLCBJbnRlbnQsIEludGVudHMsIFNwYWNpbmcsIFNwYWNpbmdzIH0gZnJvbSAnQGhva3VsZWEvdG9rZW5zJztcbmltcG9ydCB0eXBlIHsgQ29tbWFuZEFjdGlvbiB9IGZyb20gJ2VtYmVyLWNvbW1hbmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEljb25CdXR0b25TaWduYXR1cmUge1xuICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IEhUTUxBbmNob3JFbGVtZW50IHwgSFRNTFNwYW5FbGVtZW50O1xuICBBcmdzOiB7XG4gICAgcHVzaD86IENvbW1hbmRBY3Rpb247XG4gICAgaW50ZW50PzogSW50ZW50IHwgSW50ZW50cztcbiAgICBpbXBvcnRhbmNlPzogSW1wb3J0YW5jZSB8IEltcG9ydGFuY2VzO1xuICAgIHNwYWNpbmc_OiBTcGFjaW5nIHwgU3BhY2luZ3M7XG4gICAgZGlzYWJsZWQ_OiBib29sZWFuO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBpY29uICovXG4gICAgaWNvbjogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgcmVndWxhclxuICAgICAqL1xuICAgIGljb25TdHlsZT86ICd0aGluJyB8ICdsaWdodCcgfCAncmVndWxhcicgfCAnYm9sZCcgfCAnZmlsbCcgfCAnZHVvdG9uZSc7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtdO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJY29uQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50PEljb25CdXR0b25TaWduYXR1cmU-IHtcbiAgZ2V0IGxhYmVsKCkge1xuICAgIGFzc2VydChcbiAgICAgICdQbGVhc2UgcHJvdmlkZSBhIGBAbGFiZWxgIHRvIGA8SWNvbkJ1dHRvbj5gIGZvciBhY2Nlc3NpYmlsaXR5IHJlYXNvbnMuJyxcbiAgICAgIHRoaXMuYXJncy5sYWJlbCAhPT0gdW5kZWZpbmVkXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmFyZ3MubGFiZWw7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAgPENvbW1hbmRFbGVtZW50XG4gICAgICBAY29tbWFuZD17e0BwdXNofX1cbiAgICAgIGNsYXNzPVwie3tzdHlsZXMuaWNvbkJ1dHRvbn19XCJcbiAgICAgIGRhdGEtaW50ZW50PXt7aWYgQGludGVudCBAaW50ZW50IFwiYWN0aW9uXCJ9fVxuICAgICAgZGF0YS1pbXBvcnRhbmNlPXt7aWYgQGltcG9ydGFuY2UgQGltcG9ydGFuY2UgXCJzdXByZW1lXCJ9fVxuICAgICAgZGF0YS1zcGFjaW5nPXt7QHNwYWNpbmd9fVxuICAgICAgYXJpYS1sYWJlbD17e3RoaXMubGFiZWx9fVxuICAgICAge3tkaXNhYmxlZCB3aGVuPShpZiBAZGlzYWJsZWQgQGRpc2FibGVkIGZhbHNlKX19XG4gICAgICBkYXRhLXRlc3QtaWNvbi1idXR0b25cbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICA-XG4gICAgICA8SWNvbiBAaWNvbj17e0BpY29ufX0gQHN0eWxlPXt7QGljb25TdHlsZX19IGRhdGEtdGVzdC1pY29uLWJ1dHRvbj1cImljb25cIiAvPlxuICAgIDwvQ29tbWFuZEVsZW1lbnQ-XG4gIDwvdGVtcGxhdGU-XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sZUFBZSxxQkFBcUI7QUFDM0MsU0FBUyxNQUFNLFFBQVEsZUFBZTtBQUV0QyxPQUFPLG9CQUFvQiwyQ0FBMkM7QUFFdEUsT0FBTyxZQUFZLG1DQUFtQztBQUV0RCxPQUFPLGNBQWMsaUNBQWlDO0FBQ3RELE9BQU8sVUFBVSxTQUFTO0FBRTFCLGNBQWMsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLFFBQVEsa0JBQWtCO0FBQ25HLGNBQWMsYUFBYSxRQUFRLGdCQUFnQjtBQUVuRCxpQkFBaUI7SUFDZixTQUFTLG9CQUFvQixvQkFBb0I7SUFDakQ7UUFDRSxPQUFPO1FBQ1AsU0FBUyxTQUFTO1FBQ2xCLGFBQWEsYUFBYTtRQUMxQixVQUFVLFVBQVU7UUFDcEIsV0FBVyxPQUFPO1FBQ2xCLE9BQU8sTUFBTTtRQUNiLHlCQUF5QixHQUN6QixNQUFNLE1BQU07UUFDWjs7S0FFQyxHQUNELFlBQVksU0FBUyxVQUFVLFlBQVksU0FBUyxTQUFTOztJQUUvRDtRQUNFOzs7QUFJSixlQUFlLE1BQU0sbUJBQW1CLFVBQVU7SUFDaEQsSUFBSSxRQUFRO1FBQ1YsT0FDRSwwRUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSztRQUd0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztJQUN4QjtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY1YsQ0FBQSxFQUFBO1lBQUEsV0FBQSxJQUFXO1lBQVg7Z0JBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO1lBQUQ7UUFBQTtJQUFBLENBZEE7QUFlWiJ9"],"names":["IconButton","Component","label","assert","args","undefined","setComponentTemplate","precompileTemplate","scope","CommandElement","styles","disabled","Icon","strictMode"],"mappings":";;;;;;;;;AAkCe,MAAMA,UAAA,SAAmBC,SAAA,CAAU;AAChD,EAAA,IAAIC,QAAQ;IACVC,MAAA,CACE,0EACA,IAAI,CAACC,IAAI,CAACF,KAAK,KAAKG,SAAA,CAAA,CAAA;AAGtB,IAAA,OAAO,IAAI,CAACD,IAAI,CAACF,KAAK,CAAA;AACxB,GAAA;AAEA,EAAA;IAAAI,oBAAA,CAAAC,kBAAA,CAcA,6aAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,cAAA;QAAAC,MAAA;QAAAC,QAAA;AAAAC,QAAAA,IAAAA;AAAA,OAAA,CAAA;MAAAC,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
1
+ {"version":3,"file":"icon-button.js","sources":["../../src/components/icon-button.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport CommandElement from 'ember-command/components/command-element';\nimport { element } from 'ember-element-helper';\nimport styles from '@hokulea/core/actions.module.css';\nimport disabled from '../-private/modifiers/disabled';\nimport { isLink } from './-button';\nimport Icon from './icon';\nimport type { Importance, Importances, Intent, Intents, Spacing, Spacings } from '@hokulea/tokens';\nimport type { CommandAction } from 'ember-command';\nexport interface IconButtonSignature {\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 label: string;\n /** The name of the icon */ icon: string;\n /**\n * @defaultValue regular\n */ iconStyle?: 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone';\n };\n Blocks: {\n default: [];\n };\n}\nexport default class IconButton extends Component<IconButtonSignature> {\n get label() {\n assert('Please provide a `@label` to `<IconButton>` for accessibility reasons.', this.args.label !== undefined);\n return this.args.label;\n }\n static{\n template(`\n <CommandElement\n @element={{element \"button\"}}\n @command={{@push}}\n class=\"{{styles.iconButton}}\"\n type={{if (isLink @push) \"button\"}}\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n aria-label={{this.label}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-icon-button\n ...attributes\n >\n <Icon @icon={{@icon}} @style={{@iconStyle}} data-test-icon-button=\"icon\" />\n </CommandElement>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9pY29uLWJ1dHRvbi5ndHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbXBvbmVudCBmcm9tICdAZ2xpbW1lci9jb21wb25lbnQnO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGVtYmVyL2RlYnVnJztcblxuaW1wb3J0IENvbW1hbmRFbGVtZW50IGZyb20gJ2VtYmVyLWNvbW1hbmQvY29tcG9uZW50cy9jb21tYW5kLWVsZW1lbnQnO1xuaW1wb3J0IHsgZWxlbWVudCB9IGZyb20gJ2VtYmVyLWVsZW1lbnQtaGVscGVyJztcblxuaW1wb3J0IHN0eWxlcyBmcm9tICdAaG9rdWxlYS9jb3JlL2FjdGlvbnMubW9kdWxlLmNzcyc7XG5cbmltcG9ydCBkaXNhYmxlZCBmcm9tICcuLi8tcHJpdmF0ZS9tb2RpZmllcnMvZGlzYWJsZWQnO1xuaW1wb3J0IHsgaXNMaW5rIH0gZnJvbSAnLi8tYnV0dG9uJztcbmltcG9ydCBJY29uIGZyb20gJy4vaWNvbic7XG5cbmltcG9ydCB0eXBlIHsgSW1wb3J0YW5jZSwgSW1wb3J0YW5jZXMsIEludGVudCwgSW50ZW50cywgU3BhY2luZywgU3BhY2luZ3MgfSBmcm9tICdAaG9rdWxlYS90b2tlbnMnO1xuaW1wb3J0IHR5cGUgeyBDb21tYW5kQWN0aW9uIH0gZnJvbSAnZW1iZXItY29tbWFuZCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvbkJ1dHRvblNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxCdXR0b25FbGVtZW50IHwgSFRNTEFuY2hvckVsZW1lbnQgfCBIVE1MU3BhbkVsZW1lbnQ7XG4gIEFyZ3M6IHtcbiAgICBwdXNoPzogQ29tbWFuZEFjdGlvbjtcbiAgICBpbnRlbnQ_OiBJbnRlbnQgfCBJbnRlbnRzO1xuICAgIGltcG9ydGFuY2U_OiBJbXBvcnRhbmNlIHwgSW1wb3J0YW5jZXM7XG4gICAgc3BhY2luZz86IFNwYWNpbmcgfCBTcGFjaW5ncztcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIGljb24gKi9cbiAgICBpY29uOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQGRlZmF1bHRWYWx1ZSByZWd1bGFyXG4gICAgICovXG4gICAgaWNvblN0eWxlPzogJ3RoaW4nIHwgJ2xpZ2h0JyB8ICdyZWd1bGFyJyB8ICdib2xkJyB8ICdmaWxsJyB8ICdkdW90b25lJztcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW107XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEljb25CdXR0b24gZXh0ZW5kcyBDb21wb25lbnQ8SWNvbkJ1dHRvblNpZ25hdHVyZT4ge1xuICBnZXQgbGFiZWwoKSB7XG4gICAgYXNzZXJ0KFxuICAgICAgJ1BsZWFzZSBwcm92aWRlIGEgYEBsYWJlbGAgdG8gYDxJY29uQnV0dG9uPmAgZm9yIGFjY2Vzc2liaWxpdHkgcmVhc29ucy4nLFxuICAgICAgdGhpcy5hcmdzLmxhYmVsICE9PSB1bmRlZmluZWRcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuYXJncy5sYWJlbDtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8Q29tbWFuZEVsZW1lbnRcbiAgICAgIEBlbGVtZW50PXt7ZWxlbWVudCBcImJ1dHRvblwifX1cbiAgICAgIEBjb21tYW5kPXt7QHB1c2h9fVxuICAgICAgY2xhc3M9XCJ7e3N0eWxlcy5pY29uQnV0dG9ufX1cIlxuICAgICAgdHlwZT17e2lmIChpc0xpbmsgQHB1c2gpIFwiYnV0dG9uXCJ9fVxuICAgICAgZGF0YS1pbnRlbnQ9e3tpZiBAaW50ZW50IEBpbnRlbnQgXCJhY3Rpb25cIn19XG4gICAgICBkYXRhLWltcG9ydGFuY2U9e3tpZiBAaW1wb3J0YW5jZSBAaW1wb3J0YW5jZSBcInN1cHJlbWVcIn19XG4gICAgICBkYXRhLXNwYWNpbmc9e3tAc3BhY2luZ319XG4gICAgICBhcmlhLWxhYmVsPXt7dGhpcy5sYWJlbH19XG4gICAgICB7e2Rpc2FibGVkIHdoZW49KGlmIEBkaXNhYmxlZCBAZGlzYWJsZWQgZmFsc2UpfX1cbiAgICAgIGRhdGEtdGVzdC1pY29uLWJ1dHRvblxuICAgICAgLi4uYXR0cmlidXRlc1xuICAgID5cbiAgICAgIDxJY29uIEBpY29uPXt7QGljb259fSBAc3R5bGU9e3tAaWNvblN0eWxlfX0gZGF0YS10ZXN0LWljb24tYnV0dG9uPVwiaWNvblwiIC8-XG4gICAgPC9Db21tYW5kRWxlbWVudD5cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLE1BQU0sUUFBUSxlQUFlO0FBRXRDLE9BQU8sb0JBQW9CLDJDQUEyQztBQUN0RSxTQUFTLE9BQU8sUUFBUSx1QkFBdUI7QUFFL0MsT0FBTyxZQUFZLG1DQUFtQztBQUV0RCxPQUFPLGNBQWMsaUNBQWlDO0FBQ3RELFNBQVMsTUFBTSxRQUFRLFlBQVk7QUFDbkMsT0FBTyxVQUFVLFNBQVM7QUFFMUIsY0FBYyxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsUUFBUSxrQkFBa0I7QUFDbkcsY0FBYyxhQUFhLFFBQVEsZ0JBQWdCO0FBRW5ELGlCQUFpQjtJQUNmLFNBQVMsb0JBQW9CLG9CQUFvQjtJQUNqRDtRQUNFLE9BQU87UUFDUCxTQUFTLFNBQVM7UUFDbEIsYUFBYSxhQUFhO1FBQzFCLFVBQVUsVUFBVTtRQUNwQixXQUFXLE9BQU87UUFDbEIsT0FBTyxNQUFNO1FBQ2IseUJBQXlCLEdBQ3pCLE1BQU0sTUFBTTtRQUNaOztLQUVDLEdBQ0QsWUFBWSxTQUFTLFVBQVUsWUFBWSxTQUFTLFNBQVM7O0lBRS9EO1FBQ0U7OztBQUlKLGVBQWUsTUFBTSxtQkFBbUIsVUFBVTtJQUNoRCxJQUFJLFFBQVE7UUFDVixPQUNFLDBFQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLO1FBR3RCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO0lBQ3hCO0lBRUEsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7OztFQWdCVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0FoQkE7QUFpQloifQ"],"names":["IconButton","Component","label","assert","args","undefined","setComponentTemplate","precompileTemplate","scope","CommandElement","element","styles","isLink","disabled","Icon","strictMode"],"mappings":";;;;;;;;;;;AAoCe,MAAMA,UAAA,SAAmBC,SAAA,CAAU;AAChD,EAAA,IAAIC,QAAQ;IACVC,MAAA,CACE,0EACA,IAAI,CAACC,IAAI,CAACF,KAAK,KAAKG,SAAA,CAAA,CAAA;AAGtB,IAAA,OAAO,IAAI,CAACD,IAAI,CAACF,KAAK,CAAA;AACxB,GAAA;AAEA,EAAA;IAAAI,oBAAA,CAAAC,kBAAA,CAgBA,mfAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,cAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,MAAA;QAAAC,QAAA;AAAAC,QAAAA,IAAAA;AAAA,OAAA,CAAA;MAAAC,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
@@ -27,7 +27,7 @@ class Icon extends Component {
27
27
  return this.phosphorIcon ? this.args.style ?? 'regular' : svgJar ? 'custom' : '';
28
28
  }
29
29
  static {
30
- setComponentTemplate(precompileTemplate("\n <span class={{styles.icon}} data-test-icon={{@icon}} data-test-icon-style={{this.style}}>\n {{#if this.phosphorIcon}}\n <this.PhIcon @weight={{@style}} />\n {{else if svgJar}}\n {{svgJar @icon}}\n {{/if}}\n </span>\n ", {
30
+ setComponentTemplate(precompileTemplate("\n <span class={{styles.icon}} data-test-icon={{@icon}} data-test-icon-style={{this.style}} ...attributes>\n {{#if this.phosphorIcon}}\n <this.PhIcon @weight={{@style}} />\n {{else if svgJar}}\n {{svgJar @icon}}\n {{/if}}\n </span>\n ", {
31
31
  scope: () => ({
32
32
  styles,
33
33
  svgJar
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sources":["../../src/components/icon.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { dependencySatisfies, importSync, macroCondition } from '@embroider/macros';\nimport { icons } from '@phosphor-icons/core';\nimport { pascalCase } from 'change-case';\nimport * as phIcons from 'ember-phosphor-icons';\nimport styles from '@hokulea/core/icons.module.css';\nimport type PhIcon from 'ember-phosphor-icons/ph-icon';\nimport type SvgJarHelper from 'ember-svg-jar/helpers/svg-jar';\nconst svgJar = macroCondition(dependencySatisfies('ember-svg-jar', '*')) ? (importSync('ember-svg-jar/helpers/svg-jar') as {\n default: typeof SvgJarHelper;\n}).default : undefined;\nexport interface IconSignature {\n Element: HTMLSpanElement;\n Args: {\n icon: string;\n /**\n * @defaultValue regular\n */ style?: 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone';\n };\n}\nexport default class Icon extends Component<IconSignature> {\n @cached\n get phosphorIcon() {\n return icons.find((entry1)=>entry1.name === this.args.icon);\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get PhIcon(): typeof PhIcon {\n const icon1 = `Ph${pascalCase(this.args.icon)}`;\n // @ts-expect-error no index signature is given but we are ok with this\n return phIcons[icon1] as typeof PhIcon;\n }\n get style() {\n return this.phosphorIcon ? this.args.style ?? 'regular' : svgJar ? 'custom' : '';\n }\n static{\n template(`\n <span class={{styles.icon}} data-test-icon={{@icon}} data-test-icon-style={{this.style}}>\n {{#if this.phosphorIcon}}\n <this.PhIcon @weight={{@style}} />\n {{else if svgJar}}\n {{svgJar @icon}}\n {{/if}}\n </span>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9pY29uLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBjYWNoZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5pbXBvcnQgeyBkZXBlbmRlbmN5U2F0aXNmaWVzLCBpbXBvcnRTeW5jLCBtYWNyb0NvbmRpdGlvbiB9IGZyb20gJ0BlbWJyb2lkZXIvbWFjcm9zJztcblxuaW1wb3J0IHsgaWNvbnMgfSBmcm9tICdAcGhvc3Bob3ItaWNvbnMvY29yZSc7XG5pbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuaW1wb3J0ICogYXMgcGhJY29ucyBmcm9tICdlbWJlci1waG9zcGhvci1pY29ucyc7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSAnQGhva3VsZWEvY29yZS9pY29ucy5tb2R1bGUuY3NzJztcblxuaW1wb3J0IHR5cGUgUGhJY29uIGZyb20gJ2VtYmVyLXBob3NwaG9yLWljb25zL3BoLWljb24nO1xuaW1wb3J0IHR5cGUgU3ZnSmFySGVscGVyIGZyb20gJ2VtYmVyLXN2Zy1qYXIvaGVscGVycy9zdmctamFyJztcblxuY29uc3Qgc3ZnSmFyID0gbWFjcm9Db25kaXRpb24oZGVwZW5kZW5jeVNhdGlzZmllcygnZW1iZXItc3ZnLWphcicsICcqJykpXG4gID8gKGltcG9ydFN5bmMoJ2VtYmVyLXN2Zy1qYXIvaGVscGVycy9zdmctamFyJykgYXMgeyBkZWZhdWx0OiB0eXBlb2YgU3ZnSmFySGVscGVyIH0pLmRlZmF1bHRcbiAgOiB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvblNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxTcGFuRWxlbWVudDtcbiAgQXJnczoge1xuICAgIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgcmVndWxhclxuICAgICAqL1xuICAgIHN0eWxlPzogJ3RoaW4nIHwgJ2xpZ2h0JyB8ICdyZWd1bGFyJyB8ICdib2xkJyB8ICdmaWxsJyB8ICdkdW90b25lJztcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSWNvbiBleHRlbmRzIENvbXBvbmVudDxJY29uU2lnbmF0dXJlPiB7XG4gIEBjYWNoZWRcbiAgZ2V0IHBob3NwaG9ySWNvbigpIHtcbiAgICByZXR1cm4gaWNvbnMuZmluZCgoZW50cnkpID0-IGVudHJ5Lm5hbWUgPT09IHRoaXMuYXJncy5pY29uKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgZ2V0IFBoSWNvbigpOiB0eXBlb2YgUGhJY29uIHtcbiAgICBjb25zdCBpY29uID0gYFBoJHtwYXNjYWxDYXNlKHRoaXMuYXJncy5pY29uKX1gO1xuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBubyBpbmRleCBzaWduYXR1cmUgaXMgZ2l2ZW4gYnV0IHdlIGFyZSBvayB3aXRoIHRoaXNcbiAgICByZXR1cm4gcGhJY29uc1tpY29uXSBhcyB0eXBlb2YgUGhJY29uO1xuICB9XG5cbiAgZ2V0IHN0eWxlKCkge1xuICAgIHJldHVybiB0aGlzLnBob3NwaG9ySWNvbiA_IHRoaXMuYXJncy5zdHlsZSA_PyAncmVndWxhcicgOiBzdmdKYXIgPyAnY3VzdG9tJyA6ICcnO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxzcGFuIGNsYXNzPXt7c3R5bGVzLmljb259fSBkYXRhLXRlc3QtaWNvbj17e0BpY29ufX0gZGF0YS10ZXN0LWljb24tc3R5bGU9e3t0aGlzLnN0eWxlfX0-XG4gICAgICB7eyNpZiB0aGlzLnBob3NwaG9ySWNvbn19XG4gICAgICAgIDx0aGlzLlBoSWNvbiBAd2VpZ2h0PXt7QHN0eWxlfX0gLz5cbiAgICAgIHt7ZWxzZSBpZiBzdmdKYXJ9fVxuICAgICAgICB7e3N2Z0phciBAaWNvbn19XG4gICAgICB7ey9pZn19XG4gICAgPC9zcGFuPlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxjQUFjLFFBQVEsb0JBQW9CO0FBRXBGLFNBQVMsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxTQUFTLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFlBQVksYUFBYSx1QkFBdUI7QUFFaEQsT0FBTyxZQUFZLGlDQUFpQztBQUVwRCxZQUFZLFlBQVksK0JBQStCO0FBQ3ZELFlBQVksa0JBQWtCLGdDQUFnQztBQUU5RCxNQUFNLFNBQVMsZUFBZSxvQkFBb0IsaUJBQWlCLFFBQy9ELENBQUMsV0FBVztJQUFzQyxnQkFBZ0I7Q0FBYyxFQUFFLE9BQU8sR0FDekY7QUFFSixpQkFBaUI7SUFDZixTQUFTO0lBQ1Q7UUFDRSxNQUFNLE1BQU07UUFFWjs7S0FFQyxHQUNELFFBQVEsU0FBUyxVQUFVLFlBQVksU0FBUyxTQUFTOzs7QUFJN0QsZUFBZSxNQUFNLGFBQWEsVUFBVTtJQUMxQyxDQUFDO0lBQU0sSUFDSCxlQUFlO1FBQ2pCLE9BQU8sTUFBTSxJQUFJLENBQUMsQ0FBQyxTQUFVLE9BQU0sSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtJQUM1RDtJQUVBLGdFQUFnRTtJQUNoRSxJQUFJLGlCQUFpQixPQUFPO1FBQzFCLE1BQU0sUUFBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFOUMsdUVBQXVFO1FBQ3ZFLE9BQU8sT0FBTyxDQUFDLE1BQUssV0FBVztJQUNqQztJQUVBLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxZQUFZLFNBQVMsV0FBVztJQUNoRjtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7Ozs7O0VBUVYsQ0FBQSxFQUFBO1lBQUEsV0FBQSxJQUFXO1lBQVg7Z0JBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO1lBQUQ7UUFBQTtJQUFBLENBUkE7QUFTWiJ9"],"names":["svgJar","macroCondition","dependencySatisfies","importSync","default","undefined","Icon","Component","phosphorIcon","icons","find","entry1","name","args","icon","n","this","prototype","cached","PhIcon","icon1","pascalCase","phIcons","style","setComponentTemplate","precompileTemplate","scope","styles","strictMode"],"mappings":";;;;;;;;;;;AAaA,MAAMA,MAAA,GAASC,cAAA,CAAeC,mBAAA,CAAoB,eAAiB,EAAA,GAAA,CAAA,CAAA,GAC9DC,UAAA,CAAW,+BAAsEC,CAAAA,CAAAA,OAAO,GACzFC,SAAA,CAAA;AAcW,MAAMC,IAAA,SAAaC,SAAA,CAAU;AAC1C,EAAA,IACIC,eAAe;AACjB,IAAA,OAAOC,KAAA,CAAMC,IAAI,CAAEC,MAAA,IAAUA,MAAA,CAAMC,IAAI,KAAK,IAAI,CAACC,IAAI,CAACC,IAAI,CAAA,CAAA;AAC5D,GAAA;AAEA;AAAA,EAAA;AAAAC,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,mBALCC,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAMD,EAAA,IAAIC,SAAwB;IAC1B,MAAMC,KAAA,GAAO,CAAA,EAAA,EAAKC,UAAA,CAAW,IAAI,CAACR,IAAI,CAACC,IAAI,CAAG,CAAA,CAAA,CAAA;AAE9C;IACA,OAAOQ,OAAO,CAACF,KAAA,CAAK,CAAA;AACtB,GAAA;AAEA,EAAA,IAAIG,QAAQ;AACV,IAAA,OAAO,IAAI,CAACf,YAAY,GAAG,IAAI,CAACK,IAAI,CAACU,KAAK,IAAI,SAAYvB,GAAAA,MAAA,GAAS,QAAW,GAAA,EAAA,CAAA;AAChF,GAAA;AAEA,EAAA;IAAAwB,oBAAA,CAAAC,kBAAA,CAQA,kQAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;AAAA3B,QAAAA,MAAAA;AAAA,OAAA,CAAA;MAAA4B,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
1
+ {"version":3,"file":"icon.js","sources":["../../src/components/icon.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { cached } from '@glimmer/tracking';\nimport { dependencySatisfies, importSync, macroCondition } from '@embroider/macros';\nimport { icons } from '@phosphor-icons/core';\nimport { pascalCase } from 'change-case';\nimport * as phIcons from 'ember-phosphor-icons';\nimport styles from '@hokulea/core/icons.module.css';\nimport type PhIcon from 'ember-phosphor-icons/ph-icon';\nimport type SvgJarHelper from 'ember-svg-jar/helpers/svg-jar';\nconst svgJar = macroCondition(dependencySatisfies('ember-svg-jar', '*')) ? (importSync('ember-svg-jar/helpers/svg-jar') as {\n default: typeof SvgJarHelper;\n}).default : undefined;\nexport interface IconSignature {\n Element: HTMLSpanElement;\n Args: {\n icon: string;\n /**\n * @defaultValue regular\n */ style?: 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone';\n };\n}\nexport default class Icon extends Component<IconSignature> {\n @cached\n get phosphorIcon() {\n return icons.find((entry1)=>entry1.name === this.args.icon);\n }\n // eslint-disable-next-line @typescript-eslint/naming-convention\n get PhIcon(): typeof PhIcon {\n const icon1 = `Ph${pascalCase(this.args.icon)}`;\n // @ts-expect-error no index signature is given but we are ok with this\n return phIcons[icon1] as typeof PhIcon;\n }\n get style() {\n return this.phosphorIcon ? this.args.style ?? 'regular' : svgJar ? 'custom' : '';\n }\n static{\n template(`\n <span\n class={{styles.icon}}\n data-test-icon={{@icon}}\n data-test-icon-style={{this.style}}\n ...attributes\n >\n {{#if this.phosphorIcon}}\n <this.PhIcon @weight={{@style}} />\n {{else if svgJar}}\n {{svgJar @icon}}\n {{/if}}\n </span>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9pY29uLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBjYWNoZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5pbXBvcnQgeyBkZXBlbmRlbmN5U2F0aXNmaWVzLCBpbXBvcnRTeW5jLCBtYWNyb0NvbmRpdGlvbiB9IGZyb20gJ0BlbWJyb2lkZXIvbWFjcm9zJztcblxuaW1wb3J0IHsgaWNvbnMgfSBmcm9tICdAcGhvc3Bob3ItaWNvbnMvY29yZSc7XG5pbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuaW1wb3J0ICogYXMgcGhJY29ucyBmcm9tICdlbWJlci1waG9zcGhvci1pY29ucyc7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSAnQGhva3VsZWEvY29yZS9pY29ucy5tb2R1bGUuY3NzJztcblxuaW1wb3J0IHR5cGUgUGhJY29uIGZyb20gJ2VtYmVyLXBob3NwaG9yLWljb25zL3BoLWljb24nO1xuaW1wb3J0IHR5cGUgU3ZnSmFySGVscGVyIGZyb20gJ2VtYmVyLXN2Zy1qYXIvaGVscGVycy9zdmctamFyJztcblxuY29uc3Qgc3ZnSmFyID0gbWFjcm9Db25kaXRpb24oZGVwZW5kZW5jeVNhdGlzZmllcygnZW1iZXItc3ZnLWphcicsICcqJykpXG4gID8gKGltcG9ydFN5bmMoJ2VtYmVyLXN2Zy1qYXIvaGVscGVycy9zdmctamFyJykgYXMgeyBkZWZhdWx0OiB0eXBlb2YgU3ZnSmFySGVscGVyIH0pLmRlZmF1bHRcbiAgOiB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvblNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxTcGFuRWxlbWVudDtcbiAgQXJnczoge1xuICAgIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEBkZWZhdWx0VmFsdWUgcmVndWxhclxuICAgICAqL1xuICAgIHN0eWxlPzogJ3RoaW4nIHwgJ2xpZ2h0JyB8ICdyZWd1bGFyJyB8ICdib2xkJyB8ICdmaWxsJyB8ICdkdW90b25lJztcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSWNvbiBleHRlbmRzIENvbXBvbmVudDxJY29uU2lnbmF0dXJlPiB7XG4gIEBjYWNoZWRcbiAgZ2V0IHBob3NwaG9ySWNvbigpIHtcbiAgICByZXR1cm4gaWNvbnMuZmluZCgoZW50cnkpID0-IGVudHJ5Lm5hbWUgPT09IHRoaXMuYXJncy5pY29uKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgZ2V0IFBoSWNvbigpOiB0eXBlb2YgUGhJY29uIHtcbiAgICBjb25zdCBpY29uID0gYFBoJHtwYXNjYWxDYXNlKHRoaXMuYXJncy5pY29uKX1gO1xuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBubyBpbmRleCBzaWduYXR1cmUgaXMgZ2l2ZW4gYnV0IHdlIGFyZSBvayB3aXRoIHRoaXNcbiAgICByZXR1cm4gcGhJY29uc1tpY29uXSBhcyB0eXBlb2YgUGhJY29uO1xuICB9XG5cbiAgZ2V0IHN0eWxlKCkge1xuICAgIHJldHVybiB0aGlzLnBob3NwaG9ySWNvbiA_IHRoaXMuYXJncy5zdHlsZSA_PyAncmVndWxhcicgOiBzdmdKYXIgPyAnY3VzdG9tJyA6ICcnO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz17e3N0eWxlcy5pY29ufX1cbiAgICAgIGRhdGEtdGVzdC1pY29uPXt7QGljb259fVxuICAgICAgZGF0YS10ZXN0LWljb24tc3R5bGU9e3t0aGlzLnN0eWxlfX1cbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICA-XG4gICAgICB7eyNpZiB0aGlzLnBob3NwaG9ySWNvbn19XG4gICAgICAgIDx0aGlzLlBoSWNvbiBAd2VpZ2h0PXt7QHN0eWxlfX0gLz5cbiAgICAgIHt7ZWxzZSBpZiBzdmdKYXJ9fVxuICAgICAgICB7e3N2Z0phciBAaWNvbn19XG4gICAgICB7ey9pZn19XG4gICAgPC9zcGFuPlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsTUFBTSxRQUFRLG9CQUFvQjtBQUMzQyxTQUFTLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxjQUFjLFFBQVEsb0JBQW9CO0FBRXBGLFNBQVMsS0FBSyxRQUFRLHVCQUF1QjtBQUM3QyxTQUFTLFVBQVUsUUFBUSxjQUFjO0FBQ3pDLFlBQVksYUFBYSx1QkFBdUI7QUFFaEQsT0FBTyxZQUFZLGlDQUFpQztBQUVwRCxZQUFZLFlBQVksK0JBQStCO0FBQ3ZELFlBQVksa0JBQWtCLGdDQUFnQztBQUU5RCxNQUFNLFNBQVMsZUFBZSxvQkFBb0IsaUJBQWlCLFFBQy9ELENBQUMsV0FBVztJQUFzQyxnQkFBZ0I7Q0FBYyxFQUFFLE9BQU8sR0FDekY7QUFFSixpQkFBaUI7SUFDZixTQUFTO0lBQ1Q7UUFDRSxNQUFNLE1BQU07UUFFWjs7S0FFQyxHQUNELFFBQVEsU0FBUyxVQUFVLFlBQVksU0FBUyxTQUFTOzs7QUFJN0QsZUFBZSxNQUFNLGFBQWEsVUFBVTtJQUMxQyxDQUFDO0lBQU0sSUFDSCxlQUFlO1FBQ2pCLE9BQU8sTUFBTSxJQUFJLENBQUMsQ0FBQyxTQUFVLE9BQU0sSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtJQUM1RDtJQUVBLGdFQUFnRTtJQUNoRSxJQUFJLGlCQUFpQixPQUFPO1FBQzFCLE1BQU0sUUFBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFOUMsdUVBQXVFO1FBQ3ZFLE9BQU8sT0FBTyxDQUFDLE1BQUssV0FBVztJQUNqQztJQUVBLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxZQUFZLFNBQVMsV0FBVztJQUNoRjtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7Ozs7Ozs7Ozs7RUFhVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0FiQTtBQWNaIn0"],"names":["svgJar","macroCondition","dependencySatisfies","importSync","default","undefined","Icon","Component","phosphorIcon","icons","find","entry1","name","args","icon","n","prototype","cached","PhIcon","icon1","pascalCase","phIcons","style","setComponentTemplate","precompileTemplate","scope","styles","strictMode"],"mappings":";;;;;;;;;;;AAaA,MAAMA,MAAA,GAASC,cAAA,CAAeC,mBAAA,CAAoB,eAAiB,EAAA,GAAA,CAAA,CAAA,GAC9DC,UAAA,CAAW,+BAAsEC,CAAAA,CAAAA,OAAO,GACzFC,SAAA,CAAA;AAcW,MAAMC,IAAA,SAAaC,SAAA,CAAU;AAC1C,EAAA,IACIC,eAAe;AACjB,IAAA,OAAOC,KAAA,CAAMC,IAAI,CAAEC,MAAA,IAAUA,MAAA,CAAMC,IAAI,KAAK,IAAI,CAACC,IAAI,CAACC,IAAI,CAAA,CAAA;AAC5D,GAAA;AAEA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,cAAA,EAAA,CALCC,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAMD,EAAA,IAAIC,SAAwB;IAC1B,MAAMC,KAAA,GAAO,CAAA,EAAA,EAAKC,UAAA,CAAW,IAAI,CAACP,IAAI,CAACC,IAAI,CAAG,CAAA,CAAA,CAAA;AAE9C;IACA,OAAOO,OAAO,CAACF,KAAA,CAAK,CAAA;AACtB,GAAA;AAEA,EAAA,IAAIG,QAAQ;AACV,IAAA,OAAO,IAAI,CAACd,YAAY,GAAG,IAAI,CAACK,IAAI,CAACS,KAAK,IAAI,SAAYtB,GAAAA,MAAA,GAAS,QAAW,GAAA,EAAA,CAAA;AAChF,GAAA;AAEA,EAAA;IAAAuB,oBAAA,CAAAC,kBAAA,CAaA,gRAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;AAAA1B,QAAAA,MAAAA;AAAA,OAAA,CAAA;MAAA2B,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sources":["../../src/components/list.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\nimport { listbox } from 'ember-aria-voyager';\nimport { TrackedArray } from 'tracked-built-ins';\nimport styles from '@hokulea/core/controls.module.css';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nexport interface OptionSignature<V> {\n Element: HTMLOptionElement;\n Args: {\n value: V;\n isSelected: (option: V) => boolean;\n registerItem: (item: V) => void;\n unregisterItem: (item: V) => void;\n };\n Blocks: {\n default: [];\n };\n}\nlet Option = class Option<V> extends Component<OptionSignature<V>> {\n constructor(owner1: Owner, args1: OptionSignature<V>['Args']){\n super(owner1, args1);\n args1.registerItem(args1.value);\n registerDestructor(this, ()=>{\n args1.unregisterItem(args1.value);\n });\n }\n static{\n template(`\n <span role=\"option\" aria-selected={{if (@isSelected @value) \"true\"}}>\n {{yield}}\n </span>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\nexport interface ListSignature<V> {\n Element: HTMLDivElement;\n Args: {\n multiple?: boolean;\n disabled?: boolean;\n value?: V | V[];\n update?: (value: V | V[]) => void;\n activateItem?: (value: V) => void;\n };\n Blocks: {\n default: [{\n Option: WithBoundArgs<typeof Option, 'isSelected' | 'registerItem' | 'unregisterItem'>;\n }];\n };\n}\nexport default class List<V> extends Component<ListSignature<V>> {\n Option = Option<V>;\n @tracked\n items: V[] = new TrackedArray();\n registerItem = (item1: V)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.push(item1);\n });\n };\n unregisterItem = (item1: V)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.splice(this.items.indexOf(item1), 1);\n });\n };\n isSelected = (option1: V)=>{\n if (Array.isArray(this.args.value)) {\n return this.args.value.includes(option1);\n }\n return this.args.value === option1;\n };\n static{\n template(`\n <div\n class={{styles.list}}\n data-test-list\n ...attributes\n {{!@glint-ignore}}\n {{listbox\n items=this.items\n selection=@value\n multi=@multiple\n disabled=@disabled\n select=@update\n activateItem=@activateItem\n }}\n >\n {{yield\n (hash\n Option=(component\n this.Option\n isSelected=this.isSelected\n registerItem=this.registerItem\n unregisterItem=this.unregisterItem\n )\n )\n }}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9saXN0Lmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGVtYmVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG5leHQgfSBmcm9tICdAZW1iZXIvcnVubG9vcCc7XG5cbmltcG9ydCB7IGxpc3Rib3ggfSBmcm9tICdlbWJlci1hcmlhLXZveWFnZXInO1xuaW1wb3J0IHsgVHJhY2tlZEFycmF5IH0gZnJvbSAndHJhY2tlZC1idWlsdC1pbnMnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvY29udHJvbHMubW9kdWxlLmNzcyc7XG5cbmltcG9ydCB0eXBlIE93bmVyIGZyb20gJ0BlbWJlci9vd25lcic7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvblNpZ25hdHVyZTxWPiB7XG4gIEVsZW1lbnQ6IEhUTUxPcHRpb25FbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdmFsdWU6IFY7XG4gICAgaXNTZWxlY3RlZDogKG9wdGlvbjogVikgPT4gYm9vbGVhbjtcbiAgICByZWdpc3Rlckl0ZW06IChpdGVtOiBWKSA9PiB2b2lkO1xuICAgIHVucmVnaXN0ZXJJdGVtOiAoaXRlbTogVikgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW107XG4gIH07XG59XG5cbmNsYXNzIE9wdGlvbjxWPiBleHRlbmRzIENvbXBvbmVudDxPcHRpb25TaWduYXR1cmU8Vj4-IHtcbiAgY29uc3RydWN0b3Iob3duZXI6IE93bmVyLCBhcmdzOiBPcHRpb25TaWduYXR1cmU8Vj5bJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcblxuICAgIGFyZ3MucmVnaXN0ZXJJdGVtKGFyZ3MudmFsdWUpO1xuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHRoaXMsICgpID0-IHtcbiAgICAgIGFyZ3MudW5yZWdpc3Rlckl0ZW0oYXJncy52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAgPHNwYW4gcm9sZT1cIm9wdGlvblwiIGFyaWEtc2VsZWN0ZWQ9e3tpZiAoQGlzU2VsZWN0ZWQgQHZhbHVlKSBcInRydWVcIn19PlxuICAgICAge3t5aWVsZH19XG4gICAgPC9zcGFuPlxuICA8L3RlbXBsYXRlPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RTaWduYXR1cmU8Vj4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgdmFsdWU_OiBWIHwgVltdO1xuICAgIHVwZGF0ZT86ICh2YWx1ZTogViB8IFZbXSkgPT4gdm9pZDtcbiAgICBhY3RpdmF0ZUl0ZW0_OiAodmFsdWU6IFYpID0-IHZvaWQ7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHtcbiAgICAgICAgT3B0aW9uOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBPcHRpb248Vj4sICdpc1NlbGVjdGVkJyB8ICdyZWdpc3Rlckl0ZW0nIHwgJ3VucmVnaXN0ZXJJdGVtJz47XG4gICAgICB9XG4gICAgXTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlzdDxWPiBleHRlbmRzIENvbXBvbmVudDxMaXN0U2lnbmF0dXJlPFY-PiB7XG4gIE9wdGlvbiA9IE9wdGlvbjxWPjtcblxuICBAdHJhY2tlZCBpdGVtczogVltdID0gbmV3IFRyYWNrZWRBcnJheSgpO1xuXG4gIHJlZ2lzdGVySXRlbSA9IChpdGVtOiBWKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaChpdGVtKTtcbiAgICB9KTtcbiAgfTtcblxuICB1bnJlZ2lzdGVySXRlbSA9IChpdGVtOiBWKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgfSk7XG4gIH07XG5cbiAgaXNTZWxlY3RlZCA9IChvcHRpb246IFYpID0-IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmFyZ3MudmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcmdzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXJncy52YWx1ZSA9PT0gb3B0aW9uO1xuICB9O1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz17e3N0eWxlcy5saXN0fX1cbiAgICAgIGRhdGEtdGVzdC1saXN0XG4gICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICB7eyFAZ2xpbnQtaWdub3JlfX1cbiAgICAgIHt7bGlzdGJveFxuICAgICAgICBpdGVtcz10aGlzLml0ZW1zXG4gICAgICAgIHNlbGVjdGlvbj1AdmFsdWVcbiAgICAgICAgbXVsdGk9QG11bHRpcGxlXG4gICAgICAgIGRpc2FibGVkPUBkaXNhYmxlZFxuICAgICAgICBzZWxlY3Q9QHVwZGF0ZVxuICAgICAgICBhY3RpdmF0ZUl0ZW09QGFjdGl2YXRlSXRlbVxuICAgICAgfX1cbiAgICA-XG4gICAgICB7e3lpZWxkXG4gICAgICAgIChoYXNoXG4gICAgICAgICAgT3B0aW9uPShjb21wb25lbnRcbiAgICAgICAgICAgIHRoaXMuT3B0aW9uXG4gICAgICAgICAgICBpc1NlbGVjdGVkPXRoaXMuaXNTZWxlY3RlZFxuICAgICAgICAgICAgcmVnaXN0ZXJJdGVtPXRoaXMucmVnaXN0ZXJJdGVtXG4gICAgICAgICAgICB1bnJlZ2lzdGVySXRlbT10aGlzLnVucmVnaXN0ZXJJdGVtXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9fVxuICAgIDwvZGl2PlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsT0FBTyxRQUFRLG9CQUFvQjtBQUM1QyxTQUFTLGtCQUFrQixRQUFRLHFCQUFxQjtBQUN4RCxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFDckMsU0FBUyxJQUFJLFFBQVEsaUJBQWlCO0FBRXRDLFNBQVMsT0FBTyxRQUFRLHFCQUFxQjtBQUM3QyxTQUFTLFlBQVksUUFBUSxvQkFBb0I7QUFFakQsT0FBTyxZQUFZLG9DQUFvQztBQUV2RCxZQUFZLFdBQVcsZUFBZTtBQUN0QyxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7QUFFckQsaUJBQWlCLGdCQUFnQjtJQUMvQixTQUFTO0lBQ1Q7UUFDRSxPQUFPO1FBQ1AsYUFBYSxRQUFRLE1BQU0sT0FBTztRQUNsQyxlQUFlLE1BQU0sTUFBTSxJQUFJO1FBQy9CLGlCQUFpQixNQUFNLE1BQU0sSUFBSTs7SUFFbkM7UUFDRTs7O0FBSUosSUFBQSxBQUFNLFNBQU4sTUFBTSxPQUFPLFdBQVcsVUFBVSxnQkFBZ0I7SUFDaEQsWUFBWSxRQUFPLEtBQUssRUFBRSxPQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBRTtRQUMxRCxLQUFLLENBQUMsUUFBTztRQUViLE1BQUssWUFBWSxDQUFDLE1BQUssS0FBSztRQUU1QixtQkFBbUIsSUFBSSxFQUFFO1lBQ3ZCLE1BQUssY0FBYyxDQUFDLE1BQUssS0FBSztRQUNoQztJQUNGO0lBRUEsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7OztFQUlWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQUpBO0FBS1o7QUFFQSxpQkFBaUIsY0FBYztJQUM3QixTQUFTO0lBQ1Q7UUFDRSxXQUFXLE9BQU87UUFDbEIsV0FBVyxPQUFPO1FBQ2xCLFFBQVEsSUFBSTtRQUNaLFVBQVUsT0FBTyxJQUFJLFFBQVEsSUFBSTtRQUNqQyxnQkFBZ0IsT0FBTyxNQUFNLElBQUk7O0lBRW5DO1FBQ0U7Z0JBRUksUUFBUSxxQkFBcUIsUUFBVyxlQUFlLGlCQUFpQjs7OztBQU1oRixlQUFlLE1BQU0sS0FBSyxXQUFXLFVBQVUsY0FBYztJQUMzRCxTQUFTLE9BQU8sR0FBRztJQUVuQixDQUFDO0lBQVEsT0FBTyxNQUFNLElBQUksZUFBZTtJQUV6QyxlQUFlLENBQUMsT0FBTTtRQUNwQiw0Q0FBNEM7UUFDNUMsS0FBSztZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2xCO0lBQ0YsRUFBRTtJQUVGLGlCQUFpQixDQUFDLE9BQU07UUFDdEIsNENBQTRDO1FBQzVDLEtBQUs7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFPO1FBQzlDO0lBQ0YsRUFBRTtJQUVGLGFBQWEsQ0FBQyxTQUFRO1FBQ3BCLElBQUksTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDbEM7UUFFQSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLO0lBQzdCLEVBQUU7SUFFRixNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTBCVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0ExQkE7QUEyQloifQ"],"names":["Option","Component","constructor","owner1","args1","registerItem","value","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","strictMode","List","g","this","prototype","tracked","TrackedArray","i","void 0","item1","next","items","push","splice","indexOf","isSelected","option1","Array","isArray","args","includes","scope","styles","listbox","hash"],"mappings":";;;;;;;;;;;;AA2BA,IAAAA,MAAM,GAAN,MAAMA,MAAA,SAAkBC,SAAA,CAA0B;EAChDC,WAAYC,CAAAA,MAAY,EAAEC,KAAgC,EAAE;IAC1D,KAAK,CAACD,MAAA,EAAOC,KAAA,CAAA,CAAA;AAEbA,IAAAA,KAAA,CAAKC,YAAY,CAACD,KAAA,CAAKE,KAAK,CAAA,CAAA;IAE5BC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBH,MAAAA,KAAA,CAAKI,cAAc,CAACJ,KAAA,CAAKE,KAAK,CAAA,CAAA;AAChC,KAAA,CAAA,CAAA;AACF,GAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAIA,mHAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ,CAAA,CAAA;AAoBe,MAAMC,IAAA,SAAgBX,SAAA,CAAwB;AAC3DD,EAAAA,MAAA,GAASA,MAAA,CAAA;AAAU,EAAA;AAAAa,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,YAElBC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAqB,IAAIC,YAAA,EAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,MAAA,IAAAC,CAAA,CAAAJ,IAAA,YAAAK,KAAA,CAAA,EAAA;AAE1Bd,EAAAA,YAAA,GAAgBe,KAAM,IAAA;AACpB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACH,KAAA,CAAA,CAAA;AAClB,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAZ,EAAAA,cAAA,GAAkBY,KAAM,IAAA;AACtB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,IAAI,CAACF,KAAK,CAACG,OAAO,CAACL,KAAA,CAAO,EAAA,CAAA,CAAA,CAAA;AAC9C,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAM,EAAAA,UAAA,GAAcC,OAAQ,IAAA;IACpB,IAAIC,KAAA,CAAMC,OAAO,CAAC,IAAI,CAACC,IAAI,CAACxB,KAAK,CAAG,EAAA;MAClC,OAAO,IAAI,CAACwB,IAAI,CAACxB,KAAK,CAACyB,QAAQ,CAACJ,OAAA,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,OAAO,IAAI,CAACG,IAAI,CAACxB,KAAK,KAAKqB,OAAA,CAAA;AAC7B,GAAA,CAAA;AAEA,EAAA;IAAAlB,oBAAA,CAAAC,kBAAA,CA0BA,sXAAA,EAAA;AAAAsB,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;QAAAC,OAAA;AAAAC,QAAAA,IAAAA;AAAA,OAAA,CAAA;MAAAxB,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
1
+ {"version":3,"file":"list.js","sources":["../../src/components/list.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\nimport { listbox } from 'ember-aria-voyager';\nimport { TrackedArray } from 'tracked-built-ins';\nimport styles from '@hokulea/core/controls.module.css';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nexport interface OptionSignature<V> {\n Element: HTMLOptionElement;\n Args: {\n value: V;\n isSelected: (option: V) => boolean;\n registerItem: (item: V) => void;\n unregisterItem: (item: V) => void;\n };\n Blocks: {\n default: [];\n };\n}\nlet Option = class Option<V> extends Component<OptionSignature<V>> {\n constructor(owner1: Owner, args1: OptionSignature<V>['Args']){\n super(owner1, args1);\n args1.registerItem(args1.value);\n registerDestructor(this, ()=>{\n args1.unregisterItem(args1.value);\n });\n }\n static{\n template(`\n <span role=\"option\" aria-selected={{if (@isSelected @value) \"true\"}}>\n {{yield}}\n </span>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\nexport interface ListSignature<V> {\n Element: HTMLDivElement;\n Args: {\n multiple?: boolean;\n disabled?: boolean;\n value?: V | V[];\n update?: (value: V | V[]) => void;\n activateItem?: (value: V) => void;\n };\n Blocks: {\n default: [{\n Option: WithBoundArgs<typeof Option, 'isSelected' | 'registerItem' | 'unregisterItem'>;\n }];\n };\n}\nexport default class List<V> extends Component<ListSignature<V>> {\n Option = Option<V>;\n @tracked\n items: V[] = new TrackedArray();\n registerItem = (item1: V)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.push(item1);\n });\n };\n unregisterItem = (item1: V)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.splice(this.items.indexOf(item1), 1);\n });\n };\n isSelected = (option1: V)=>{\n if (Array.isArray(this.args.value)) {\n return this.args.value.includes(option1);\n }\n return this.args.value === option1;\n };\n static{\n template(`\n <div\n class={{styles.list}}\n data-test-list\n ...attributes\n {{!@glint-ignore}}\n {{listbox\n items=this.items\n selection=@value\n multi=@multiple\n disabled=@disabled\n select=@update\n activateItem=@activateItem\n }}\n >\n {{yield\n (hash\n Option=(component\n this.Option\n isSelected=this.isSelected\n registerItem=this.registerItem\n unregisterItem=this.unregisterItem\n )\n )\n }}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9saXN0Lmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGVtYmVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG5leHQgfSBmcm9tICdAZW1iZXIvcnVubG9vcCc7XG5cbmltcG9ydCB7IGxpc3Rib3ggfSBmcm9tICdlbWJlci1hcmlhLXZveWFnZXInO1xuaW1wb3J0IHsgVHJhY2tlZEFycmF5IH0gZnJvbSAndHJhY2tlZC1idWlsdC1pbnMnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvY29udHJvbHMubW9kdWxlLmNzcyc7XG5cbmltcG9ydCB0eXBlIE93bmVyIGZyb20gJ0BlbWJlci9vd25lcic7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvblNpZ25hdHVyZTxWPiB7XG4gIEVsZW1lbnQ6IEhUTUxPcHRpb25FbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdmFsdWU6IFY7XG4gICAgaXNTZWxlY3RlZDogKG9wdGlvbjogVikgPT4gYm9vbGVhbjtcbiAgICByZWdpc3Rlckl0ZW06IChpdGVtOiBWKSA9PiB2b2lkO1xuICAgIHVucmVnaXN0ZXJJdGVtOiAoaXRlbTogVikgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW107XG4gIH07XG59XG5cbmNsYXNzIE9wdGlvbjxWPiBleHRlbmRzIENvbXBvbmVudDxPcHRpb25TaWduYXR1cmU8Vj4-IHtcbiAgY29uc3RydWN0b3Iob3duZXI6IE93bmVyLCBhcmdzOiBPcHRpb25TaWduYXR1cmU8Vj5bJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcblxuICAgIGFyZ3MucmVnaXN0ZXJJdGVtKGFyZ3MudmFsdWUpO1xuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHRoaXMsICgpID0-IHtcbiAgICAgIGFyZ3MudW5yZWdpc3Rlckl0ZW0oYXJncy52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAgPHNwYW4gcm9sZT1cIm9wdGlvblwiIGFyaWEtc2VsZWN0ZWQ9e3tpZiAoQGlzU2VsZWN0ZWQgQHZhbHVlKSBcInRydWVcIn19PlxuICAgICAge3t5aWVsZH19XG4gICAgPC9zcGFuPlxuICA8L3RlbXBsYXRlPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RTaWduYXR1cmU8Vj4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgdmFsdWU_OiBWIHwgVltdO1xuICAgIHVwZGF0ZT86ICh2YWx1ZTogViB8IFZbXSkgPT4gdm9pZDtcbiAgICBhY3RpdmF0ZUl0ZW0_OiAodmFsdWU6IFYpID0-IHZvaWQ7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHtcbiAgICAgICAgT3B0aW9uOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBPcHRpb248Vj4sICdpc1NlbGVjdGVkJyB8ICdyZWdpc3Rlckl0ZW0nIHwgJ3VucmVnaXN0ZXJJdGVtJz47XG4gICAgICB9XG4gICAgXTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlzdDxWPiBleHRlbmRzIENvbXBvbmVudDxMaXN0U2lnbmF0dXJlPFY-PiB7XG4gIE9wdGlvbiA9IE9wdGlvbjxWPjtcblxuICBAdHJhY2tlZCBpdGVtczogVltdID0gbmV3IFRyYWNrZWRBcnJheSgpO1xuXG4gIHJlZ2lzdGVySXRlbSA9IChpdGVtOiBWKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaChpdGVtKTtcbiAgICB9KTtcbiAgfTtcblxuICB1bnJlZ2lzdGVySXRlbSA9IChpdGVtOiBWKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgfSk7XG4gIH07XG5cbiAgaXNTZWxlY3RlZCA9IChvcHRpb246IFYpID0-IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmFyZ3MudmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcmdzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXJncy52YWx1ZSA9PT0gb3B0aW9uO1xuICB9O1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz17e3N0eWxlcy5saXN0fX1cbiAgICAgIGRhdGEtdGVzdC1saXN0XG4gICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICB7eyFAZ2xpbnQtaWdub3JlfX1cbiAgICAgIHt7bGlzdGJveFxuICAgICAgICBpdGVtcz10aGlzLml0ZW1zXG4gICAgICAgIHNlbGVjdGlvbj1AdmFsdWVcbiAgICAgICAgbXVsdGk9QG11bHRpcGxlXG4gICAgICAgIGRpc2FibGVkPUBkaXNhYmxlZFxuICAgICAgICBzZWxlY3Q9QHVwZGF0ZVxuICAgICAgICBhY3RpdmF0ZUl0ZW09QGFjdGl2YXRlSXRlbVxuICAgICAgfX1cbiAgICA-XG4gICAgICB7e3lpZWxkXG4gICAgICAgIChoYXNoXG4gICAgICAgICAgT3B0aW9uPShjb21wb25lbnRcbiAgICAgICAgICAgIHRoaXMuT3B0aW9uXG4gICAgICAgICAgICBpc1NlbGVjdGVkPXRoaXMuaXNTZWxlY3RlZFxuICAgICAgICAgICAgcmVnaXN0ZXJJdGVtPXRoaXMucmVnaXN0ZXJJdGVtXG4gICAgICAgICAgICB1bnJlZ2lzdGVySXRlbT10aGlzLnVucmVnaXN0ZXJJdGVtXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9fVxuICAgIDwvZGl2PlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsT0FBTyxRQUFRLG9CQUFvQjtBQUM1QyxTQUFTLGtCQUFrQixRQUFRLHFCQUFxQjtBQUN4RCxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFDckMsU0FBUyxJQUFJLFFBQVEsaUJBQWlCO0FBRXRDLFNBQVMsT0FBTyxRQUFRLHFCQUFxQjtBQUM3QyxTQUFTLFlBQVksUUFBUSxvQkFBb0I7QUFFakQsT0FBTyxZQUFZLG9DQUFvQztBQUV2RCxZQUFZLFdBQVcsZUFBZTtBQUN0QyxjQUFjLGFBQWEsUUFBUSxrQkFBa0I7QUFFckQsaUJBQWlCLGdCQUFnQjtJQUMvQixTQUFTO0lBQ1Q7UUFDRSxPQUFPO1FBQ1AsYUFBYSxRQUFRLE1BQU0sT0FBTztRQUNsQyxlQUFlLE1BQU0sTUFBTSxJQUFJO1FBQy9CLGlCQUFpQixNQUFNLE1BQU0sSUFBSTs7SUFFbkM7UUFDRTs7O0FBSUosSUFBQSxBQUFNLFNBQU4sTUFBTSxPQUFPLFdBQVcsVUFBVSxnQkFBZ0I7SUFDaEQsWUFBWSxRQUFPLEtBQUssRUFBRSxPQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBRTtRQUMxRCxLQUFLLENBQUMsUUFBTztRQUViLE1BQUssWUFBWSxDQUFDLE1BQUssS0FBSztRQUU1QixtQkFBbUIsSUFBSSxFQUFFO1lBQ3ZCLE1BQUssY0FBYyxDQUFDLE1BQUssS0FBSztRQUNoQztJQUNGO0lBRUEsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7OztFQUlWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQUpBO0FBS1o7QUFFQSxpQkFBaUIsY0FBYztJQUM3QixTQUFTO0lBQ1Q7UUFDRSxXQUFXLE9BQU87UUFDbEIsV0FBVyxPQUFPO1FBQ2xCLFFBQVEsSUFBSTtRQUNaLFVBQVUsT0FBTyxJQUFJLFFBQVEsSUFBSTtRQUNqQyxnQkFBZ0IsT0FBTyxNQUFNLElBQUk7O0lBRW5DO1FBQ0U7Z0JBRUksUUFBUSxxQkFBcUIsUUFBVyxlQUFlLGlCQUFpQjs7OztBQU1oRixlQUFlLE1BQU0sS0FBSyxXQUFXLFVBQVUsY0FBYztJQUMzRCxTQUFTLE9BQU8sR0FBRztJQUVuQixDQUFDO0lBQVEsT0FBTyxNQUFNLElBQUksZUFBZTtJQUV6QyxlQUFlLENBQUMsT0FBTTtRQUNwQiw0Q0FBNEM7UUFDNUMsS0FBSztZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2xCO0lBQ0YsRUFBRTtJQUVGLGlCQUFpQixDQUFDLE9BQU07UUFDdEIsNENBQTRDO1FBQzVDLEtBQUs7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFPO1FBQzlDO0lBQ0YsRUFBRTtJQUVGLGFBQWEsQ0FBQyxTQUFRO1FBQ3BCLElBQUksTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDbEM7UUFFQSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLO0lBQzdCLEVBQUU7SUFFRixNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTBCVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0ExQkE7QUEyQloifQ"],"names":["Option","Component","constructor","owner1","args1","registerItem","value","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","strictMode","List","g","prototype","tracked","TrackedArray","i","void 0","item1","next","items","push","splice","indexOf","isSelected","option1","Array","isArray","args","includes","scope","styles","listbox","hash"],"mappings":";;;;;;;;;;;;AA2BA,IAAAA,MAAM,GAAN,MAAMA,MAAA,SAAkBC,SAAA,CAA0B;EAChDC,WAAYC,CAAAA,MAAY,EAAEC,KAAgC,EAAE;IAC1D,KAAK,CAACD,MAAA,EAAOC,KAAA,CAAA,CAAA;AAEbA,IAAAA,KAAA,CAAKC,YAAY,CAACD,KAAA,CAAKE,KAAK,CAAA,CAAA;IAE5BC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBH,MAAAA,KAAA,CAAKI,cAAc,CAACJ,KAAA,CAAKE,KAAK,CAAA,CAAA;AAChC,KAAA,CAAA,CAAA;AACF,GAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAIA,mHAAA,EAAA;MAAAC,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ,CAAA,CAAA;AAoBe,MAAMC,IAAA,SAAgBX,SAAA,CAAwB;AAC3DD,EAAAA,MAAA,GAASA,MAAA,CAAA;AAAU,EAAA;IAAAa,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,OAAA,EAAA,CAElBC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAAqB,IAAIC,YAAA,EAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,MAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,OAAA,CAAA,EAAAC,KAAA,CAAA,EAAA;AAE1Bb,EAAAA,YAAA,GAAgBc,KAAM,IAAA;AACpB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACH,KAAA,CAAA,CAAA;AAClB,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAX,EAAAA,cAAA,GAAkBW,KAAM,IAAA;AACtB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,IAAI,CAACF,KAAK,CAACG,OAAO,CAACL,KAAA,CAAO,EAAA,CAAA,CAAA,CAAA;AAC9C,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAM,EAAAA,UAAA,GAAcC,OAAQ,IAAA;IACpB,IAAIC,KAAA,CAAMC,OAAO,CAAC,IAAI,CAACC,IAAI,CAACvB,KAAK,CAAG,EAAA;MAClC,OAAO,IAAI,CAACuB,IAAI,CAACvB,KAAK,CAACwB,QAAQ,CAACJ,OAAA,CAAA,CAAA;AAClC,KAAA;AAEA,IAAA,OAAO,IAAI,CAACG,IAAI,CAACvB,KAAK,KAAKoB,OAAA,CAAA;AAC7B,GAAA,CAAA;AAEA,EAAA;IAAAjB,oBAAA,CAAAC,kBAAA,CA0BA,sXAAA,EAAA;AAAAqB,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;QAAAC,OAAA;AAAAC,QAAAA,IAAAA;AAAA,OAAA,CAAA;MAAAvB,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
@@ -3,8 +3,11 @@ import { tracked } from '@glimmer/tracking';
3
3
  import { registerDestructor } from '@ember/destroyable';
4
4
  import { hash } from '@ember/helper';
5
5
  import { next } from '@ember/runloop';
6
+ import { service } from '@ember/service';
7
+ import { htmlSafe } from '@ember/template';
6
8
  import { menu } from 'ember-aria-voyager';
7
9
  import { CommandElement } from 'ember-command';
10
+ import { consume } from 'ember-provide-consume-context';
8
11
  import { TrackedArray } from 'tracked-built-ins';
9
12
  import styles from '@hokulea/core/controls.module.css';
10
13
  import { d as disabled } from '../disabled-B_FQ0Z51.js';
@@ -71,12 +74,23 @@ let MenuItem = class MenuItem extends Component {
71
74
  /* eslint-enable @typescript-eslint/no-use-before-define */
72
75
 
73
76
  class Menu extends Component {
77
+ static {
78
+ g(this.prototype, "fastboot", [service]);
79
+ }
80
+ #fastboot = (i(this, "fastboot"), void 0);
81
+ static {
82
+ g(this.prototype, "withinAppHeader", [consume('hokulea-app-header')]);
83
+ }
84
+ #withinAppHeader = (i(this, "withinAppHeader"), void 0);
74
85
  static {
75
86
  g(this.prototype, "items", [tracked], function () {
76
87
  return new TrackedArray();
77
88
  });
78
89
  }
79
90
  #items = (i(this, "items"), void 0);
91
+ get shallHide() {
92
+ return this.fastboot?.isFastBoot && this.withinAppHeader === true;
93
+ }
80
94
  registerItem = item1 => {
81
95
  // eslint-disable-next-line ember/no-runloop
82
96
  next(() => {
@@ -90,9 +104,10 @@ class Menu extends Component {
90
104
  });
91
105
  };
92
106
  static {
93
- setComponentTemplate(precompileTemplate("\n <div class={{styles.menu}} data-test-menu ...attributes {{menu items=this.items disabled=@disabled}}>\n {{yield (hash Item=(component MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem))}}\n </div>\n ", {
107
+ setComponentTemplate(precompileTemplate("\n <div class={{styles.menu}} data-test-menu ...attributes {{menu items=this.items disabled=@disabled}} style={{if this.shallHide (htmlSafe \"display: none\")}}>\n {{yield (hash Item=(component MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem))}}\n </div>\n ", {
94
108
  scope: () => ({
95
109
  styles,
110
+ htmlSafe,
96
111
  menu,
97
112
  hash,
98
113
  MenuItem
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sources":["../../src/components/menu.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\nimport { menu } from 'ember-aria-voyager';\nimport { CommandElement } from 'ember-command';\nimport { TrackedArray } from 'tracked-built-ins';\nimport styles from '@hokulea/core/controls.module.css';\nimport disabled from '../-private/modifiers/disabled';\nimport popover from '../helpers/popover';\nimport type { MenuItemArgs, MenuItemBlocks, MenuItemElement } from './-menu';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nexport type MenuDefaultBlock = {\n Item: WithBoundArgs<typeof MenuItem, 'registerItem' | 'unregisterItem'>;\n};\nexport interface MenuItemSignature {\n Element: MenuItemElement;\n Args: MenuItemArgs & {\n registerItem: (item: MenuItem) => void;\n unregisterItem: (item: MenuItem) => void;\n };\n Blocks: MenuItemBlocks & {\n menu?: [MenuDefaultBlock];\n };\n}\n// below are attempts at conditional typing based on provided blocks in dynamic invocation\n// type MenuItemArgs = {\n// disabled?: boolean;\n// registerItem: (item: MenuItem) => void;\n// unregisterItem: (item: MenuItem) => void;\n// };\n// export interface MenuItemSignature<T = {}> {\n// Element: HTMLButtonElement | HTMLAnchorElement;\n// Args: T extends { Blocks: { default: [] } }\n// ? MenuItemArgs & {\n// push: CommandAction;\n// }\n// : MenuItemArgs;\n// Blocks: T extends { Blocks: { default: [] } }\n// ? { default: [] }\n// : { label: []; menu: [MenuDefaultBlock] };\n// }\n// & (\n// | {\n// Args: MenuItemArgs & {\n// push: CommandAction;\n// };\n// Blocks: {\n// default: [];\n// };\n// }\n// | {\n// Args: MenuItemArgs;\n// Blocks: {\n// label: [];\n// menu: [MenuDefaultBlock];\n// };\n// }\n// );\n/* eslint-disable @typescript-eslint/no-use-before-define */ let MenuItem = class MenuItem extends Component<MenuItemSignature> {\n constructor(owner1: Owner, args1: MenuItemSignature['Args']){\n super(owner1, args1);\n args1.registerItem(this);\n registerDestructor(this, ()=>{\n args1.unregisterItem(this);\n });\n }\n static{\n template(`\n {{#if (has-block \"menu\")}}\n {{#let (popover position=\"right-start\") as |p|}}\n <button\n type=\"button\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n {{disabled when=(if @disabled @disabled false)}}\n {{p.trigger}}\n >\n {{~yield to=\"label\"~}}\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{else}}\n <CommandElement\n @command={{@push}}\n {{disabled when=(if @disabled @disabled false)}}\n role=\"menuitem\"\n >\n {{~yield~}}\n </CommandElement>\n {{/if}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\n/* eslint-enable @typescript-eslint/no-use-before-define */ export interface MenuSignature {\n Element: HTMLDivElement;\n Args: {\n disabled?: boolean;\n };\n Blocks: {\n default: [MenuDefaultBlock];\n };\n}\nexport default class Menu extends Component<MenuSignature> {\n @tracked\n items: MenuItem[] = new TrackedArray();\n registerItem = (item1: MenuItem)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.push(item1);\n });\n };\n unregisterItem = (item1: MenuItem)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.splice(this.items.indexOf(item1), 1);\n });\n };\n static{\n template(`\n <div\n class={{styles.menu}}\n data-test-menu\n ...attributes\n {{menu items=this.items disabled=@disabled}}\n >\n {{yield\n (hash\n Item=(component\n MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem\n )\n )\n }}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9tZW51Lmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGVtYmVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG5leHQgfSBmcm9tICdAZW1iZXIvcnVubG9vcCc7XG5cbmltcG9ydCB7IG1lbnUgfSBmcm9tICdlbWJlci1hcmlhLXZveWFnZXInO1xuaW1wb3J0IHsgQ29tbWFuZEVsZW1lbnQgfSBmcm9tICdlbWJlci1jb21tYW5kJztcbmltcG9ydCB7IFRyYWNrZWRBcnJheSB9IGZyb20gJ3RyYWNrZWQtYnVpbHQtaW5zJztcblxuaW1wb3J0IHN0eWxlcyBmcm9tICdAaG9rdWxlYS9jb3JlL2NvbnRyb2xzLm1vZHVsZS5jc3MnO1xuXG5pbXBvcnQgZGlzYWJsZWQgZnJvbSAnLi4vLXByaXZhdGUvbW9kaWZpZXJzL2Rpc2FibGVkJztcbmltcG9ydCBwb3BvdmVyIGZyb20gJy4uL2hlbHBlcnMvcG9wb3Zlcic7XG5cbmltcG9ydCB0eXBlIHsgTWVudUl0ZW1BcmdzLCBNZW51SXRlbUJsb2NrcywgTWVudUl0ZW1FbGVtZW50IH0gZnJvbSAnLi8tbWVudSc7XG5pbXBvcnQgdHlwZSBPd25lciBmcm9tICdAZW1iZXIvb3duZXInO1xuaW1wb3J0IHR5cGUgeyBXaXRoQm91bmRBcmdzIH0gZnJvbSAnQGdsaW50L3RlbXBsYXRlJztcblxuZXhwb3J0IHR5cGUgTWVudURlZmF1bHRCbG9jayA9IHtcbiAgSXRlbTogV2l0aEJvdW5kQXJnczx0eXBlb2YgTWVudUl0ZW0sICdyZWdpc3Rlckl0ZW0nIHwgJ3VucmVnaXN0ZXJJdGVtJz47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogTWVudUl0ZW1FbGVtZW50O1xuICBBcmdzOiBNZW51SXRlbUFyZ3MgJiB7XG4gICAgcmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4gICAgdW5yZWdpc3Rlckl0ZW06IChpdGVtOiBNZW51SXRlbSkgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiBNZW51SXRlbUJsb2NrcyAmIHtcbiAgICBtZW51PzogW01lbnVEZWZhdWx0QmxvY2tdO1xuICB9O1xufVxuXG4vLyBiZWxvdyBhcmUgYXR0ZW1wdHMgYXQgY29uZGl0aW9uYWwgdHlwaW5nIGJhc2VkIG9uIHByb3ZpZGVkIGJsb2NrcyBpbiBkeW5hbWljIGludm9jYXRpb25cblxuLy8gdHlwZSBNZW51SXRlbUFyZ3MgPSB7XG4vLyAgIGRpc2FibGVkPzogYm9vbGVhbjtcbi8vICAgcmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4vLyAgIHVucmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4vLyB9O1xuXG4vLyBleHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtU2lnbmF0dXJlPFQgPSB7fT4ge1xuLy8gICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IEhUTUxBbmNob3JFbGVtZW50O1xuLy8gICBBcmdzOiBUIGV4dGVuZHMgeyBCbG9ja3M6IHsgZGVmYXVsdDogW10gfSB9XG4vLyAgICAgPyBNZW51SXRlbUFyZ3MgJiB7XG4vLyAgICAgICAgIHB1c2g6IENvbW1hbmRBY3Rpb247XG4vLyAgICAgICB9XG4vLyAgICAgOiBNZW51SXRlbUFyZ3M7XG4vLyAgIEJsb2NrczogVCBleHRlbmRzIHsgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdIH0gfVxuLy8gICAgID8geyBkZWZhdWx0OiBbXSB9XG4vLyAgICAgOiB7IGxhYmVsOiBbXTsgbWVudTogW01lbnVEZWZhdWx0QmxvY2tdIH07XG4vLyB9XG5cbi8vICAmIChcbi8vICAgfCB7XG4vLyAgICAgICBBcmdzOiBNZW51SXRlbUFyZ3MgJiB7XG4vLyAgICAgICAgIHB1c2g6IENvbW1hbmRBY3Rpb247XG4vLyAgICAgICB9O1xuLy8gICAgICAgQmxvY2tzOiB7XG4vLyAgICAgICAgIGRlZmF1bHQ6IFtdO1xuLy8gICAgICAgfTtcbi8vICAgICB9XG4vLyAgIHwge1xuLy8gICAgICAgQXJnczogTWVudUl0ZW1BcmdzO1xuLy8gICAgICAgQmxvY2tzOiB7XG4vLyAgICAgICAgIGxhYmVsOiBbXTtcbi8vICAgICAgICAgbWVudTogW01lbnVEZWZhdWx0QmxvY2tdO1xuLy8gICAgICAgfTtcbi8vICAgICB9XG4vLyApO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmNsYXNzIE1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50PE1lbnVJdGVtU2lnbmF0dXJlPiB7XG4gIGNvbnN0cnVjdG9yKG93bmVyOiBPd25lciwgYXJnczogTWVudUl0ZW1TaWduYXR1cmVbJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcblxuICAgIGFyZ3MucmVnaXN0ZXJJdGVtKHRoaXMpO1xuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHRoaXMsICgpID0-IHtcbiAgICAgIGFyZ3MudW5yZWdpc3Rlckl0ZW0odGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjaWYgKGhhcy1ibG9jayBcIm1lbnVcIil9fVxuICAgICAge3sjbGV0IChwb3BvdmVyIHBvc2l0aW9uPVwicmlnaHQtc3RhcnRcIikgYXMgfHB8fX1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1lbnVcIlxuICAgICAgICAgIHt7ZGlzYWJsZWQgd2hlbj0oaWYgQGRpc2FibGVkIEBkaXNhYmxlZCBmYWxzZSl9fVxuICAgICAgICAgIHt7cC50cmlnZ2VyfX1cbiAgICAgICAgPlxuICAgICAgICAgIHt7fnlpZWxkIHRvPVwibGFiZWxcIn59fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8TWVudSB7e3AudGFyZ2V0fX0gYXMgfG18PlxuICAgICAgICAgIHt7eWllbGQgbSB0bz1cIm1lbnVcIn19XG4gICAgICAgIDwvTWVudT5cbiAgICAgIHt7L2xldH19XG4gICAge3tlbHNlfX1cbiAgICAgIDxDb21tYW5kRWxlbWVudFxuICAgICAgICBAY29tbWFuZD17e0BwdXNofX1cbiAgICAgICAge3tkaXNhYmxlZCB3aGVuPShpZiBAZGlzYWJsZWQgQGRpc2FibGVkIGZhbHNlKX19XG4gICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICA-XG4gICAgICAgIHt7fnlpZWxkfn19XG4gICAgICA8L0NvbW1hbmRFbGVtZW50PlxuICAgIHt7L2lmfX1cbiAgPC90ZW1wbGF0ZT5cbn1cbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudVNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgZGlzYWJsZWQ_OiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbTWVudURlZmF1bHRCbG9ja107XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnUgZXh0ZW5kcyBDb21wb25lbnQ8TWVudVNpZ25hdHVyZT4ge1xuICBAdHJhY2tlZCBpdGVtczogTWVudUl0ZW1bXSA9IG5ldyBUcmFja2VkQXJyYXkoKTtcblxuICByZWdpc3Rlckl0ZW0gPSAoaXRlbTogTWVudUl0ZW0pID0-IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZW1iZXIvbm8tcnVubG9vcFxuICAgIG5leHQoKCkgPT4ge1xuICAgICAgdGhpcy5pdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHVucmVnaXN0ZXJJdGVtID0gKGl0ZW06IE1lbnVJdGVtKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgfSk7XG4gIH07XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPXt7c3R5bGVzLm1lbnV9fVxuICAgICAgZGF0YS10ZXN0LW1lbnVcbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgIHt7bWVudSBpdGVtcz10aGlzLml0ZW1zIGRpc2FibGVkPUBkaXNhYmxlZH19XG4gICAgPlxuICAgICAge3t5aWVsZFxuICAgICAgICAoaGFzaFxuICAgICAgICAgIEl0ZW09KGNvbXBvbmVudFxuICAgICAgICAgICAgTWVudUl0ZW0gcmVnaXN0ZXJJdGVtPXRoaXMucmVnaXN0ZXJJdGVtIHVucmVnaXN0ZXJJdGVtPXRoaXMudW5yZWdpc3Rlckl0ZW1cbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH19XG4gICAgPC9kaXY-XG4gIDwvdGVtcGxhdGU-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"],"names":["MenuItem","Component","constructor","owner1","args1","registerItem","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","scope","popover","disabled","Menu","CommandElement","strictMode","g","this","prototype","tracked","TrackedArray","i","void 0","item1","next","items","push","splice","indexOf","styles","menu","hash"],"mappings":";;;;;;;;;;;;;;;AAkCA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,IAAAA,QAAM,GAAN,MAAMA,QAAA,SAAiBC,SAAA,CAAU;EAC/BC,WAAYC,CAAAA,MAAY,EAAEC,KAA+B,EAAE;IACzD,KAAK,CAACD,MAAA,EAAOC,KAAA,CAAA,CAAA;IAEbA,KAAA,CAAKC,YAAY,CAAC,IAAI,CAAA,CAAA;IAEtBC,kBAAA,CAAmB,IAAI,EAAE,MAAA;MACvBF,KAAA,CAAKG,cAAc,CAAC,IAAI,CAAA,CAAA;AAC1B,KAAA,CAAA,CAAA;AACF,GAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CA0BA,okBAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;QAAAC,QAAA;QAAAC,IAAA;AAAAC,QAAAA,cAAAA;AAAA,OAAA,CAAA;MAAAC,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ,CAAA,CAAA;AACA;;AAYe,MAAMF,IAAA,SAAaZ,SAAA,CAAU;AAAA,EAAA;AAAAe,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,YACzCC,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4B,IAAIC,YAAA,EAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,MAAA,IAAAC,CAAA,CAAAJ,IAAA,YAAAK,KAAA,CAAA,EAAA;AAEjCjB,EAAAA,YAAA,GAAgBkB,KAAM,IAAA;AACpB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACH,KAAA,CAAA,CAAA;AAClB,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEAhB,EAAAA,cAAA,GAAkBgB,KAAM,IAAA;AACtB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,IAAI,CAACF,KAAK,CAACG,OAAO,CAACL,KAAA,CAAO,EAAA,CAAA,CAAA,CAAA;AAC9C,KAAA,CAAA,CAAA;AACF,GAAA,CAAA;AAEA,EAAA;IAAAf,oBAAA,CAAAC,kBAAA,CAeA,iPAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAmB,MAAA;QAAAC,IAAA;QAAAC,IAAA;AAAA/B,QAAAA,QAAAA;AAAA,OAAA,CAAA;MAAAe,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
1
+ {"version":3,"file":"menu.js","sources":["../../src/components/menu.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\nimport { service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\nimport { menu } from 'ember-aria-voyager';\nimport { CommandElement } from 'ember-command';\nimport { consume } from 'ember-provide-consume-context';\nimport { TrackedArray } from 'tracked-built-ins';\nimport styles from '@hokulea/core/controls.module.css';\nimport disabled from '../-private/modifiers/disabled';\nimport popover from '../helpers/popover';\nimport type { MenuItemArgs, MenuItemBlocks, MenuItemElement } from './-menu';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nimport type FastBoot from 'ember-cli-fastboot/services/fastboot';\nexport type MenuDefaultBlock = {\n Item: WithBoundArgs<typeof MenuItem, 'registerItem' | 'unregisterItem'>;\n};\nexport interface MenuItemSignature {\n Element: MenuItemElement;\n Args: MenuItemArgs & {\n registerItem: (item: MenuItem) => void;\n unregisterItem: (item: MenuItem) => void;\n };\n Blocks: MenuItemBlocks & {\n menu?: [MenuDefaultBlock];\n };\n}\n// below are attempts at conditional typing based on provided blocks in dynamic invocation\n// type MenuItemArgs = {\n// disabled?: boolean;\n// registerItem: (item: MenuItem) => void;\n// unregisterItem: (item: MenuItem) => void;\n// };\n// export interface MenuItemSignature<T = {}> {\n// Element: HTMLButtonElement | HTMLAnchorElement;\n// Args: T extends { Blocks: { default: [] } }\n// ? MenuItemArgs & {\n// push: CommandAction;\n// }\n// : MenuItemArgs;\n// Blocks: T extends { Blocks: { default: [] } }\n// ? { default: [] }\n// : { label: []; menu: [MenuDefaultBlock] };\n// }\n// & (\n// | {\n// Args: MenuItemArgs & {\n// push: CommandAction;\n// };\n// Blocks: {\n// default: [];\n// };\n// }\n// | {\n// Args: MenuItemArgs;\n// Blocks: {\n// label: [];\n// menu: [MenuDefaultBlock];\n// };\n// }\n// );\n/* eslint-disable @typescript-eslint/no-use-before-define */ let MenuItem = class MenuItem extends Component<MenuItemSignature> {\n constructor(owner1: Owner, args1: MenuItemSignature['Args']){\n super(owner1, args1);\n args1.registerItem(this);\n registerDestructor(this, ()=>{\n args1.unregisterItem(this);\n });\n }\n static{\n template(`\n {{#if (has-block \"menu\")}}\n {{#let (popover position=\"right-start\") as |p|}}\n <button\n type=\"button\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n {{disabled when=(if @disabled @disabled false)}}\n {{p.trigger}}\n >\n {{~yield to=\"label\"~}}\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{else}}\n <CommandElement\n @command={{@push}}\n {{disabled when=(if @disabled @disabled false)}}\n role=\"menuitem\"\n >\n {{~yield~}}\n </CommandElement>\n {{/if}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\n/* eslint-enable @typescript-eslint/no-use-before-define */ export interface MenuSignature {\n Element: HTMLDivElement;\n Args: {\n disabled?: boolean;\n };\n Blocks: {\n default: [MenuDefaultBlock];\n };\n}\nexport default class Menu extends Component<MenuSignature> {\n @service\n fastboot?: FastBoot;\n @consume('hokulea-app-header')\n withinAppHeader: boolean;\n @tracked\n items: MenuItem[] = new TrackedArray();\n get shallHide() {\n return this.fastboot?.isFastBoot && this.withinAppHeader === true;\n }\n registerItem = (item1: MenuItem)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.push(item1);\n });\n };\n unregisterItem = (item1: MenuItem)=>{\n // eslint-disable-next-line ember/no-runloop\n next(()=>{\n this.items.splice(this.items.indexOf(item1), 1);\n });\n };\n static{\n template(`\n <div\n class={{styles.menu}}\n data-test-menu\n ...attributes\n {{menu items=this.items disabled=@disabled}}\n style={{if this.shallHide (htmlSafe \"display: none\")}}\n >\n {{yield\n (hash\n Item=(component\n MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem\n )\n )\n }}\n </div>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9tZW51Lmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyB0cmFja2VkIH0gZnJvbSAnQGdsaW1tZXIvdHJhY2tpbmcnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGVtYmVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IGhhc2ggfSBmcm9tICdAZW1iZXIvaGVscGVyJztcbmltcG9ydCB7IG5leHQgfSBmcm9tICdAZW1iZXIvcnVubG9vcCc7XG5pbXBvcnQgeyBzZXJ2aWNlIH0gZnJvbSAnQGVtYmVyL3NlcnZpY2UnO1xuaW1wb3J0IHsgaHRtbFNhZmUgfSBmcm9tICdAZW1iZXIvdGVtcGxhdGUnO1xuXG5pbXBvcnQgeyBtZW51IH0gZnJvbSAnZW1iZXItYXJpYS12b3lhZ2VyJztcbmltcG9ydCB7IENvbW1hbmRFbGVtZW50IH0gZnJvbSAnZW1iZXItY29tbWFuZCc7XG5pbXBvcnQgeyBjb25zdW1lIH0gZnJvbSAnZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQnO1xuaW1wb3J0IHsgVHJhY2tlZEFycmF5IH0gZnJvbSAndHJhY2tlZC1idWlsdC1pbnMnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvY29udHJvbHMubW9kdWxlLmNzcyc7XG5cbmltcG9ydCBkaXNhYmxlZCBmcm9tICcuLi8tcHJpdmF0ZS9tb2RpZmllcnMvZGlzYWJsZWQnO1xuaW1wb3J0IHBvcG92ZXIgZnJvbSAnLi4vaGVscGVycy9wb3BvdmVyJztcblxuaW1wb3J0IHR5cGUgeyBNZW51SXRlbUFyZ3MsIE1lbnVJdGVtQmxvY2tzLCBNZW51SXRlbUVsZW1lbnQgfSBmcm9tICcuLy1tZW51JztcbmltcG9ydCB0eXBlIE93bmVyIGZyb20gJ0BlbWJlci9vd25lcic7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuaW1wb3J0IHR5cGUgRmFzdEJvb3QgZnJvbSAnZW1iZXItY2xpLWZhc3Rib290L3NlcnZpY2VzL2Zhc3Rib290JztcblxuZXhwb3J0IHR5cGUgTWVudURlZmF1bHRCbG9jayA9IHtcbiAgSXRlbTogV2l0aEJvdW5kQXJnczx0eXBlb2YgTWVudUl0ZW0sICdyZWdpc3Rlckl0ZW0nIHwgJ3VucmVnaXN0ZXJJdGVtJz47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogTWVudUl0ZW1FbGVtZW50O1xuICBBcmdzOiBNZW51SXRlbUFyZ3MgJiB7XG4gICAgcmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4gICAgdW5yZWdpc3Rlckl0ZW06IChpdGVtOiBNZW51SXRlbSkgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiBNZW51SXRlbUJsb2NrcyAmIHtcbiAgICBtZW51PzogW01lbnVEZWZhdWx0QmxvY2tdO1xuICB9O1xufVxuXG4vLyBiZWxvdyBhcmUgYXR0ZW1wdHMgYXQgY29uZGl0aW9uYWwgdHlwaW5nIGJhc2VkIG9uIHByb3ZpZGVkIGJsb2NrcyBpbiBkeW5hbWljIGludm9jYXRpb25cblxuLy8gdHlwZSBNZW51SXRlbUFyZ3MgPSB7XG4vLyAgIGRpc2FibGVkPzogYm9vbGVhbjtcbi8vICAgcmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4vLyAgIHVucmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4vLyB9O1xuXG4vLyBleHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtU2lnbmF0dXJlPFQgPSB7fT4ge1xuLy8gICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IEhUTUxBbmNob3JFbGVtZW50O1xuLy8gICBBcmdzOiBUIGV4dGVuZHMgeyBCbG9ja3M6IHsgZGVmYXVsdDogW10gfSB9XG4vLyAgICAgPyBNZW51SXRlbUFyZ3MgJiB7XG4vLyAgICAgICAgIHB1c2g6IENvbW1hbmRBY3Rpb247XG4vLyAgICAgICB9XG4vLyAgICAgOiBNZW51SXRlbUFyZ3M7XG4vLyAgIEJsb2NrczogVCBleHRlbmRzIHsgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdIH0gfVxuLy8gICAgID8geyBkZWZhdWx0OiBbXSB9XG4vLyAgICAgOiB7IGxhYmVsOiBbXTsgbWVudTogW01lbnVEZWZhdWx0QmxvY2tdIH07XG4vLyB9XG5cbi8vICAmIChcbi8vICAgfCB7XG4vLyAgICAgICBBcmdzOiBNZW51SXRlbUFyZ3MgJiB7XG4vLyAgICAgICAgIHB1c2g6IENvbW1hbmRBY3Rpb247XG4vLyAgICAgICB9O1xuLy8gICAgICAgQmxvY2tzOiB7XG4vLyAgICAgICAgIGRlZmF1bHQ6IFtdO1xuLy8gICAgICAgfTtcbi8vICAgICB9XG4vLyAgIHwge1xuLy8gICAgICAgQXJnczogTWVudUl0ZW1BcmdzO1xuLy8gICAgICAgQmxvY2tzOiB7XG4vLyAgICAgICAgIGxhYmVsOiBbXTtcbi8vICAgICAgICAgbWVudTogW01lbnVEZWZhdWx0QmxvY2tdO1xuLy8gICAgICAgfTtcbi8vICAgICB9XG4vLyApO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmNsYXNzIE1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50PE1lbnVJdGVtU2lnbmF0dXJlPiB7XG4gIGNvbnN0cnVjdG9yKG93bmVyOiBPd25lciwgYXJnczogTWVudUl0ZW1TaWduYXR1cmVbJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcblxuICAgIGFyZ3MucmVnaXN0ZXJJdGVtKHRoaXMpO1xuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHRoaXMsICgpID0-IHtcbiAgICAgIGFyZ3MudW5yZWdpc3Rlckl0ZW0odGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjaWYgKGhhcy1ibG9jayBcIm1lbnVcIil9fVxuICAgICAge3sjbGV0IChwb3BvdmVyIHBvc2l0aW9uPVwicmlnaHQtc3RhcnRcIikgYXMgfHB8fX1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1lbnVcIlxuICAgICAgICAgIHt7ZGlzYWJsZWQgd2hlbj0oaWYgQGRpc2FibGVkIEBkaXNhYmxlZCBmYWxzZSl9fVxuICAgICAgICAgIHt7cC50cmlnZ2VyfX1cbiAgICAgICAgPlxuICAgICAgICAgIHt7fnlpZWxkIHRvPVwibGFiZWxcIn59fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8TWVudSB7e3AudGFyZ2V0fX0gYXMgfG18PlxuICAgICAgICAgIHt7eWllbGQgbSB0bz1cIm1lbnVcIn19XG4gICAgICAgIDwvTWVudT5cbiAgICAgIHt7L2xldH19XG4gICAge3tlbHNlfX1cbiAgICAgIDxDb21tYW5kRWxlbWVudFxuICAgICAgICBAY29tbWFuZD17e0BwdXNofX1cbiAgICAgICAge3tkaXNhYmxlZCB3aGVuPShpZiBAZGlzYWJsZWQgQGRpc2FibGVkIGZhbHNlKX19XG4gICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICA-XG4gICAgICAgIHt7fnlpZWxkfn19XG4gICAgICA8L0NvbW1hbmRFbGVtZW50PlxuICAgIHt7L2lmfX1cbiAgPC90ZW1wbGF0ZT5cbn1cbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudVNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgZGlzYWJsZWQ_OiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbTWVudURlZmF1bHRCbG9ja107XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnUgZXh0ZW5kcyBDb21wb25lbnQ8TWVudVNpZ25hdHVyZT4ge1xuICBAc2VydmljZSBkZWNsYXJlIGZhc3Rib290PzogRmFzdEJvb3Q7XG5cbiAgQGNvbnN1bWUoJ2hva3VsZWEtYXBwLWhlYWRlcicpIGRlY2xhcmUgd2l0aGluQXBwSGVhZGVyOiBib29sZWFuO1xuXG4gIEB0cmFja2VkIGl0ZW1zOiBNZW51SXRlbVtdID0gbmV3IFRyYWNrZWRBcnJheSgpO1xuXG4gIGdldCBzaGFsbEhpZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmFzdGJvb3Q_LmlzRmFzdEJvb3QgJiYgdGhpcy53aXRoaW5BcHBIZWFkZXIgPT09IHRydWU7XG4gIH1cblxuICByZWdpc3Rlckl0ZW0gPSAoaXRlbTogTWVudUl0ZW0pID0-IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZW1iZXIvbm8tcnVubG9vcFxuICAgIG5leHQoKCkgPT4ge1xuICAgICAgdGhpcy5pdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHVucmVnaXN0ZXJJdGVtID0gKGl0ZW06IE1lbnVJdGVtKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgfSk7XG4gIH07XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPXt7c3R5bGVzLm1lbnV9fVxuICAgICAgZGF0YS10ZXN0LW1lbnVcbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgIHt7bWVudSBpdGVtcz10aGlzLml0ZW1zIGRpc2FibGVkPUBkaXNhYmxlZH19XG4gICAgICBzdHlsZT17e2lmIHRoaXMuc2hhbGxIaWRlIChodG1sU2FmZSBcImRpc3BsYXk6IG5vbmVcIil9fVxuICAgID5cbiAgICAgIHt7eWllbGRcbiAgICAgICAgKGhhc2hcbiAgICAgICAgICBJdGVtPShjb21wb25lbnRcbiAgICAgICAgICAgIE1lbnVJdGVtIHJlZ2lzdGVySXRlbT10aGlzLnJlZ2lzdGVySXRlbSB1bnJlZ2lzdGVySXRlbT10aGlzLnVucmVnaXN0ZXJJdGVtXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICB9fVxuICAgIDwvZGl2PlxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsT0FBTyxRQUFRLG9CQUFvQjtBQUM1QyxTQUFTLGtCQUFrQixRQUFRLHFCQUFxQjtBQUN4RCxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFDckMsU0FBUyxJQUFJLFFBQVEsaUJBQWlCO0FBQ3RDLFNBQVMsT0FBTyxRQUFRLGlCQUFpQjtBQUN6QyxTQUFTLFFBQVEsUUFBUSxrQkFBa0I7QUFFM0MsU0FBUyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVMsY0FBYyxRQUFRLGdCQUFnQjtBQUMvQyxTQUFTLE9BQU8sUUFBUSxnQ0FBZ0M7QUFDeEQsU0FBUyxZQUFZLFFBQVEsb0JBQW9CO0FBRWpELE9BQU8sWUFBWSxvQ0FBb0M7QUFFdkQsT0FBTyxjQUFjLGlDQUFpQztBQUN0RCxPQUFPLGFBQWEscUJB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"],"names":["MenuItem","Component","constructor","owner1","args1","registerItem","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","scope","popover","disabled","Menu","CommandElement","strictMode","g","prototype","service","i","void 0","consume","tracked","TrackedArray","shallHide","fastboot","isFastBoot","withinAppHeader","item1","next","items","push","splice","indexOf","styles","htmlSafe","menu","hash"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sources":["../../src/components/page.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { element } from 'ember-element-helper';\nimport { consume, provide } from 'ember-provide-consume-context';\nimport styles from '@hokulea/core/layouts.module.css';\nimport typo from '@hokulea/core/typography.module.css';\nimport { or } from '../-private/helpers';\nimport type { TOC } from '@ember/component/template-only';\nimport type { Link } from 'ember-link';\ninterface NavLinkSignature {\n Args: {\n link: Link;\n };\n Blocks: {\n default: [];\n };\n}\nconst NavLink: TOC<NavLinkSignature> = template(`\n <a href={{@link.url}} {{on \"click\" @link.open}} aria-current={{if @link.isActive \"page\"}}>\n {{yield}}\n </a>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nlet PageElement = class PageElement extends Component<{\n Element: HTMLElement;\n Blocks: {\n default: [];\n };\n}> {\n @consume('page-root')\n useMain: boolean;\n @provide('page-inside')\n get pageInside() {\n return true;\n }\n static{\n template(`\n {{#let (element (if this.useMain \"main\" \"section\")) as |Element|}}\n <Element ...attributes>\n {{yield}}\n </Element>\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\ninterface PageSignature {\n Element: HTMLElement;\n Args: {\n title?: string;\n description?: string;\n };\n Blocks: {\n title?: [];\n description?: [];\n nav?: [typeof NavLink];\n content?: [];\n default?: [];\n };\n}\nlet Page = class Page extends Component<PageSignature> {\n @consume('page-inside')\n insidePage: boolean;\n @provide('page-root')\n get rootPage() {\n return this.insidePage ? false : true;\n }\n static{\n template(`\n <PageElement class={{styles.page}} ...attributes data-test-page>\n {{#if\n (or @title @description (has-block \"title\") (has-block \"description\") (has-block \"nav\"))\n }}\n <header class={{styles.pageContent}}>\n <h1 class={{typo.display}}>\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else if @title}}\n {{@title}}\n {{/if}}\n </h1>\n\n {{#if (or (has-block \"description\") @description)}}\n <p>\n {{#if (has-block \"description\")}}\n {{yield to=\"description\"}}\n {{else if @description}}\n {{@description}}\n {{/if}}\n </p>\n {{/if}}\n\n {{#if (has-block \"nav\")}}\n <nav>\n {{yield NavLink to=\"nav\"}}\n </nav>\n {{/if}}\n </header>\n {{/if}}\n\n <div class=\"{{styles.pageContent}} {{styles.flow}}\" part=\"content\">\n {{yield to=\"content\"}}\n {{yield}}\n </div>\n </PageElement>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\nexport default Page;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9wYWdlLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBvbiB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XG5cbmltcG9ydCB7IGVsZW1lbnQgfSBmcm9tICdlbWJlci1lbGVtZW50LWhlbHBlcic7XG5pbXBvcnQgeyBjb25zdW1lLCBwcm92aWRlIH0gZnJvbSAnZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvbGF5b3V0cy5tb2R1bGUuY3NzJztcbmltcG9ydCB0eXBvIGZyb20gJ0Bob2t1bGVhL2NvcmUvdHlwb2dyYXBoeS5tb2R1bGUuY3NzJztcblxuaW1wb3J0IHsgb3IgfSBmcm9tICcuLi8tcHJpdmF0ZS9oZWxwZXJzJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuaW1wb3J0IHR5cGUgeyBMaW5rIH0gZnJvbSAnZW1iZXItbGluayc7XG5cbmludGVyZmFjZSBOYXZMaW5rU2lnbmF0dXJlIHtcbiAgQXJnczoge1xuICAgIGxpbms6IExpbms7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtdO1xuICB9O1xufVxuXG5jb25zdCBOYXZMaW5rOiBUT0M8TmF2TGlua1NpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIDxhIGhyZWY9e3tAbGluay51cmx9fSB7e29uIFwiY2xpY2tcIiBAbGluay5vcGVufX0gYXJpYS1jdXJyZW50PXt7aWYgQGxpbmsuaXNBY3RpdmUgXCJwYWdlXCJ9fT5cbiAgICB7e3lpZWxkfX1cbiAgPC9hPlxuPC90ZW1wbGF0ZT47XG5cbmNsYXNzIFBhZ2VFbGVtZW50IGV4dGVuZHMgQ29tcG9uZW50PHsgRWxlbWVudDogSFRNTEVsZW1lbnQ7IEJsb2NrczogeyBkZWZhdWx0OiBbXSB9IH0-IHtcbiAgQGNvbnN1bWUoJ3BhZ2Utcm9vdCcpIGRlY2xhcmUgdXNlTWFpbjogYm9vbGVhbjtcblxuICBAcHJvdmlkZSgncGFnZS1pbnNpZGUnKVxuICBnZXQgcGFnZUluc2lkZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNsZXQgKGVsZW1lbnQgKGlmIHRoaXMudXNlTWFpbiBcIm1haW5cIiBcInNlY3Rpb25cIikpIGFzIHxFbGVtZW50fH19XG4gICAgICA8RWxlbWVudCAuLi5hdHRyaWJ1dGVzPlxuICAgICAgICB7e3lpZWxkfX1cbiAgICAgIDwvRWxlbWVudD5cbiAgICB7ey9sZXR9fVxuICA8L3RlbXBsYXRlPlxufVxuXG5pbnRlcmZhY2UgUGFnZVNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdGl0bGU_OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24_OiBzdHJpbmc7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIHRpdGxlPzogW107XG4gICAgZGVzY3JpcHRpb24_OiBbXTtcbiAgICBuYXY_OiBbdHlwZW9mIE5hdkxpbmtdO1xuICAgIGNvbnRlbnQ_OiBbXTtcbiAgICBkZWZhdWx0PzogW107XG4gIH07XG59XG5cbmNsYXNzIFBhZ2UgZXh0ZW5kcyBDb21wb25lbnQ8UGFnZVNpZ25hdHVyZT4ge1xuICBAY29uc3VtZSgncGFnZS1pbnNpZGUnKSBkZWNsYXJlIGluc2lkZVBhZ2U6IGJvb2xlYW47XG5cbiAgQHByb3ZpZGUoJ3BhZ2Utcm9vdCcpXG4gIGdldCByb290UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnNpZGVQYWdlID8gZmFsc2UgOiB0cnVlO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxQYWdlRWxlbWVudCBjbGFzcz17e3N0eWxlcy5wYWdlfX0gLi4uYXR0cmlidXRlcyBkYXRhLXRlc3QtcGFnZT5cbiAgICAgIHt7I2lmXG4gICAgICAgIChvciBAdGl0bGUgQGRlc2NyaXB0aW9uIChoYXMtYmxvY2sgXCJ0aXRsZVwiKSAoaGFzLWJsb2NrIFwiZGVzY3JpcHRpb25cIikgKGhhcy1ibG9jayBcIm5hdlwiKSlcbiAgICAgIH19XG4gICAgICAgIDxoZWFkZXIgY2xhc3M9e3tzdHlsZXMucGFnZUNvbnRlbnR9fT5cbiAgICAgICAgICA8aDEgY2xhc3M9e3t0eXBvLmRpc3BsYXl9fT5cbiAgICAgICAgICAgIHt7I2lmIChoYXMtYmxvY2sgXCJ0aXRsZVwiKX19XG4gICAgICAgICAgICAgIHt7eWllbGQgdG89XCJ0aXRsZVwifX1cbiAgICAgICAgICAgIHt7ZWxzZSBpZiBAdGl0bGV9fVxuICAgICAgICAgICAgICB7e0B0aXRsZX19XG4gICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgPC9oMT5cblxuICAgICAgICAgIHt7I2lmIChvciAoaGFzLWJsb2NrIFwiZGVzY3JpcHRpb25cIikgQGRlc2NyaXB0aW9uKX19XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAge3sjaWYgKGhhcy1ibG9jayBcImRlc2NyaXB0aW9uXCIpfX1cbiAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVzY3JpcHRpb25cIn19XG4gICAgICAgICAgICAgIHt7ZWxzZSBpZiBAZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgICAgIHt7QGRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIHt7L2lmfX1cblxuICAgICAgICAgIHt7I2lmIChoYXMtYmxvY2sgXCJuYXZcIil9fVxuICAgICAgICAgICAgPG5hdj5cbiAgICAgICAgICAgICAge3t5aWVsZCBOYXZMaW5rIHRvPVwibmF2XCJ9fVxuICAgICAgICAgICAgPC9uYXY-XG4gICAgICAgICAge3svaWZ9fVxuICAgICAgICA8L2hlYWRlcj5cbiAgICAgIHt7L2lmfX1cblxuICAgICAgPGRpdiBjbGFzcz1cInt7c3R5bGVzLnBhZ2VDb250ZW50fX0ge3tzdHlsZXMuZmxvd319XCIgcGFydD1cImNvbnRlbnRcIj5cbiAgICAgICAge3t5aWVsZCB0bz1cImNvbnRlbnRcIn19XG4gICAgICAgIHt7eWllbGR9fVxuICAgICAgPC9kaXY-XG4gICAgPC9QYWdlRWxlbWVudD5cbiAgPC90ZW1wbGF0ZT5cbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFnZTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFFckMsU0FBUyxPQUFPLFFBQVEsdUJBQXVCO0FBQy9DLFNBQVMsT0FBTyxFQUFFLE9BQU8sUUFBUSxnQ0FBZ0M7QUFFakUsT0FBTyxZQUFZLG1DQUFtQztBQUN0RCxPQUFPLFVBQVUsc0NBQXNDO0FBRXZELFNBQVMsRUFBRSxRQUFRLHNCQUFzQjtBQUV6QyxjQUFjLEdBQUcsUUFBUSxpQ0FBaUM7QUFDMUQsY0FBYyxJQUFJLFFBQVEsYUFBYTtVQUU3QjtJQUNSO1FBQ0UsTUFBTTs7SUFFUjtRQUNFOzs7QUFJSixNQUFNLFNBQVMsSUFBSSxvQkFBb0IsU0FBVSxDQUFBOzs7O0FBSWpELENBQUEsRUFBQTtJQUFBO1FBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO0lBQUQ7QUFBQTtBQUVWLElBQUEsQUFBTSxjQUFOLE1BQU0sb0JBQW9CO0lBQVksU0FBUztJQUFhO1FBQVU7OztJQUNwRSxDQUFDLFFBQVE7SUFBcUIsU0FBUyxPQUFPLENBQUM7SUFFL0MsQ0FBQyxRQUFRO0lBQWMsSUFDbkIsYUFBYTtRQUNmLE9BQU87SUFDVDtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7OztFQU1WLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQU5BO0FBT1o7VUFFVTtJQUNSLFNBQVM7SUFDVDtRQUNFLFFBQVEsTUFBTTtRQUNkLGNBQWMsTUFBTTs7SUFFdEI7UUFDRTtRQUNBO1FBQ0EsY0FBYztRQUNkO1FBQ0E7OztBQUlKLElBQUEsQUFBTSxPQUFOLE1BQU0sYUFBYSxVQUFVO0lBQzNCLENBQUMsUUFBUTtJQUF1QixZQUFZLE9BQU8sQ0FBQztJQUVwRCxDQUFDLFFBQVE7SUFBWSxJQUNqQixXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVE7SUFDbkM7SUFFQSxNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcUNWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQXJDQTtBQXNDWjtBQUVBLGVBQWUsS0FBSyJ9"],"names":["NavLink","setComponentTemplate","precompileTemplate","scope","on","strictMode","templateOnly","PageElement","Component","consume","i","this","void 0","pageInside","n","prototype","provide","element","Page","g","rootPage","insidePage","styles","or","typo"],"mappings":";;;;;;;;;;;;AAuBA,MAAMA,OAAa,GAAAC,oBAAA,CAAoBC,kBAAA,CAIvC,6HAAA,EAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAC,IAAAA,EAAAA;AAAA,GAAA,CAAA;EAAAC,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA,CAAA;AAEV,IAAAC,WAAM,GAAN,MAAMA,WAAA,SAAoBC,SAAA;;AACvBC,IAAAA,CAAAA,CAAAA,IAAAA,CAAAA,SAAAA,EAAAA,SAAAA,EAAAA,CAAAA,OAAA,CAAQ,WAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAAC,IAAA,cAAAC,KAAA,CAAA,EAAA;AAET,EAAA,IACIC,aAAa;IACf,OAAO,IAAA,CAAA;AACT,GAAA;AAAA,EAAA;AAAAC,IAAAA,CAAA,CAAAH,IAAA,CAAAI,SAAA,EAAA,YAAA,EAAA,CAHCC,OAAA,CAAQ,aAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKT,EAAA;IAAAf,oBAAA,CAAAC,kBAAA,CAMA,oKAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAc,QAAAA,OAAAA;AAAA,OAAA,CAAA;MAAAZ,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ,CAAA,CAAA;AAiBA,IAAAa,IAAM,GAAN,MAAMA,IAAA,SAAaV,SAAA,CAAU;AAAA,EAAA;AAAAW,IAAAA,CAAA,CAAAR,IAAA,CAAAI,SAAA,EAAA,YAAA,EAAA,CAC1BN,OAAA,CAAQ,aAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAAC,IAAA,iBAAAC,KAAA,CAAA,EAAA;AAET,EAAA,IACIQ,WAAW;AACb,IAAA,OAAO,IAAI,CAACC,UAAU,GAAG,KAAQ,GAAA,IAAA,CAAA;AACnC,GAAA;AAAA,EAAA;AAAAP,IAAAA,CAAA,CAAAH,IAAA,CAAAI,SAAA,EAAA,UAAA,EAAA,CAHCC,OAAA,CAAQ,WAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKT,EAAA;IAAAf,oBAAA,CAAAC,kBAAA,CAqCA,qlCAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAI,WAAA;QAAAe,MAAA;QAAAC,EAAA;QAAAC,IAAA;AAAAxB,QAAAA,OAAAA;AAAA,OAAA,CAAA;MAAAK,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
1
+ {"version":3,"file":"page.js","sources":["../../src/components/page.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { on } from '@ember/modifier';\nimport { element } from 'ember-element-helper';\nimport { consume, provide } from 'ember-provide-consume-context';\nimport styles from '@hokulea/core/layouts.module.css';\nimport typo from '@hokulea/core/typography.module.css';\nimport { or } from '../-private/helpers';\nimport type { TOC } from '@ember/component/template-only';\nimport type { Link } from 'ember-link';\ninterface NavLinkSignature {\n Args: {\n link: Link;\n };\n Blocks: {\n default: [];\n };\n}\nconst NavLink: TOC<NavLinkSignature> = template(`\n <a href={{@link.url}} {{on \"click\" @link.open}} aria-current={{if @link.isActive \"page\"}}>\n {{yield}}\n </a>\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nlet PageElement = class PageElement extends Component<{\n Element: HTMLElement;\n Blocks: {\n default: [];\n };\n}> {\n @consume('page-root')\n useMain: boolean;\n @provide('page-inside')\n get pageInside() {\n return true;\n }\n static{\n template(`\n {{#let (element (if this.useMain \"main\" \"section\")) as |Element|}}\n <Element ...attributes>\n {{yield}}\n </Element>\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\ninterface PageSignature {\n Element: HTMLElement;\n Args: {\n title?: string;\n description?: string;\n };\n Blocks: {\n title?: [];\n description?: [];\n nav?: [typeof NavLink];\n content?: [];\n default?: [];\n };\n}\nlet Page = class Page extends Component<PageSignature> {\n @consume('page-inside')\n insidePage: boolean;\n @provide('page-root')\n get rootPage() {\n return this.insidePage ? false : true;\n }\n static{\n template(`\n <PageElement class={{styles.page}} ...attributes data-test-page>\n {{#if\n (or @title @description (has-block \"title\") (has-block \"description\") (has-block \"nav\"))\n }}\n <header class={{styles.pageContent}}>\n <h1 class={{typo.display}}>\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else if @title}}\n {{@title}}\n {{/if}}\n </h1>\n\n {{#if (or (has-block \"description\") @description)}}\n <p>\n {{#if (has-block \"description\")}}\n {{yield to=\"description\"}}\n {{else if @description}}\n {{@description}}\n {{/if}}\n </p>\n {{/if}}\n\n {{#if (has-block \"nav\")}}\n <nav>\n {{yield NavLink to=\"nav\"}}\n </nav>\n {{/if}}\n </header>\n {{/if}}\n\n <div class=\"{{styles.pageContent}} {{styles.flow}}\" part=\"content\">\n {{yield to=\"content\"}}\n {{yield}}\n </div>\n </PageElement>\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n};\nexport default Page;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvY29kZS9ob2t1bGVhL2hva3VsZWEvZW1iZXIvcGFja2FnZS9zcmMvY29tcG9uZW50cy9wYWdlLmd0cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tcG9uZW50IGZyb20gJ0BnbGltbWVyL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBvbiB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XG5cbmltcG9ydCB7IGVsZW1lbnQgfSBmcm9tICdlbWJlci1lbGVtZW50LWhlbHBlcic7XG5pbXBvcnQgeyBjb25zdW1lLCBwcm92aWRlIH0gZnJvbSAnZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvbGF5b3V0cy5tb2R1bGUuY3NzJztcbmltcG9ydCB0eXBvIGZyb20gJ0Bob2t1bGVhL2NvcmUvdHlwb2dyYXBoeS5tb2R1bGUuY3NzJztcblxuaW1wb3J0IHsgb3IgfSBmcm9tICcuLi8tcHJpdmF0ZS9oZWxwZXJzJztcblxuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuaW1wb3J0IHR5cGUgeyBMaW5rIH0gZnJvbSAnZW1iZXItbGluayc7XG5cbmludGVyZmFjZSBOYXZMaW5rU2lnbmF0dXJlIHtcbiAgQXJnczoge1xuICAgIGxpbms6IExpbms7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtdO1xuICB9O1xufVxuXG5jb25zdCBOYXZMaW5rOiBUT0M8TmF2TGlua1NpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIDxhIGhyZWY9e3tAbGluay51cmx9fSB7e29uIFwiY2xpY2tcIiBAbGluay5vcGVufX0gYXJpYS1jdXJyZW50PXt7aWYgQGxpbmsuaXNBY3RpdmUgXCJwYWdlXCJ9fT5cbiAgICB7e3lpZWxkfX1cbiAgPC9hPlxuPC90ZW1wbGF0ZT47XG5cbmNsYXNzIFBhZ2VFbGVtZW50IGV4dGVuZHMgQ29tcG9uZW50PHsgRWxlbWVudDogSFRNTEVsZW1lbnQ7IEJsb2NrczogeyBkZWZhdWx0OiBbXSB9IH0-IHtcbiAgQGNvbnN1bWUoJ3BhZ2Utcm9vdCcpIGRlY2xhcmUgdXNlTWFpbjogYm9vbGVhbjtcblxuICBAcHJvdmlkZSgncGFnZS1pbnNpZGUnKVxuICBnZXQgcGFnZUluc2lkZSgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNsZXQgKGVsZW1lbnQgKGlmIHRoaXMudXNlTWFpbiBcIm1haW5cIiBcInNlY3Rpb25cIikpIGFzIHxFbGVtZW50fH19XG4gICAgICA8RWxlbWVudCAuLi5hdHRyaWJ1dGVzPlxuICAgICAgICB7e3lpZWxkfX1cbiAgICAgIDwvRWxlbWVudD5cbiAgICB7ey9sZXR9fVxuICA8L3RlbXBsYXRlPlxufVxuXG5pbnRlcmZhY2UgUGFnZVNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdGl0bGU_OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24_OiBzdHJpbmc7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIHRpdGxlPzogW107XG4gICAgZGVzY3JpcHRpb24_OiBbXTtcbiAgICBuYXY_OiBbdHlwZW9mIE5hdkxpbmtdO1xuICAgIGNvbnRlbnQ_OiBbXTtcbiAgICBkZWZhdWx0PzogW107XG4gIH07XG59XG5cbmNsYXNzIFBhZ2UgZXh0ZW5kcyBDb21wb25lbnQ8UGFnZVNpZ25hdHVyZT4ge1xuICBAY29uc3VtZSgncGFnZS1pbnNpZGUnKSBkZWNsYXJlIGluc2lkZVBhZ2U6IGJvb2xlYW47XG5cbiAgQHByb3ZpZGUoJ3BhZ2Utcm9vdCcpXG4gIGdldCByb290UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pbnNpZGVQYWdlID8gZmFsc2UgOiB0cnVlO1xuICB9XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxQYWdlRWxlbWVudCBjbGFzcz17e3N0eWxlcy5wYWdlfX0gLi4uYXR0cmlidXRlcyBkYXRhLXRlc3QtcGFnZT5cbiAgICAgIHt7I2lmXG4gICAgICAgIChvciBAdGl0bGUgQGRlc2NyaXB0aW9uIChoYXMtYmxvY2sgXCJ0aXRsZVwiKSAoaGFzLWJsb2NrIFwiZGVzY3JpcHRpb25cIikgKGhhcy1ibG9jayBcIm5hdlwiKSlcbiAgICAgIH19XG4gICAgICAgIDxoZWFkZXIgY2xhc3M9e3tzdHlsZXMucGFnZUNvbnRlbnR9fT5cbiAgICAgICAgICA8aDEgY2xhc3M9e3t0eXBvLmRpc3BsYXl9fT5cbiAgICAgICAgICAgIHt7I2lmIChoYXMtYmxvY2sgXCJ0aXRsZVwiKX19XG4gICAgICAgICAgICAgIHt7eWllbGQgdG89XCJ0aXRsZVwifX1cbiAgICAgICAgICAgIHt7ZWxzZSBpZiBAdGl0bGV9fVxuICAgICAgICAgICAgICB7e0B0aXRsZX19XG4gICAgICAgICAgICB7ey9pZn19XG4gICAgICAgICAgPC9oMT5cblxuICAgICAgICAgIHt7I2lmIChvciAoaGFzLWJsb2NrIFwiZGVzY3JpcHRpb25cIikgQGRlc2NyaXB0aW9uKX19XG4gICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAge3sjaWYgKGhhcy1ibG9jayBcImRlc2NyaXB0aW9uXCIpfX1cbiAgICAgICAgICAgICAgICB7e3lpZWxkIHRvPVwiZGVzY3JpcHRpb25cIn19XG4gICAgICAgICAgICAgIHt7ZWxzZSBpZiBAZGVzY3JpcHRpb259fVxuICAgICAgICAgICAgICAgIHt7QGRlc2NyaXB0aW9ufX1cbiAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIHt7L2lmfX1cblxuICAgICAgICAgIHt7I2lmIChoYXMtYmxvY2sgXCJuYXZcIil9fVxuICAgICAgICAgICAgPG5hdj5cbiAgICAgICAgICAgICAge3t5aWVsZCBOYXZMaW5rIHRvPVwibmF2XCJ9fVxuICAgICAgICAgICAgPC9uYXY-XG4gICAgICAgICAge3svaWZ9fVxuICAgICAgICA8L2hlYWRlcj5cbiAgICAgIHt7L2lmfX1cblxuICAgICAgPGRpdiBjbGFzcz1cInt7c3R5bGVzLnBhZ2VDb250ZW50fX0ge3tzdHlsZXMuZmxvd319XCIgcGFydD1cImNvbnRlbnRcIj5cbiAgICAgICAge3t5aWVsZCB0bz1cImNvbnRlbnRcIn19XG4gICAgICAgIHt7eWllbGR9fVxuICAgICAgPC9kaXY-XG4gICAgPC9QYWdlRWxlbWVudD5cbiAgPC90ZW1wbGF0ZT5cbn1cblxuZXhwb3J0IGRlZmF1bHQgUGFnZTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLEVBQUUsUUFBUSxrQkFBa0I7QUFFckMsU0FBUyxPQUFPLFFBQVEsdUJBQXVCO0FBQy9DLFNBQVMsT0FBTyxFQUFFLE9BQU8sUUFBUSxnQ0FBZ0M7QUFFakUsT0FBTyxZQUFZLG1DQUFtQztBQUN0RCxPQUFPLFVBQVUsc0NBQXNDO0FBRXZELFNBQVMsRUFBRSxRQUFRLHNCQUFzQjtBQUV6QyxjQUFjLEdBQUcsUUFBUSxpQ0FBaUM7QUFDMUQsY0FBYyxJQUFJLFFBQVEsYUFBYTtVQUU3QjtJQUNSO1FBQ0UsTUFBTTs7SUFFUjtRQUNFOzs7QUFJSixNQUFNLFNBQVMsSUFBSSxvQkFBb0IsU0FBVSxDQUFBOzs7O0FBSWpELENBQUEsRUFBQTtJQUFBO1FBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO0lBQUQ7QUFBQTtBQUVWLElBQUEsQUFBTSxjQUFOLE1BQU0sb0JBQW9CO0lBQVksU0FBUztJQUFhO1FBQVU7OztJQUNwRSxDQUFDLFFBQVE7SUFBcUIsU0FBUyxPQUFPLENBQUM7SUFFL0MsQ0FBQyxRQUFRO0lBQWMsSUFDbkIsYUFBYTtRQUNmLE9BQU87SUFDVDtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7OztFQU1WLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQU5BO0FBT1o7VUFFVTtJQUNSLFNBQVM7SUFDVDtRQUNFLFFBQVEsTUFBTTtRQUNkLGNBQWMsTUFBTTs7SUFFdEI7UUFDRTtRQUNBO1FBQ0EsY0FBYztRQUNkO1FBQ0E7OztBQUlKLElBQUEsQUFBTSxPQUFOLE1BQU0sYUFBYSxVQUFVO0lBQzNCLENBQUMsUUFBUTtJQUF1QixZQUFZLE9BQU8sQ0FBQztJQUVwRCxDQUFDLFFBQVE7SUFBWSxJQUNqQixXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVE7SUFDbkM7SUFFQSxNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcUNWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQXJDQTtBQXNDWjtBQUVBLGVBQWUsS0FBSyJ9"],"names":["NavLink","setComponentTemplate","precompileTemplate","scope","on","strictMode","templateOnly","PageElement","Component","consume","i","void 0","pageInside","n","prototype","provide","element","Page","g","rootPage","insidePage","styles","or","typo"],"mappings":";;;;;;;;;;;;AAuBA,MAAMA,OAAa,GAAAC,oBAAA,CAAoBC,kBAAA,CAIvC,6HAAA,EAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;AAAAC,IAAAA,EAAAA;AAAA,GAAA,CAAA;EAAAC,UAAA,EAAA,IAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA,CAAA;AAEV,IAAAC,WAAM,GAAN,MAAMA,WAAA,SAAoBC,SAAA;;AACvBC,IAAAA,CAAAA,CAAAA,IAAAA,CAAAA,SAAAA,EAAAA,SAAAA,EAAAA,CAAAA,OAAA,CAAQ,WAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,QAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,SAAA,CAAA,EAAAC,KAAA,CAAA,EAAA;AAET,EAAA,IACIC,aAAa;IACf,OAAO,IAAA,CAAA;AACT,GAAA;AAAA,EAAA;AAAAC,IAAAA,CAAA,CAAAC,IAAAA,CAAAA,SAAA,EAHCC,YAAAA,EAAAA,CAAAA,OAAA,CAAQ,aAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKT,EAAA;IAAAd,oBAAA,CAAAC,kBAAA,CAMA,oKAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAa,QAAAA,OAAAA;AAAA,OAAA,CAAA;MAAAX,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ,CAAA,CAAA;AAiBA,IAAAY,IAAM,GAAN,MAAMA,IAAA,SAAaT,SAAA,CAAU;AAAA,EAAA;AAAAU,IAAAA,CAAA,CAAAJ,IAAAA,CAAAA,SAAA,EAC1BL,YAAAA,EAAAA,CAAAA,OAAA,CAAQ,aAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,WAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,KAAA,CAAA,EAAA;AAET,EAAA,IACIQ,WAAW;AACb,IAAA,OAAO,IAAI,CAACC,UAAU,GAAG,KAAQ,GAAA,IAAA,CAAA;AACnC,GAAA;AAAA,EAAA;AAAAP,IAAAA,CAAA,CAAAC,IAAAA,CAAAA,SAAA,EAHCC,UAAAA,EAAAA,CAAAA,OAAA,CAAQ,WAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKT,EAAA;IAAAd,oBAAA,CAAAC,kBAAA,CAqCA,qlCAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAI,WAAA;QAAAc,MAAA;QAAAC,EAAA;QAAAC,IAAA;AAAAvB,QAAAA,OAAAA;AAAA,OAAA,CAAA;MAAAK,UAAA,EAAA,IAAA;AAAU,KAAA,CAAA,EAAV,IAAW,CAAA,CAAA;AAAD,GAAA;AACZ;;;;"}
@@ -20,10 +20,13 @@ class State {
20
20
  #opened = (i(this, "opened"), void 0);
21
21
  }
22
22
  const popover = helper((_, {
23
- position
23
+ position,
24
+ opened,
25
+ closed
24
26
  }) => {
25
27
  const state = new State();
26
28
  let triggerElement = undefined;
29
+ let targetElement = undefined;
27
30
  return {
28
31
  trigger: modifier(element => {
29
32
  element.setAttribute('popovertarget', state.id);
@@ -33,6 +36,7 @@ const popover = helper((_, {
33
36
  manual
34
37
  }) => {
35
38
  element.setAttribute('popover', manual ? 'manual' : '');
39
+ targetElement = element;
36
40
  if (element.id) {
37
41
  state.id = element.id;
38
42
  } else {
@@ -40,20 +44,25 @@ const popover = helper((_, {
40
44
  }
41
45
  const toggleHandler = event => {
42
46
  state.opened = event.newState === 'open';
43
- if (position && event.newState === 'open' && triggerElement) {
44
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
45
- computePosition(triggerElement, element, {
46
- placement: position,
47
- middleware: [flip()]
48
- }).then(({
49
- x,
50
- y
51
- }) => {
52
- Object.assign(element.style, {
53
- left: `${String(x)}px`,
54
- top: `${String(y)}px`
47
+ if (event.newState === 'open') {
48
+ if (position && triggerElement) {
49
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
50
+ computePosition(triggerElement, element, {
51
+ placement: position,
52
+ middleware: [flip()]
53
+ }).then(({
54
+ x,
55
+ y
56
+ }) => {
57
+ Object.assign(element.style, {
58
+ left: `${String(x)}px`,
59
+ top: `${String(y)}px`
60
+ });
55
61
  });
56
- });
62
+ }
63
+ opened?.();
64
+ } else if (event.newState === 'closed') {
65
+ closed?.();
57
66
  }
58
67
  };
59
68
 
@@ -66,6 +75,12 @@ const popover = helper((_, {
66
75
  }),
67
76
  get opened() {
68
77
  return state.opened;
78
+ },
79
+ open: () => {
80
+ targetElement?.showPopover();
81
+ },
82
+ close: () => {
83
+ targetElement?.hidePopover();
69
84
  }
70
85
  };
71
86
  });
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","sources":["../../src/helpers/popover.ts"],"sourcesContent":["import { tracked } from '@glimmer/tracking';\nimport { helper } from '@ember/component/helper';\nimport { uniqueId } from '@ember/helper';\n\nimport { computePosition, flip, type Placement } from '@floating-ui/dom';\nimport { modifier } from 'ember-modifier';\n\nclass State {\n @tracked id = uniqueId();\n @tracked opened = false;\n}\n\nconst popover = helper((_, { position }: { position?: Placement }) => {\n const state = new State();\n let triggerElement: HTMLElement | undefined = undefined;\n\n return {\n trigger: modifier((element: HTMLElement) => {\n element.setAttribute('popovertarget', state.id);\n triggerElement = element;\n }),\n target: modifier((element: HTMLElement, __, { manual }: { manual?: boolean }) => {\n element.setAttribute('popover', manual ? 'manual' : '');\n\n if (element.id) {\n state.id = element.id;\n } else {\n element.id = state.id;\n }\n\n const toggleHandler = (event: ToggleEvent) => {\n state.opened = event.newState === 'open';\n\n if (position && event.newState === 'open' && triggerElement) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n computePosition(triggerElement, element, {\n placement: position,\n middleware: [flip()]\n }).then(({ x, y }): void => {\n Object.assign(element.style, {\n left: `${String(x)}px`,\n top: `${String(y)}px`\n });\n });\n }\n };\n\n // @ts-expect-error c'mon typescript\n element.addEventListener('toggle', toggleHandler);\n\n return () => {\n // @ts-expect-error c'mon typescript\n element.removeEventListener('toggle', toggleHandler);\n };\n }),\n get opened() {\n return state.opened;\n }\n };\n});\n\nexport default popover;\n"],"names":["State","g","this","prototype","tracked","uniqueId","i","void 0","popover","helper","_","position","state","triggerElement","undefined","trigger","modifier","element","setAttribute","id","target","__","manual","toggleHandler","event","opened","newState","computePosition","placement","middleware","flip","then","x","y","Object","assign","style","left","String","top","addEventListener","removeEventListener"],"mappings":";;;;;;;AAOA,MAAMA,KAAK,CAAC;AAAA,EAAA;AAAAC,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,SACTC,OAAO,CAAA,EAAA,YAAA;MAAA,OAAMC,QAAQ,EAAE,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,GAAA,IAAAC,CAAA,CAAAJ,IAAA,SAAAK,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAN,IAAAA,CAAA,CAAAC,IAAA,CAAAC,SAAA,aACvBC,OAAO,CAAA,EAAA,YAAA;AAAA,MAAA,OAAU,KAAK,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,OAAA,IAAAE,CAAA,CAAAJ,IAAA,aAAAK,KAAA,CAAA,EAAA;AACzB,CAAA;AAEA,MAAMC,OAAO,GAAGC,MAAM,CAAC,CAACC,CAAC,EAAE;AAAEC,EAAAA,QAAAA;AAAmC,CAAC,KAAK;AACpE,EAAA,MAAMC,KAAK,GAAG,IAAIZ,KAAK,EAAE,CAAA;EACzB,IAAIa,cAAuC,GAAGC,SAAS,CAAA;EAEvD,OAAO;AACLC,IAAAA,OAAO,EAAEC,QAAQ,CAAEC,OAAoB,IAAK;MAC1CA,OAAO,CAACC,YAAY,CAAC,eAAe,EAAEN,KAAK,CAACO,EAAE,CAAC,CAAA;AAC/CN,MAAAA,cAAc,GAAGI,OAAO,CAAA;AAC1B,KAAC,CAAC;AACFG,IAAAA,MAAM,EAAEJ,QAAQ,CAAC,CAACC,OAAoB,EAAEI,EAAE,EAAE;AAAEC,MAAAA,MAAAA;AAA6B,KAAC,KAAK;MAC/EL,OAAO,CAACC,YAAY,CAAC,SAAS,EAAEI,MAAM,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAA;MAEvD,IAAIL,OAAO,CAACE,EAAE,EAAE;AACdP,QAAAA,KAAK,CAACO,EAAE,GAAGF,OAAO,CAACE,EAAE,CAAA;AACvB,OAAC,MAAM;AACLF,QAAAA,OAAO,CAACE,EAAE,GAAGP,KAAK,CAACO,EAAE,CAAA;AACvB,OAAA;MAEA,MAAMI,aAAa,GAAIC,KAAkB,IAAK;AAC5CZ,QAAAA,KAAK,CAACa,MAAM,GAAGD,KAAK,CAACE,QAAQ,KAAK,MAAM,CAAA;QAExC,IAAIf,QAAQ,IAAIa,KAAK,CAACE,QAAQ,KAAK,MAAM,IAAIb,cAAc,EAAE;AAC3D;AACAc,UAAAA,eAAe,CAACd,cAAc,EAAEI,OAAO,EAAE;AACvCW,YAAAA,SAAS,EAAEjB,QAAQ;AACnBkB,YAAAA,UAAU,EAAE,CAACC,IAAI,EAAE,CAAA;AACrB,WAAC,CAAC,CAACC,IAAI,CAAC,CAAC;YAAEC,CAAC;AAAEC,YAAAA,CAAAA;AAAE,WAAC,KAAW;AAC1BC,YAAAA,MAAM,CAACC,MAAM,CAAClB,OAAO,CAACmB,KAAK,EAAE;AAC3BC,cAAAA,IAAI,EAAE,CAAGC,EAAAA,MAAM,CAACN,CAAC,CAAC,CAAI,EAAA,CAAA;AACtBO,cAAAA,GAAG,EAAE,CAAA,EAAGD,MAAM,CAACL,CAAC,CAAC,CAAA,EAAA,CAAA;AACnB,aAAC,CAAC,CAAA;AACJ,WAAC,CAAC,CAAA;AACJ,SAAA;OACD,CAAA;;AAED;AACAhB,MAAAA,OAAO,CAACuB,gBAAgB,CAAC,QAAQ,EAAEjB,aAAa,CAAC,CAAA;AAEjD,MAAA,OAAO,MAAM;AACX;AACAN,QAAAA,OAAO,CAACwB,mBAAmB,CAAC,QAAQ,EAAElB,aAAa,CAAC,CAAA;OACrD,CAAA;AACH,KAAC,CAAC;IACF,IAAIE,MAAMA,GAAG;MACX,OAAOb,KAAK,CAACa,MAAM,CAAA;AACrB,KAAA;GACD,CAAA;AACH,CAAC;;;;"}
1
+ {"version":3,"file":"popover.js","sources":["../../src/helpers/popover.ts"],"sourcesContent":["import { tracked } from '@glimmer/tracking';\nimport { helper } from '@ember/component/helper';\nimport { uniqueId } from '@ember/helper';\n\nimport { computePosition, flip, type Placement } from '@floating-ui/dom';\nimport { modifier } from 'ember-modifier';\n\ninterface PopoverArgs {\n position?: Placement;\n opened?: () => void;\n closed?: () => void;\n}\n\nclass State {\n @tracked id = uniqueId();\n @tracked opened = false;\n}\n\nconst popover = helper((_, { position, opened, closed }: PopoverArgs) => {\n const state = new State();\n let triggerElement: HTMLElement | undefined = undefined;\n let targetElement: HTMLElement | undefined = undefined;\n\n return {\n trigger: modifier((element: HTMLElement) => {\n element.setAttribute('popovertarget', state.id);\n triggerElement = element;\n }),\n target: modifier((element: HTMLElement, __, { manual }: { manual?: boolean }) => {\n element.setAttribute('popover', manual ? 'manual' : '');\n targetElement = element;\n\n if (element.id) {\n state.id = element.id;\n } else {\n element.id = state.id;\n }\n\n const toggleHandler = (event: ToggleEvent) => {\n state.opened = event.newState === 'open';\n\n if (event.newState === 'open') {\n if (position && triggerElement) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n computePosition(triggerElement, element, {\n placement: position,\n middleware: [flip()]\n }).then(({ x, y }): void => {\n Object.assign(element.style, {\n left: `${String(x)}px`,\n top: `${String(y)}px`\n });\n });\n }\n\n opened?.();\n } else if (event.newState === 'closed') {\n closed?.();\n }\n };\n\n // @ts-expect-error c'mon typescript\n element.addEventListener('toggle', toggleHandler);\n\n return () => {\n // @ts-expect-error c'mon typescript\n element.removeEventListener('toggle', toggleHandler);\n };\n }),\n get opened() {\n return state.opened;\n },\n open: () => {\n targetElement?.showPopover();\n },\n close: () => {\n targetElement?.hidePopover();\n }\n };\n});\n\nexport default popover;\n"],"names":["State","g","prototype","tracked","uniqueId","i","void 0","popover","helper","_","position","opened","closed","state","triggerElement","undefined","targetElement","trigger","modifier","element","setAttribute","id","target","__","manual","toggleHandler","event","newState","computePosition","placement","middleware","flip","then","x","y","Object","assign","style","left","String","top","addEventListener","removeEventListener","open","showPopover","close","hidePopover"],"mappings":"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"}
@@ -15,6 +15,28 @@ class IconPageObject extends PageObject {
15
15
  }
16
16
  }
17
17
 
18
+ class IconButtonPageObject extends PageObject {
19
+ static SELECTOR = '[data-test-icon-button]';
20
+ constructor(selector, parent, index) {
21
+ super(selector ?? IconButtonPageObject.SELECTOR, parent, index);
22
+ }
23
+ get intent() {
24
+ return this.element?.getAttribute('data-intent');
25
+ }
26
+ get importance() {
27
+ return this.element?.getAttribute('data-importance');
28
+ }
29
+ get spacing() {
30
+ return this.element?.getAttribute('data-spacing');
31
+ }
32
+ async push() {
33
+ if (this.element) {
34
+ await click(this.element);
35
+ }
36
+ }
37
+ $icon = selector('[data-test-icon-button="icon"]', IconPageObject);
38
+ }
39
+
18
40
  class MenuItemPageObject extends PageObject {
19
41
  static SELECTOR = '[role="menuitem"]';
20
42
  constructor(selector, parent, index) {
@@ -98,10 +120,8 @@ class AppHeaderPageObject extends PageObject {
98
120
  return selector(`${this.#prefix} [part="aux"]`);
99
121
  }
100
122
  $menu = selector('[part="menu"]', class extends PageObject {
101
- $toggle = selector('[data-test-toggle]', class extends PageObject {
102
- $icon = selector('[data-test-toggle="icon"]', IconPageObject);
103
- });
104
- $popover = selector('section', class extends PageObject {
123
+ $toggle = selector('[data-test-toggle]', IconButtonPageObject);
124
+ $popover = selector('[popover]', class extends PageObject {
105
125
  get expanded() {
106
126
  return Boolean(this.element?.matches(':popover-open'));
107
127
  }
@@ -303,28 +323,6 @@ class FormPageObject extends PageObject {
303
323
  }
304
324
  }
305
325
 
306
- class IconButtonPageObject extends PageObject {
307
- static SELECTOR = '[data-test-icon-button]';
308
- constructor(selector, parent, index) {
309
- super(selector ?? IconButtonPageObject.SELECTOR, parent, index);
310
- }
311
- get intent() {
312
- return this.element?.getAttribute('data-intent');
313
- }
314
- get importance() {
315
- return this.element?.getAttribute('data-importance');
316
- }
317
- get spacing() {
318
- return this.element?.getAttribute('data-spacing');
319
- }
320
- async push() {
321
- if (this.element) {
322
- await click(this.element);
323
- }
324
- }
325
- $icon = selector('[data-test-icon-button="icon"]', IconPageObject);
326
- }
327
-
328
326
  class PagePageObject extends PageObject {
329
327
  static SELECTOR = '[data-test-page]';
330
328
  constructor(selector, parent, index) {