@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.
Files changed (197) hide show
  1. package/declarations/components/actions/-button.d.ts +31 -0
  2. package/declarations/components/actions/-button.d.ts.map +1 -1
  3. package/declarations/components/actions/button-group.d.ts +10 -0
  4. package/declarations/components/actions/button-group.d.ts.map +1 -0
  5. package/declarations/components/actions/button.d.ts +7 -17
  6. package/declarations/components/actions/button.d.ts.map +1 -1
  7. package/declarations/components/actions/icon-button.d.ts +6 -13
  8. package/declarations/components/actions/icon-button.d.ts.map +1 -1
  9. package/declarations/components/actions/radio-button-group.d.ts +57 -0
  10. package/declarations/components/actions/radio-button-group.d.ts.map +1 -0
  11. package/declarations/components/button-group.d.ts +2 -0
  12. package/declarations/components/button-group.d.ts.map +1 -0
  13. package/declarations/components/controls/menu.d.ts +0 -3
  14. package/declarations/components/controls/menu.d.ts.map +1 -1
  15. package/declarations/components/layouts/sectioned-page.d.ts +1 -1
  16. package/declarations/components/layouts/sectioned-page.d.ts.map +1 -1
  17. package/declarations/components/navigation/app-header.d.ts +2 -2
  18. package/declarations/components/navigation/app-header.d.ts.map +1 -1
  19. package/declarations/components/navigation/nav-link.d.ts.map +1 -1
  20. package/declarations/components/navigation/tab-nav.d.ts +12 -0
  21. package/declarations/components/navigation/tab-nav.d.ts.map +1 -0
  22. package/declarations/components/radio-button-group.d.ts +2 -0
  23. package/declarations/components/radio-button-group.d.ts.map +1 -0
  24. package/declarations/components/tab-nav.d.ts +2 -0
  25. package/declarations/components/tab-nav.d.ts.map +1 -0
  26. package/declarations/helpers/-position.d.ts +12 -0
  27. package/declarations/helpers/-position.d.ts.map +1 -0
  28. package/declarations/helpers/popover.d.ts +23 -2
  29. package/declarations/helpers/popover.d.ts.map +1 -1
  30. package/declarations/index.d.ts +3 -0
  31. package/declarations/index.d.ts.map +1 -1
  32. package/declarations/template-registry.d.ts +4 -0
  33. package/declarations/template-registry.d.ts.map +1 -1
  34. package/declarations/test-support/index.d.ts +3 -0
  35. package/declarations/test-support/index.d.ts.map +1 -1
  36. package/declarations/test-support/page-objects/-menu.d.ts.map +1 -1
  37. package/declarations/test-support/page-objects/-private/error.d.ts +2 -2
  38. package/declarations/test-support/page-objects/-private/error.d.ts.map +1 -1
  39. package/declarations/test-support/page-objects/-private/field.d.ts +1 -1
  40. package/declarations/test-support/page-objects/-private/field.d.ts.map +1 -1
  41. package/declarations/test-support/page-objects/button-group.d.ts +9 -0
  42. package/declarations/test-support/page-objects/button-group.d.ts.map +1 -0
  43. package/declarations/test-support/page-objects/button.d.ts.map +1 -1
  44. package/declarations/test-support/page-objects/navigation-list.d.ts +1 -1
  45. package/declarations/test-support/page-objects/navigation-list.d.ts.map +1 -1
  46. package/declarations/test-support/page-objects/radio-button-group.d.ts +33 -0
  47. package/declarations/test-support/page-objects/radio-button-group.d.ts.map +1 -0
  48. package/declarations/test-support/page-objects/tab-nav.d.ts +9 -0
  49. package/declarations/test-support/page-objects/tab-nav.d.ts.map +1 -0
  50. package/dist/{-button-KUaJCQaB.js → -button-zstwNwHq.js} +8 -2
  51. package/dist/-button-zstwNwHq.js.map +1 -0
  52. package/dist/_app_/components/button-group.js +1 -0
  53. package/dist/_app_/components/radio-button-group.js +1 -0
  54. package/dist/_app_/components/tab-nav.js +1 -0
  55. package/dist/{alert-Dn7ePQlD.js → alert-CHUcylXU.js} +3 -3
  56. package/dist/{alert-Dn7ePQlD.js.map → alert-CHUcylXU.js.map} +1 -1
  57. package/dist/{app-header-Bb7kHBL2.js → app-header-zFoKDgm0.js} +8 -8
  58. package/dist/app-header-zFoKDgm0.js.map +1 -0
  59. package/dist/{avatar-DTqwlbny.js → avatar-CKkZu7w3.js} +2 -2
  60. package/dist/{avatar-DTqwlbny.js.map → avatar-CKkZu7w3.js.map} +1 -1
  61. package/dist/{box-COwjh1Rb.js → box-6Zf3RnAO.js} +2 -2
  62. package/dist/{box-COwjh1Rb.js.map → box-6Zf3RnAO.js.map} +1 -1
  63. package/dist/button-DCEeKVJE.js +25 -0
  64. package/dist/button-DCEeKVJE.js.map +1 -0
  65. package/dist/button-group-L-yIZgQe.js +14 -0
  66. package/dist/button-group-L-yIZgQe.js.map +1 -0
  67. package/dist/card-Wzo-S04B.js +14 -0
  68. package/dist/{card-Bq4sLW1m.js.map → card-Wzo-S04B.js.map} +1 -1
  69. package/dist/{checkbox-C9-RZtWK.js → checkbox-Dq-Ba0eG.js} +2 -2
  70. package/dist/{checkbox-C9-RZtWK.js.map → checkbox-Dq-Ba0eG.js.map} +1 -1
  71. package/dist/components/alert.js +1 -1
  72. package/dist/components/app-header.js +1 -1
  73. package/dist/components/avatar.js +1 -1
  74. package/dist/components/box.js +1 -1
  75. package/dist/components/button-group.js +2 -0
  76. package/dist/components/button-group.js.map +1 -0
  77. package/dist/components/button.js +1 -1
  78. package/dist/components/card.js +1 -1
  79. package/dist/components/checkbox.js +1 -1
  80. package/dist/components/currency-input.js +1 -1
  81. package/dist/components/data-table.js +1 -1
  82. package/dist/components/date-input.js +1 -1
  83. package/dist/components/email-input.js +1 -1
  84. package/dist/components/focus-page.js +1 -1
  85. package/dist/components/form.js +1 -1
  86. package/dist/components/icon-button.js +1 -1
  87. package/dist/components/icon.js +1 -1
  88. package/dist/components/input-builder.js +1 -1
  89. package/dist/components/link.js +1 -1
  90. package/dist/components/list.js +1 -1
  91. package/dist/components/menu.js +1 -1
  92. package/dist/components/navigation-list.js +1 -1
  93. package/dist/components/number-input.js +1 -1
  94. package/dist/components/page.js +1 -1
  95. package/dist/components/pagination.js +1 -1
  96. package/dist/components/password-input.js +1 -1
  97. package/dist/components/phone-input.js +1 -1
  98. package/dist/components/popover.js +1 -1
  99. package/dist/components/radio-button-group.js +2 -0
  100. package/dist/components/radio-button-group.js.map +1 -0
  101. package/dist/components/radio.js +1 -1
  102. package/dist/components/range-input.js +1 -1
  103. package/dist/components/section.js +1 -1
  104. package/dist/components/sectioned-page.js +1 -1
  105. package/dist/components/select.js +1 -1
  106. package/dist/components/tab-nav.js +2 -0
  107. package/dist/components/tab-nav.js.map +1 -0
  108. package/dist/components/tabs.js +1 -1
  109. package/dist/components/text-area.js +1 -1
  110. package/dist/components/text-input.js +1 -1
  111. package/dist/currency-input-BXZynbgP.js +20 -0
  112. package/dist/{currency-input-BqNb3IcU.js.map → currency-input-BXZynbgP.js.map} +1 -1
  113. package/dist/data-table-DgPcWpgQ.js +16 -0
  114. package/dist/{data-table-ZliVM1td.js.map → data-table-DgPcWpgQ.js.map} +1 -1
  115. package/dist/{date-input-DxDpVu3A.js → date-input-Do_gdYif.js} +2 -2
  116. package/dist/{date-input-DxDpVu3A.js.map → date-input-Do_gdYif.js.map} +1 -1
  117. package/dist/{email-input-84impWbH.js → email-input-C3DQI5CS.js} +2 -2
  118. package/dist/{email-input-84impWbH.js.map → email-input-C3DQI5CS.js.map} +1 -1
  119. package/dist/focus-page-De0KXI-m.js +19 -0
  120. package/dist/{focus-page-Boq96jK3.js.map → focus-page-De0KXI-m.js.map} +1 -1
  121. package/dist/form-VcfCjgct.js +508 -0
  122. package/dist/{form-B9MShV4J.js.map → form-VcfCjgct.js.map} +1 -1
  123. package/dist/helpers/popover.js +11 -20
  124. package/dist/helpers/popover.js.map +1 -1
  125. package/dist/icon-button-C1YrOLFe.js +38 -0
  126. package/dist/icon-button-C1YrOLFe.js.map +1 -0
  127. package/dist/{icon-rlG6O1ps.js → icon-ej-3ZqQt.js} +2 -2
  128. package/dist/{icon-rlG6O1ps.js.map → icon-ej-3ZqQt.js.map} +1 -1
  129. package/dist/index.js +38 -35
  130. package/dist/index.js.map +1 -1
  131. package/dist/input-builder-DpIzsgxI.js +18 -0
  132. package/dist/{input-builder-C6GkddCw.js.map → input-builder-DpIzsgxI.js.map} +1 -1
  133. package/dist/{link-bqsg26Cc.js → link-4Kc0K38u.js} +3 -3
  134. package/dist/{link-bqsg26Cc.js.map → link-4Kc0K38u.js.map} +1 -1
  135. package/dist/{list-C86dLtuk.js → list-CIQXPiUH.js} +3 -3
  136. package/dist/{list-C86dLtuk.js.map → list-CIQXPiUH.js.map} +1 -1
  137. package/dist/{menu-BR3G9OgU.js → menu-Dcc72jZp.js} +5 -15
  138. package/dist/menu-Dcc72jZp.js.map +1 -0
  139. package/dist/nav-link-KZJghY_q.js +22 -0
  140. package/dist/{nav-link-DL59IUt0.js.map → nav-link-KZJghY_q.js.map} +1 -1
  141. package/dist/{navigation-list-Dt-WaMyp.js → navigation-list-DkWUXH9a.js} +4 -4
  142. package/dist/{navigation-list-Dt-WaMyp.js.map → navigation-list-DkWUXH9a.js.map} +1 -1
  143. package/dist/{number-input-CDMSp7qk.js → number-input-C3nCdLGj.js} +2 -2
  144. package/dist/{number-input-CDMSp7qk.js.map → number-input-C3nCdLGj.js.map} +1 -1
  145. package/dist/page-BlSv_2Xh.js +19 -0
  146. package/dist/{page-DNrVa_Zo.js.map → page-BlSv_2Xh.js.map} +1 -1
  147. package/dist/{pagination-BYiNuWz8.js → pagination-CjkoHYcN.js} +5 -5
  148. package/dist/{pagination-BYiNuWz8.js.map → pagination-CjkoHYcN.js.map} +1 -1
  149. package/dist/{password-input-BYvLH8gQ.js → password-input-DRa3El-5.js} +2 -2
  150. package/dist/{password-input-BYvLH8gQ.js.map → password-input-DRa3El-5.js.map} +1 -1
  151. package/dist/{phone-input-8N_lOkZ2.js → phone-input-D3AIkLe8.js} +2 -2
  152. package/dist/{phone-input-8N_lOkZ2.js.map → phone-input-D3AIkLe8.js.map} +1 -1
  153. package/dist/{popover-wLRNTIPC.js → popover-CaKubr0X.js} +2 -2
  154. package/dist/{popover-wLRNTIPC.js.map → popover-CaKubr0X.js.map} +1 -1
  155. package/dist/push-C8z1Qw41.js +24 -0
  156. package/dist/{push-DnJFFc_p.js.map → push-C8z1Qw41.js.map} +1 -1
  157. package/dist/{radio-BQvSPyDT.js → radio-BQ_nDgm0.js} +2 -2
  158. package/dist/{radio-BQvSPyDT.js.map → radio-BQ_nDgm0.js.map} +1 -1
  159. package/dist/radio-button-group-D7LjyINa.js +91 -0
  160. package/dist/radio-button-group-D7LjyINa.js.map +1 -0
  161. package/dist/{range-input-Bosd7QI2.js → range-input-Oc8Z7tsH.js} +2 -2
  162. package/dist/{range-input-Bosd7QI2.js.map → range-input-Oc8Z7tsH.js.map} +1 -1
  163. package/dist/{section-B_1poNPX.js → section-DbYzqbWp.js} +2 -2
  164. package/dist/{section-B_1poNPX.js.map → section-DbYzqbWp.js.map} +1 -1
  165. package/dist/sectioned-page-Ba06ASAC.js +21 -0
  166. package/dist/sectioned-page-Ba06ASAC.js.map +1 -0
  167. package/dist/{select-DWOHAUfQ.js → select-CrdsGEgR.js} +3 -3
  168. package/dist/{select-DWOHAUfQ.js.map → select-CrdsGEgR.js.map} +1 -1
  169. package/dist/tab-nav-pvb2XhOD.js +16 -0
  170. package/dist/tab-nav-pvb2XhOD.js.map +1 -0
  171. package/dist/{tabs-e_cUi6pL.js → tabs-DdGp_ET2.js} +3 -3
  172. package/dist/{tabs-e_cUi6pL.js.map → tabs-DdGp_ET2.js.map} +1 -1
  173. package/dist/test-support/index.js +48 -20
  174. package/dist/test-support/index.js.map +1 -1
  175. package/dist/{text-area-BsDD1dpV.js → text-area-BBLWOU6L.js} +2 -2
  176. package/dist/{text-area-BsDD1dpV.js.map → text-area-BBLWOU6L.js.map} +1 -1
  177. package/dist/{text-input-BntDzi8S.js → text-input-B5cPU_e-.js} +2 -2
  178. package/dist/{text-input-BntDzi8S.js.map → text-input-B5cPU_e-.js.map} +1 -1
  179. package/package.json +41 -41
  180. package/dist/-button-KUaJCQaB.js.map +0 -1
  181. package/dist/app-header-Bb7kHBL2.js.map +0 -1
  182. package/dist/button-BAtG9lC0.js +0 -24
  183. package/dist/button-BAtG9lC0.js.map +0 -1
  184. package/dist/card-Bq4sLW1m.js +0 -14
  185. package/dist/currency-input-BqNb3IcU.js +0 -20
  186. package/dist/data-table-ZliVM1td.js +0 -16
  187. package/dist/focus-page-Boq96jK3.js +0 -19
  188. package/dist/form-B9MShV4J.js +0 -508
  189. package/dist/icon-button-hS8-Jo0v.js +0 -36
  190. package/dist/icon-button-hS8-Jo0v.js.map +0 -1
  191. package/dist/input-builder-C6GkddCw.js +0 -18
  192. package/dist/menu-BR3G9OgU.js.map +0 -1
  193. package/dist/nav-link-DL59IUt0.js +0 -22
  194. package/dist/page-DNrVa_Zo.js +0 -19
  195. package/dist/push-DnJFFc_p.js +0 -24
  196. package/dist/sectioned-page-D9Xxr97R.js +0 -21
  197. package/dist/sectioned-page-D9Xxr97R.js.map +0 -1
@@ -1,19 +0,0 @@
1
- import { element } from 'ember-element-helper';
2
- import { o as or } from './helpers-D4So5-uK.js';
3
- import { P as PageDestructor, a as PageElement } from './pages-DgHJEvSy.js';
4
- import { precompileTemplate } from '@ember/template-compilation';
5
- import { setComponentTemplate } from '@ember/component';
6
- import templateOnly from '@ember/component/template-only';
7
-
8
- const FocusPage = setComponentTemplate(precompileTemplate("\n {{#let (if @element @element (element (pageElement))) as |Element|}}\n <Element class=\"focus-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 </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", {
9
- strictMode: true,
10
- scope: () => ({
11
- element,
12
- pageElement: PageElement,
13
- pageDestructor: PageDestructor,
14
- or
15
- })
16
- }), templateOnly());
17
-
18
- export { FocusPage as F };
19
- //# sourceMappingURL=focus-page-Boq96jK3.js.map
@@ -1,508 +0,0 @@
1
- import Component from '@glimmer/component';
2
- import { hash, uniqueId } from '@ember/helper';
3
- import { createForm } from '@hokulea/ember-pahu';
4
- import { precompileTemplate } from '@ember/template-compilation';
5
- import { setComponentTemplate } from '@ember/component';
6
- import templateOnly from '@ember/component/template-only';
7
- import { tracked } from '@glimmer/tracking';
8
- import { next } from '@ember/runloop';
9
- import { element } from 'ember-element-helper';
10
- import { a as and, b as asBoolean, c as asNumber, d as asString, e as eq } from './helpers-D4So5-uK.js';
11
- import { I as Icon } from './icon-rlG6O1ps.js';
12
- import { g, i } from 'decorator-transforms/runtime-esm';
13
- import { C as Checkbox } from './checkbox-C9-RZtWK.js';
14
- import { modifier } from 'ember-modifier';
15
- import { C as CurrencyInput } from './currency-input-BqNb3IcU.js';
16
- import { D as DateInput } from './date-input-DxDpVu3A.js';
17
- import { E as EmailInput } from './email-input-84impWbH.js';
18
- import { L as List } from './list-C86dLtuk.js';
19
- import { N as NumberInput } from './number-input-CDMSp7qk.js';
20
- import { P as PasswordInput } from './password-input-BYvLH8gQ.js';
21
- import { P as PhoneInput } from './phone-input-8N_lOkZ2.js';
22
- import { R as RangeInput } from './range-input-Bosd7QI2.js';
23
- import { S as Select } from './select-DWOHAUfQ.js';
24
- import { R as Radio } from './radio-BQvSPyDT.js';
25
- import { T as TextInput } from './text-input-BntDzi8S.js';
26
- import { T as TextArea } from './text-area-BsDD1dpV.js';
27
- import { d as disabled } from './disabled-B_FQ0Z51.js';
28
-
29
- // import Icon from '../../../components/icon';
30
- const Errors = setComponentTemplate(precompileTemplate("\n <div id={{@id}} aria-live=\"assertive\" class=\"form-errors\" ...attributes>\n {{!-- <span><Icon @icon='dismiss-circle' @style='filled' /></span> --}}\n {{#if (has-block)}}\n {{yield @errors}}\n {{else}}\n <div>\n {{#each @errors as |e|}}\n {{#if e.message}}\n <p data-test-error data-test-error-type=\"{{e.type}}\" data-test-error-value=\"{{e.value}}\">{{e.message}}</p>\n {{/if}}\n {{/each}}\n </div>\n {{/if}}\n </div>\n", {
31
- strictMode: true
32
- }), templateOnly());
33
-
34
- const Description = setComponentTemplate(precompileTemplate("\n <p class=\"form-description\" data-test-description ...attributes>\n {{yield}}\n </p>\n", {
35
- strictMode: true
36
- }), templateOnly());
37
-
38
- const Label = setComponentTemplate(precompileTemplate("\n {{#let (if @element @element (element \"label\")) as |Element|}}\n <Element class=\"form-label\" data-test-label ...attributes>\n {{yield}}\n </Element>\n {{/let}}\n", {
39
- strictMode: true,
40
- scope: () => ({
41
- element
42
- })
43
- }), templateOnly());
44
-
45
- const ErrorIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="256"
46
- height="256" viewBox="0 0 256 256"><path fill="currentColor" d="M208.49
47
- 191.51a12 12 0 0 1-17 17L128 145l-63.51 63.49a12 12 0 0 1-17-17L111 128L47.51
48
- 64.49a12 12 0 0 1 17-17L128 111l63.51-63.52a12 12 0 0 1 17 17L145
49
- 128Z"/></svg>`;
50
- const ValidIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="256"
51
- height="256" viewBox="0 0 256 256"><path fill="currentColor" d="m232.49
52
- 80.49l-128 128a12 12 0 0 1-17 0l-56-56a12 12 0 1 1 17-17L96 183L215.51 63.51a12
53
- 12 0 0 1 17 17Z"/></svg>`;
54
- class Rule extends Component {
55
- isInvalid = () => {
56
- return this.args.errors?.some(i => this.args.key in i && i[this.args.key] === this.args.value);
57
- };
58
- static {
59
- setComponentTemplate(precompileTemplate("\n <p data-test-rule data-test-rule-invalid={{(this.isInvalid)}}>\n <Icon @icon={{if (this.isInvalid) ErrorIcon ValidIcon}} data-invalid={{(this.isInvalid)}} data-icon />\n\n <span>{{yield}}</span>\n </p>\n ", {
60
- strictMode: true,
61
- scope: () => ({
62
- Icon,
63
- ErrorIcon,
64
- ValidIcon
65
- })
66
- }), this);
67
- }
68
- }
69
- class Rules extends Component {
70
- constructor(owner, args) {
71
- super(owner, args);
72
- args.useRules(true);
73
- }
74
- static {
75
- setComponentTemplate(precompileTemplate("\n <div id={{@id}} aria-live=\"assertive\" class=\"form-rules\" ...attributes>\n {{yield (component Rule errors=@errors)}}\n </div>\n ", {
76
- strictMode: true,
77
- scope: () => ({
78
- Rule
79
- })
80
- }), this);
81
- }
82
- }
83
-
84
- class Field extends Component {
85
- static {
86
- g(this.prototype, "rulesUsed", [tracked], function () {
87
- return false;
88
- });
89
- }
90
- #rulesUsed = (i(this, "rulesUsed"), void 0);
91
- #field;
92
- get validateOn() {
93
- return this.rulesUsed ? 'input' : this.args.validateOn;
94
- }
95
- get revalidateOn() {
96
- return this.rulesUsed ? 'input' : this.args.revalidateOn;
97
- }
98
- createOrUpdateField = config => {
99
- const filteredConfig = Object.fromEntries(Object.entries(config).filter(([_, v]) => v !== undefined));
100
- if (this.#field) {
101
- this.#field.updateConfig(filteredConfig);
102
- } else {
103
- this.#field = this.args.form.createField(filteredConfig);
104
- }
105
- return this.#field;
106
- };
107
- useRules = useRules => {
108
- // eslint-disable-next-line ember/no-runloop
109
- next(async () => {
110
- this.rulesUsed = useRules;
111
- if (useRules) {
112
- await this.#field?.validate();
113
- }
114
- });
115
- };
116
- get showErrors() {
117
- return !this.rulesUsed && this.args.showErrors !== false;
118
- }
119
- static {
120
- setComponentTemplate(precompileTemplate("\n {{#let (uniqueId) (uniqueId) (if @element @element (element \"div\")) (this.createOrUpdateField name=@name ignoreNativeValidation=@ignoreNativeValidation linkedField=@linkedField validateOn=this.validateOn revalidateOn=this.revalidateOn validate=@validate validated=@validated value=@value) (component Rules useRules=this.useRules) as |fieldId errorId Element field WiredRules|}}\n <Element class=\"form-field\" data-test-field={{@name}}>\n {{#if @label}}\n {{#let (if @labelComponent @labelComponent Label) as |L|}}\n <L for={{unless @labelComponent fieldId}}>{{@label}}</L>\n {{/let}}\n {{/if}}\n\n {{#if @description}}\n <Description>{{@description}}</Description>\n {{/if}}\n\n {{yield (hash value=field.value setValue=field.setValue id=fieldId errorId=errorId invalid=field.invalid registerElement=field.registerElement issues=field.issues validate=field.validate showErrors=this.showErrors Rules=(component WiredRules id=errorId errors=field.issues))}}\n\n {{#if (and this.showErrors field.issues)}}\n <Errors @id={{errorId}} @errors={{field.issues}} />\n {{/if}}\n </Element>\n {{/let}}\n ", {
121
- strictMode: true,
122
- scope: () => ({
123
- uniqueId,
124
- element,
125
- Rules,
126
- Label,
127
- Description,
128
- hash,
129
- and,
130
- Errors
131
- })
132
- }), this);
133
- }
134
- }
135
-
136
- const manageValidation = modifier((element, _, {
137
- showErrors,
138
- invalid,
139
- errorMessageId
140
- }) => {
141
- if (showErrors !== false) {
142
- element.ariaInvalid = invalid ? 'true' : 'false';
143
- if (invalid) {
144
- element.setAttribute('aria-errormessage', errorMessageId);
145
- } else {
146
- element.removeAttribute('aria-errormessage');
147
- }
148
- if (element.parentElement && 'inputBuilder' in element.parentElement.dataset) {
149
- element.parentElement.dataset.invalid = invalid ? 'true' : 'false';
150
- }
151
- }
152
- return;
153
- });
154
-
155
- class CheckboxField extends Component {
156
- Field = this.args.Field;
157
- setBooleanValue = setValue => {
158
- return value => setValue(value);
159
- };
160
- static {
161
- setComponentTemplate(precompileTemplate("\n <this.Field @label @name={{@name}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <div class=\"form-choices\">\n <div class=\"form-choice\">\n <span>\n <Checkbox @value={{asBoolean f.value}} @update={{this.setBooleanValue f.setValue}} @disabled={{@disabled}} id={{f.id}} name={{@name}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}} ...attributes />\n </span>\n\n <div>\n <Label for={{f.id}}>{{@label}}</Label>\n\n {{#if @description}}\n <Description>{{@description}}</Description>\n {{/if}}\n </div>\n </div>\n </div>\n </this.Field>\n ", {
162
- strictMode: true,
163
- scope: () => ({
164
- Checkbox,
165
- asBoolean,
166
- manageValidation,
167
- Label,
168
- Description
169
- })
170
- }), this);
171
- }
172
- }
173
-
174
- class CurrencyField extends Component {
175
- Field = this.args.Field;
176
- setNumberValue = setValue => {
177
- return value => setValue(value);
178
- };
179
- static {
180
- setComponentTemplate(precompileTemplate("\n <this.Field @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <CurrencyInput @value={{asNumber f.value}} @update={{this.setNumberValue f.setValue}} @disabled={{@disabled}} name={{@name}} id={{f.id}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}} ...attributes />\n </this.Field>\n ", {
181
- strictMode: true,
182
- scope: () => ({
183
- CurrencyInput,
184
- asNumber,
185
- manageValidation
186
- })
187
- }), this);
188
- }
189
- }
190
-
191
- class DateField extends Component {
192
- Field = this.args.Field;
193
- setStringValue = setValue => {
194
- return value => setValue(value);
195
- };
196
- static {
197
- setComponentTemplate(precompileTemplate("\n <this.Field @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <DateInput @value={{asString f.value}} @update={{this.setStringValue f.setValue}} @disabled={{@disabled}} name={{@name}} id={{f.id}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}} ...attributes />\n </this.Field>\n ", {
198
- strictMode: true,
199
- scope: () => ({
200
- DateInput,
201
- asString,
202
- manageValidation
203
- })
204
- }), this);
205
- }
206
- }
207
-
208
- class EmailField extends Component {
209
- Field = this.args.Field;
210
- setStringValue = setValue => {
211
- return value => setValue(value);
212
- };
213
- static {
214
- setComponentTemplate(precompileTemplate("\n <this.Field @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <EmailInput @value={{asString f.value}} @update={{this.setStringValue f.setValue}} @disabled={{@disabled}} name={{@name}} id={{f.id}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}} ...attributes />\n </this.Field>\n ", {
215
- strictMode: true,
216
- scope: () => ({
217
- EmailInput,
218
- asString,
219
- manageValidation
220
- })
221
- }), this);
222
- }
223
- }
224
-
225
- const ListLabel = setComponentTemplate(precompileTemplate("\n <Label @element={{element \"span\"}} id={{@id}}>{{yield}}</Label>\n", {
226
- strictMode: true,
227
- scope: () => ({
228
- Label,
229
- element
230
- })
231
- }), templateOnly());
232
- class ListField extends Component {
233
- Field = this.args.Field;
234
- List = List;
235
- setValue = setValue => {
236
- return value => setValue(value);
237
- };
238
- asValue = value => value;
239
- static {
240
- setComponentTemplate(precompileTemplate("\n {{#let (uniqueId) as |labelId|}}\n <this.Field @name={{@name}} @label={{@label}} @labelComponent={{component ListLabel id=labelId}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <this.List @value={{this.asValue f.value}} @update={{this.setValue f.setValue}} @disabled={{@disabled}} {{!-- name={{@name}} --}} aria-labelledby={{labelId}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid}} ...attributes as |s|>\n {{yield s}}\n </this.List>\n </this.Field>\n {{/let}}\n ", {
241
- strictMode: true,
242
- scope: () => ({
243
- uniqueId,
244
- ListLabel,
245
- manageValidation
246
- })
247
- }), this);
248
- }
249
- }
250
-
251
- let Option$1 = class Option extends Component {
252
- select = checked => {
253
- if (checked) {
254
- this.args.field.setValue([...(this.args.field.value ?? []), this.args.value]);
255
- } else {
256
- const values = this.args.field.value;
257
- const index = this.args.field.value?.indexOf(this.args.value);
258
- if (Array.isArray(values) && index) {
259
- values.splice(index, 1);
260
- this.args.field.setValue(values);
261
- }
262
- }
263
- };
264
- get checked() {
265
- return this.args.field.value?.includes(this.args.value);
266
- }
267
- get issues() {
268
- return this.args.field.issues.filter(i => 'value' in i && i.value === this.args.value);
269
- }
270
- get invalid() {
271
- return this.issues.length > 0;
272
- }
273
- static {
274
- setComponentTemplate(precompileTemplate("\n {{#let (uniqueId) (uniqueId) as |id errorId|}}\n <div class=\"form-choice\" data-test-option>\n <span>\n <Checkbox @value={{this.checked}} @update={{this.select}} @disabled={{@disabled}} id={{id}} name={{@name}} value={{@value}} {{@field.registerElement}} {{manageValidation errorMessageId=errorId invalid=this.invalid}} ...attributes />\n </span>\n\n <div>\n <Label for={{id}}>{{@label}}</Label>\n\n {{#if @description}}\n <Description>{{@description}}</Description>\n {{/if}}\n\n {{yield}}\n\n {{#if this.issues}}\n <Errors @id={{errorId}} @errors={{this.issues}} />\n {{/if}}\n\n </div>\n </div>\n {{/let}}\n ", {
275
- strictMode: true,
276
- scope: () => ({
277
- uniqueId,
278
- Checkbox,
279
- manageValidation,
280
- Label,
281
- Description,
282
- Errors
283
- })
284
- }), this);
285
- }
286
- };
287
- class MultipleChoiceField extends Component {
288
- Field = this.args.Field;
289
- Option = Option$1;
290
- asMultiField = field => {
291
- return field;
292
- };
293
- static {
294
- setComponentTemplate(precompileTemplate("\n <this.Field @element={{element \"fieldset\"}} @showErrors={{false}} @labelComponent={{component Label element=(element \"legend\")}} @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <div class=\"form-choices\" data-test-choices>\n {{yield (hash Option=(component this.Option field=(this.asMultiField f) name=@name disabled=@disabled))}}\n </div>\n </this.Field>\n ", {
295
- strictMode: true,
296
- scope: () => ({
297
- element,
298
- Label,
299
- hash
300
- })
301
- }), this);
302
- }
303
- }
304
-
305
- class NumberField extends Component {
306
- Field = this.args.Field;
307
- setNumberValue = setValue => {
308
- return value => setValue(value);
309
- };
310
- static {
311
- setComponentTemplate(precompileTemplate("\n <this.Field @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <NumberInput @value={{asNumber f.value}} @update={{this.setNumberValue f.setValue}} @disabled={{@disabled}} name={{@name}} id={{f.id}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}} ...attributes />\n </this.Field>\n ", {
312
- strictMode: true,
313
- scope: () => ({
314
- NumberInput,
315
- asNumber,
316
- manageValidation
317
- })
318
- }), this);
319
- }
320
- }
321
-
322
- class PasswordField extends Component {
323
- Field = this.args.Field;
324
- setStringValue = setValue => {
325
- return value => setValue(value);
326
- };
327
- static {
328
- setComponentTemplate(precompileTemplate("\n <this.Field @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <PasswordInput @value={{asString f.value}} @update={{this.setStringValue f.setValue}} @disabled={{@disabled}} name={{@name}} id={{f.id}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}} ...attributes />\n\n {{#if (has-block \"rules\")}}\n <f.Rules as |Rule|>\n {{yield Rule to=\"rules\"}}\n </f.Rules>\n {{/if}}\n </this.Field>\n ", {
329
- strictMode: true,
330
- scope: () => ({
331
- PasswordInput,
332
- asString,
333
- manageValidation
334
- })
335
- }), this);
336
- }
337
- }
338
-
339
- class PhoneField extends Component {
340
- Field = this.args.Field;
341
- setStringValue = setValue => {
342
- return value => setValue(value);
343
- };
344
- static {
345
- setComponentTemplate(precompileTemplate("\n <this.Field @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <PhoneInput @value={{asString f.value}} @update={{this.setStringValue f.setValue}} @disabled={{@disabled}} name={{@name}} id={{f.id}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}} ...attributes />\n\n {{#if (has-block \"rules\")}}\n <f.Rules as |Rule|>\n {{yield Rule to=\"rules\"}}\n </f.Rules>\n {{/if}}\n </this.Field>\n ", {
346
- strictMode: true,
347
- scope: () => ({
348
- PhoneInput,
349
- asString,
350
- manageValidation
351
- })
352
- }), this);
353
- }
354
- }
355
-
356
- class RangeField extends Component {
357
- Field = this.args.Field;
358
- setNumberValue = setValue => {
359
- return value => setValue(value);
360
- };
361
- static {
362
- setComponentTemplate(precompileTemplate("\n <this.Field @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <RangeInput @value={{asNumber f.value}} @update={{this.setNumberValue f.setValue}} @disabled={{@disabled}} @orientation={{@orientation}} @min={{@min}} @max={{@max}} @step={{@step}} name={{@name}} id={{f.id}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}} ...attributes />\n </this.Field>\n ", {
363
- strictMode: true,
364
- scope: () => ({
365
- RangeInput,
366
- asNumber,
367
- manageValidation
368
- })
369
- }), this);
370
- }
371
- }
372
-
373
- class SelectField extends Component {
374
- Field = this.args.Field;
375
- setValue = setValue => {
376
- return value => setValue(value);
377
- };
378
- static {
379
- setComponentTemplate(precompileTemplate("\n <this.Field @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <Select @value={{asString f.value}} @update={{this.setValue f.setValue}} @disabled={{@disabled}} name={{@name}} id={{f.id}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}} ...attributes as |s|>\n {{yield s}}\n </Select>\n </this.Field>\n ", {
380
- strictMode: true,
381
- scope: () => ({
382
- Select,
383
- asString,
384
- manageValidation
385
- })
386
- }), this);
387
- }
388
- }
389
-
390
- class Option extends Component {
391
- select = () => {
392
- this.args.field.setValue(this.args.value);
393
- };
394
- static {
395
- setComponentTemplate(precompileTemplate("\n {{#let (uniqueId) as |id|}}\n <div class=\"form-choice\" data-test-option>\n <span>\n <Radio @value={{eq @field.value @value}} @update={{this.select}} @disabled={{@disabled}} id={{id}} name={{@name}} value={{@value}} {{@field.registerElement}} ...attributes />\n </span>\n\n <div>\n <Label for={{id}}>{{@label}}</Label>\n\n {{#if @description}}\n <Description>{{@description}}</Description>\n {{/if}}\n\n {{yield}}\n </div>\n </div>\n {{/let}}\n ", {
396
- strictMode: true,
397
- scope: () => ({
398
- uniqueId,
399
- Radio,
400
- eq,
401
- Label,
402
- Description
403
- })
404
- }), this);
405
- }
406
- }
407
- class SingularChoiceField extends Component {
408
- Field = this.args.Field;
409
- Option = Option;
410
- static {
411
- setComponentTemplate(precompileTemplate("\n <this.Field @element={{element \"fieldset\"}} @labelComponent={{component Label element=(element \"legend\")}} @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <div class=\"form-choices\" data-test-choices>\n {{yield (hash Option=(component this.Option field=f name=@name disabled=@disabled))}}\n </div>\n </this.Field>\n ", {
412
- strictMode: true,
413
- scope: () => ({
414
- element,
415
- Label,
416
- hash
417
- })
418
- }), this);
419
- }
420
- }
421
-
422
- class TextField extends Component {
423
- Field = this.args.Field;
424
- setStringValue = setValue => {
425
- return value => setValue(value);
426
- };
427
- static {
428
- setComponentTemplate(precompileTemplate("\n <@Field @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <TextInput @value={{asString f.value}} @update={{this.setStringValue f.setValue}} @disabled={{@disabled}} name={{@name}} id={{f.id}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}} ...attributes />\n\n {{#if (has-block \"rules\")}}\n <f.Rules as |Rule|>\n {{yield Rule to=\"rules\"}}\n </f.Rules>\n {{/if}}\n </@Field>\n ", {
429
- strictMode: true,
430
- scope: () => ({
431
- TextInput,
432
- asString,
433
- manageValidation
434
- })
435
- }), this);
436
- }
437
- }
438
-
439
- class TextAreaField extends Component {
440
- Field = this.args.Field;
441
- setStringValue = setValue => {
442
- return value => setValue(value);
443
- };
444
- static {
445
- setComponentTemplate(precompileTemplate("\n <this.Field @name={{@name}} @label={{@label}} @description={{@description}} @value={{@value}} @ignoreNativeValidation={{@ignoreNativeValidation}} @validateOn={{@validateOn}} @revalidateOn={{@revalidateOn}} @validate={{@validate}} @validated={{@validated}} as |f|>\n <TextArea @value={{asString f.value}} @update={{this.setStringValue f.setValue}} @disabled={{@disabled}} name={{@name}} id={{f.id}} {{f.registerElement}} {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}} ...attributes />\n </this.Field>\n ", {
446
- strictMode: true,
447
- scope: () => ({
448
- TextArea,
449
- asString,
450
- manageValidation
451
- })
452
- }), this);
453
- }
454
- }
455
-
456
- const Reset = setComponentTemplate(precompileTemplate("\n <button type=\"reset\" class=\"button\" data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} {{disabled when=(if @disabled @disabled false)}} data-test-button ...attributes>\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n </button>\n", {
457
- strictMode: true,
458
- scope: () => ({
459
- disabled
460
- })
461
- }), templateOnly());
462
-
463
- const Submit = setComponentTemplate(precompileTemplate("\n <button type=\"submit\" class=\"button\" data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} {{disabled when=(if @disabled @disabled false)}} data-test-button ...attributes>\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n </button>\n", {
464
- strictMode: true,
465
- scope: () => ({
466
- disabled
467
- })
468
- }), templateOnly());
469
-
470
- const FormErrors = setComponentTemplate(precompileTemplate("\n {{#if @errors}}\n <Errors @errors={{@errors}} @id={{(uniqueId)}} />\n {{/if}}\n", {
471
- strictMode: true,
472
- scope: () => ({
473
- Errors,
474
- uniqueId
475
- })
476
- }), templateOnly());
477
- class Form extends Component {
478
- Field = Field;
479
- CheckboxField = CheckboxField;
480
- CurrencyField = CurrencyField;
481
- DateField = DateField;
482
- EmailField = EmailField;
483
- ListField = ListField;
484
- MultipleChoiceField = MultipleChoiceField;
485
- NumberField = NumberField;
486
- PasswordField = PasswordField;
487
- PhoneField = PhoneField;
488
- RangeField = RangeField;
489
- SelectField = SelectField;
490
- SingularChoiceField = SingularChoiceField;
491
- TextAreaField = TextAreaField;
492
- TextField = TextField;
493
- static {
494
- setComponentTemplate(precompileTemplate("\n {{#let (createForm data=@data ignoreNativeValidation=@ignoreNativeValidation validateOn=@validateOn revalidateOn=@revalidateOn submit=@submit validate=@validate validated=@validated) as |f|}}\n <form novalidate class=\"form\" data-test-form ...attributes {{f.registerElement}}>\n {{#let (component this.Field form=f) as |WiredField|}}\n {{yield (hash invalid=f.invalid submit=f.submit Field=WiredField Checkbox=(component this.CheckboxField Field=WiredField) Currency=(component this.CurrencyField Field=WiredField) Date=(component this.DateField Field=WiredField) Email=(component this.EmailField Field=WiredField) List=(component this.ListField Field=WiredField) MultipleChoice=(component this.MultipleChoiceField Field=WiredField) Number=(component this.NumberField Field=WiredField) Password=(component this.PasswordField Field=WiredField) Phone=(component this.PhoneField Field=WiredField) Range=(component this.RangeField Field=WiredField) Select=(component this.SelectField Field=WiredField) SingularChoice=(component this.SingularChoiceField Field=WiredField) TextArea=(component this.TextAreaField Field=WiredField) Text=(component this.TextField Field=WiredField) Errors=(component FormErrors errors=f.issues) Submit=Submit Reset=Reset)}}\n {{/let}}\n </form>\n {{/let}}\n ", {
495
- strictMode: true,
496
- scope: () => ({
497
- createForm,
498
- hash,
499
- FormErrors,
500
- Submit,
501
- Reset
502
- })
503
- }), this);
504
- }
505
- }
506
-
507
- export { Form as F };
508
- //# sourceMappingURL=form-B9MShV4J.js.map
@@ -1,36 +0,0 @@
1
- import Component from '@glimmer/component';
2
- import { assert } from '@ember/debug';
3
- import { element } from 'ember-element-helper';
4
- import { b as asBoolean, n as not, a as and } from './helpers-D4So5-uK.js';
5
- import { d as disabled } from './disabled-B_FQ0Z51.js';
6
- import { P as PushElement } from './push-DnJFFc_p.js';
7
- import { I as Icon } from './icon-rlG6O1ps.js';
8
- import { i as isLink } from './-button-KUaJCQaB.js';
9
- import { precompileTemplate } from '@ember/template-compilation';
10
- import { setComponentTemplate } from '@ember/component';
11
-
12
- class IconButton extends Component {
13
- get label() {
14
- assert('Please provide a `@label` to `<IconButton>` for accessibility reasons.', this.args.label !== undefined);
15
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
16
- return this.args.label;
17
- }
18
- static {
19
- setComponentTemplate(precompileTemplate("\n <PushElement @push={{@push}} @href={{@href}} @element={{element \"button\"}} class=\"icon-button\" type={{if (and (not (isLink @push)) (not (asBoolean @href))) \"button\"}} data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} aria-label={{this.label}} {{disabled when=(if @disabled @disabled false)}} data-test-icon-button ...attributes>\n <Icon @icon={{@icon}} data-test-icon-button=\"icon\" />\n </PushElement>\n ", {
20
- strictMode: true,
21
- scope: () => ({
22
- PushElement,
23
- element,
24
- and,
25
- not,
26
- isLink,
27
- asBoolean,
28
- disabled,
29
- Icon
30
- })
31
- }), this);
32
- }
33
- }
34
-
35
- export { IconButton as I };
36
- //# sourceMappingURL=icon-button-hS8-Jo0v.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-button-hS8-Jo0v.js","sources":["../src/components/actions/icon-button.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { assert } from '@ember/debug';\n\nimport { element } from 'ember-element-helper';\n\nimport { and, asBoolean, not } from '../../-private/helpers.ts';\nimport disabled from '../../-private/modifiers/disabled.ts';\nimport { type PushArgs, PushElement } from '../../-private/push.gts';\nimport { Icon } from '../graphics/icon.gts';\nimport { isLink } from './-button.ts';\n\nimport type { Importance, Intent, Spacing } from '@hokulea/tokens';\n\nexport interface IconButtonSignature {\n Element: HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement;\n Args: PushArgs & {\n intent?: Intent;\n importance?: Importance;\n spacing?: Spacing;\n disabled?: boolean;\n label: string;\n /**\n * A string containing a `<svg>` element.\n * Make sure to use `currentColor` to comply with the styling\n */\n icon: string;\n };\n Blocks: {\n default: [];\n };\n}\n\nexport class IconButton extends Component<IconButtonSignature> {\n get label() {\n assert(\n 'Please provide a `@label` to `<IconButton>` for accessibility reasons.',\n\n this.args.label !== undefined\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return this.args.label;\n }\n\n <template>\n <PushElement\n @push={{@push}}\n @href={{@href}}\n @element={{element \"button\"}}\n class=\"icon-button\"\n type={{if (and (not (isLink @push)) (not (asBoolean @href))) \"button\"}}\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n aria-label={{this.label}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-icon-button\n ...attributes\n >\n <Icon @icon={{@icon}} data-test-icon-button=\"icon\" />\n </PushElement>\n </template>\n}\n"],"names":["IconButton","Component","label","assert","args","undefined","setComponentTemplate","precompileTemplate","strictMode","scope","PushElement","element","and","not","isLink","asBoolean","disabled","Icon"],"mappings":";;;;;;;;;;;AAgCO,MAAMA,mBAAmBC,SAAA,CAAU;EACxC,IAAIC,KAAAA,GAAQ;IACVC,MAAA,CACE,0EAEA,IAAI,CAACC,IAAI,CAACF,KAAK,KAAKG,SAAA,CAAA;AAGtB;AACA,IAAA,OAAO,IAAI,CAACD,IAAI,CAACF,KAAK;AACxB,EAAA;AAEA,EAAA;IAAAI,oBAAA,CAAAC,kBAAA,CAAA,8fAAA,EAiBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,WAAA;QAAAC,OAAA;QAAAC,GAAA;QAAAC,GAAA;QAAAC,MAAA;QAAAC,SAAA;QAAAC,QAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1,18 +0,0 @@
1
- import { hash } from '@ember/helper';
2
- import { precompileTemplate } from '@ember/template-compilation';
3
- import { setComponentTemplate } from '@ember/component';
4
- import templateOnly from '@ember/component/template-only';
5
-
6
- const Affix = setComponentTemplate(precompileTemplate("\n <span class=\"input-{{@identity}}\" data-test-input-builder={{@identity}}>{{yield}}</span>\n", {
7
- strictMode: true
8
- }), templateOnly());
9
- const InputBuilder = setComponentTemplate(precompileTemplate("\n {{!-- template-lint-disable no-unsupported-role-attributes --}}\n <span class=\"input-builder\" aria-disabled={{if @disabled \"true\"}} data-spacing={{@spacing}} data-input-builder data-test-input-builder>\n {{yield (hash Prefix=(component Affix identity=\"prefix\") Affix=(component Affix identity=\"affix\") Suffix=(component Affix identity=\"suffix\"))}}\n </span>\n", {
10
- strictMode: true,
11
- scope: () => ({
12
- hash,
13
- Affix
14
- })
15
- }), templateOnly());
16
-
17
- export { InputBuilder as I };
18
- //# sourceMappingURL=input-builder-C6GkddCw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu-BR3G9OgU.js","sources":["../src/components/controls/menu.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\nimport { service } from '@ember/service';\nimport { htmlSafe } from '@ember/template';\n\nimport { ariaMenu } from 'ember-aria-voyager';\nimport { TrackedArray } from 'tracked-built-ins';\n\nimport disabled from '../../-private/modifiers/disabled.ts';\nimport { PushElement } from '../../-private/push.gts';\nimport { popover } from '../../helpers/popover.ts';\n\nimport type { MenuItemArgs, MenuItemBlocks, MenuItemElement } from './-menu.gts';\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nimport type FastBoot from 'ember-cli-fastboot/services/fastboot';\n\nexport type MenuDefaultBlock = {\n Item: WithBoundArgs<typeof MenuItem, 'registerItem' | 'unregisterItem'>;\n};\n\nexport interface MenuItemSignature {\n Element: MenuItemElement;\n Args: MenuItemArgs & {\n registerItem: (item: MenuItem) => void;\n unregisterItem: (item: MenuItem) => void;\n };\n Blocks: MenuItemBlocks & {\n menu?: [MenuDefaultBlock];\n };\n}\n\n// below are attempts at conditional typing based on provided blocks in dynamic invocation\n\n// type MenuItemArgs = {\n// disabled?: boolean;\n// registerItem: (item: MenuItem) => void;\n// unregisterItem: (item: MenuItem) => void;\n// };\n\n// export interface MenuItemSignature<T = {}> {\n// Element: HTMLButtonElement | HTMLAnchorElement;\n// Args: T extends { Blocks: { default: [] } }\n// ? MenuItemArgs & {\n// push: CommandAction;\n// }\n// : MenuItemArgs;\n// Blocks: T extends { Blocks: { default: [] } }\n// ? { default: [] }\n// : { label: []; menu: [MenuDefaultBlock] };\n// }\n\n// & (\n// | {\n// Args: MenuItemArgs & {\n// push: CommandAction;\n// };\n// Blocks: {\n// default: [];\n// };\n// }\n// | {\n// Args: MenuItemArgs;\n// Blocks: {\n// label: [];\n// menu: [MenuDefaultBlock];\n// };\n// }\n// );\n\n/* eslint-disable @typescript-eslint/no-use-before-define */\nclass MenuItem extends Component<MenuItemSignature> {\n constructor(owner: Owner, args: MenuItemSignature['Args']) {\n super(owner, args);\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n args.registerItem(this);\n\n registerDestructor(this, () => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n args.unregisterItem(this);\n });\n }\n\n <template>\n {{#if (has-block \"menu\")}}\n {{#let (popover position=\"right-start\") as |p|}}\n <button\n type=\"button\"\n role=\"menuitem\"\n aria-haspopup=\"menu\"\n {{disabled when=(if @disabled @disabled false)}}\n {{p.trigger}}\n >\n <span>{{~yield to=\"label\"~}}</span>\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{else}}\n <PushElement\n @push={{@push}}\n @href={{@href}}\n {{disabled when=(if @disabled @disabled false)}}\n role=\"menuitem\"\n >\n <span>{{~yield~}}</span>\n </PushElement>\n {{/if}}\n </template>\n}\n/* eslint-enable @typescript-eslint/no-use-before-define */\n\nexport interface MenuSignature {\n Element: HTMLDivElement;\n Args: {\n disabled?: boolean;\n };\n Blocks: {\n default: [MenuDefaultBlock];\n };\n}\n\nexport class Menu extends Component<MenuSignature> {\n @service declare fastboot?: FastBoot;\n\n @tracked items: MenuItem[] = new TrackedArray();\n\n get hideInSSR() {\n return this.fastboot?.isFastBoot;\n }\n\n registerItem = (item: MenuItem) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.push(item);\n });\n };\n\n unregisterItem = (item: MenuItem) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.splice(this.items.indexOf(item), 1);\n });\n };\n\n <template>\n <div\n class=\"menu\"\n data-test-menu\n ...attributes\n {{ariaMenu items=this.items disabled=@disabled}}\n style={{if this.hideInSSR (htmlSafe \"display: none\")}}\n >\n {{yield\n (hash\n Item=(component\n MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem\n )\n )\n }}\n </div>\n </template>\n}\n"],"names":["MenuItem","Component","constructor","owner","args","registerItem","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","strictMode","scope","popover","disabled","Menu","PushElement","g","prototype","service","i","void 0","tracked","TrackedArray","hideInSSR","fastboot","isFastBoot","item","next","items","push","splice","indexOf","htmlSafe","ariaMenu","hash"],"mappings":";;;;;;;;;;;;;;;;AAmCA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,MAAMA,QAAA,SAAiBC,SAAA,CAAU;AAC/BC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAA+B,EAAE;AACzD,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;AAEb;AACAA,IAAAA,IAAA,CAAKC,YAAY,CAAC,IAAI,CAAA;IAEtBC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvB;AACAF,MAAAA,IAAA,CAAKG,cAAc,CAAC,IAAI,CAAA;AAC1B,IAAA,CAAA,CAAA;AACF,EAAA;AAEA,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,qmBAAA,EA2BA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;QAAAC,QAAA;QAAAC,IAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;AACA;;AAYO,MAAMD,aAAab,SAAA,CAAU;AAAA,EAAA;IAAAe,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,UAAA,EAAA,CACjCC,OAAA,CAAA,CAAA;AAAA;AAAA,EAAA,SAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,UAAA,CAAA,EAAAC,MAAA;AAAA,EAAA;IAAAJ,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,OAAA,EAAA,CAEAI,OAAA,CAAA,EAAA,YAAA;MAAA,OAA4B,IAAIC,YAAA,EAAA;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,MAAA,IAAAH,CAAA,CAAA,IAAA,EAAA,OAAA,CAAA,EAAAC,MAAA;EAEjC,IAAIG,SAAAA,GAAY;AACd,IAAA,OAAO,IAAI,CAACC,QAAQ,EAAEC,UAAA;AACxB,EAAA;EAEApB,YAAA,GAAgBqB,IAAM,IAAA;AACpB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACH,IAAA,CAAA;AAClB,IAAA,CAAA,CAAA;EACF,CAAA;EAEAnB,cAAA,GAAkBmB,IAAM,IAAA;AACtB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,IAAI,CAACF,KAAK,CAACG,OAAO,CAACL,IAAA,CAAA,EAAO,CAAA,CAAA;AAC9C,IAAA,CAAA,CAAA;EACF,CAAA;AAEA,EAAA;IAAAlB,oBAAA,CAAAC,kBAAA,CAAA,uSAAA,EAgBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAqB,QAAA;QAAAC,QAAA;QAAAC,IAAA;AAAAlC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1,22 +0,0 @@
1
- import { P as PushElement } from './push-DnJFFc_p.js';
2
- import { I as Icon } from './icon-rlG6O1ps.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 MaybeIcon = setComponentTemplate(precompileTemplate("\n {{#if @icon}}\n <Icon @icon={{@icon}} part=\"icon\" />\n {{/if}}\n", {
8
- strictMode: true,
9
- scope: () => ({
10
- Icon
11
- })
12
- }), templateOnly());
13
- const NavLink = setComponentTemplate(precompileTemplate("\n <PushElement @push={{@push}} @href={{@href}} part=\"item\" ...attributes>\n <MaybeIcon @icon={{@icon}} />\n {{yield}}\n </PushElement>\n", {
14
- strictMode: true,
15
- scope: () => ({
16
- PushElement,
17
- MaybeIcon
18
- })
19
- }), templateOnly());
20
-
21
- export { NavLink as N };
22
- //# sourceMappingURL=nav-link-DL59IUt0.js.map