@hokulea/ember 0.6.2 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +178 -17
- package/addon-main.cjs +5 -0
- package/declarations/-private/form/components/{description.d.ts → description.gts.d.ts} +1 -1
- package/declarations/-private/form/components/description.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/{errors.d.ts → errors.gts.d.ts} +2 -2
- package/declarations/-private/form/components/errors.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/{field.d.ts → field.gts.d.ts} +22 -16
- package/declarations/-private/form/components/field.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{checkbox.d.ts → checkbox.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/checkbox.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{currency.d.ts → currency.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/currency.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{date.d.ts → date.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/date.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{email.d.ts → email.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/email.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{list.d.ts → list.gts.d.ts} +3 -3
- package/declarations/-private/form/components/fields/list.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{multiple-choice.d.ts → multiple-choice.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/multiple-choice.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{number.d.ts → number.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/number.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{password.d.ts → password.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/password.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{phone.d.ts → phone.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/phone.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{range.d.ts → range.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/range.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{select.d.ts → select.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/select.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{singular-choice.d.ts → singular-choice.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/singular-choice.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{text-area.d.ts → text-area.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/text-area.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{text.d.ts → text.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/text.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/{label.d.ts → label.gts.d.ts} +1 -1
- package/declarations/-private/form/components/label.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/{reset.d.ts → reset.gts.d.ts} +1 -1
- package/declarations/-private/form/components/reset.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/{submit.d.ts → submit.gts.d.ts} +1 -1
- package/declarations/-private/form/components/submit.gts.d.ts.map +1 -0
- package/declarations/-private/form/modifiers/capture-events.d.ts.map +1 -1
- package/declarations/-private/form/modifiers/manage-validation.d.ts +8 -5
- package/declarations/-private/form/modifiers/manage-validation.d.ts.map +1 -1
- package/declarations/-private/helpers.d.ts.map +1 -1
- package/declarations/-private/stories.d.ts +2 -0
- package/declarations/-private/stories.d.ts.map +1 -0
- package/declarations/components/-stories.d.ts +3 -0
- package/declarations/components/-stories.d.ts.map +1 -0
- package/declarations/components/{app-header.d.ts → app-header.gts.d.ts} +1 -2
- package/declarations/components/app-header.gts.d.ts.map +1 -0
- package/declarations/components/{box.d.ts → box.gts.d.ts} +1 -1
- package/declarations/components/box.gts.d.ts.map +1 -0
- package/declarations/components/{button.d.ts → button.gts.d.ts} +1 -1
- package/declarations/components/button.gts.d.ts.map +1 -0
- package/declarations/components/{card.d.ts → card.gts.d.ts} +1 -1
- package/declarations/components/card.gts.d.ts.map +1 -0
- package/declarations/components/{checkbox.d.ts → checkbox.gts.d.ts} +2 -2
- package/declarations/components/checkbox.gts.d.ts.map +1 -0
- package/declarations/components/{currency-input.d.ts → currency-input.gts.d.ts} +2 -2
- package/declarations/components/currency-input.gts.d.ts.map +1 -0
- package/declarations/components/{date-input.d.ts → date-input.gts.d.ts} +2 -2
- package/declarations/components/date-input.gts.d.ts.map +1 -0
- package/declarations/components/{email-input.d.ts → email-input.gts.d.ts} +2 -2
- package/declarations/components/email-input.gts.d.ts.map +1 -0
- package/declarations/components/{form.d.ts → form.gts.d.ts} +27 -31
- package/declarations/components/form.gts.d.ts.map +1 -0
- package/declarations/components/{icon-button.d.ts → icon-button.gts.d.ts} +4 -5
- package/declarations/components/icon-button.gts.d.ts.map +1 -0
- package/declarations/components/icon.gts.d.ts +14 -0
- package/declarations/components/icon.gts.d.ts.map +1 -0
- package/declarations/components/{input-builder.d.ts → input-builder.gts.d.ts} +1 -1
- package/declarations/components/input-builder.gts.d.ts.map +1 -0
- package/declarations/components/{list.d.ts → list.gts.d.ts} +1 -1
- package/declarations/components/list.gts.d.ts.map +1 -0
- package/declarations/components/{menu.d.ts → menu.gts.d.ts} +3 -4
- package/declarations/components/menu.gts.d.ts.map +1 -0
- package/declarations/components/{number-input.d.ts → number-input.gts.d.ts} +2 -2
- package/declarations/components/number-input.gts.d.ts.map +1 -0
- package/declarations/components/{page.d.ts → page.gts.d.ts} +6 -2
- package/declarations/components/page.gts.d.ts.map +1 -0
- package/declarations/components/{password-input.d.ts → password-input.gts.d.ts} +2 -2
- package/declarations/components/password-input.gts.d.ts.map +1 -0
- package/declarations/components/{phone-input.d.ts → phone-input.gts.d.ts} +2 -2
- package/declarations/components/phone-input.gts.d.ts.map +1 -0
- package/declarations/components/{popover.d.ts → popover.gts.d.ts} +1 -1
- package/declarations/components/popover.gts.d.ts.map +1 -0
- package/declarations/components/{radio.d.ts → radio.gts.d.ts} +2 -2
- package/declarations/components/radio.gts.d.ts.map +1 -0
- package/declarations/components/{range-input.d.ts → range-input.gts.d.ts} +2 -2
- package/declarations/components/range-input.gts.d.ts.map +1 -0
- package/declarations/components/{section.d.ts → section.gts.d.ts} +1 -1
- package/declarations/components/section.gts.d.ts.map +1 -0
- package/declarations/components/{select.d.ts → select.gts.d.ts} +1 -1
- package/declarations/components/select.gts.d.ts.map +1 -0
- package/declarations/components/{tabs.d.ts → tabs.gts.d.ts} +6 -5
- package/declarations/components/tabs.gts.d.ts.map +1 -0
- package/declarations/components/{text-area.d.ts → text-area.gts.d.ts} +2 -2
- package/declarations/components/text-area.gts.d.ts.map +1 -0
- package/declarations/components/{text-input.d.ts → text-input.gts.d.ts} +2 -2
- package/declarations/components/text-input.gts.d.ts.map +1 -0
- package/declarations/index.d.ts +11 -11
- package/declarations/index.d.ts.map +1 -1
- package/declarations/services/-hokulea.d.ts +5 -0
- package/declarations/services/-hokulea.d.ts.map +1 -0
- package/declarations/template-registry.d.ts +1 -1
- package/declarations/template-registry.d.ts.map +1 -1
- package/declarations/test-support/index.d.ts +18 -18
- package/declarations/test-support/index.d.ts.map +1 -1
- package/declarations/test-support/page-objects/-private/choices.d.ts +1 -2
- package/declarations/test-support/page-objects/-private/choices.d.ts.map +1 -1
- package/declarations/test-support/page-objects/-private/field.d.ts +11 -33
- package/declarations/test-support/page-objects/-private/field.d.ts.map +1 -1
- package/declarations/test-support/page-objects/app-header.d.ts +3 -3
- package/declarations/test-support/page-objects/app-header.d.ts.map +1 -1
- package/declarations/test-support/page-objects/choice.d.ts +1 -1
- package/declarations/test-support/page-objects/choice.d.ts.map +1 -1
- package/declarations/test-support/page-objects/form.d.ts +4 -2
- package/declarations/test-support/page-objects/form.d.ts.map +1 -1
- package/declarations/test-support/page-objects/icon-button.d.ts +1 -1
- package/declarations/test-support/page-objects/icon-button.d.ts.map +1 -1
- package/declarations/test-support/page-objects/icon.d.ts +1 -2
- package/declarations/test-support/page-objects/icon.d.ts.map +1 -1
- package/declarations/test-support/page-objects/input-builder.d.ts +2 -2
- package/declarations/test-support/page-objects/input-builder.d.ts.map +1 -1
- package/declarations/test-support/page-objects/menu.d.ts +1 -1
- package/declarations/test-support/page-objects/menu.d.ts.map +1 -1
- package/declarations/test-support/page-objects/tabs.d.ts.map +1 -1
- package/declarations/test-support/page-objects/text-area.d.ts +1 -1
- package/declarations/test-support/page-objects/text-area.d.ts.map +1 -1
- package/dist/{-button-CJL1yb2d.js → -button-KUaJCQaB.js} +2 -2
- package/dist/-button-KUaJCQaB.js.map +1 -0
- package/dist/-input-DGR-n9U_.js.map +1 -1
- package/dist/_app_/services/-hokulea.js +1 -0
- package/dist/components/app-header.js +35 -40
- package/dist/components/app-header.js.map +1 -1
- package/dist/components/box.js +3 -3
- package/dist/components/box.js.map +1 -1
- package/dist/components/button.js +4 -4
- package/dist/components/button.js.map +1 -1
- package/dist/components/card.js +3 -3
- package/dist/components/card.js.map +1 -1
- package/dist/components/checkbox.js +3 -3
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/currency-input.js +3 -3
- package/dist/components/currency-input.js.map +1 -1
- package/dist/components/date-input.js +3 -3
- package/dist/components/date-input.js.map +1 -1
- package/dist/components/email-input.js +3 -3
- package/dist/components/email-input.js.map +1 -1
- package/dist/components/form.js +287 -295
- package/dist/components/form.js.map +1 -1
- package/dist/components/icon-button.js +8 -6
- package/dist/components/icon-button.js.map +1 -1
- package/dist/components/icon.js +9 -34
- package/dist/components/icon.js.map +1 -1
- package/dist/components/input-builder.js +2 -2
- package/dist/components/input-builder.js.map +1 -1
- package/dist/components/list.js +17 -17
- package/dist/components/list.js.map +1 -1
- package/dist/components/menu.js +18 -23
- package/dist/components/menu.js.map +1 -1
- package/dist/components/number-input.js +3 -3
- package/dist/components/number-input.js.map +1 -1
- package/dist/components/page.js +33 -35
- package/dist/components/page.js.map +1 -1
- package/dist/components/password-input.js +3 -3
- package/dist/components/password-input.js.map +1 -1
- package/dist/components/phone-input.js +3 -3
- package/dist/components/phone-input.js.map +1 -1
- package/dist/components/popover.js +2 -2
- package/dist/components/popover.js.map +1 -1
- package/dist/components/radio.js +3 -3
- package/dist/components/radio.js.map +1 -1
- package/dist/components/range-input.js +15 -15
- package/dist/components/range-input.js.map +1 -1
- package/dist/components/section.js +10 -10
- package/dist/components/section.js.map +1 -1
- package/dist/components/select.js +10 -10
- package/dist/components/select.js.map +1 -1
- package/dist/components/tabs.js +28 -27
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/text-area.js +3 -3
- package/dist/components/text-area.js.map +1 -1
- package/dist/components/text-input.js +3 -3
- package/dist/components/text-input.js.map +1 -1
- package/dist/disabled-B_FQ0Z51.js.map +1 -1
- package/dist/helpers/popover.js +3 -3
- package/dist/helpers/popover.js.map +1 -1
- package/dist/{helpers-DApiJrHl.js → helpers-DS9du02l.js} +4 -2
- package/dist/helpers-DS9du02l.js.map +1 -0
- package/dist/index.js +9 -9
- package/dist/services/-hokulea.js +15 -0
- package/dist/services/-hokulea.js.map +1 -0
- package/dist/test-support/index.js +12 -14
- package/dist/test-support/index.js.map +1 -1
- package/package.json +93 -84
- package/addon-main.js +0 -49
- package/declarations/-private/form/components/description.d.ts.map +0 -1
- package/declarations/-private/form/components/errors.d.ts.map +0 -1
- package/declarations/-private/form/components/field.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/checkbox.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/currency.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/date.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/email.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/list.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/multiple-choice.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/number.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/password.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/phone.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/range.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/select.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/singular-choice.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/text-area.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/text.d.ts.map +0 -1
- package/declarations/-private/form/components/label.d.ts.map +0 -1
- package/declarations/-private/form/components/reset.d.ts.map +0 -1
- package/declarations/-private/form/components/submit.d.ts.map +0 -1
- package/declarations/components/app-header.d.ts.map +0 -1
- package/declarations/components/box.d.ts.map +0 -1
- package/declarations/components/button.d.ts.map +0 -1
- package/declarations/components/card.d.ts.map +0 -1
- package/declarations/components/checkbox.d.ts.map +0 -1
- package/declarations/components/currency-input.d.ts.map +0 -1
- package/declarations/components/date-input.d.ts.map +0 -1
- package/declarations/components/email-input.d.ts.map +0 -1
- package/declarations/components/form.d.ts.map +0 -1
- package/declarations/components/icon-button.d.ts.map +0 -1
- package/declarations/components/icon.d.ts +0 -13698
- package/declarations/components/icon.d.ts.map +0 -1
- package/declarations/components/input-builder.d.ts.map +0 -1
- package/declarations/components/list.d.ts.map +0 -1
- package/declarations/components/menu.d.ts.map +0 -1
- package/declarations/components/number-input.d.ts.map +0 -1
- package/declarations/components/page.d.ts.map +0 -1
- package/declarations/components/password-input.d.ts.map +0 -1
- package/declarations/components/phone-input.d.ts.map +0 -1
- package/declarations/components/popover.d.ts.map +0 -1
- package/declarations/components/radio.d.ts.map +0 -1
- package/declarations/components/range-input.d.ts.map +0 -1
- package/declarations/components/section.d.ts.map +0 -1
- package/declarations/components/select.d.ts.map +0 -1
- package/declarations/components/tabs.d.ts.map +0 -1
- package/declarations/components/text-area.d.ts.map +0 -1
- package/declarations/components/text-input.d.ts.map +0 -1
- package/dist/-button-CJL1yb2d.js.map +0 -1
- package/dist/helpers-DApiJrHl.js.map +0 -1
- package/lib/config.js +0 -10
- package/lib/css-modules-plugin.js +0 -43
- package/lib/index.js +0 -30
- package/lib/webpack-asset-loader-plugin.js +0 -23
|
@@ -3,20 +3,23 @@ import { assert } from '@ember/debug';
|
|
|
3
3
|
import CommandElement from 'ember-command/components/command-element';
|
|
4
4
|
import { element } from 'ember-element-helper';
|
|
5
5
|
import styles from '@hokulea/core/actions.module.css';
|
|
6
|
-
import { n as not } from '../helpers-
|
|
6
|
+
import { n as not } from '../helpers-DS9du02l.js';
|
|
7
7
|
import { d as disabled } from '../disabled-B_FQ0Z51.js';
|
|
8
|
-
import { i as isLink } from '../-button-
|
|
8
|
+
import { i as isLink } from '../-button-KUaJCQaB.js';
|
|
9
9
|
import Icon from './icon.js';
|
|
10
10
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
11
11
|
import { setComponentTemplate } from '@ember/component';
|
|
12
12
|
|
|
13
13
|
class IconButton extends Component {
|
|
14
14
|
get label() {
|
|
15
|
-
assert('Please provide a `@label` to `<IconButton>` for accessibility reasons.',
|
|
15
|
+
assert('Please provide a `@label` to `<IconButton>` for accessibility reasons.',
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
17
|
+
this.args.label !== undefined);
|
|
16
18
|
return this.args.label;
|
|
17
19
|
}
|
|
18
20
|
static {
|
|
19
|
-
setComponentTemplate(precompileTemplate("\n <CommandElement @element={{element \"button\"}} @command={{@push}} class=\"{{styles.iconButton}}\" type={{if (not (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}}
|
|
21
|
+
setComponentTemplate(precompileTemplate("\n <CommandElement @element={{element \"button\"}} @command={{@push}} class=\"{{styles.iconButton}}\" type={{if (not (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}} data-test-icon-button=\"icon\" />\n </CommandElement>\n ", {
|
|
22
|
+
strictMode: true,
|
|
20
23
|
scope: () => ({
|
|
21
24
|
CommandElement,
|
|
22
25
|
element,
|
|
@@ -25,8 +28,7 @@ class IconButton extends Component {
|
|
|
25
28
|
isLink,
|
|
26
29
|
disabled,
|
|
27
30
|
Icon
|
|
28
|
-
})
|
|
29
|
-
strictMode: true
|
|
31
|
+
})
|
|
30
32
|
}), this);
|
|
31
33
|
}
|
|
32
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-button.js","sources":["../../src/components/icon-button.gts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"icon-button.js","sources":["../../src/components/icon-button.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\nimport CommandElement from 'ember-command/components/command-element';\nimport { element } from 'ember-element-helper';\n\nimport styles from '@hokulea/core/actions.module.css';\n\nimport { not } from '../-private/helpers.ts';\nimport disabled from '../-private/modifiers/disabled.ts';\nimport { isLink } from './-button.ts';\nimport Icon from './icon.gts';\n\nimport type { Importance, Importances, Intent, Intents, Spacing, Spacings } from '@hokulea/tokens';\nimport type { CommandAction } from 'ember-command';\n\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 /**\n * A string containing a `<svg>` element.\n * Make sure to use `currentColor` to comply with the styling\n */\n icon: string;\n };\n Blocks: {\n default: [];\n };\n}\n\nexport default class IconButton extends Component<IconButtonSignature> {\n get label() {\n assert(\n 'Please provide a `@label` to `<IconButton>` for accessibility reasons.',\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n this.args.label !== undefined\n );\n\n return this.args.label;\n }\n\n <template>\n <CommandElement\n @element={{element \"button\"}}\n @command={{@push}}\n class=\"{{styles.iconButton}}\"\n type={{if (not (isLink @push)) \"button\"}}\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n aria-label={{this.label}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-icon-button\n ...attributes\n >\n <Icon @icon={{@icon}} data-test-icon-button=\"icon\" />\n </CommandElement>\n </template>\n}\n"],"names":["IconButton","Component","label","assert","args","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","CommandElement","element","styles","not","isLink","disabled","Icon"],"mappings":";;;;;;;;;;;;AAoCe,MAAMA,mBAAmBC,SAAA,CAAU;EAChD,IAAIC,KAAAA,GAAQ;AACVC,IAAAA,MAAA,CACE;AACA;AACA,IAAA,IAAI,CAACC,IAAI,CAACF,KAAK,KAAKG,SAAA,CAAA;AAGtB,IAAA,OAAO,IAAI,CAACD,IAAI,CAACF,KAAK;AACxB,EAAA;AAEA,EAAA;IAAAI,oBAAA,CAAAC,kBAAA,CAAA,meAAA,EAgBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,cAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,GAAA;QAAAC,MAAA;QAAAC,QAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
package/dist/components/icon.js
CHANGED
|
@@ -1,41 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { cached } from '@glimmer/tracking';
|
|
3
|
-
import { macroCondition, dependencySatisfies, importSync } from '@embroider/macros';
|
|
4
|
-
import { icons } from '@phosphor-icons/core';
|
|
5
|
-
import { pascalCase } from 'change-case';
|
|
6
|
-
import * as phIcons from 'ember-phosphor-icons';
|
|
1
|
+
import { htmlSafe } from '@ember/template';
|
|
7
2
|
import styles from '@hokulea/core/icons.module.css';
|
|
8
|
-
import { n } from 'decorator-transforms/runtime';
|
|
9
3
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
10
4
|
import { setComponentTemplate } from '@ember/component';
|
|
5
|
+
import templateOnly from '@ember/component/template-only';
|
|
11
6
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
n(this.prototype, "phosphorIcon", [cached]);
|
|
20
|
-
}
|
|
21
|
-
get PhIcon() {
|
|
22
|
-
const icon1 = `Ph${pascalCase(this.args.icon)}`;
|
|
23
|
-
// @ts-expect-error no index signature is given but we are ok with this
|
|
24
|
-
return phIcons[icon1];
|
|
25
|
-
}
|
|
26
|
-
get style() {
|
|
27
|
-
return this.phosphorIcon ? this.args.style ?? 'regular' : svgJar ? 'custom' : '';
|
|
28
|
-
}
|
|
29
|
-
static {
|
|
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
|
-
scope: () => ({
|
|
32
|
-
styles,
|
|
33
|
-
svgJar
|
|
34
|
-
}),
|
|
35
|
-
strictMode: true
|
|
36
|
-
}), this);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
7
|
+
const Icon = setComponentTemplate(precompileTemplate("\n <span class={{styles.icon}} data-test-icon ...attributes>\n {{htmlSafe @icon}}\n </span>\n", {
|
|
8
|
+
strictMode: true,
|
|
9
|
+
scope: () => ({
|
|
10
|
+
styles,
|
|
11
|
+
htmlSafe
|
|
12
|
+
})
|
|
13
|
+
}), templateOnly());
|
|
39
14
|
|
|
40
15
|
export { Icon as default };
|
|
41
16
|
//# sourceMappingURL=icon.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.js","sources":["../../src/components/icon.gts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"icon.js","sources":["../../src/components/icon.gts"],"sourcesContent":["import { htmlSafe } from '@ember/template';\n\nimport styles from '@hokulea/core/icons.module.css';\n\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface IconSignature {\n Element: HTMLSpanElement;\n Args: {\n /**\n * A string containing a `<svg>` element.\n * Make sure to use `currentColor` to comply with the styling\n */\n icon: string;\n };\n}\n\nconst Icon: TOC<IconSignature> = <template>\n <span class={{styles.icon}} data-test-icon ...attributes>\n {{htmlSafe @icon}}\n </span>\n</template>;\n\nexport default Icon;\n"],"names":["Icon","setComponentTemplate","precompileTemplate","strictMode","scope","styles","htmlSafe","templateOnly"],"mappings":";;;;;;AAiBA,MAAMA,IAAU,GAAAC,oBAAA,CAAiBC,kBAAA,CAAA,oGAAA,EAIjC;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -8,12 +8,12 @@ const Affix = setComponentTemplate(precompileTemplate("\n <span class={{@class}
|
|
|
8
8
|
strictMode: true
|
|
9
9
|
}), templateOnly());
|
|
10
10
|
const TextInput = setComponentTemplate(precompileTemplate("\n {{!-- template-lint-disable no-unsupported-role-attributes --}}\n <span class={{styles.inputBuilder}} aria-disabled={{if @disabled \"true\"}} data-input-builder data-test-input-builder>\n {{yield (hash Prefix=(component Affix class=styles.prefix identity=\"prefix\") Affix=(component Affix class=styles.affix identity=\"affix\") Suffix=(component Affix class=styles.suffix identity=\"suffix\"))}}\n </span>\n", {
|
|
11
|
+
strictMode: true,
|
|
11
12
|
scope: () => ({
|
|
12
13
|
styles,
|
|
13
14
|
hash,
|
|
14
15
|
Affix
|
|
15
|
-
})
|
|
16
|
-
strictMode: true
|
|
16
|
+
})
|
|
17
17
|
}), templateOnly());
|
|
18
18
|
|
|
19
19
|
export { TextInput as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-builder.js","sources":["../../src/components/input-builder.gts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"input-builder.js","sources":["../../src/components/input-builder.gts"],"sourcesContent":["import { hash } from '@ember/helper';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\n\ninterface AffixSignature {\n Args: {\n class: string;\n identity: 'prefix' | 'affix' | 'suffix';\n };\n Blocks: {\n default: [];\n };\n}\n\nconst Affix: TOC<AffixSignature> = <template>\n <span class={{@class}} data-test-input-builder={{@identity}}>{{yield}}</span>\n</template>;\n\nexport interface InputBuilderSignature {\n Args: {\n disabled?: boolean;\n };\n Blocks: {\n default: [\n {\n Affix: WithBoundArgs<typeof Affix, 'class' | 'identity'>;\n Prefix: WithBoundArgs<typeof Affix, 'class' | 'identity'>;\n Suffix: WithBoundArgs<typeof Affix, 'class' | 'identity'>;\n }\n ];\n };\n}\n\nconst TextInput: TOC<InputBuilderSignature> = <template>\n {{! template-lint-disable no-unsupported-role-attributes }}\n <span\n class={{styles.inputBuilder}}\n aria-disabled={{if @disabled \"true\"}}\n data-input-builder\n data-test-input-builder\n >\n {{yield\n (hash\n Prefix=(component Affix class=styles.prefix identity=\"prefix\")\n Affix=(component Affix class=styles.affix identity=\"affix\")\n Suffix=(component Affix class=styles.suffix identity=\"suffix\")\n )\n }}\n </span>\n</template>;\n\nexport default TextInput;\n"],"names":["Affix","setComponentTemplate","precompileTemplate","strictMode","templateOnly","TextInput","scope","styles","hash"],"mappings":";;;;;;AAiBA,MAAMA,KAAW,GAAAC,oBAAA,CAAkBC,kBAAA,CAAA,qFAAA,EAEnC;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA;AAiBV,MAAMC,SAAe,GAAAJ,oBAAA,CAAyBC,kBAAA,CAAA,maAAA,EAgB9C;EAAAC,UAAA,EAAA,IAAA;AAAAG,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,IAAA;AAAAR,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAI,YAAA,EAAA;;;;"}
|
package/dist/components/list.js
CHANGED
|
@@ -8,14 +8,14 @@ import { TrackedArray } from 'tracked-built-ins';
|
|
|
8
8
|
import styles from '@hokulea/core/controls.module.css';
|
|
9
9
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
10
10
|
import { setComponentTemplate } from '@ember/component';
|
|
11
|
-
import { g, i } from 'decorator-transforms/runtime';
|
|
11
|
+
import { g, i } from 'decorator-transforms/runtime-esm';
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
constructor(
|
|
15
|
-
super(
|
|
16
|
-
|
|
13
|
+
class Option extends Component {
|
|
14
|
+
constructor(owner, args) {
|
|
15
|
+
super(owner, args);
|
|
16
|
+
args.registerItem(args.value);
|
|
17
17
|
registerDestructor(this, () => {
|
|
18
|
-
|
|
18
|
+
args.unregisterItem(args.value);
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
21
|
static {
|
|
@@ -23,7 +23,7 @@ let Option = class Option extends Component {
|
|
|
23
23
|
strictMode: true
|
|
24
24
|
}), this);
|
|
25
25
|
}
|
|
26
|
-
}
|
|
26
|
+
}
|
|
27
27
|
class List extends Component {
|
|
28
28
|
Option = Option;
|
|
29
29
|
static {
|
|
@@ -32,32 +32,32 @@ class List extends Component {
|
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
#items = (i(this, "items"), void 0);
|
|
35
|
-
registerItem =
|
|
35
|
+
registerItem = item => {
|
|
36
36
|
// eslint-disable-next-line ember/no-runloop
|
|
37
37
|
next(() => {
|
|
38
|
-
this.items.push(
|
|
38
|
+
this.items.push(item);
|
|
39
39
|
});
|
|
40
40
|
};
|
|
41
|
-
unregisterItem =
|
|
41
|
+
unregisterItem = item => {
|
|
42
42
|
// eslint-disable-next-line ember/no-runloop
|
|
43
43
|
next(() => {
|
|
44
|
-
this.items.splice(this.items.indexOf(
|
|
44
|
+
this.items.splice(this.items.indexOf(item), 1);
|
|
45
45
|
});
|
|
46
46
|
};
|
|
47
|
-
isSelected =
|
|
47
|
+
isSelected = option => {
|
|
48
48
|
if (Array.isArray(this.args.value)) {
|
|
49
|
-
return this.args.value.includes(
|
|
49
|
+
return this.args.value.includes(option);
|
|
50
50
|
}
|
|
51
|
-
return this.args.value ===
|
|
51
|
+
return this.args.value === option;
|
|
52
52
|
};
|
|
53
53
|
static {
|
|
54
|
-
setComponentTemplate(precompileTemplate("\n <div class={{styles.list}} data-test-list ...attributes {{
|
|
54
|
+
setComponentTemplate(precompileTemplate("\n <div class={{styles.list}} data-test-list ...attributes {{ariaListbox items=this.items selection=@value multi=@multiple disabled=@disabled select=@update activateItem=@activateItem}}>\n {{yield (hash Option=(component this.Option isSelected=this.isSelected registerItem=this.registerItem unregisterItem=this.unregisterItem))}}\n </div>\n ", {
|
|
55
|
+
strictMode: true,
|
|
55
56
|
scope: () => ({
|
|
56
57
|
styles,
|
|
57
58
|
ariaListbox,
|
|
58
59
|
hash
|
|
59
|
-
})
|
|
60
|
-
strictMode: true
|
|
60
|
+
})
|
|
61
61
|
}), this);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
@@ -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 { ariaListbox } 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 {{ariaListbox\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2hva3VsZWEvaG9rdWxlYS9lbWJlci9wYWNrYWdlL3NyYy9jb21wb25lbnRzL2xpc3QuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5pbXBvcnQgeyByZWdpc3RlckRlc3RydWN0b3IgfSBmcm9tICdAZW1iZXIvZGVzdHJveWFibGUnO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgbmV4dCB9IGZyb20gJ0BlbWJlci9ydW5sb29wJztcblxuaW1wb3J0IHsgYXJpYUxpc3Rib3ggfSBmcm9tICdlbWJlci1hcmlhLXZveWFnZXInO1xuaW1wb3J0IHsgVHJhY2tlZEFycmF5IH0gZnJvbSAndHJhY2tlZC1idWlsdC1pbnMnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvY29udHJvbHMubW9kdWxlLmNzcyc7XG5cbmltcG9ydCB0eXBlIE93bmVyIGZyb20gJ0BlbWJlci9vd25lcic7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9wdGlvblNpZ25hdHVyZTxWPiB7XG4gIEVsZW1lbnQ6IEhUTUxPcHRpb25FbGVtZW50O1xuICBBcmdzOiB7XG4gICAgdmFsdWU6IFY7XG4gICAgaXNTZWxlY3RlZDogKG9wdGlvbjogVikgPT4gYm9vbGVhbjtcbiAgICByZWdpc3Rlckl0ZW06IChpdGVtOiBWKSA9PiB2b2lkO1xuICAgIHVucmVnaXN0ZXJJdGVtOiAoaXRlbTogVikgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiB7XG4gICAgZGVmYXVsdDogW107XG4gIH07XG59XG5cbmNsYXNzIE9wdGlvbjxWPiBleHRlbmRzIENvbXBvbmVudDxPcHRpb25TaWduYXR1cmU8Vj4-IHtcbiAgY29uc3RydWN0b3Iob3duZXI6IE93bmVyLCBhcmdzOiBPcHRpb25TaWduYXR1cmU8Vj5bJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcblxuICAgIGFyZ3MucmVnaXN0ZXJJdGVtKGFyZ3MudmFsdWUpO1xuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHRoaXMsICgpID0-IHtcbiAgICAgIGFyZ3MudW5yZWdpc3Rlckl0ZW0oYXJncy52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAgPHNwYW4gcm9sZT1cIm9wdGlvblwiIGFyaWEtc2VsZWN0ZWQ9e3tpZiAoQGlzU2VsZWN0ZWQgQHZhbHVlKSBcInRydWVcIn19PlxuICAgICAge3t5aWVsZH19XG4gICAgPC9zcGFuPlxuICA8L3RlbXBsYXRlPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RTaWduYXR1cmU8Vj4ge1xuICBFbGVtZW50OiBIVE1MRGl2RWxlbWVudDtcbiAgQXJnczoge1xuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgdmFsdWU_OiBWIHwgVltdO1xuICAgIHVwZGF0ZT86ICh2YWx1ZTogViB8IFZbXSkgPT4gdm9pZDtcbiAgICBhY3RpdmF0ZUl0ZW0_OiAodmFsdWU6IFYpID0-IHZvaWQ7XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGRlZmF1bHQ6IFtcbiAgICAgIHtcbiAgICAgICAgT3B0aW9uOiBXaXRoQm91bmRBcmdzPHR5cGVvZiBPcHRpb248Vj4sICdpc1NlbGVjdGVkJyB8ICdyZWdpc3Rlckl0ZW0nIHwgJ3VucmVnaXN0ZXJJdGVtJz47XG4gICAgICB9XG4gICAgXTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlzdDxWPiBleHRlbmRzIENvbXBvbmVudDxMaXN0U2lnbmF0dXJlPFY-PiB7XG4gIE9wdGlvbiA9IE9wdGlvbjxWPjtcblxuICBAdHJhY2tlZCBpdGVtczogVltdID0gbmV3IFRyYWNrZWRBcnJheSgpO1xuXG4gIHJlZ2lzdGVySXRlbSA9IChpdGVtOiBWKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaChpdGVtKTtcbiAgICB9KTtcbiAgfTtcblxuICB1bnJlZ2lzdGVySXRlbSA9IChpdGVtOiBWKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgfSk7XG4gIH07XG5cbiAgaXNTZWxlY3RlZCA9IChvcHRpb246IFYpID0-IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmFyZ3MudmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5hcmdzLnZhbHVlLmluY2x1ZGVzKG9wdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXJncy52YWx1ZSA9PT0gb3B0aW9uO1xuICB9O1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz17e3N0eWxlcy5saXN0fX1cbiAgICAgIGRhdGEtdGVzdC1saXN0XG4gICAgICAuLi5hdHRyaWJ1dGVzXG4gICAgICB7eyFAZ2xpbnQtaWdub3JlfX1cbiAgICAgIHt7YXJpYUxpc3Rib3hcbiAgICAgICAgaXRlbXM9dGhpcy5pdGVtc1xuICAgICAgICBzZWxlY3Rpb249QHZhbHVlXG4gICAgICAgIG11bHRpPUBtdWx0aXBsZVxuICAgICAgICBkaXNhYmxlZD1AZGlzYWJsZWRcbiAgICAgICAgc2VsZWN0PUB1cGRhdGVcbiAgICAgICAgYWN0aXZhdGVJdGVtPUBhY3RpdmF0ZUl0ZW1cbiAgICAgIH19XG4gICAgPlxuICAgICAge3t5aWVsZFxuICAgICAgICAoaGFzaFxuICAgICAgICAgIE9wdGlvbj0oY29tcG9uZW50XG4gICAgICAgICAgICB0aGlzLk9wdGlvblxuICAgICAgICAgICAgaXNTZWxlY3RlZD10aGlzLmlzU2VsZWN0ZWRcbiAgICAgICAgICAgIHJlZ2lzdGVySXRlbT10aGlzLnJlZ2lzdGVySXRlbVxuICAgICAgICAgICAgdW5yZWdpc3Rlckl0ZW09dGhpcy51bnJlZ2lzdGVySXRlbVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgfX1cbiAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLE9BQU8sUUFBUSxvQkFBb0I7QUFDNUMsU0FBUyxrQkFBa0IsUUFBUSxxQkFBcUI7QUFDeEQsU0FBUyxJQUFJLFFBQVEsZ0JBQWdCO0FBQ3JDLFNBQVMsSUFBSSxRQUFRLGlCQUFpQjtBQUV0QyxTQUFTLFdBQVcsUUFBUSxxQkFBcUI7QUFDakQsU0FBUyxZQUFZLFFBQVEsb0JBQW9CO0FBRWpELE9BQU8sWUFBWSxvQ0FBb0M7QUFFdkQsWUFBWSxXQUFXLGVBQWU7QUFDdEMsY0FBYyxhQUFhLFFBQVEsa0JBQWtCO0FBRXJELGlCQUFpQixnQkFBZ0I7SUFDL0IsU0FBUztJQUNUO1FBQ0UsT0FBTztRQUNQLGFBQWEsUUFBUSxNQUFNLE9BQU87UUFDbEMsZUFBZSxNQUFNLE1BQU0sSUFBSTtRQUMvQixpQkFBaUIsTUFBTSxNQUFNLElBQUk7O0lBRW5DO1FBQ0U7OztBQUlKLElBQUEsQUFBTSxTQUFOLE1BQU0sT0FBTyxXQUFXLFVBQVUsZ0JBQWdCO0lBQ2hELFlBQVksUUFBTyxLQUFLLEVBQUUsT0FBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUU7UUFDMUQsS0FBSyxDQUFDLFFBQU87UUFFYixNQUFLLFlBQVksQ0FBQyxNQUFLLEtBQUs7UUFFNUIsbUJBQW1CLElBQUksRUFBRTtZQUN2QixNQUFLLGNBQWMsQ0FBQyxNQUFLLEtBQUs7UUFDaEM7SUFDRjtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7RUFJVixDQUFBLEVBQUE7WUFBQSxXQUFBLElBQVc7WUFBWDtnQkFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7WUFBRDtRQUFBO0lBQUEsQ0FKQTtBQUtaO0FBRUEsaUJBQWlCLGNBQWM7SUFDN0IsU0FBUztJQUNUO1FBQ0UsV0FBVyxPQUFPO1FBQ2xCLFdBQVcsT0FBTztRQUNsQixRQUFRLElBQUk7UUFDWixVQUFVLE9BQU8sSUFBSSxRQUFRLElBQUk7UUFDakMsZ0JBQWdCLE9BQU8sTUFBTSxJQUFJOztJQUVuQztRQUNFO2dCQUVJLFFBQVEscUJBQXFCLFFBQVcsZUFBZSxpQkFBaUI7Ozs7QUFNaEYsZUFBZSxNQUFNLEtBQUssV0FBVyxVQUFVLGNBQWM7SUFDM0QsU0FBUyxPQUFPLEdBQUc7SUFFbkIsQ0FBQztJQUFRLE9BQU8sTUFBTSxJQUFJLGVBQWU7SUFFekMsZUFBZSxDQUFDLE9BQU07UUFDcEIsNENBQTRDO1FBQzVDLEtBQUs7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNsQjtJQUNGLEVBQUU7SUFFRixpQkFBaUIsQ0FBQyxPQUFNO1FBQ3RCLDRDQUE0QztRQUM1QyxLQUFLO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBTztRQUM5QztJQUNGLEVBQUU7SUFFRixhQUFhLENBQUMsU0FBUTtRQUNwQixJQUFJLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQ2xDO1FBRUEsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSztJQUM3QixFQUFFO0lBRUYsTUFBQTtRQUFBLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUEwQlYsQ0FBQSxFQUFBO1lBQUEsV0FBQSxJQUFXO1lBQVg7Z0JBQUEsT0FBQSxLQUFBLFNBQUEsQ0FBQSxFQUFXO1lBQUQ7UUFBQTtJQUFBLENBMUJBO0FBMkJaIn0"],"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","ariaListbox","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,0XAAA,EAAA;AAAAqB,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;QAAAC,WAAA;AAAAC,QAAAA,IAAAA;AAAA,OAAA,CAAA;MAAAvB,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 Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\n\nimport { ariaListbox } from 'ember-aria-voyager';\nimport { TrackedArray } from 'tracked-built-ins';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\n\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}\n\nclass Option<V> extends Component<OptionSignature<V>> {\n constructor(owner: Owner, args: OptionSignature<V>['Args']) {\n super(owner, args);\n\n args.registerItem(args.value);\n\n registerDestructor(this, () => {\n args.unregisterItem(args.value);\n });\n }\n\n <template>\n <span role=\"option\" aria-selected={{if (@isSelected @value) \"true\"}}>\n {{yield}}\n </span>\n </template>\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 {\n Option: WithBoundArgs<typeof Option<V>, 'isSelected' | 'registerItem' | 'unregisterItem'>;\n }\n ];\n };\n}\n\nexport default class List<V> extends Component<ListSignature<V>> {\n Option = Option<V>;\n\n @tracked items: V[] = new TrackedArray();\n\n registerItem = (item: V) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.push(item);\n });\n };\n\n unregisterItem = (item: V) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.splice(this.items.indexOf(item), 1);\n });\n };\n\n isSelected = (option: V) => {\n if (Array.isArray(this.args.value)) {\n return this.args.value.includes(option);\n }\n\n return this.args.value === option;\n };\n\n <template>\n <div\n class={{styles.list}}\n data-test-list\n ...attributes\n {{ariaListbox\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 </template>\n}\n"],"names":["Option","Component","constructor","owner","args","registerItem","value","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","strictMode","List","g","prototype","tracked","TrackedArray","i","void 0","item","next","items","push","splice","indexOf","isSelected","option","Array","isArray","includes","scope","styles","ariaListbox","hash"],"mappings":";;;;;;;;;;;;AA2BA,MAAMA,MAAA,SAAkBC,SAAA,CAA0B;AAChDC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAgC,EAAE;AAC1D,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;AAEbA,IAAAA,IAAA,CAAKC,YAAY,CAACD,IAAA,CAAKE,KAAK,CAAA;IAE5BC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBH,MAAAA,IAAA,CAAKI,cAAc,CAACJ,IAAA,CAAKE,KAAK,CAAA;AAChC,IAAA,CAAA,CAAA;AACF,EAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAAA,mHAAA,EAIA;MAAAC,UAAA,EAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;AAoBe,MAAMC,IAAA,SAAgBX,SAAA,CAAwB;AAC3DD,EAAAA,MAAA,GAASA;AAAU,EAAA;IAAAa,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,OAAA,EAAA,CAElBC,OAAA,CAAA,EAAA,YAAA;MAAA,OAAqB,IAAIC,YAAA,EAAA;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,MAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,OAAA,CAAA,EAAAC,MAAA;EAE1Bb,YAAA,GAAgBc,IAAM,IAAA;AACpB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACH,IAAA,CAAA;AAClB,IAAA,CAAA,CAAA;EACF,CAAA;EAEAX,cAAA,GAAkBW,IAAM,IAAA;AACtB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,IAAI,CAACF,KAAK,CAACG,OAAO,CAACL,IAAA,CAAA,EAAO,CAAA,CAAA;AAC9C,IAAA,CAAA,CAAA;EACF,CAAA;EAEAM,UAAA,GAAcC,MAAQ,IAAA;IACpB,IAAIC,KAAA,CAAMC,OAAO,CAAC,IAAI,CAACxB,IAAI,CAACE,KAAK,CAAA,EAAG;MAClC,OAAO,IAAI,CAACF,IAAI,CAACE,KAAK,CAACuB,QAAQ,CAACH,MAAA,CAAA;AAClC,IAAA;AAEA,IAAA,OAAO,IAAI,CAACtB,IAAI,CAACE,KAAK,KAAKoB,MAAA;EAC7B,CAAA;AAEA,EAAA;IAAAjB,oBAAA,CAAAC,kBAAA,CAAA,mWAAA,EAyBA;MAAAC,UAAA,EAAA,IAAA;AAAAmB,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;QAAAC,WAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
package/dist/components/menu.js
CHANGED
|
@@ -7,14 +7,13 @@ import { service } from '@ember/service';
|
|
|
7
7
|
import { htmlSafe } from '@ember/template';
|
|
8
8
|
import { ariaMenu } from 'ember-aria-voyager';
|
|
9
9
|
import { CommandElement } from 'ember-command';
|
|
10
|
-
import { consume } from 'ember-provide-consume-context';
|
|
11
10
|
import { TrackedArray } from 'tracked-built-ins';
|
|
12
11
|
import styles from '@hokulea/core/controls.module.css';
|
|
13
12
|
import { d as disabled } from '../disabled-B_FQ0Z51.js';
|
|
14
13
|
import popover from '../helpers/popover.js';
|
|
15
14
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
16
15
|
import { setComponentTemplate } from '@ember/component';
|
|
17
|
-
import { g, i } from 'decorator-transforms/runtime';
|
|
16
|
+
import { g, i } from 'decorator-transforms/runtime-esm';
|
|
18
17
|
|
|
19
18
|
// below are attempts at conditional typing based on provided blocks in dynamic invocation
|
|
20
19
|
// type MenuItemArgs = {
|
|
@@ -51,26 +50,26 @@ import { g, i } from 'decorator-transforms/runtime';
|
|
|
51
50
|
// }
|
|
52
51
|
// );
|
|
53
52
|
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
54
|
-
|
|
55
|
-
constructor(
|
|
56
|
-
super(
|
|
57
|
-
|
|
53
|
+
class MenuItem extends Component {
|
|
54
|
+
constructor(owner, args) {
|
|
55
|
+
super(owner, args);
|
|
56
|
+
args.registerItem(this);
|
|
58
57
|
registerDestructor(this, () => {
|
|
59
|
-
|
|
58
|
+
args.unregisterItem(this);
|
|
60
59
|
});
|
|
61
60
|
}
|
|
62
61
|
static {
|
|
63
62
|
setComponentTemplate(precompileTemplate("\n {{#if (has-block \"menu\")}}\n {{#let (popover position=\"right-start\") as |p|}}\n <button type=\"button\" role=\"menuitem\" aria-haspopup=\"menu\" {{disabled when=(if @disabled @disabled false)}} {{p.trigger}}>\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 @command={{@push}} {{disabled when=(if @disabled @disabled false)}} role=\"menuitem\">\n {{~yield~}}\n </CommandElement>\n {{/if}}\n ", {
|
|
63
|
+
strictMode: true,
|
|
64
64
|
scope: () => ({
|
|
65
65
|
popover,
|
|
66
66
|
disabled,
|
|
67
67
|
Menu,
|
|
68
68
|
CommandElement
|
|
69
|
-
})
|
|
70
|
-
strictMode: true
|
|
69
|
+
})
|
|
71
70
|
}), this);
|
|
72
71
|
}
|
|
73
|
-
}
|
|
72
|
+
}
|
|
74
73
|
/* eslint-enable @typescript-eslint/no-use-before-define */
|
|
75
74
|
|
|
76
75
|
class Menu extends Component {
|
|
@@ -78,41 +77,37 @@ class Menu extends Component {
|
|
|
78
77
|
g(this.prototype, "fastboot", [service]);
|
|
79
78
|
}
|
|
80
79
|
#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);
|
|
85
80
|
static {
|
|
86
81
|
g(this.prototype, "items", [tracked], function () {
|
|
87
82
|
return new TrackedArray();
|
|
88
83
|
});
|
|
89
84
|
}
|
|
90
85
|
#items = (i(this, "items"), void 0);
|
|
91
|
-
get
|
|
92
|
-
return this.fastboot?.isFastBoot
|
|
86
|
+
get hideInSSR() {
|
|
87
|
+
return this.fastboot?.isFastBoot;
|
|
93
88
|
}
|
|
94
|
-
registerItem =
|
|
89
|
+
registerItem = item => {
|
|
95
90
|
// eslint-disable-next-line ember/no-runloop
|
|
96
91
|
next(() => {
|
|
97
|
-
this.items.push(
|
|
92
|
+
this.items.push(item);
|
|
98
93
|
});
|
|
99
94
|
};
|
|
100
|
-
unregisterItem =
|
|
95
|
+
unregisterItem = item => {
|
|
101
96
|
// eslint-disable-next-line ember/no-runloop
|
|
102
97
|
next(() => {
|
|
103
|
-
this.items.splice(this.items.indexOf(
|
|
98
|
+
this.items.splice(this.items.indexOf(item), 1);
|
|
104
99
|
});
|
|
105
100
|
};
|
|
106
101
|
static {
|
|
107
|
-
setComponentTemplate(precompileTemplate("\n <div class={{styles.menu}} data-test-menu ...attributes {{ariaMenu items=this.items disabled=@disabled}} style={{if this.
|
|
102
|
+
setComponentTemplate(precompileTemplate("\n <div class={{styles.menu}} data-test-menu ...attributes {{ariaMenu items=this.items disabled=@disabled}} style={{if this.hideInSSR (htmlSafe \"display: none\")}}>\n {{yield (hash Item=(component MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem))}}\n </div>\n ", {
|
|
103
|
+
strictMode: true,
|
|
108
104
|
scope: () => ({
|
|
109
105
|
styles,
|
|
110
106
|
htmlSafe,
|
|
111
107
|
ariaMenu,
|
|
112
108
|
hash,
|
|
113
109
|
MenuItem
|
|
114
|
-
})
|
|
115
|
-
strictMode: true
|
|
110
|
+
})
|
|
116
111
|
}), this);
|
|
117
112
|
}
|
|
118
113
|
}
|
|
@@ -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 { service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\nimport { ariaMenu } 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 {{ariaMenu 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2hva3VsZWEvaG9rdWxlYS9lbWJlci9wYWNrYWdlL3NyYy9jb21wb25lbnRzL21lbnUuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5pbXBvcnQgeyByZWdpc3RlckRlc3RydWN0b3IgfSBmcm9tICdAZW1iZXIvZGVzdHJveWFibGUnO1xuaW1wb3J0IHsgaGFzaCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuaW1wb3J0IHsgbmV4dCB9IGZyb20gJ0BlbWJlci9ydW5sb29wJztcbmltcG9ydCB7IHNlcnZpY2UgfSBmcm9tICdAZW1iZXIvc2VydmljZSc7XG5pbXBvcnQgeyBodG1sU2FmZSB9IGZyb20gJ0BlbWJlci90ZW1wbGF0ZSc7XG5cbmltcG9ydCB7IGFyaWFNZW51IH0gZnJvbSAnZW1iZXItYXJpYS12b3lhZ2VyJztcbmltcG9ydCB7IENvbW1hbmRFbGVtZW50IH0gZnJvbSAnZW1iZXItY29tbWFuZCc7XG5pbXBvcnQgeyBjb25zdW1lIH0gZnJvbSAnZW1iZXItcHJvdmlkZS1jb25zdW1lLWNvbnRleHQnO1xuaW1wb3J0IHsgVHJhY2tlZEFycmF5IH0gZnJvbSAndHJhY2tlZC1idWlsdC1pbnMnO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gJ0Bob2t1bGVhL2NvcmUvY29udHJvbHMubW9kdWxlLmNzcyc7XG5cbmltcG9ydCBkaXNhYmxlZCBmcm9tICcuLi8tcHJpdmF0ZS9tb2RpZmllcnMvZGlzYWJsZWQnO1xuaW1wb3J0IHBvcG92ZXIgZnJvbSAnLi4vaGVscGVycy9wb3BvdmVyJztcblxuaW1wb3J0IHR5cGUgeyBNZW51SXRlbUFyZ3MsIE1lbnVJdGVtQmxvY2tzLCBNZW51SXRlbUVsZW1lbnQgfSBmcm9tICcuLy1tZW51JztcbmltcG9ydCB0eXBlIE93bmVyIGZyb20gJ0BlbWJlci9vd25lcic7XG5pbXBvcnQgdHlwZSB7IFdpdGhCb3VuZEFyZ3MgfSBmcm9tICdAZ2xpbnQvdGVtcGxhdGUnO1xuaW1wb3J0IHR5cGUgRmFzdEJvb3QgZnJvbSAnZW1iZXItY2xpLWZhc3Rib290L3NlcnZpY2VzL2Zhc3Rib290JztcblxuZXhwb3J0IHR5cGUgTWVudURlZmF1bHRCbG9jayA9IHtcbiAgSXRlbTogV2l0aEJvdW5kQXJnczx0eXBlb2YgTWVudUl0ZW0sICdyZWdpc3Rlckl0ZW0nIHwgJ3VucmVnaXN0ZXJJdGVtJz47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtU2lnbmF0dXJlIHtcbiAgRWxlbWVudDogTWVudUl0ZW1FbGVtZW50O1xuICBBcmdzOiBNZW51SXRlbUFyZ3MgJiB7XG4gICAgcmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4gICAgdW5yZWdpc3Rlckl0ZW06IChpdGVtOiBNZW51SXRlbSkgPT4gdm9pZDtcbiAgfTtcbiAgQmxvY2tzOiBNZW51SXRlbUJsb2NrcyAmIHtcbiAgICBtZW51PzogW01lbnVEZWZhdWx0QmxvY2tdO1xuICB9O1xufVxuXG4vLyBiZWxvdyBhcmUgYXR0ZW1wdHMgYXQgY29uZGl0aW9uYWwgdHlwaW5nIGJhc2VkIG9uIHByb3ZpZGVkIGJsb2NrcyBpbiBkeW5hbWljIGludm9jYXRpb25cblxuLy8gdHlwZSBNZW51SXRlbUFyZ3MgPSB7XG4vLyAgIGRpc2FibGVkPzogYm9vbGVhbjtcbi8vICAgcmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4vLyAgIHVucmVnaXN0ZXJJdGVtOiAoaXRlbTogTWVudUl0ZW0pID0-IHZvaWQ7XG4vLyB9O1xuXG4vLyBleHBvcnQgaW50ZXJmYWNlIE1lbnVJdGVtU2lnbmF0dXJlPFQgPSB7fT4ge1xuLy8gICBFbGVtZW50OiBIVE1MQnV0dG9uRWxlbWVudCB8IEhUTUxBbmNob3JFbGVtZW50O1xuLy8gICBBcmdzOiBUIGV4dGVuZHMgeyBCbG9ja3M6IHsgZGVmYXVsdDogW10gfSB9XG4vLyAgICAgPyBNZW51SXRlbUFyZ3MgJiB7XG4vLyAgICAgICAgIHB1c2g6IENvbW1hbmRBY3Rpb247XG4vLyAgICAgICB9XG4vLyAgICAgOiBNZW51SXRlbUFyZ3M7XG4vLyAgIEJsb2NrczogVCBleHRlbmRzIHsgQmxvY2tzOiB7IGRlZmF1bHQ6IFtdIH0gfVxuLy8gICAgID8geyBkZWZhdWx0OiBbXSB9XG4vLyAgICAgOiB7IGxhYmVsOiBbXTsgbWVudTogW01lbnVEZWZhdWx0QmxvY2tdIH07XG4vLyB9XG5cbi8vICAmIChcbi8vICAgfCB7XG4vLyAgICAgICBBcmdzOiBNZW51SXRlbUFyZ3MgJiB7XG4vLyAgICAgICAgIHB1c2g6IENvbW1hbmRBY3Rpb247XG4vLyAgICAgICB9O1xuLy8gICAgICAgQmxvY2tzOiB7XG4vLyAgICAgICAgIGRlZmF1bHQ6IFtdO1xuLy8gICAgICAgfTtcbi8vICAgICB9XG4vLyAgIHwge1xuLy8gICAgICAgQXJnczogTWVudUl0ZW1BcmdzO1xuLy8gICAgICAgQmxvY2tzOiB7XG4vLyAgICAgICAgIGxhYmVsOiBbXTtcbi8vICAgICAgICAgbWVudTogW01lbnVEZWZhdWx0QmxvY2tdO1xuLy8gICAgICAgfTtcbi8vICAgICB9XG4vLyApO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmUgKi9cbmNsYXNzIE1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50PE1lbnVJdGVtU2lnbmF0dXJlPiB7XG4gIGNvbnN0cnVjdG9yKG93bmVyOiBPd25lciwgYXJnczogTWVudUl0ZW1TaWduYXR1cmVbJ0FyZ3MnXSkge1xuICAgIHN1cGVyKG93bmVyLCBhcmdzKTtcblxuICAgIGFyZ3MucmVnaXN0ZXJJdGVtKHRoaXMpO1xuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHRoaXMsICgpID0-IHtcbiAgICAgIGFyZ3MudW5yZWdpc3Rlckl0ZW0odGhpcyk7XG4gICAgfSk7XG4gIH1cblxuICA8dGVtcGxhdGU-XG4gICAge3sjaWYgKGhhcy1ibG9jayBcIm1lbnVcIil9fVxuICAgICAge3sjbGV0IChwb3BvdmVyIHBvc2l0aW9uPVwicmlnaHQtc3RhcnRcIikgYXMgfHB8fX1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1lbnVcIlxuICAgICAgICAgIHt7ZGlzYWJsZWQgd2hlbj0oaWYgQGRpc2FibGVkIEBkaXNhYmxlZCBmYWxzZSl9fVxuICAgICAgICAgIHt7cC50cmlnZ2VyfX1cbiAgICAgICAgPlxuICAgICAgICAgIHt7fnlpZWxkIHRvPVwibGFiZWxcIn59fVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8TWVudSB7e3AudGFyZ2V0fX0gYXMgfG18PlxuICAgICAgICAgIHt7eWllbGQgbSB0bz1cIm1lbnVcIn19XG4gICAgICAgIDwvTWVudT5cbiAgICAgIHt7L2xldH19XG4gICAge3tlbHNlfX1cbiAgICAgIDxDb21tYW5kRWxlbWVudFxuICAgICAgICBAY29tbWFuZD17e0BwdXNofX1cbiAgICAgICAge3tkaXNhYmxlZCB3aGVuPShpZiBAZGlzYWJsZWQgQGRpc2FibGVkIGZhbHNlKX19XG4gICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICA-XG4gICAgICAgIHt7fnlpZWxkfn19XG4gICAgICA8L0NvbW1hbmRFbGVtZW50PlxuICAgIHt7L2lmfX1cbiAgPC90ZW1wbGF0ZT5cbn1cbi8qIGVzbGludC1lbmFibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudVNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgZGlzYWJsZWQ_OiBib29sZWFuO1xuICB9O1xuICBCbG9ja3M6IHtcbiAgICBkZWZhdWx0OiBbTWVudURlZmF1bHRCbG9ja107XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1lbnUgZXh0ZW5kcyBDb21wb25lbnQ8TWVudVNpZ25hdHVyZT4ge1xuICBAc2VydmljZSBkZWNsYXJlIGZhc3Rib290PzogRmFzdEJvb3Q7XG5cbiAgQGNvbnN1bWUoJ2hva3VsZWEtYXBwLWhlYWRlcicpIGRlY2xhcmUgd2l0aGluQXBwSGVhZGVyOiBib29sZWFuO1xuXG4gIEB0cmFja2VkIGl0ZW1zOiBNZW51SXRlbVtdID0gbmV3IFRyYWNrZWRBcnJheSgpO1xuXG4gIGdldCBzaGFsbEhpZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmFzdGJvb3Q_LmlzRmFzdEJvb3QgJiYgdGhpcy53aXRoaW5BcHBIZWFkZXIgPT09IHRydWU7XG4gIH1cblxuICByZWdpc3Rlckl0ZW0gPSAoaXRlbTogTWVudUl0ZW0pID0-IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZW1iZXIvbm8tcnVubG9vcFxuICAgIG5leHQoKCkgPT4ge1xuICAgICAgdGhpcy5pdGVtcy5wdXNoKGl0ZW0pO1xuICAgIH0pO1xuICB9O1xuXG4gIHVucmVnaXN0ZXJJdGVtID0gKGl0ZW06IE1lbnVJdGVtKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVtYmVyL25vLXJ1bmxvb3BcbiAgICBuZXh0KCgpID0-IHtcbiAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKHRoaXMuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgfSk7XG4gIH07XG5cbiAgPHRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPXt7c3R5bGVzLm1lbnV9fVxuICAgICAgZGF0YS10ZXN0LW1lbnVcbiAgICAgIC4uLmF0dHJpYnV0ZXNcbiAgICAgIHt7YXJpYU1lbnUgaXRlbXM9dGhpcy5pdGVtcyBkaXNhYmxlZD1AZGlzYWJsZWR9fVxuICAgICAgc3R5bGU9e3tpZiB0aGlzLnNoYWxsSGlkZSAoaHRtbFNhZmUgXCJkaXNwbGF5OiBub25lXCIpfX1cbiAgICA-XG4gICAgICB7e3lpZWxkXG4gICAgICAgIChoYXNoXG4gICAgICAgICAgSXRlbT0oY29tcG9uZW50XG4gICAgICAgICAgICBNZW51SXRlbSByZWdpc3Rlckl0ZW09dGhpcy5yZWdpc3Rlckl0ZW0gdW5yZWdpc3Rlckl0ZW09dGhpcy51bnJlZ2lzdGVySXRlbVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgfX1cbiAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT5cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxlQUFlLHFCQUFxQjtBQUMzQyxTQUFTLE9BQU8sUUFBUSxvQkFBb0I7QUFDNUMsU0FBUyxrQkFBa0IsUUFBUSxxQkFBcUI7QUFDeEQsU0FBUyxJQUFJLFFBQVEsZ0JBQWdCO0FBQ3JDLFNBQVMsSUFBSSxRQUFRLGlCQUFpQjtBQUN0QyxTQUFTLE9BQU8sUUFBUSxpQkFBaUI7QUFDekMsU0FBUyxRQUFRLFFBQVEsa0JBQWtCO0FBRTNDLFNBQVMsUUFBUSxRQUFRLHFCQUFxQjtBQUM5QyxTQUFTLGNBQWMsUUFBUSxnQkFBZ0I7QUFDL0MsU0FBUyxPQUFPLFFBQVEsZ0NBQWdDO0FBQ3hELFNBQVMsWUFBWSxRQUFRLG9CQUFvQjtBQUVqRCxPQUFPLFlBQVksb0NBQW9DO0FBRXZELE9BQU8sY0FBYyxpQ0FBaUM7QUFDdEQsT0FBTyxhQUFhLHFCQUFxQjtBQUV6QyxjQUFjLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxRQUFRLFVBQVU7QUFDN0UsWUFBWSxXQUFXLGVBQWU7QUFDdEMsY0FBYyxhQUFhLFFBQVEsa0JBQWtCO0FBQ3JELFlBQVksY0FBYyx1Q0FBdUM7QUFFakUsWUFBWTtJQUNWLE1BQU0scUJBQXFCLFVBQVUsaUJBQWlCOztBQUd4RCxpQkFBaUI7SUFDZixTQUFTO0lBQ1QsTUFBTTtRQUNKLGVBQWUsTUFBTSxhQUFhLElBQUk7UUFDdEMsaUJBQWlCLE1BQU0sYUFBYSxJQUFJOztJQUUxQyxRQUFRO1FBQ04sUUFBUTs7O0FBSVosMEZBQTBGO0FBRTFGLHdCQUF3QjtBQUN4Qix3QkFBd0I7QUFDeEIsNENBQTRDO0FBQzVDLDhDQUE4QztBQUM5QyxLQUFLO0FBRUwsK0NBQStDO0FBQy9DLG9EQUFvRDtBQUNwRCxnREFBZ0Q7QUFDaEQseUJBQXlCO0FBQ3pCLCtCQUErQjtBQUMvQixVQUFVO0FBQ1Ysc0JBQXNCO0FBQ3RCLGtEQUFrRDtBQUNsRCx3QkFBd0I7QUFDeEIsaURBQWlEO0FBQ2pELElBQUk7QUFFSixPQUFPO0FBQ1AsUUFBUTtBQUNSLCtCQUErQjtBQUMvQiwrQkFBK0I7QUFDL0IsV0FBVztBQUNYLGtCQUFrQjtBQUNsQix1QkFBdUI7QUFDdkIsV0FBVztBQUNYLFFBQVE7QUFDUixRQUFRO0FBQ1IsNEJBQTRCO0FBQzVCLGtCQUFrQjtBQUNsQixxQkFBcUI7QUFDckIsb0NBQW9DO0FBQ3BDLFdBQVc7QUFDWCxRQUFRO0FBQ1IsS0FBSztBQUVMLDBEQUEwRCxHQUMxRCxJQUFBLEFBQU0sV0FBTixNQUFNLGlCQUFpQixVQUFVO0lBQy9CLFlBQVksUUFBTyxLQUFLLEVBQUUsT0FBTSxrQkFBa0IsT0FBTyxDQUFFO1FBQ3pELEtBQUssQ0FBQyxRQUFPO1FBRWIsTUFBSyxZQUFZLENBQUMsSUFBSTtRQUV0QixtQkFBbUIsSUFBSSxFQUFFO1lBQ3ZCLE1BQUssY0FBYyxDQUFDLElBQUk7UUFDMUI7SUFDRjtJQUVBLE1BQUE7UUFBQSxTQUFVLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBMEJWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQTFCQTtBQTJCWjtBQUNBLHlEQUF5RCxHQUV6RCxpQkFBaUI7SUFDZixTQUFTO0lBQ1Q7UUFDRSxXQUFXLE9BQU87O0lBRXBCO1FBQ0UsVUFBVTs7O0FBSWQsZUFBZSxNQUFNLGFBQWEsVUFBVTtJQUMxQyxDQUFDO0lBQWdCLFdBQVcsU0FBUztJQUVyQyxDQUFDLFFBQVE7SUFBOEIsaUJBQWlCLE9BQU8sQ0FBQztJQUVoRSxDQUFDO0lBQVEsT0FBTyxhQUFhLElBQUksZUFBZTtJQUVoRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxJQUFJLENBQUMsZUFBZSxLQUFLO0lBQy9EO0lBRUEsZUFBZSxDQUFDLE9BQU07UUFDcEIsNENBQTRDO1FBQzVDLEtBQUs7WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztRQUNsQjtJQUNGLEVBQUU7SUFFRixpQkFBaUIsQ0FBQyxPQUFNO1FBQ3RCLDRDQUE0QztRQUM1QyxLQUFLO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBTztRQUM5QztJQUNGLEVBQUU7SUFFRixNQUFBO1FBQUEsU0FBVSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0VBZ0JWLENBQUEsRUFBQTtZQUFBLFdBQUEsSUFBVztZQUFYO2dCQUFBLE9BQUEsS0FBQSxTQUFBLENBQUEsRUFBVztZQUFEO1FBQUE7SUFBQSxDQWhCQTtBQWlCWiJ9"],"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","ariaMenu","hash"],"mappings":";;;;;;;;;;;;;;;;;;AAsCA;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;IAAAe,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CACzCC,OAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAAC,KAAA,CAAA,EAAA;AAAA,EAAA;AAAAJ,IAAAA,CAAA,CAAAC,IAAAA,CAAAA,SAAA,EAEAI,iBAAAA,EAAAA,CAAAA,OAAA,CAAQ,oBAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,gBAAA,IAAAF,CAAA,CAAA,IAAA,EAAA,iBAAA,CAAA,EAAAC,KAAA,CAAA,EAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,OAAA,EAAA,CAERK,OAAA,CAAA,EAAA,YAAA;AAAA,MAAA,OAA4B,IAAIC,YAAA,EAAA,CAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,MAAA,IAAAJ,CAAA,CAAA,IAAA,EAAA,OAAA,CAAA,EAAAC,KAAA,CAAA,EAAA;AAEjC,EAAA,IAAII,YAAY;IACd,OAAO,IAAI,CAACC,QAAQ,EAAEC,UAAA,IAAc,IAAI,CAACC,eAAe,KAAK,IAAA,CAAA;AAC/D,GAAA;AAEAtB,EAAAA,YAAA,GAAgBuB,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;AAEArB,EAAAA,cAAA,GAAkBqB,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;IAAApB,oBAAA,CAAAC,kBAAA,CAgBA,8SAAA,EAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAwB,MAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,IAAA;AAAArC,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 Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\nimport { service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\n\nimport { ariaMenu } from 'ember-aria-voyager';\nimport { CommandElement } from 'ember-command';\nimport { TrackedArray } from 'tracked-built-ins';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport disabled from '../-private/modifiers/disabled.ts';\nimport popover from '../helpers/popover.ts';\n\nimport type { MenuItemArgs, MenuItemBlocks, MenuItemElement } from './-menu.ts';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nimport type FastBoot from 'ember-cli-fastboot/services/fastboot';\n\nexport type MenuDefaultBlock = {\n Item: WithBoundArgs<typeof MenuItem, 'registerItem' | 'unregisterItem'>;\n};\n\nexport interface MenuItemSignature {\n Element: MenuItemElement;\n Args: MenuItemArgs & {\n registerItem: (item: MenuItem) => void;\n unregisterItem: (item: MenuItem) => void;\n };\n Blocks: MenuItemBlocks & {\n menu?: [MenuDefaultBlock];\n };\n}\n\n// below are attempts at conditional typing based on provided blocks in dynamic invocation\n\n// type MenuItemArgs = {\n// disabled?: boolean;\n// registerItem: (item: MenuItem) => void;\n// unregisterItem: (item: MenuItem) => void;\n// };\n\n// export interface MenuItemSignature<T = {}> {\n// Element: HTMLButtonElement | HTMLAnchorElement;\n// Args: T extends { Blocks: { default: [] } }\n// ? MenuItemArgs & {\n// push: CommandAction;\n// }\n// : MenuItemArgs;\n// Blocks: T extends { Blocks: { default: [] } }\n// ? { default: [] }\n// : { label: []; menu: [MenuDefaultBlock] };\n// }\n\n// & (\n// | {\n// Args: MenuItemArgs & {\n// push: CommandAction;\n// };\n// Blocks: {\n// default: [];\n// };\n// }\n// | {\n// Args: MenuItemArgs;\n// Blocks: {\n// label: [];\n// menu: [MenuDefaultBlock];\n// };\n// }\n// );\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nclass MenuItem extends Component<MenuItemSignature> {\n constructor(owner: Owner, args: MenuItemSignature['Args']) {\n super(owner, args);\n\n args.registerItem(this);\n\n registerDestructor(this, () => {\n args.unregisterItem(this);\n });\n }\n\n <template>\n {{#if (has-block \"menu\")}}\n {{#let (popover position=\"right-start\") as |p|}}\n <button\n type=\"button\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n {{disabled when=(if @disabled @disabled false)}}\n {{p.trigger}}\n >\n {{~yield to=\"label\"~}}\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{else}}\n <CommandElement\n @command={{@push}}\n {{disabled when=(if @disabled @disabled false)}}\n role=\"menuitem\"\n >\n {{~yield~}}\n </CommandElement>\n {{/if}}\n </template>\n}\n/* eslint-enable @typescript-eslint/no-use-before-define */\n\nexport interface MenuSignature {\n Element: HTMLDivElement;\n Args: {\n disabled?: boolean;\n };\n Blocks: {\n default: [MenuDefaultBlock];\n };\n}\n\nexport default class Menu extends Component<MenuSignature> {\n @service declare fastboot?: FastBoot;\n\n @tracked items: MenuItem[] = new TrackedArray();\n\n get hideInSSR() {\n return this.fastboot?.isFastBoot;\n }\n\n registerItem = (item: MenuItem) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.push(item);\n });\n };\n\n unregisterItem = (item: MenuItem) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.splice(this.items.indexOf(item), 1);\n });\n };\n\n <template>\n <div\n class={{styles.menu}}\n data-test-menu\n ...attributes\n {{ariaMenu items=this.items disabled=@disabled}}\n style={{if this.hideInSSR (htmlSafe \"display: none\")}}\n >\n {{yield\n (hash\n Item=(component\n MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem\n )\n )\n }}\n </div>\n </template>\n}\n"],"names":["MenuItem","Component","constructor","owner","args","registerItem","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","strictMode","scope","popover","disabled","Menu","CommandElement","g","prototype","service","i","void 0","tracked","TrackedArray","hideInSSR","fastboot","isFastBoot","item","next","items","push","splice","indexOf","styles","htmlSafe","ariaMenu","hash"],"mappings":";;;;;;;;;;;;;;;;;AAqCA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,MAAMA,QAAA,SAAiBC,SAAA,CAAU;AAC/BC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAA+B,EAAE;AACzD,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;AAEbA,IAAAA,IAAA,CAAKC,YAAY,CAAC,IAAI,CAAA;IAEtBC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBF,MAAAA,IAAA,CAAKG,cAAc,CAAC,IAAI,CAAA;AAC1B,IAAA,CAAA,CAAA;AACF,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,okBAAA,EA0BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;QAAAC,QAAA;QAAAC,IAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;AACA;;AAYe,MAAMD,aAAab,SAAA,CAAU;AAAA,EAAA;IAAAe,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CACzCC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,OAAA,EAAA,CAEAI,OAAA,CAAA,EAAA,YAAA;MAAA,OAA4B,IAAIC,YAAA,EAAA;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,MAAA,IAAAH,CAAA,CAAA,IAAA,EAAA,OAAA,CAAA,EAAAC,MAAA;EAEjC,IAAIG,SAAAA,GAAY;AACd,IAAA,OAAO,IAAI,CAACC,QAAQ,EAAEC,UAAA;AACxB,EAAA;EAEApB,YAAA,GAAgBqB,IAAM,IAAA;AACpB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACH,IAAA,CAAA;AAClB,IAAA,CAAA,CAAA;EACF,CAAA;EAEAnB,cAAA,GAAkBmB,IAAM,IAAA;AACtB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,IAAI,CAACF,KAAK,CAACG,OAAO,CAACL,IAAA,CAAA,EAAO,CAAA,CAAA;AAC9C,IAAA,CAAA,CAAA;EACF,CAAA;AAEA,EAAA;IAAAlB,oBAAA,CAAAC,kBAAA,CAAA,8SAAA,EAgBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAqB,MAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,IAAA;AAAAnC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { on } from '@ember/modifier';
|
|
2
2
|
import styles from '@hokulea/core/controls.module.css';
|
|
3
|
-
import { p as pick } from '../helpers-
|
|
3
|
+
import { p as pick } from '../helpers-DS9du02l.js';
|
|
4
4
|
import { p as pickAsNumber } from '../-input-DGR-n9U_.js';
|
|
5
5
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
6
6
|
import { setComponentTemplate } from '@ember/component';
|
|
7
7
|
import templateOnly from '@ember/component/template-only';
|
|
8
8
|
|
|
9
9
|
const NumberInput = setComponentTemplate(precompileTemplate("\n <input class={{styles.input}} type=\"number\" value={{@value}} disabled={{@disabled}} data-test-input ...attributes {{on \"input\" (pick \"target.value\" (pickAsNumber @update))}} />\n", {
|
|
10
|
+
strictMode: true,
|
|
10
11
|
scope: () => ({
|
|
11
12
|
styles,
|
|
12
13
|
on,
|
|
13
14
|
pick,
|
|
14
15
|
pickAsNumber
|
|
15
|
-
})
|
|
16
|
-
strictMode: true
|
|
16
|
+
})
|
|
17
17
|
}), templateOnly());
|
|
18
18
|
|
|
19
19
|
export { NumberInput as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-input.js","sources":["../../src/components/number-input.gts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"number-input.js","sources":["../../src/components/number-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../-private/helpers.ts';\nimport { pickAsNumber } from './-input.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface NumberInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<number>;\n}\n\nconst NumberInput: TOC<NumberInputSignature> = <template>\n <input\n class={{styles.input}}\n type=\"number\"\n value={{@value}}\n disabled={{@disabled}}\n data-test-input\n ...attributes\n {{on \"input\" (pick \"target.value\" (pickAsNumber @update))}}\n />\n</template>;\n\nexport default NumberInput;\n"],"names":["NumberInput","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","pickAsNumber","templateOnly"],"mappings":";;;;;;;;AAeA,MAAMA,WAAiB,GAAAC,oBAAA,CAAwBC,kBAAA,CAAA,8LAAA,EAU/C;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;IAAAC,IAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
package/dist/components/page.js
CHANGED
|
@@ -1,65 +1,63 @@
|
|
|
1
1
|
import Component from '@glimmer/component';
|
|
2
|
+
import { tracked } from '@glimmer/tracking';
|
|
3
|
+
import { registerDestructor } from '@ember/destroyable';
|
|
2
4
|
import { on } from '@ember/modifier';
|
|
5
|
+
import { next } from '@ember/runloop';
|
|
6
|
+
import { service } from '@ember/service';
|
|
3
7
|
import { element } from 'ember-element-helper';
|
|
4
|
-
import { consume, provide } from 'ember-provide-consume-context';
|
|
5
8
|
import styles from '@hokulea/core/layouts.module.css';
|
|
6
9
|
import typo from '@hokulea/core/typography.module.css';
|
|
7
|
-
import { o as or } from '../helpers-
|
|
10
|
+
import { o as or } from '../helpers-DS9du02l.js';
|
|
8
11
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
9
12
|
import { setComponentTemplate } from '@ember/component';
|
|
10
13
|
import templateOnly from '@ember/component/template-only';
|
|
11
|
-
import { g, i
|
|
14
|
+
import { g, i } from 'decorator-transforms/runtime-esm';
|
|
12
15
|
|
|
13
16
|
const NavLink = setComponentTemplate(precompileTemplate("\n <a href={{@link.url}} {{on \"click\" @link.open}} aria-current={{if @link.isActive \"page\"}}>\n <span>\n {{yield}}\n </span>\n </a>\n", {
|
|
17
|
+
strictMode: true,
|
|
14
18
|
scope: () => ({
|
|
15
19
|
on
|
|
16
|
-
})
|
|
17
|
-
strictMode: true
|
|
20
|
+
})
|
|
18
21
|
}), templateOnly());
|
|
19
|
-
|
|
22
|
+
class Page extends Component {
|
|
20
23
|
static {
|
|
21
|
-
g(this.prototype, "
|
|
22
|
-
}
|
|
23
|
-
#useMain = (i(this, "useMain"), void 0);
|
|
24
|
-
get pageInside() {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
static {
|
|
28
|
-
n(this.prototype, "pageInside", [provide('page-inside')]);
|
|
24
|
+
g(this.prototype, "hokulea", [service('-hokulea')]);
|
|
29
25
|
}
|
|
26
|
+
#hokulea = (i(this, "hokulea"), void 0);
|
|
30
27
|
static {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}),
|
|
35
|
-
strictMode: true
|
|
36
|
-
}), this);
|
|
28
|
+
g(this.prototype, "pageLevel", [tracked], function () {
|
|
29
|
+
return 0;
|
|
30
|
+
});
|
|
37
31
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
static {
|
|
41
|
-
g(this.prototype, "insidePage", [consume('page-inside')]);
|
|
42
|
-
}
|
|
43
|
-
#insidePage = (i(this, "insidePage"), void 0);
|
|
32
|
+
#pageLevel = (i(this, "pageLevel"), void 0);
|
|
33
|
+
/* the level for _THIS_ page */
|
|
44
34
|
get rootPage() {
|
|
45
|
-
return this.
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
35
|
+
return this.pageLevel === 1;
|
|
36
|
+
}
|
|
37
|
+
constructor(owner, args) {
|
|
38
|
+
super(owner, args);
|
|
39
|
+
// eslint-disable-next-line ember/no-runloop
|
|
40
|
+
next(() => {
|
|
41
|
+
this.hokulea.pageLevel += 1;
|
|
42
|
+
this.pageLevel = this.hokulea.pageLevel;
|
|
43
|
+
});
|
|
44
|
+
registerDestructor(this, () => {
|
|
45
|
+
this.hokulea.pageLevel -= 1;
|
|
46
|
+
});
|
|
49
47
|
}
|
|
50
48
|
static {
|
|
51
|
-
setComponentTemplate(precompileTemplate("\n <
|
|
49
|
+
setComponentTemplate(precompileTemplate("\n {{#let (element (if this.rootPage \"main\" \"section\")) as |Element|}}\n <Element class={{styles.page}} ...attributes data-test-page>\n {{#if (or @title @description (has-block \"title\") (has-block \"description\") (has-block \"nav\"))}}\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 </Element>\n {{/let}}\n ", {
|
|
50
|
+
strictMode: true,
|
|
52
51
|
scope: () => ({
|
|
53
|
-
|
|
52
|
+
element,
|
|
54
53
|
styles,
|
|
55
54
|
or,
|
|
56
55
|
typo,
|
|
57
56
|
NavLink
|
|
58
|
-
})
|
|
59
|
-
strictMode: true
|
|
57
|
+
})
|
|
60
58
|
}), this);
|
|
61
59
|
}
|
|
62
|
-
}
|
|
60
|
+
}
|
|
63
61
|
|
|
64
62
|
export { Page as default };
|
|
65
63
|
//# sourceMappingURL=page.js.map
|