@hokulea/ember 0.13.0 → 0.14.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/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/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 +1 -0
- package/declarations/index.d.ts.map +1 -1
- package/declarations/test-support/index.d.ts +1 -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/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/tab-nav.d.ts +9 -0
- package/declarations/test-support/page-objects/tab-nav.d.ts.map +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-B9BWy4HI.js} +8 -8
- package/dist/app-header-B9BWy4HI.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-CRe5grz4.js +24 -0
- package/dist/{button-BAtG9lC0.js.map → button-CRe5grz4.js.map} +1 -1
- 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.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.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-hS8-Jo0v.js → icon-button-ClE5SC8Y.js} +4 -4
- package/dist/{icon-button-hS8-Jo0v.js.map → icon-button-ClE5SC8Y.js.map} +1 -1
- 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 +36 -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-Mgv860Cf.js} +5 -5
- package/dist/{pagination-BYiNuWz8.js.map → pagination-Mgv860Cf.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/{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 +27 -19
- 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 +37 -38
- package/dist/app-header-Bb7kHBL2.js.map +0 -1
- package/dist/button-BAtG9lC0.js +0 -24
- 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/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
|
@@ -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;;;;"}
|
|
@@ -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":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PageObject, selector, globalSelector } from 'fractal-page-object';
|
|
2
2
|
import { click, select, triggerEvent } from '@ember/test-helpers';
|
|
3
3
|
import { selectListbox, selectTab } from 'ember-aria-voyager/test-support';
|
|
4
|
-
import { a as TabValue } from '../tabs-
|
|
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) {
|
|
@@ -158,13 +158,13 @@ class ButtonPageObject extends PageObject {
|
|
|
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"]');
|
|
@@ -197,7 +197,7 @@ class InputPageObject extends PageObject {
|
|
|
197
197
|
return this.element;
|
|
198
198
|
}
|
|
199
199
|
get spacing() {
|
|
200
|
-
return this.element?.
|
|
200
|
+
return this.element?.dataset.spacing;
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
203
|
class RangeInputPageObject extends InputPageObject {
|
|
@@ -218,7 +218,7 @@ class SelectPageObject extends PageObject {
|
|
|
218
218
|
super(selector ?? SelectPageObject.SELECTOR, parent, index);
|
|
219
219
|
}
|
|
220
220
|
get spacing() {
|
|
221
|
-
return this.element?.
|
|
221
|
+
return this.element?.dataset.spacing;
|
|
222
222
|
}
|
|
223
223
|
get control() {
|
|
224
224
|
return this.element;
|
|
@@ -261,10 +261,10 @@ class DataTablePageObject extends PageObject {
|
|
|
261
261
|
class Error extends PageObject {
|
|
262
262
|
static SELECTOR = '[data-test-error]';
|
|
263
263
|
get type() {
|
|
264
|
-
return this.element?.
|
|
264
|
+
return this.element?.dataset.testErrorType;
|
|
265
265
|
}
|
|
266
266
|
get value() {
|
|
267
|
-
return this.element?.
|
|
267
|
+
return this.element?.dataset.testErrorValue;
|
|
268
268
|
}
|
|
269
269
|
}
|
|
270
270
|
|
|
@@ -325,7 +325,7 @@ class ChoicesPageObject extends PageObject {
|
|
|
325
325
|
|
|
326
326
|
class FieldRule extends PageObject {
|
|
327
327
|
get invalid() {
|
|
328
|
-
return Boolean(this.element?.
|
|
328
|
+
return Boolean(this.element?.dataset.testRuleInvalid);
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
331
|
class FieldPageObject extends PageObject {
|
|
@@ -375,7 +375,7 @@ class FieldPageObject extends PageObject {
|
|
|
375
375
|
return this.$input; // @TODO bad fallback for now
|
|
376
376
|
}
|
|
377
377
|
get name() {
|
|
378
|
-
return this.element?.
|
|
378
|
+
return this.element?.dataset.testField;
|
|
379
379
|
}
|
|
380
380
|
}
|
|
381
381
|
|
|
@@ -436,13 +436,13 @@ class PillButtonPageObject extends PageObject {
|
|
|
436
436
|
super(selector ?? PillButtonPageObject.SELECTOR, parent, index);
|
|
437
437
|
}
|
|
438
438
|
get intent() {
|
|
439
|
-
return this.element?.
|
|
439
|
+
return this.element?.dataset.intent;
|
|
440
440
|
}
|
|
441
441
|
get importance() {
|
|
442
|
-
return this.element?.
|
|
442
|
+
return this.element?.dataset.importance;
|
|
443
443
|
}
|
|
444
444
|
get spacing() {
|
|
445
|
-
return this.element?.
|
|
445
|
+
return this.element?.dataset.spacing;
|
|
446
446
|
}
|
|
447
447
|
$before = selector('[data-test-button="before"]');
|
|
448
448
|
$label = selector('[data-test-button="label"]');
|
|
@@ -470,6 +470,14 @@ class SectionPageObject extends PageObject {
|
|
|
470
470
|
$title = selector('[data-test-section="title"]');
|
|
471
471
|
}
|
|
472
472
|
|
|
473
|
+
class TabNavPageObject extends PageObject {
|
|
474
|
+
static SELECTOR = '[data-test-tab-nav]';
|
|
475
|
+
constructor(selector, parent, index) {
|
|
476
|
+
super(selector ?? TabNavPageObject.SELECTOR, parent, index);
|
|
477
|
+
}
|
|
478
|
+
$items = selector('[part="item"]', NavLinkPageObject);
|
|
479
|
+
}
|
|
480
|
+
|
|
473
481
|
class TabsPageObject extends PageObject {
|
|
474
482
|
static SELECTOR = '[data-test-tabs]';
|
|
475
483
|
constructor(selector, parent, index) {
|
|
@@ -491,5 +499,5 @@ class TabsPageObject extends PageObject {
|
|
|
491
499
|
}
|
|
492
500
|
}
|
|
493
501
|
|
|
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 };
|
|
502
|
+
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, TabNavPageObject, TabsPageObject, TextAreaPageObject, TextInputPageObject };
|
|
495
503
|
//# sourceMappingURL=index.js.map
|