@hokulea/ember 0.13.0 → 0.15.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/declarations/components/actions/-button.d.ts +31 -0
- package/declarations/components/actions/-button.d.ts.map +1 -1
- package/declarations/components/actions/button-group.d.ts +10 -0
- package/declarations/components/actions/button-group.d.ts.map +1 -0
- package/declarations/components/actions/button.d.ts +7 -17
- package/declarations/components/actions/button.d.ts.map +1 -1
- package/declarations/components/actions/icon-button.d.ts +6 -13
- package/declarations/components/actions/icon-button.d.ts.map +1 -1
- package/declarations/components/actions/radio-button-group.d.ts +57 -0
- package/declarations/components/actions/radio-button-group.d.ts.map +1 -0
- package/declarations/components/button-group.d.ts +2 -0
- package/declarations/components/button-group.d.ts.map +1 -0
- package/declarations/components/controls/menu.d.ts +0 -3
- package/declarations/components/controls/menu.d.ts.map +1 -1
- package/declarations/components/layouts/sectioned-page.d.ts +1 -1
- package/declarations/components/layouts/sectioned-page.d.ts.map +1 -1
- package/declarations/components/navigation/app-header.d.ts +2 -2
- package/declarations/components/navigation/app-header.d.ts.map +1 -1
- package/declarations/components/navigation/nav-link.d.ts.map +1 -1
- package/declarations/components/navigation/tab-nav.d.ts +12 -0
- package/declarations/components/navigation/tab-nav.d.ts.map +1 -0
- package/declarations/components/radio-button-group.d.ts +2 -0
- package/declarations/components/radio-button-group.d.ts.map +1 -0
- package/declarations/components/tab-nav.d.ts +2 -0
- package/declarations/components/tab-nav.d.ts.map +1 -0
- package/declarations/helpers/-position.d.ts +12 -0
- package/declarations/helpers/-position.d.ts.map +1 -0
- package/declarations/helpers/popover.d.ts +23 -2
- package/declarations/helpers/popover.d.ts.map +1 -1
- package/declarations/index.d.ts +3 -0
- package/declarations/index.d.ts.map +1 -1
- package/declarations/template-registry.d.ts +4 -0
- package/declarations/template-registry.d.ts.map +1 -1
- package/declarations/test-support/index.d.ts +3 -0
- package/declarations/test-support/index.d.ts.map +1 -1
- package/declarations/test-support/page-objects/-menu.d.ts.map +1 -1
- package/declarations/test-support/page-objects/-private/error.d.ts +2 -2
- package/declarations/test-support/page-objects/-private/error.d.ts.map +1 -1
- package/declarations/test-support/page-objects/-private/field.d.ts +1 -1
- package/declarations/test-support/page-objects/-private/field.d.ts.map +1 -1
- package/declarations/test-support/page-objects/button-group.d.ts +9 -0
- package/declarations/test-support/page-objects/button-group.d.ts.map +1 -0
- package/declarations/test-support/page-objects/button.d.ts.map +1 -1
- package/declarations/test-support/page-objects/navigation-list.d.ts +1 -1
- package/declarations/test-support/page-objects/navigation-list.d.ts.map +1 -1
- package/declarations/test-support/page-objects/radio-button-group.d.ts +33 -0
- package/declarations/test-support/page-objects/radio-button-group.d.ts.map +1 -0
- package/declarations/test-support/page-objects/tab-nav.d.ts +9 -0
- package/declarations/test-support/page-objects/tab-nav.d.ts.map +1 -0
- package/dist/{-button-KUaJCQaB.js → -button-zstwNwHq.js} +8 -2
- package/dist/-button-zstwNwHq.js.map +1 -0
- package/dist/_app_/components/button-group.js +1 -0
- package/dist/_app_/components/radio-button-group.js +1 -0
- package/dist/_app_/components/tab-nav.js +1 -0
- package/dist/{alert-Dn7ePQlD.js → alert-CHUcylXU.js} +3 -3
- package/dist/{alert-Dn7ePQlD.js.map → alert-CHUcylXU.js.map} +1 -1
- package/dist/{app-header-Bb7kHBL2.js → app-header-zFoKDgm0.js} +8 -8
- package/dist/app-header-zFoKDgm0.js.map +1 -0
- package/dist/{avatar-DTqwlbny.js → avatar-CKkZu7w3.js} +2 -2
- package/dist/{avatar-DTqwlbny.js.map → avatar-CKkZu7w3.js.map} +1 -1
- package/dist/{box-COwjh1Rb.js → box-6Zf3RnAO.js} +2 -2
- package/dist/{box-COwjh1Rb.js.map → box-6Zf3RnAO.js.map} +1 -1
- package/dist/button-DCEeKVJE.js +25 -0
- package/dist/button-DCEeKVJE.js.map +1 -0
- package/dist/button-group-L-yIZgQe.js +14 -0
- package/dist/button-group-L-yIZgQe.js.map +1 -0
- package/dist/card-Wzo-S04B.js +14 -0
- package/dist/{card-Bq4sLW1m.js.map → card-Wzo-S04B.js.map} +1 -1
- package/dist/{checkbox-C9-RZtWK.js → checkbox-Dq-Ba0eG.js} +2 -2
- package/dist/{checkbox-C9-RZtWK.js.map → checkbox-Dq-Ba0eG.js.map} +1 -1
- package/dist/components/alert.js +1 -1
- package/dist/components/app-header.js +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/box.js +1 -1
- package/dist/components/button-group.js +2 -0
- package/dist/components/button-group.js.map +1 -0
- package/dist/components/button.js +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/currency-input.js +1 -1
- package/dist/components/data-table.js +1 -1
- package/dist/components/date-input.js +1 -1
- package/dist/components/email-input.js +1 -1
- package/dist/components/focus-page.js +1 -1
- package/dist/components/form.js +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/input-builder.js +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/navigation-list.js +1 -1
- package/dist/components/number-input.js +1 -1
- package/dist/components/page.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/password-input.js +1 -1
- package/dist/components/phone-input.js +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/radio-button-group.js +2 -0
- package/dist/components/radio-button-group.js.map +1 -0
- package/dist/components/radio.js +1 -1
- package/dist/components/range-input.js +1 -1
- package/dist/components/section.js +1 -1
- package/dist/components/sectioned-page.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/tab-nav.js +2 -0
- package/dist/components/tab-nav.js.map +1 -0
- package/dist/components/tabs.js +1 -1
- package/dist/components/text-area.js +1 -1
- package/dist/components/text-input.js +1 -1
- package/dist/currency-input-BXZynbgP.js +20 -0
- package/dist/{currency-input-BqNb3IcU.js.map → currency-input-BXZynbgP.js.map} +1 -1
- package/dist/data-table-DgPcWpgQ.js +16 -0
- package/dist/{data-table-ZliVM1td.js.map → data-table-DgPcWpgQ.js.map} +1 -1
- package/dist/{date-input-DxDpVu3A.js → date-input-Do_gdYif.js} +2 -2
- package/dist/{date-input-DxDpVu3A.js.map → date-input-Do_gdYif.js.map} +1 -1
- package/dist/{email-input-84impWbH.js → email-input-C3DQI5CS.js} +2 -2
- package/dist/{email-input-84impWbH.js.map → email-input-C3DQI5CS.js.map} +1 -1
- package/dist/focus-page-De0KXI-m.js +19 -0
- package/dist/{focus-page-Boq96jK3.js.map → focus-page-De0KXI-m.js.map} +1 -1
- package/dist/form-VcfCjgct.js +508 -0
- package/dist/{form-B9MShV4J.js.map → form-VcfCjgct.js.map} +1 -1
- package/dist/helpers/popover.js +11 -20
- package/dist/helpers/popover.js.map +1 -1
- package/dist/icon-button-C1YrOLFe.js +38 -0
- package/dist/icon-button-C1YrOLFe.js.map +1 -0
- package/dist/{icon-rlG6O1ps.js → icon-ej-3ZqQt.js} +2 -2
- package/dist/{icon-rlG6O1ps.js.map → icon-ej-3ZqQt.js.map} +1 -1
- package/dist/index.js +38 -35
- package/dist/index.js.map +1 -1
- package/dist/input-builder-DpIzsgxI.js +18 -0
- package/dist/{input-builder-C6GkddCw.js.map → input-builder-DpIzsgxI.js.map} +1 -1
- package/dist/{link-bqsg26Cc.js → link-4Kc0K38u.js} +3 -3
- package/dist/{link-bqsg26Cc.js.map → link-4Kc0K38u.js.map} +1 -1
- package/dist/{list-C86dLtuk.js → list-CIQXPiUH.js} +3 -3
- package/dist/{list-C86dLtuk.js.map → list-CIQXPiUH.js.map} +1 -1
- package/dist/{menu-BR3G9OgU.js → menu-Dcc72jZp.js} +5 -15
- package/dist/menu-Dcc72jZp.js.map +1 -0
- package/dist/nav-link-KZJghY_q.js +22 -0
- package/dist/{nav-link-DL59IUt0.js.map → nav-link-KZJghY_q.js.map} +1 -1
- package/dist/{navigation-list-Dt-WaMyp.js → navigation-list-DkWUXH9a.js} +4 -4
- package/dist/{navigation-list-Dt-WaMyp.js.map → navigation-list-DkWUXH9a.js.map} +1 -1
- package/dist/{number-input-CDMSp7qk.js → number-input-C3nCdLGj.js} +2 -2
- package/dist/{number-input-CDMSp7qk.js.map → number-input-C3nCdLGj.js.map} +1 -1
- package/dist/page-BlSv_2Xh.js +19 -0
- package/dist/{page-DNrVa_Zo.js.map → page-BlSv_2Xh.js.map} +1 -1
- package/dist/{pagination-BYiNuWz8.js → pagination-CjkoHYcN.js} +5 -5
- package/dist/{pagination-BYiNuWz8.js.map → pagination-CjkoHYcN.js.map} +1 -1
- package/dist/{password-input-BYvLH8gQ.js → password-input-DRa3El-5.js} +2 -2
- package/dist/{password-input-BYvLH8gQ.js.map → password-input-DRa3El-5.js.map} +1 -1
- package/dist/{phone-input-8N_lOkZ2.js → phone-input-D3AIkLe8.js} +2 -2
- package/dist/{phone-input-8N_lOkZ2.js.map → phone-input-D3AIkLe8.js.map} +1 -1
- package/dist/{popover-wLRNTIPC.js → popover-CaKubr0X.js} +2 -2
- package/dist/{popover-wLRNTIPC.js.map → popover-CaKubr0X.js.map} +1 -1
- package/dist/push-C8z1Qw41.js +24 -0
- package/dist/{push-DnJFFc_p.js.map → push-C8z1Qw41.js.map} +1 -1
- package/dist/{radio-BQvSPyDT.js → radio-BQ_nDgm0.js} +2 -2
- package/dist/{radio-BQvSPyDT.js.map → radio-BQ_nDgm0.js.map} +1 -1
- package/dist/radio-button-group-D7LjyINa.js +91 -0
- package/dist/radio-button-group-D7LjyINa.js.map +1 -0
- package/dist/{range-input-Bosd7QI2.js → range-input-Oc8Z7tsH.js} +2 -2
- package/dist/{range-input-Bosd7QI2.js.map → range-input-Oc8Z7tsH.js.map} +1 -1
- package/dist/{section-B_1poNPX.js → section-DbYzqbWp.js} +2 -2
- package/dist/{section-B_1poNPX.js.map → section-DbYzqbWp.js.map} +1 -1
- package/dist/sectioned-page-Ba06ASAC.js +21 -0
- package/dist/sectioned-page-Ba06ASAC.js.map +1 -0
- package/dist/{select-DWOHAUfQ.js → select-CrdsGEgR.js} +3 -3
- package/dist/{select-DWOHAUfQ.js.map → select-CrdsGEgR.js.map} +1 -1
- package/dist/tab-nav-pvb2XhOD.js +16 -0
- package/dist/tab-nav-pvb2XhOD.js.map +1 -0
- package/dist/{tabs-e_cUi6pL.js → tabs-DdGp_ET2.js} +3 -3
- package/dist/{tabs-e_cUi6pL.js.map → tabs-DdGp_ET2.js.map} +1 -1
- package/dist/test-support/index.js +48 -20
- package/dist/test-support/index.js.map +1 -1
- package/dist/{text-area-BsDD1dpV.js → text-area-BBLWOU6L.js} +2 -2
- package/dist/{text-area-BsDD1dpV.js.map → text-area-BBLWOU6L.js.map} +1 -1
- package/dist/{text-input-BntDzi8S.js → text-input-B5cPU_e-.js} +2 -2
- package/dist/{text-input-BntDzi8S.js.map → text-input-B5cPU_e-.js.map} +1 -1
- package/package.json +41 -41
- package/dist/-button-KUaJCQaB.js.map +0 -1
- package/dist/app-header-Bb7kHBL2.js.map +0 -1
- package/dist/button-BAtG9lC0.js +0 -24
- package/dist/button-BAtG9lC0.js.map +0 -1
- package/dist/card-Bq4sLW1m.js +0 -14
- package/dist/currency-input-BqNb3IcU.js +0 -20
- package/dist/data-table-ZliVM1td.js +0 -16
- package/dist/focus-page-Boq96jK3.js +0 -19
- package/dist/form-B9MShV4J.js +0 -508
- package/dist/icon-button-hS8-Jo0v.js +0 -36
- package/dist/icon-button-hS8-Jo0v.js.map +0 -1
- package/dist/input-builder-C6GkddCw.js +0 -18
- package/dist/menu-BR3G9OgU.js.map +0 -1
- package/dist/nav-link-DL59IUt0.js +0 -22
- package/dist/page-DNrVa_Zo.js +0 -19
- package/dist/push-DnJFFc_p.js +0 -24
- package/dist/sectioned-page-D9Xxr97R.js +0 -21
- package/dist/sectioned-page-D9Xxr97R.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover-
|
|
1
|
+
{"version":3,"file":"popover-CaKubr0X.js","sources":["../src/components/windows/popover.gts"],"sourcesContent":["import type { TOC } from '@ember/component/template-only';\n\nexport interface PopoverSignature {\n Element: HTMLDivElement;\n Blocks: {\n default: [];\n };\n}\n\nexport const Popover: TOC<PopoverSignature> = <template>\n <div class=\"popover\" data-test-popover ...attributes>\n {{yield}}\n </div>\n</template>;\n"],"names":["Popover","setComponentTemplate","precompileTemplate","strictMode","templateOnly"],"mappings":";;;;MASaA,OAAa,GAAAC,oBAAA,CAAoBC,kBAAA,CAAA,8EAAA,EAI9C;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { on } from '@ember/modifier';
|
|
2
|
+
import { CommandElement } from 'ember-command';
|
|
3
|
+
import { element } from 'ember-element-helper';
|
|
4
|
+
import { link, Link } from 'ember-link';
|
|
5
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
6
|
+
import { setComponentTemplate } from '@ember/component';
|
|
7
|
+
import templateOnly from '@ember/component/template-only';
|
|
8
|
+
|
|
9
|
+
const isActive = commandable => {
|
|
10
|
+
return commandable instanceof Link && commandable.isActive;
|
|
11
|
+
};
|
|
12
|
+
const PushElement = setComponentTemplate(precompileTemplate("{{#if @href}}\n {{#let (link @href) as |l|}}\n <a href={{l.url}} {{on \"click\" l.open}} aria-current=\"{{if (isActive l) \"page\"}}\" ...attributes>\n {{yield}}\n </a>\n {{/let}}\n{{else if @push}}\n <CommandElement @element={{@element}} @command={{@push}} aria-current=\"{{if (isActive @push) \"page\"}}\" ...attributes>\n {{yield}}\n </CommandElement>\n{{else}}\n {{#let (if @element @element (element \"span\")) as |Element|}}\n <Element ...attributes>\n {{yield}}\n </Element>\n {{/let}}\n{{/if}}", {
|
|
13
|
+
strictMode: true,
|
|
14
|
+
scope: () => ({
|
|
15
|
+
link,
|
|
16
|
+
isActive,
|
|
17
|
+
on,
|
|
18
|
+
CommandElement,
|
|
19
|
+
element
|
|
20
|
+
})
|
|
21
|
+
}), templateOnly());
|
|
22
|
+
|
|
23
|
+
export { PushElement as P, isActive as i };
|
|
24
|
+
//# sourceMappingURL=push-C8z1Qw41.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push-
|
|
1
|
+
{"version":3,"file":"push-C8z1Qw41.js","sources":["../src/-private/push.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport { type CommandAction, CommandElement } from 'ember-command';\nimport { element, type ElementFromTagName, type ElementSignature } from 'ember-element-helper';\nimport { Link, link } from 'ember-link';\n\nimport type { TOC } from '@ember/component/template-only';\n\nexport const isActive = (commandable: CommandAction) => {\n return commandable instanceof Link && commandable.isActive;\n};\n\nexport interface PushArgs {\n push?: CommandAction;\n href?: string;\n}\n\ninterface PushSignature<T extends string = 'span'> {\n Element: HTMLButtonElement | HTMLAnchorElement | ElementFromTagName<T>;\n Args: PushArgs & {\n element?: ElementSignature<'a' | 'button' | T>['Return'];\n };\n Blocks: {\n default: [];\n };\n}\n\nexport const PushElement: TOC<PushSignature> = <template>\n {{#if @href}}\n {{#let (link @href) as |l|}}\n <a\n href={{l.url}}\n {{on \"click\" l.open}}\n aria-current=\"{{if (isActive l) 'page'}}\"\n ...attributes\n >\n {{yield}}\n </a>\n {{/let}}\n {{else if @push}}\n <CommandElement\n @element={{@element}}\n @command={{@push}}\n aria-current=\"{{if (isActive @push) 'page'}}\"\n ...attributes\n >\n {{yield}}\n </CommandElement>\n {{else}}\n {{#let (if @element @element (element \"span\")) as |Element|}}\n <Element ...attributes>\n {{yield}}\n </Element>\n {{/let}}\n {{/if}}\n</template>;\n"],"names":["isActive","commandable","Link","PushElement","setComponentTemplate","precompileTemplate","strictMode","scope","link","on","CommandElement","element","templateOnly"],"mappings":";;;;;;;;AAQO,MAAMA,QAAA,GAAYC,WAAa,IAAA;AACpC,EAAA,OAAOA,WAAA,YAAuBC,IAAA,IAAQD,WAAA,CAAYD,QAAQ;AAC5D;MAiBaG,WAAiB,GAAAC,oBAAA,CAAiBC,kBAAA,CAAA,shBAAA,EA4B/C;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,IAAA;IAAAR,QAAA;IAAAS,EAAA;IAAAC,cAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -4,7 +4,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
4
4
|
import { setComponentTemplate } from '@ember/component';
|
|
5
5
|
import templateOnly from '@ember/component/template-only';
|
|
6
6
|
|
|
7
|
-
const Radio = setComponentTemplate(precompileTemplate("
|
|
7
|
+
const Radio = setComponentTemplate(precompileTemplate("<input class=\"input\" type=\"radio\" checked={{@value}} disabled={{@disabled}} data-spacing={{@spacing}} data-test-choice {{on \"input\" (pick \"target.checked\" @update) capture=true}} ...attributes />", {
|
|
8
8
|
strictMode: true,
|
|
9
9
|
scope: () => ({
|
|
10
10
|
on,
|
|
@@ -13,4 +13,4 @@ const Radio = setComponentTemplate(precompileTemplate("\n <input class=\"input\
|
|
|
13
13
|
}), templateOnly());
|
|
14
14
|
|
|
15
15
|
export { Radio as R };
|
|
16
|
-
//# sourceMappingURL=radio-
|
|
16
|
+
//# sourceMappingURL=radio-BQ_nDgm0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-
|
|
1
|
+
{"version":3,"file":"radio-BQ_nDgm0.js","sources":["../src/components/controls/radio.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport { pick } from '../../-private/helpers.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface RadioSignature {\n Element: HTMLInputElement;\n Args: InputArgs<boolean>;\n}\n\nexport const Radio: TOC<RadioSignature> = <template>\n <input\n class=\"input\"\n type=\"radio\"\n checked={{@value}}\n disabled={{@disabled}}\n data-spacing={{@spacing}}\n data-test-choice\n {{on \"input\" (pick \"target.checked\" @update) capture=true}}\n ...attributes\n />\n</template>;\n"],"names":["Radio","setComponentTemplate","precompileTemplate","strictMode","scope","on","pick","templateOnly"],"mappings":";;;;;;MAYaA,KAAW,GAAAC,oBAAA,CAAkBC,kBAAA,CAAA,6MAAA,EAW1C;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import Component from '@glimmer/component';
|
|
2
|
+
import { assert } from '@ember/debug';
|
|
3
|
+
import { registerDestructor } from '@ember/destroyable';
|
|
4
|
+
import { hash } from '@ember/helper';
|
|
5
|
+
import { next } from '@ember/runloop';
|
|
6
|
+
import { ariaRadioGroup } from 'ember-aria-voyager';
|
|
7
|
+
import { TrackedArray } from 'tracked-built-ins';
|
|
8
|
+
import { d as disabled } from './disabled-B_FQ0Z51.js';
|
|
9
|
+
import { I as Icon } from './icon-ej-3ZqQt.js';
|
|
10
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
11
|
+
import { setComponentTemplate } from '@ember/component';
|
|
12
|
+
|
|
13
|
+
class RadioButton extends Component {
|
|
14
|
+
constructor(owner, args) {
|
|
15
|
+
super(owner, args);
|
|
16
|
+
args.register(args.value);
|
|
17
|
+
registerDestructor(this, () => {
|
|
18
|
+
args.unregister(args.value);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
static {
|
|
22
|
+
setComponentTemplate(precompileTemplate("<button type=\"button\" role=\"radio\" class=\"button\" aria-checked={{if (@isSelected @value) \"true\" \"false\"}} data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} {{disabled when=(if @disabled @disabled false)}} data-test-button ...attributes>\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n</button>", {
|
|
23
|
+
strictMode: true,
|
|
24
|
+
scope: () => ({
|
|
25
|
+
disabled
|
|
26
|
+
})
|
|
27
|
+
}), this);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
class RadioIconButton extends Component {
|
|
31
|
+
constructor(owner, args) {
|
|
32
|
+
super(owner, args);
|
|
33
|
+
args.register(args.value);
|
|
34
|
+
registerDestructor(this, () => {
|
|
35
|
+
args.unregister(args.value);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
get label() {
|
|
39
|
+
assert('Please provide a `@label` to `<IconButton>` for accessibility reasons.',
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
41
|
+
this.args.label !== undefined);
|
|
42
|
+
return this.args.label;
|
|
43
|
+
}
|
|
44
|
+
static {
|
|
45
|
+
setComponentTemplate(precompileTemplate("<button type=\"button\" role=\"radio\" class=\"icon-button\" aria-checked={{if (@isSelected @value) \"true\" \"false\"}} 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 {{!-- role=\"presentation\" to make glint happy for no reason --}}\n <Icon @icon={{@icon}} role=\"presentation\" data-test-icon-button=\"icon\" />\n</button>", {
|
|
46
|
+
strictMode: true,
|
|
47
|
+
scope: () => ({
|
|
48
|
+
disabled,
|
|
49
|
+
Icon
|
|
50
|
+
})
|
|
51
|
+
}), this);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
class RadioButtonGroup extends Component {
|
|
55
|
+
Button = RadioButton;
|
|
56
|
+
IconButton = RadioIconButton;
|
|
57
|
+
items = new TrackedArray();
|
|
58
|
+
register = item => {
|
|
59
|
+
// eslint-disable-next-line ember/no-runloop
|
|
60
|
+
next(() => {
|
|
61
|
+
this.items.push(item);
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
unregister = item => {
|
|
65
|
+
// eslint-disable-next-line ember/no-runloop
|
|
66
|
+
next(() => {
|
|
67
|
+
this.items.splice(this.items.indexOf(item), 1);
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
isChecked = value => {
|
|
71
|
+
return this.args.value === value;
|
|
72
|
+
};
|
|
73
|
+
select = value => {
|
|
74
|
+
// eslint-disable-next-line ember/no-runloop
|
|
75
|
+
next(() => {
|
|
76
|
+
this.args.update?.(value);
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
static {
|
|
80
|
+
setComponentTemplate(precompileTemplate("<div class=\"button-group\" {{ariaRadioGroup items=this.items selection=@value select=this.select}}>\n {{yield (hash Button=(component this.Button register=this.register unregister=this.unregister isSelected=this.isChecked) IconButton=(component this.IconButton register=this.register unregister=this.unregister isSelected=this.isChecked))}}\n</div>", {
|
|
81
|
+
strictMode: true,
|
|
82
|
+
scope: () => ({
|
|
83
|
+
ariaRadioGroup,
|
|
84
|
+
hash
|
|
85
|
+
})
|
|
86
|
+
}), this);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export { RadioButtonGroup as R };
|
|
91
|
+
//# sourceMappingURL=radio-button-group-D7LjyINa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-button-group-D7LjyINa.js","sources":["../src/components/actions/radio-button-group.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\n\nimport { ariaRadioGroup } from 'ember-aria-voyager';\n// at some point this. For compatibility reasons, this isn't used yet\n// import { trackedArray } from '@ember/reactive/collections';\nimport { TrackedArray } from 'tracked-built-ins';\n\nimport disabled from '../../-private/modifiers/disabled.ts';\nimport { Icon } from '../graphics/icon.gts';\n\nimport type { ButtonArgs, ButtonBlocks, IconButtonArgs } from './-button.ts';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\n\ninterface RadioArgs<V> {\n value: V;\n register: (button: V) => void;\n unregister: (button: V) => void;\n isSelected: (value: V) => boolean;\n}\n\ninterface RadioButtonSignature<V> {\n Element: HTMLButtonElement;\n Args: ButtonArgs & RadioArgs<V>;\n Blocks: ButtonBlocks;\n}\n\nclass RadioButton<V> extends Component<RadioButtonSignature<V>> {\n constructor(owner: Owner, args: RadioButtonSignature<V>['Args']) {\n super(owner, args);\n\n args.register(args.value);\n\n registerDestructor(this, () => {\n args.unregister(args.value);\n });\n }\n\n <template>\n <button\n type=\"button\"\n role=\"radio\"\n class=\"button\"\n aria-checked={{if (@isSelected @value) \"true\" \"false\"}}\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-button\n ...attributes\n >\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n </button>\n </template>\n}\n\ninterface RadioIconButtonSignature<V> {\n Element: HTMLButtonElement;\n Args: ButtonArgs & IconButtonArgs & RadioArgs<V>;\n Blocks: ButtonBlocks;\n}\n\nclass RadioIconButton<V> extends Component<RadioIconButtonSignature<V>> {\n constructor(owner: Owner, args: RadioIconButtonSignature<V>['Args']) {\n super(owner, args);\n\n args.register(args.value);\n\n registerDestructor(this, () => {\n args.unregister(args.value);\n });\n }\n\n get label() {\n assert(\n 'Please provide a `@label` to `<IconButton>` for accessibility reasons.',\n\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 <button\n type=\"button\"\n role=\"radio\"\n class=\"icon-button\"\n aria-checked={{if (@isSelected @value) \"true\" \"false\"}}\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 {{! role=\"presentation\" to make glint happy for no reason }}\n <Icon @icon={{@icon}} role=\"presentation\" data-test-icon-button=\"icon\" />\n </button>\n </template>\n}\n\ntype RadioButtonGroupSignature<V> = {\n Element: HTMLDivElement;\n Args: {\n value: V;\n update?: (value: V) => void;\n };\n Blocks: {\n default: [\n {\n Button: WithBoundArgs<typeof RadioButton<V>, 'register' | 'unregister' | 'isSelected'>;\n IconButton: WithBoundArgs<\n typeof RadioIconButton<V>,\n 'register' | 'unregister' | 'isSelected'\n >;\n }\n ];\n };\n};\n\nexport class RadioButtonGroup<V> extends Component<RadioButtonGroupSignature<V>> {\n Button = RadioButton<V>;\n IconButton = RadioIconButton<V>;\n\n items: V[] = new TrackedArray();\n\n register = (item: V) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.push(item);\n });\n };\n\n unregister = (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 isChecked = (value: V) => {\n return this.args.value === value;\n };\n\n select = (value: V) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.args.update?.(value);\n });\n };\n\n <template>\n <div\n class=\"button-group\"\n {{ariaRadioGroup items=this.items selection=@value select=this.select}}\n >\n {{yield\n (hash\n Button=(component\n this.Button register=this.register unregister=this.unregister isSelected=this.isChecked\n )\n IconButton=(component\n this.IconButton\n register=this.register\n unregister=this.unregister\n isSelected=this.isChecked\n )\n )\n }}\n </div>\n </template>\n}\n"],"names":["RadioButton","Component","constructor","owner","args","register","value","registerDestructor","unregister","setComponentTemplate","precompileTemplate","strictMode","scope","disabled","RadioIconButton","label","assert","undefined","Icon","RadioButtonGroup","Button","IconButton","items","TrackedArray","item","next","push","splice","indexOf","isChecked","select","update","ariaRadioGroup","hash"],"mappings":";;;;;;;;;;;;AA+BA,MAAMA,WAAA,SAAuBC,SAAA,CAA+B;AAC1DC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAqC,EAAE;AAC/D,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;AAEbA,IAAAA,IAAA,CAAKC,QAAQ,CAACD,IAAA,CAAKE,KAAK,CAAA;IAExBC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBH,MAAAA,IAAA,CAAKI,UAAU,CAACJ,IAAA,CAAKE,KAAK,CAAA;AAC5B,IAAA,CAAA,CAAA;AACF,EAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAAA,8wBAAA,EAmCA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;AAQA,MAAMC,eAAA,SAA2Bb,SAAA,CAAmC;AAClEC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAyC,EAAE;AACnE,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;AAEbA,IAAAA,IAAA,CAAKC,QAAQ,CAACD,IAAA,CAAKE,KAAK,CAAA;IAExBC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBH,MAAAA,IAAA,CAAKI,UAAU,CAACJ,IAAA,CAAKE,KAAK,CAAA;AAC5B,IAAA,CAAA,CAAA;AACF,EAAA;EAEA,IAAIS,KAAAA,GAAQ;AACVC,IAAAA,MAAA,CACE;AAEA;AACA,IAAA,IAAI,CAACZ,IAAI,CAACW,KAAK,KAAKE,SAAA,CAAA;AAGtB,IAAA,OAAO,IAAI,CAACb,IAAI,CAACW,KAAK;AACxB,EAAA;AAEA,EAAA;IAAAN,oBAAA,CAAAC,kBAAA,CAAA,+gBAAA,EAiBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,QAAA;AAAAK,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;AAqBO,MAAMC,gBAAA,SAA4BlB,SAAA,CAAoC;AAC3EmB,EAAAA,MAAA,GAASpB;AACTqB,EAAAA,UAAA,GAAaP;AAEbQ,EAAAA,KAAA,GAAa,IAAIC,YAAA,EAAA;EAEjBlB,QAAA,GAAYmB,IAAM,IAAA;AAChB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACH,KAAK,CAACI,IAAI,CAACF,IAAA,CAAA;AAClB,IAAA,CAAA,CAAA;EACF,CAAA;EAEAhB,UAAA,GAAcgB,IAAM,IAAA;AAClB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACH,KAAK,CAACK,MAAM,CAAC,IAAI,CAACL,KAAK,CAACM,OAAO,CAACJ,IAAA,CAAA,EAAO,CAAA,CAAA;AAC9C,IAAA,CAAA,CAAA;EACF,CAAA;EAEAK,SAAA,GAAavB,KAAO,IAAA;AAClB,IAAA,OAAO,IAAI,CAACF,IAAI,CAACE,KAAK,KAAKA,KAAA;EAC7B,CAAA;EAEAwB,MAAA,GAAUxB,KAAO,IAAA;AACf;AACAmB,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACrB,IAAI,CAAC2B,MAAM,GAAGzB,KAAA,CAAA;AACrB,IAAA,CAAA,CAAA;EACF,CAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAAA,gWAAA,EAmBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAoB,cAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -21,7 +21,7 @@ const progressStyle = modifier((element, [value]) => {
|
|
|
21
21
|
element.addEventListener('input', listenForProgressChange);
|
|
22
22
|
return () => element.removeEventListener('input', listenForProgressChange);
|
|
23
23
|
});
|
|
24
|
-
const RangeInput = setComponentTemplate(precompileTemplate("
|
|
24
|
+
const RangeInput = setComponentTemplate(precompileTemplate("<input class=\"input\" type=\"range\" value={{@value}} disabled={{@disabled}} data-test-input data-orientation={{@orientation}} {{on \"input\" (pick \"target.value\" (pickAsNumber @update)) capture=true}} {{progressStyle @value}} ...attributes />", {
|
|
25
25
|
strictMode: true,
|
|
26
26
|
scope: () => ({
|
|
27
27
|
on,
|
|
@@ -32,4 +32,4 @@ const RangeInput = setComponentTemplate(precompileTemplate("\n <input class=\"i
|
|
|
32
32
|
}), templateOnly());
|
|
33
33
|
|
|
34
34
|
export { RangeInput as R };
|
|
35
|
-
//# sourceMappingURL=range-input-
|
|
35
|
+
//# sourceMappingURL=range-input-Oc8Z7tsH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range-input-
|
|
1
|
+
{"version":3,"file":"range-input-Oc8Z7tsH.js","sources":["../src/components/controls/range-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport { modifier } from 'ember-modifier';\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\nfunction applyProgressStyle(range: HTMLInputElement, value?: number) {\n const min = Number.parseFloat(range.min) || 0;\n const max = Number.parseFloat(range.max) || 100;\n const currentVal = value ?? Number.parseFloat(range.value);\n const progress = ((currentVal - min) / (max - min)) * 100;\n\n range.style.setProperty('--_hokulea-slider-progress', `${progress}%`);\n}\n\nconst progressStyle = modifier((element: HTMLInputElement, [value]: [number?]) => {\n applyProgressStyle(element, value);\n\n const listenForProgressChange = () => {\n applyProgressStyle(element);\n };\n\n element.addEventListener('input', listenForProgressChange);\n\n return () => element.removeEventListener('input', listenForProgressChange);\n});\n\nexport interface RangeInputSignature {\n Element: HTMLInputElement;\n Args: Omit<InputArgs<number>, 'spacing'> & {\n min?: number;\n max?: number;\n step?: number | 'any';\n orientation?: 'horizontal' | 'vertical';\n };\n}\n\nexport const RangeInput: TOC<RangeInputSignature> = <template>\n <input\n class=\"input\"\n type=\"range\"\n value={{@value}}\n disabled={{@disabled}}\n data-test-input\n data-orientation={{@orientation}}\n {{on \"input\" (pick \"target.value\" (pickAsNumber @update)) capture=true}}\n {{progressStyle @value}}\n ...attributes\n />\n</template>;\n"],"names":["applyProgressStyle","range","value","min","Number","parseFloat","max","currentVal","progress","style","setProperty","progressStyle","modifier","element","listenForProgressChange","addEventListener","removeEventListener","RangeInput","setComponentTemplate","precompileTemplate","strictMode","scope","on","pick","pickAsNumber","templateOnly"],"mappings":";;;;;;;;AAUA,SAASA,kBAAAA,CAAmBC,KAAuB,EAAEC,KAAc,EAAA;EACjE,MAAMC,MAAMC,MAAA,CAAOC,UAAU,CAACJ,KAAA,CAAME,GAAG,CAAA,IAAK,CAAA;EAC5C,MAAMG,MAAMF,MAAA,CAAOC,UAAU,CAACJ,KAAA,CAAMK,GAAG,CAAA,IAAK,GAAA;EAC5C,MAAMC,aAAaL,KAAA,IAASE,MAAA,CAAOC,UAAU,CAACJ,MAAMC,KAAK,CAAA;AACzD,EAAA,MAAMM,QAAA,GAAY,CAACD,UAAA,GAAaJ,GAAG,KAAKG,GAAA,GAAMH,GAAG,CAAC,GAAI,GAAA;EAEtDF,KAAA,CAAMQ,KAAK,CAACC,WAAW,CAAC,8BAA8B,CAAA,EAAGF,QAAA,CAAA,CAAA,CAAW,CAAA;AACtE;AAEA,MAAMG,aAAA,GAAgBC,SAAS,CAACC,SAA2B,CAACX,KAAA,CAAiB,KAAA;AAC3EF,EAAAA,kBAAA,CAAmBa,OAAA,EAASX,KAAA,CAAA;EAE5B,MAAMY,uBAAA,GAA0BA,MAAA;IAC9Bd,kBAAA,CAAmBa,OAAA,CAAA;EACrB,CAAA;AAEAA,EAAAA,OAAA,CAAQE,gBAAgB,CAAC,OAAA,EAASD,uBAAA,CAAA;EAElC,OAAO,MAAMD,OAAA,CAAQG,mBAAmB,CAAC,OAAA,EAASF,uBAAA,CAAA;AACpD,CAAA,CAAA;MAYaG,UAAgB,GAAAC,oBAAA,CAAuBC,kBAAA,CAAA,wPAAA,EAYpD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,EAAA;IAAAC,IAAA;IAAAC,YAAA;AAAAb,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAc,YAAA,EAAA;;;;"}
|
|
@@ -9,7 +9,7 @@ function elementForLevel(level) {
|
|
|
9
9
|
assert(`@level for <Section> must be between 1 and 6, received '${lvl}'`, lvl >= 1 && lvl <= 6);
|
|
10
10
|
return `h${lvl}`;
|
|
11
11
|
}
|
|
12
|
-
const Section = setComponentTemplate(precompileTemplate("
|
|
12
|
+
const Section = setComponentTemplate(precompileTemplate("<section class=\"section flow\" data-test-section ...attributes>\n {{#if @title}}\n <header data-test-section=\"header\" part=\"header\">\n {{#if @title}}\n {{#let (element (elementForLevel @level)) as |Headline|}}\n <Headline data-test-section=\"title\" part=\"title\">{{@title}}</Headline>\n {{/let}}\n {{/if}}\n </header>\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n</section>", {
|
|
13
13
|
strictMode: true,
|
|
14
14
|
scope: () => ({
|
|
15
15
|
element,
|
|
@@ -18,4 +18,4 @@ const Section = setComponentTemplate(precompileTemplate("\n <section class=\"se
|
|
|
18
18
|
}), templateOnly());
|
|
19
19
|
|
|
20
20
|
export { Section as S };
|
|
21
|
-
//# sourceMappingURL=section-
|
|
21
|
+
//# sourceMappingURL=section-DbYzqbWp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-
|
|
1
|
+
{"version":3,"file":"section-DbYzqbWp.js","sources":["../src/components/content/section.gts"],"sourcesContent":["import { assert } from '@ember/debug';\n\nimport { element } from 'ember-element-helper';\n\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface SectionSignature {\n Element: HTMLElement;\n Args: {\n title?: string;\n /**\n * The level of the component, 1-6 as in `<h1>` to `<h6>`\n *\n * @defaultValue 2\n */\n level?: string;\n };\n Blocks: {\n default: [];\n };\n}\n\nfunction elementForLevel(level?: string) {\n const lvl = level ? Number.parseInt(level) : 2;\n\n assert(`@level for <Section> must be between 1 and 6, received '${lvl}'`, lvl >= 1 && lvl <= 6);\n\n return `h${lvl}`;\n}\n\nexport const Section: TOC<SectionSignature> = <template>\n <section class=\"section flow\" data-test-section ...attributes>\n {{#if @title}}\n <header data-test-section=\"header\" part=\"header\">\n {{#if @title}}\n {{#let (element (elementForLevel @level)) as |Headline|}}\n <Headline data-test-section=\"title\" part=\"title\">{{@title}}</Headline>\n {{/let}}\n {{/if}}\n </header>\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </section>\n</template>;\n"],"names":["elementForLevel","level","lvl","Number","parseInt","assert","Section","setComponentTemplate","precompileTemplate","strictMode","scope","element","templateOnly"],"mappings":";;;;;;AAsBA,SAASA,eAAAA,CAAgBC,KAAc,EAAA;EACrC,MAAMC,GAAA,GAAMD,KAAA,GAAQE,MAAA,CAAOC,QAAQ,CAACH,KAAA,CAAA,GAAS,CAAA;AAE7CI,EAAAA,MAAA,CAAO,CAAA,wDAAA,EAA2DH,GAAA,CAAA,CAAA,CAAM,EAAEA,GAAA,IAAO,CAAA,IAAKA,GAAA,IAAO,CAAA,CAAA;EAE7F,OAAO,CAAA,CAAA,EAAIA,GAAA,CAAA,CAAK;AAClB;MAEaI,OAAa,GAAAC,oBAAA,CAAoBC,kBAAA,CAAA,wbAAA,EAgB9C;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,OAAA;AAAAX,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAY,YAAA,EAAA;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { element } from 'ember-element-helper';
|
|
2
|
+
import { o as or } from './helpers-D4So5-uK.js';
|
|
3
|
+
import { T as TabNav } from './tab-nav-pvb2XhOD.js';
|
|
4
|
+
import { P as PageDestructor, a as PageElement } from './pages-DgHJEvSy.js';
|
|
5
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
6
|
+
import { setComponentTemplate } from '@ember/component';
|
|
7
|
+
import templateOnly from '@ember/component/template-only';
|
|
8
|
+
|
|
9
|
+
const SectionedPage = setComponentTemplate(precompileTemplate("{{#let (if @element @element (element (pageElement))) as |Element|}}\n <Element class=\"sectioned-page\" {{pageDestructor}} ...attributes data-test-page>\n {{#if (or @title @description (has-block \"title\") (has-block \"description\") (has-block \"nav\"))}}\n <header class=\"page-content\">\n <h1 class=\"typography-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 <TabNav as |n|>\n {{yield n.Item to=\"nav\"}}\n </TabNav>\n {{/if}}\n </header>\n {{/if}}\n\n <div class=\"page-content flow\" part=\"content\">\n {{#if (has-block \"content\")}}\n {{yield to=\"content\"}}\n {{else if (has-block)}}\n {{yield}}\n {{/if}}\n </div>\n </Element>\n{{/let}}", {
|
|
10
|
+
strictMode: true,
|
|
11
|
+
scope: () => ({
|
|
12
|
+
element,
|
|
13
|
+
pageElement: PageElement,
|
|
14
|
+
pageDestructor: PageDestructor,
|
|
15
|
+
or,
|
|
16
|
+
TabNav
|
|
17
|
+
})
|
|
18
|
+
}), templateOnly());
|
|
19
|
+
|
|
20
|
+
export { SectionedPage as S };
|
|
21
|
+
//# sourceMappingURL=sectioned-page-Ba06ASAC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sectioned-page-Ba06ASAC.js","sources":["../src/components/layouts/sectioned-page.gts"],"sourcesContent":["import { element } from 'ember-element-helper';\n\nimport { or } from '../../-private/helpers.ts';\nimport TabNav from '../tab-nav.gts';\nimport { pageDestructor, pageElement } from './pages.ts';\n\nimport type { NavLink } from '../navigation/nav-link.gts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { ComponentLike } from '@glint/template';\n\ninterface SectionedPageSignature {\n Element: HTMLElement;\n Args: {\n title?: string;\n description?: string;\n element?: ComponentLike<{ Element: HTMLElement; Blocks: { default: [] } }>;\n };\n Blocks: {\n title?: [];\n description?: [];\n nav?: [typeof NavLink];\n content?: [];\n default?: [];\n };\n}\n\nexport const SectionedPage: TOC<SectionedPageSignature> = <template>\n {{#let (if @element @element (element (pageElement))) as |Element|}}\n <Element class=\"sectioned-page\" {{pageDestructor}} ...attributes data-test-page>\n {{#if\n (or @title @description (has-block \"title\") (has-block \"description\") (has-block \"nav\"))\n }}\n <header class=\"page-content\">\n <h1 class=\"typography-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 <TabNav as |n|>\n {{yield n.Item to=\"nav\"}}\n </TabNav>\n {{/if}}\n </header>\n {{/if}}\n\n <div class=\"page-content flow\" part=\"content\">\n {{#if (has-block \"content\")}}\n {{yield to=\"content\"}}\n {{else if (has-block)}}\n {{yield}}\n {{/if}}\n </div>\n </Element>\n {{/let}}\n</template>;\n"],"names":["SectionedPage","setComponentTemplate","precompileTemplate","strictMode","scope","element","pageElement","pageDestructor","or","TabNav","templateOnly"],"mappings":";;;;;;;;MA0BaA,aAAmB,GAAAC,oBAAA,CAA0BC,kBAAA,CAAA,+rCAAA,EA0C1D;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,OAAA;iBAAAC,WAAA;oBAAAC,cAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -5,7 +5,7 @@ import { precompileTemplate } from '@ember/template-compilation';
|
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
import templateOnly from '@ember/component/template-only';
|
|
7
7
|
|
|
8
|
-
const Option = setComponentTemplate(precompileTemplate("
|
|
8
|
+
const Option = setComponentTemplate(precompileTemplate("<option value={{@value}} selected={{@isSelected @value}} ...attributes>\n {{#if (has-block)}}\n {{yield}}\n {{else}}\n {{@value}}\n {{/if}}\n</option>", {
|
|
9
9
|
strictMode: true
|
|
10
10
|
}), templateOnly());
|
|
11
11
|
class Select extends Component {
|
|
@@ -25,7 +25,7 @@ class Select extends Component {
|
|
|
25
25
|
return this.args.spacing ?? 1;
|
|
26
26
|
}
|
|
27
27
|
static {
|
|
28
|
-
setComponentTemplate(precompileTemplate("
|
|
28
|
+
setComponentTemplate(precompileTemplate("<span class=\"select\" data-spacing={{this.spacing}}>\n <select disabled={{@disabled}} data-test-select {{on \"input\" this.select capture=true}} ...attributes>\n {{yield (hash Option=(component Option isSelected=this.isSelected))}}\n </select>\n</span>", {
|
|
29
29
|
strictMode: true,
|
|
30
30
|
scope: () => ({
|
|
31
31
|
on,
|
|
@@ -37,4 +37,4 @@ class Select extends Component {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
export { Select as S };
|
|
40
|
-
//# sourceMappingURL=select-
|
|
40
|
+
//# sourceMappingURL=select-CrdsGEgR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-
|
|
1
|
+
{"version":3,"file":"select-CrdsGEgR.js","sources":["../src/components/controls/select.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\nimport { on } from '@ember/modifier';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\nimport type { Spacing } from '@hokulea/tokens';\n\nexport type Value = string | number;\n\nexport interface OptionSignature {\n Element: HTMLOptionElement;\n Args: {\n value: Value;\n isSelected: (option: Value) => boolean;\n };\n Blocks: {\n default: [];\n };\n}\n\nconst Option: TOC<OptionSignature> = <template>\n <option value={{@value}} selected={{@isSelected @value}} ...attributes>\n {{#if (has-block)}}\n {{yield}}\n {{else}}\n {{@value}}\n {{/if}}\n </option>\n</template>;\n\nexport interface SelectSignature {\n Element: HTMLSelectElement;\n Args: {\n value?: Value | Value[];\n update?: (value: Value | Value[]) => void;\n disabled?: boolean;\n spacing?: Spacing;\n };\n Blocks: {\n default: [\n {\n Option: WithBoundArgs<typeof Option, 'isSelected'>;\n }\n ];\n };\n}\n\nexport class Select extends Component<SelectSignature> {\n isSelected = (option: Value) => {\n if (Array.isArray(this.args.value)) {\n return this.args.value.includes(option);\n }\n\n return String(option) === String(this.args.value);\n };\n\n select = (event: Event) => {\n const select = event.target as HTMLSelectElement;\n const selection = Array.of(...select.selectedOptions).map((option) => option.value);\n const value = selection.length === 1 ? (selection[0] as Value) : (selection as Value[]);\n\n this.args.update?.(value);\n };\n\n get spacing() {\n return this.args.spacing ?? 1;\n }\n\n <template>\n <span class=\"select\" data-spacing={{this.spacing}}>\n <select\n disabled={{@disabled}}\n data-test-select\n {{on \"input\" this.select capture=true}}\n ...attributes\n >\n {{yield (hash Option=(component Option isSelected=this.isSelected))}}\n </select>\n </span>\n </template>\n}\n"],"names":["Option","setComponentTemplate","precompileTemplate","strictMode","templateOnly","Select","Component","isSelected","option","Array","isArray","args","value","includes","String","select","event","target","selection","of","selectedOptions","map","length","update","spacing","scope","on","hash"],"mappings":";;;;;;;AAqBA,MAAMA,MAAY,GAAAC,oBAAA,CAAmBC,kBAAA,CAAA,iKAAA,EAQrC;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA;AAmBH,MAAMC,eAAeC,SAAA,CAAU;EACpCC,UAAA,GAAcC,MAAQ,IAAA;IACpB,IAAIC,KAAA,CAAMC,OAAO,CAAC,IAAI,CAACC,IAAI,CAACC,KAAK,CAAA,EAAG;MAClC,OAAO,IAAI,CAACD,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACL,MAAA,CAAA;AAClC,IAAA;AAEA,IAAA,OAAOM,OAAON,MAAA,CAAA,KAAYM,MAAA,CAAO,IAAI,CAACH,IAAI,CAACC,KAAK,CAAA;EAClD,CAAA;EAEAG,MAAA,GAAUC,KAAO,IAAA;AACf,IAAA,MAAMD,MAAA,GAASC,KAAA,CAAMC,MAAU;AAC/B,IAAA,MAAMC,SAAA,GAAYT,KAAA,CAAMU,EAAE,CAAA,GAAIJ,MAAA,CAAOK,eAAe,CAAA,CAAEC,GAAG,CAAEb,MAAA,IAAWA,MAAA,CAAOI,KAAK,CAAA;AAClF,IAAA,MAAMA,KAAA,GAAQM,SAAA,CAAUI,MAAM,KAAK,IAAKJ,SAAS,CAAC,CAAA,CAAE,GAAcA,SAAoB;AAEtF,IAAA,IAAI,CAACP,IAAI,CAACY,MAAM,GAAGX,KAAA,CAAA;EACrB,CAAA;EAEA,IAAIY,OAAAA,GAAU;AACZ,IAAA,OAAO,IAAI,CAACb,IAAI,CAACa,OAAO,IAAI,CAAA;AAC9B,EAAA;AAEA,EAAA;IAAAvB,oBAAA,CAAAC,kBAAA,CAAA,oQAAA,EAWA;MAAAC,UAAA,EAAA,IAAA;AAAAsB,MAAAA,KAAA,EAAAA,OAAA;QAAAC,EAAA;QAAAC,IAAA;AAAA3B,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { hash } from '@ember/helper';
|
|
2
|
+
import { N as NavLink } from './nav-link-KZJghY_q.js';
|
|
3
|
+
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
|
+
import { setComponentTemplate } from '@ember/component';
|
|
5
|
+
import templateOnly from '@ember/component/template-only';
|
|
6
|
+
|
|
7
|
+
const TabNav = setComponentTemplate(precompileTemplate("<nav class=\"tab-nav\" data-test-tab-nav ...attributes>\n {{yield (hash Item=NavLink)}}\n</nav>", {
|
|
8
|
+
strictMode: true,
|
|
9
|
+
scope: () => ({
|
|
10
|
+
hash,
|
|
11
|
+
NavLink
|
|
12
|
+
})
|
|
13
|
+
}), templateOnly());
|
|
14
|
+
|
|
15
|
+
export { TabNav as T };
|
|
16
|
+
//# sourceMappingURL=tab-nav-pvb2XhOD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-nav-pvb2XhOD.js","sources":["../src/components/navigation/tab-nav.gts"],"sourcesContent":["import { hash } from '@ember/helper';\n\nimport { NavLink } from './nav-link.gts';\n\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface TabNavSignature {\n Element: HTMLElement;\n Blocks: {\n default?: [{ Item: typeof NavLink }];\n };\n}\n\nexport const TabNav: TOC<TabNavSignature> = <template>\n <nav class=\"tab-nav\" data-test-tab-nav ...attributes>\n {{yield (hash Item=NavLink)}}\n </nav>\n</template>;\n"],"names":["TabNav","setComponentTemplate","precompileTemplate","strictMode","scope","hash","NavLink","templateOnly"],"mappings":";;;;;;MAaaA,MAAY,GAAAC,oBAAA,CAAmBC,kBAAA,CAAA,kGAAA,EAI5C;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,IAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -36,7 +36,7 @@ class Tab extends Component {
|
|
|
36
36
|
n(this.prototype, "id", [cached]);
|
|
37
37
|
}
|
|
38
38
|
static {
|
|
39
|
-
setComponentTemplate(precompileTemplate("
|
|
39
|
+
setComponentTemplate(precompileTemplate("{{#let (uniqueId) (hash active=(eq this.id @activeItem) selected=(eq this.id @selection)) as |id state|}}\n <Portal @target={{@tablist}}>\n {{!-- template-lint-disable require-context-role --}}\n <button type=\"button\" role=\"tab\" aria-controls={{id}} aria-selected={{if state.selected \"true\"}} id=\"{{id}}-label\" {{attachValue @value}}>\n <span>\n {{#if (has-block \"label\")}}\n {{yield state to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </span>\n </button>\n </Portal>\n\n <section id={{id}} role=\"tabpanel\" aria-labelledby=\"{{id}}-label\" local-class=\"content\" hidden={{not state.selected}}>\n {{#if (has-block \"content\")}}\n {{yield state to=\"content\"}}\n {{else}}\n {{yield state}}\n {{/if}}\n </section>\n{{/let}}", {
|
|
40
40
|
strictMode: true,
|
|
41
41
|
scope: () => ({
|
|
42
42
|
uniqueId,
|
|
@@ -92,7 +92,7 @@ class Tabs extends Component {
|
|
|
92
92
|
this.activeItem = id;
|
|
93
93
|
};
|
|
94
94
|
static {
|
|
95
|
-
setComponentTemplate(precompileTemplate("
|
|
95
|
+
setComponentTemplate(precompileTemplate("<div class=\"tabs\" data-test-tabs>\n {{#let (uniqueId) as |tablistId|}}\n <PortalTarget @name={{tablistId}} @multiple={{true}} role=\"tablist\" {{ariaTablist items=this.items select=this.select selection=this.selection activateItem=this.activateItem disabled=@disabled behavior=@behavior orientation=@orientation}} />\n\n {{yield (hash Tab=(component Tab register=this.register unregister=this.unregister tablist=tablistId selection=this.selection activeItem=this.activeItem))}}\n {{/let}}\n</div>", {
|
|
96
96
|
strictMode: true,
|
|
97
97
|
scope: () => ({
|
|
98
98
|
uniqueId,
|
|
@@ -106,4 +106,4 @@ class Tabs extends Component {
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
export { Tabs as T, TabValue as a };
|
|
109
|
-
//# sourceMappingURL=tabs-
|
|
109
|
+
//# sourceMappingURL=tabs-DdGp_ET2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-
|
|
1
|
+
{"version":3,"file":"tabs-DdGp_ET2.js","sources":["../src/components/controls/tabs.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash, uniqueId } from '@ember/helper';\nimport { guidFor } from '@ember/object/internals';\nimport { next } from '@ember/runloop';\n\nimport { ariaTablist, type Orientation, type TablistBehavior } from 'ember-aria-voyager';\nimport { modifier } from 'ember-modifier';\nimport Portal from 'ember-stargate/components/portal';\nimport PortalTarget from 'ember-stargate/components/portal-target';\nimport { TrackedArray } from 'tracked-built-ins';\n\nimport { eq, not } from '../../-private/helpers.ts';\n\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\n\nexport const TabValue = Symbol('TabValue');\n\nconst attachValue = modifier((element, [value]) => {\n if (value) {\n // @ts-expect-error this is internal API\n element[TabValue] = value;\n }\n});\n\ninterface State {\n active: boolean;\n selected: boolean;\n}\n\ntype Item = string & {};\n\ntype TabSignature = {\n Element: HTMLDivElement;\n Args: {\n tablist: string;\n register: (tab: Tab) => void;\n unregister: (tab: Tab) => void;\n label?: string;\n value?: unknown;\n selection?: unknown;\n activeItem?: Item;\n };\n Blocks: {\n default?: [State];\n label?: [State];\n content?: [State];\n };\n};\n\nclass Tab extends Component<TabSignature> {\n constructor(owner: Owner, args: TabSignature['Args']) {\n super(owner, args);\n\n args.register(this);\n\n registerDestructor(this, () => {\n args.unregister(this);\n });\n }\n\n @cached\n get id() {\n return this.args.value ?? this.args.label ?? guidFor(this);\n }\n\n <template>\n {{#let\n (uniqueId) (hash active=(eq this.id @activeItem) selected=(eq this.id @selection))\n as |id state|\n }}\n <Portal @target={{@tablist}}>\n {{! template-lint-disable require-context-role }}\n <button\n type=\"button\"\n role=\"tab\"\n aria-controls={{id}}\n aria-selected={{if state.selected \"true\"}}\n id=\"{{id}}-label\"\n {{attachValue @value}}\n >\n <span>\n {{#if (has-block \"label\")}}\n {{yield state to=\"label\"}}\n {{else}}\n {{@label}}\n {{/if}}\n </span>\n </button>\n </Portal>\n\n <section\n id={{id}}\n role=\"tabpanel\"\n aria-labelledby=\"{{id}}-label\"\n local-class=\"content\"\n hidden={{not state.selected}}\n >\n {{#if (has-block \"content\")}}\n {{yield state to=\"content\"}}\n {{else}}\n {{yield state}}\n {{/if}}\n </section>\n {{/let}}\n </template>\n}\n\ninterface TabsSignature {\n Element: HTMLDivElement;\n Args: {\n disabled?: boolean;\n selection?: unknown;\n update?: (value: unknown) => void;\n behavior?: TablistBehavior;\n orientation?: Orientation;\n };\n Blocks: {\n default: [\n {\n Tab: WithBoundArgs<\n typeof Tab,\n 'selection' | 'activeItem' | 'tablist' | 'register' | 'unregister'\n >;\n }\n ];\n };\n}\n\nexport class Tabs extends Component<TabsSignature> {\n @tracked tabs: Tab[] = new TrackedArray();\n @tracked internalSelection?: Tab;\n @tracked activeItem?: Item;\n\n get items() {\n return this.tabs.map((t) => t.id);\n }\n\n get selection() {\n return this.args.selection ?? this.internalSelection?.id;\n }\n\n register = (tab: Tab) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.tabs.push(tab);\n });\n };\n\n unregister = (tab: Tab) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.tabs.splice(this.tabs.indexOf(tab), 1);\n });\n };\n\n select = (id: Item) => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const tab = this.tabs.find((t) => t.id === id)!;\n\n this.internalSelection = tab;\n this.args.update?.(tab.args.value ?? tab.args.label ?? undefined);\n };\n\n activateItem = (id: Item) => {\n this.activeItem = id;\n };\n\n <template>\n <div class=\"tabs\" data-test-tabs>\n {{#let (uniqueId) as |tablistId|}}\n <PortalTarget\n @name={{tablistId}}\n @multiple={{true}}\n role=\"tablist\"\n {{ariaTablist\n items=this.items\n select=this.select\n selection=this.selection\n activateItem=this.activateItem\n disabled=@disabled\n behavior=@behavior\n orientation=@orientation\n }}\n />\n\n {{yield\n (hash\n Tab=(component\n Tab\n register=this.register\n unregister=this.unregister\n tablist=tablistId\n selection=this.selection\n activeItem=this.activeItem\n )\n )\n }}\n {{/let}}\n </div>\n </template>\n}\n"],"names":["TabValue","Symbol","attachValue","modifier","element","value","Tab","Component","constructor","owner","args","register","registerDestructor","unregister","id","label","guidFor","n","prototype","cached","setComponentTemplate","precompileTemplate","strictMode","scope","uniqueId","hash","eq","Portal","not","Tabs","g","tracked","TrackedArray","i","void 0","items","tabs","map","t","selection","internalSelection","tab","next","push","splice","indexOf","select","find","update","undefined","activateItem","activeItem","PortalTarget","ariaTablist"],"mappings":";;;;;;;;;;;;;;;;MAkBaA,QAAA,GAAWC,MAAA,CAAO,UAAA;AAE/B,MAAMC,WAAA,GAAcC,QAAA,CAAS,CAACC,OAAA,EAAS,CAACC,KAAA,CAAM,KAAA;AAC5C,EAAA,IAAIA,KAAA,EAAO;AACT;AACAD,IAAAA,OAAO,CAACJ,SAAS,GAAGK,KAAA;AACtB,EAAA;AACF,CAAA,CAAA;AA2BA,MAAMC,YAAYC,SAAA,CAAU;AAC1BC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAA0B,EAAE;AACpD,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;AAEbA,IAAAA,IAAA,CAAKC,QAAQ,CAAC,IAAI,CAAA;IAElBC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBF,MAAAA,IAAA,CAAKG,UAAU,CAAC,IAAI,CAAA;AACtB,IAAA,CAAA,CAAA;AACF,EAAA;EAEA,IACIC,EAAAA,GAAK;AACP,IAAA,OAAO,IAAI,CAACJ,IAAI,CAACL,KAAK,IAAI,IAAI,CAACK,IAAI,CAACK,KAAK,IAAIC,QAAQ,IAAI,CAAA;AAC3D,EAAA;AAAA,EAAA;IAAAC,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,IAAA,EAAA,CAHCC,MAAA,CAAA,CAAA;AAAA;AAKD,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,uzBAAA,EAuCA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,QAAA;QAAAC,IAAA;QAAAC,EAAA;QAAAC,MAAA;QAAAzB,WAAA;AAAA0B,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;AAuBO,MAAMC,aAAatB,SAAA,CAAU;AAAA,EAAA;IAAAuB,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,MAAA,EAAA,CACjCa,OAAA,CAAA,EAAA,YAAA;MAAA,OAAsB,IAAIC,YAAA,EAAA;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,KAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,MAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,mBAAA,EAAA,CAC1Ba,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,kBAAA,IAAAE,CAAA,CAAA,IAAA,EAAA,mBAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAZ,SAAA,EAAA,YAAA,EAAA,CACAa,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,WAAA,IAAAE,CAAA,CAAA,IAAA,EAAA,YAAA,CAAA,EAAAC,MAAA;EAED,IAAIC,KAAAA,GAAQ;IACV,OAAO,IAAI,CAACC,IAAI,CAACC,GAAG,CAAEC,CAAA,IAAMA,CAAA,CAAExB,EAAE,CAAA;AAClC,EAAA;EAEA,IAAIyB,SAAAA,GAAY;IACd,OAAO,IAAI,CAAC7B,IAAI,CAAC6B,SAAS,IAAI,IAAI,CAACC,iBAAiB,EAAE1B,EAAA;AACxD,EAAA;EAEAH,QAAA,GAAY8B,GAAK,IAAA;AACf;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACN,IAAI,CAACO,IAAI,CAACF,GAAA,CAAA;AACjB,IAAA,CAAA,CAAA;EACF,CAAA;EAEA5B,UAAA,GAAc4B,GAAK,IAAA;AACjB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACN,IAAI,CAACQ,MAAM,CAAC,IAAI,CAACR,IAAI,CAACS,OAAO,CAACJ,GAAA,CAAA,EAAM,CAAA,CAAA;AAC3C,IAAA,CAAA,CAAA;EACF,CAAA;EAEAK,MAAA,GAAUhC,EAAI,IAAA;AACZ;AACA,IAAA,MAAM2B,GAAA,GAAM,IAAI,CAACL,IAAI,CAACW,IAAI,CAAET,CAAA,IAAMA,CAAA,CAAExB,EAAE,KAAKA,EAAA,CAAA;IAE3C,IAAI,CAAC0B,iBAAiB,GAAGC,GAAA;AACzB,IAAA,IAAI,CAAC/B,IAAI,CAACsC,MAAM,GAAGP,GAAA,CAAI/B,IAAI,CAACL,KAAK,IAAIoC,GAAA,CAAI/B,IAAI,CAACK,KAAK,IAAIkC,SAAA,CAAA;EACzD,CAAA;EAEAC,YAAA,GAAgBpC,EAAI,IAAA;IAClB,IAAI,CAACqC,UAAU,GAAGrC,EAAA;EACpB,CAAA;AAEA,EAAA;IAAAM,oBAAA,CAAAC,kBAAA,CAAA,4fAAA,EAgCA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,QAAA;QAAA4B,YAAA;QAAAC,WAAA;QAAA5B,IAAA;AAAAnB,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PageObject, selector, globalSelector } from 'fractal-page-object';
|
|
2
2
|
import { click, select, triggerEvent } from '@ember/test-helpers';
|
|
3
3
|
import { selectListbox, selectTab } from 'ember-aria-voyager/test-support';
|
|
4
|
-
import { a as TabValue } from '../tabs-
|
|
4
|
+
import { a as TabValue } from '../tabs-DdGp_ET2.js';
|
|
5
5
|
|
|
6
6
|
class AlertPageObject extends PageObject {
|
|
7
7
|
static SELECTOR = '[data-test-feedback]';
|
|
@@ -9,10 +9,10 @@ class AlertPageObject extends PageObject {
|
|
|
9
9
|
super(selector ?? AlertPageObject.SELECTOR, parent, index);
|
|
10
10
|
}
|
|
11
11
|
get indicator() {
|
|
12
|
-
return this.element?.
|
|
12
|
+
return this.element?.dataset.indicator;
|
|
13
13
|
}
|
|
14
14
|
get importance() {
|
|
15
|
-
return this.element?.
|
|
15
|
+
return this.element?.dataset.importance;
|
|
16
16
|
}
|
|
17
17
|
$icon = selector('[part="icon"]');
|
|
18
18
|
$title = selector('[part="title"]');
|
|
@@ -35,13 +35,13 @@ class IconButtonPageObject extends PageObject {
|
|
|
35
35
|
super(selector ?? IconButtonPageObject.SELECTOR, parent, index);
|
|
36
36
|
}
|
|
37
37
|
get intent() {
|
|
38
|
-
return this.element?.
|
|
38
|
+
return this.element?.dataset.intent;
|
|
39
39
|
}
|
|
40
40
|
get importance() {
|
|
41
|
-
return this.element?.
|
|
41
|
+
return this.element?.dataset.importance;
|
|
42
42
|
}
|
|
43
43
|
get spacing() {
|
|
44
|
-
return this.element?.
|
|
44
|
+
return this.element?.dataset.spacing;
|
|
45
45
|
}
|
|
46
46
|
async push() {
|
|
47
47
|
if (this.element) {
|
|
@@ -153,18 +153,18 @@ class AvatarPageObject extends PageObject {
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
class ButtonPageObject extends PageObject {
|
|
156
|
-
static SELECTOR = '[data-test-button]';
|
|
156
|
+
static SELECTOR = '[data-test-button=""]';
|
|
157
157
|
constructor(selector, parent, index) {
|
|
158
158
|
super(selector ?? ButtonPageObject.SELECTOR, parent, index);
|
|
159
159
|
}
|
|
160
160
|
get intent() {
|
|
161
|
-
return this.element?.
|
|
161
|
+
return this.element?.dataset.intent;
|
|
162
162
|
}
|
|
163
163
|
get importance() {
|
|
164
|
-
return this.element?.
|
|
164
|
+
return this.element?.dataset.importance;
|
|
165
165
|
}
|
|
166
166
|
get spacing() {
|
|
167
|
-
return this.element?.
|
|
167
|
+
return this.element?.dataset.spacing;
|
|
168
168
|
}
|
|
169
169
|
$before = selector('[data-test-button="before"]');
|
|
170
170
|
$label = selector('[data-test-button="label"]');
|
|
@@ -176,6 +176,14 @@ class ButtonPageObject extends PageObject {
|
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
+
class ButtonGroupPageObject extends PageObject {
|
|
180
|
+
static SELECTOR = '[data-test-button-group]';
|
|
181
|
+
constructor(selector, parent, index) {
|
|
182
|
+
super(selector ?? ButtonGroupPageObject.SELECTOR, parent, index);
|
|
183
|
+
}
|
|
184
|
+
$button = selector(ButtonPageObject.SELECTOR, ButtonPageObject);
|
|
185
|
+
}
|
|
186
|
+
|
|
179
187
|
class ChoicePageObject extends PageObject {
|
|
180
188
|
static SELECTOR = '[data-test-choice]';
|
|
181
189
|
constructor(selector, parent, index) {
|
|
@@ -197,7 +205,7 @@ class InputPageObject extends PageObject {
|
|
|
197
205
|
return this.element;
|
|
198
206
|
}
|
|
199
207
|
get spacing() {
|
|
200
|
-
return this.element?.
|
|
208
|
+
return this.element?.dataset.spacing;
|
|
201
209
|
}
|
|
202
210
|
}
|
|
203
211
|
class RangeInputPageObject extends InputPageObject {
|
|
@@ -218,7 +226,7 @@ class SelectPageObject extends PageObject {
|
|
|
218
226
|
super(selector ?? SelectPageObject.SELECTOR, parent, index);
|
|
219
227
|
}
|
|
220
228
|
get spacing() {
|
|
221
|
-
return this.element?.
|
|
229
|
+
return this.element?.dataset.spacing;
|
|
222
230
|
}
|
|
223
231
|
get control() {
|
|
224
232
|
return this.element;
|
|
@@ -261,10 +269,10 @@ class DataTablePageObject extends PageObject {
|
|
|
261
269
|
class Error extends PageObject {
|
|
262
270
|
static SELECTOR = '[data-test-error]';
|
|
263
271
|
get type() {
|
|
264
|
-
return this.element?.
|
|
272
|
+
return this.element?.dataset.testErrorType;
|
|
265
273
|
}
|
|
266
274
|
get value() {
|
|
267
|
-
return this.element?.
|
|
275
|
+
return this.element?.dataset.testErrorValue;
|
|
268
276
|
}
|
|
269
277
|
}
|
|
270
278
|
|
|
@@ -325,7 +333,7 @@ class ChoicesPageObject extends PageObject {
|
|
|
325
333
|
|
|
326
334
|
class FieldRule extends PageObject {
|
|
327
335
|
get invalid() {
|
|
328
|
-
return Boolean(this.element?.
|
|
336
|
+
return Boolean(this.element?.dataset.testRuleInvalid);
|
|
329
337
|
}
|
|
330
338
|
}
|
|
331
339
|
class FieldPageObject extends PageObject {
|
|
@@ -375,7 +383,7 @@ class FieldPageObject extends PageObject {
|
|
|
375
383
|
return this.$input; // @TODO bad fallback for now
|
|
376
384
|
}
|
|
377
385
|
get name() {
|
|
378
|
-
return this.element?.
|
|
386
|
+
return this.element?.dataset.testField;
|
|
379
387
|
}
|
|
380
388
|
}
|
|
381
389
|
|
|
@@ -436,13 +444,13 @@ class PillButtonPageObject extends PageObject {
|
|
|
436
444
|
super(selector ?? PillButtonPageObject.SELECTOR, parent, index);
|
|
437
445
|
}
|
|
438
446
|
get intent() {
|
|
439
|
-
return this.element?.
|
|
447
|
+
return this.element?.dataset.intent;
|
|
440
448
|
}
|
|
441
449
|
get importance() {
|
|
442
|
-
return this.element?.
|
|
450
|
+
return this.element?.dataset.importance;
|
|
443
451
|
}
|
|
444
452
|
get spacing() {
|
|
445
|
-
return this.element?.
|
|
453
|
+
return this.element?.dataset.spacing;
|
|
446
454
|
}
|
|
447
455
|
$before = selector('[data-test-button="before"]');
|
|
448
456
|
$label = selector('[data-test-button="label"]');
|
|
@@ -461,6 +469,18 @@ class PopoverPageObject extends PageObject {
|
|
|
461
469
|
}
|
|
462
470
|
}
|
|
463
471
|
|
|
472
|
+
class RadioButtonGroupPageObject extends PageObject {
|
|
473
|
+
static SELECTOR = '[role="radiogroup"]';
|
|
474
|
+
constructor(selector, parent, index) {
|
|
475
|
+
super(selector ?? RadioButtonGroupPageObject.SELECTOR, parent, index);
|
|
476
|
+
}
|
|
477
|
+
$option = selector('[role="radio"]', class extends PageObject {
|
|
478
|
+
get checked() {
|
|
479
|
+
return this.element?.getAttribute('aria-checked');
|
|
480
|
+
}
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
|
|
464
484
|
class SectionPageObject extends PageObject {
|
|
465
485
|
static SELECTOR = '[data-test-section]';
|
|
466
486
|
constructor(selector, parent, index) {
|
|
@@ -470,6 +490,14 @@ class SectionPageObject extends PageObject {
|
|
|
470
490
|
$title = selector('[data-test-section="title"]');
|
|
471
491
|
}
|
|
472
492
|
|
|
493
|
+
class TabNavPageObject extends PageObject {
|
|
494
|
+
static SELECTOR = '[data-test-tab-nav]';
|
|
495
|
+
constructor(selector, parent, index) {
|
|
496
|
+
super(selector ?? TabNavPageObject.SELECTOR, parent, index);
|
|
497
|
+
}
|
|
498
|
+
$items = selector('[part="item"]', NavLinkPageObject);
|
|
499
|
+
}
|
|
500
|
+
|
|
473
501
|
class TabsPageObject extends PageObject {
|
|
474
502
|
static SELECTOR = '[data-test-tabs]';
|
|
475
503
|
constructor(selector, parent, index) {
|
|
@@ -491,5 +519,5 @@ class TabsPageObject extends PageObject {
|
|
|
491
519
|
}
|
|
492
520
|
}
|
|
493
521
|
|
|
494
|
-
export { AlertPageObject, AppHeaderPageObject, AvatarPageObject, ButtonPageObject, CheckboxPageObject, CurrencyInputPageObject, DataTablePageObject, DateInputPageObject, EmailInputPageObject, FormPageObject, IconButtonPageObject, IconPageObject, ListPageObject, MenuPageObject, NavigationListPageObject, NumberInputPageObject, PagePageObject, PaginationPageObject, PasswordInputPageObject, PhoneInputPageObject, PillButtonPageObject, PopoverPageObject, RadioPageObject, RangeInputPageObject, SectionPageObject, SectionedPagePageObject, SelectPageObject, TabsPageObject, TextAreaPageObject, TextInputPageObject };
|
|
522
|
+
export { AlertPageObject, AppHeaderPageObject, AvatarPageObject, ButtonGroupPageObject, ButtonPageObject, CheckboxPageObject, CurrencyInputPageObject, DataTablePageObject, DateInputPageObject, EmailInputPageObject, FormPageObject, IconButtonPageObject, IconPageObject, ListPageObject, MenuPageObject, NavigationListPageObject, NumberInputPageObject, PagePageObject, PaginationPageObject, PasswordInputPageObject, PhoneInputPageObject, PillButtonPageObject, PopoverPageObject, RadioButtonGroupPageObject, RadioPageObject, RangeInputPageObject, SectionPageObject, SectionedPagePageObject, SelectPageObject, TabNavPageObject, TabsPageObject, TextAreaPageObject, TextInputPageObject };
|
|
495
523
|
//# sourceMappingURL=index.js.map
|