@hokulea/ember 0.10.2 → 0.11.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 (411) hide show
  1. package/declarations/-private/{push.gts.d.ts → push.d.ts} +1 -1
  2. package/declarations/-private/push.d.ts.map +1 -0
  3. package/declarations/components/actions/{button.gts.d.ts → button.d.ts} +1 -1
  4. package/declarations/components/actions/button.d.ts.map +1 -0
  5. package/declarations/components/actions/{icon-button.gts.d.ts → icon-button.d.ts} +1 -1
  6. package/declarations/components/actions/icon-button.d.ts.map +1 -0
  7. package/declarations/components/{app-header.gts.d.ts → app-header.d.ts} +1 -1
  8. package/declarations/components/app-header.d.ts.map +1 -0
  9. package/declarations/components/{avatar.gts.d.ts → avatar.d.ts} +1 -1
  10. package/declarations/components/avatar.d.ts.map +1 -0
  11. package/declarations/components/{box.gts.d.ts → box.d.ts} +1 -1
  12. package/declarations/components/box.d.ts.map +1 -0
  13. package/declarations/components/{button.gts.d.ts → button.d.ts} +1 -1
  14. package/declarations/components/button.d.ts.map +1 -0
  15. package/declarations/components/{card.gts.d.ts → card.d.ts} +1 -1
  16. package/declarations/components/card.d.ts.map +1 -0
  17. package/declarations/components/{checkbox.gts.d.ts → checkbox.d.ts} +1 -1
  18. package/declarations/components/checkbox.d.ts.map +1 -0
  19. package/declarations/components/content/{box.gts.d.ts → box.d.ts} +1 -1
  20. package/declarations/components/content/box.d.ts.map +1 -0
  21. package/declarations/components/content/{card.gts.d.ts → card.d.ts} +1 -1
  22. package/declarations/components/content/card.d.ts.map +1 -0
  23. package/declarations/components/content/{section.gts.d.ts → section.d.ts} +1 -1
  24. package/declarations/components/content/section.d.ts.map +1 -0
  25. package/declarations/components/controls/{-menu.gts.d.ts → -menu.d.ts} +1 -1
  26. package/declarations/components/controls/-menu.d.ts.map +1 -0
  27. package/declarations/components/controls/{checkbox.gts.d.ts → checkbox.d.ts} +1 -1
  28. package/declarations/components/controls/checkbox.d.ts.map +1 -0
  29. package/declarations/components/controls/{currency-input.gts.d.ts → currency-input.d.ts} +1 -1
  30. package/declarations/components/controls/currency-input.d.ts.map +1 -0
  31. package/declarations/components/controls/{date-input.gts.d.ts → date-input.d.ts} +1 -1
  32. package/declarations/components/controls/date-input.d.ts.map +1 -0
  33. package/declarations/components/controls/{email-input.gts.d.ts → email-input.d.ts} +1 -1
  34. package/declarations/components/controls/email-input.d.ts.map +1 -0
  35. package/declarations/components/controls/{input-builder.gts.d.ts → input-builder.d.ts} +4 -5
  36. package/declarations/components/controls/input-builder.d.ts.map +1 -0
  37. package/declarations/components/controls/{list.gts.d.ts → list.d.ts} +1 -1
  38. package/declarations/components/controls/list.d.ts.map +1 -0
  39. package/declarations/components/controls/{menu.gts.d.ts → menu.d.ts} +1 -1
  40. package/declarations/components/controls/menu.d.ts.map +1 -0
  41. package/declarations/components/controls/{number-input.gts.d.ts → number-input.d.ts} +1 -1
  42. package/declarations/components/controls/number-input.d.ts.map +1 -0
  43. package/declarations/components/controls/{password-input.gts.d.ts → password-input.d.ts} +1 -1
  44. package/declarations/components/controls/password-input.d.ts.map +1 -0
  45. package/declarations/components/controls/{phone-input.gts.d.ts → phone-input.d.ts} +1 -1
  46. package/declarations/components/controls/phone-input.d.ts.map +1 -0
  47. package/declarations/components/controls/{radio.gts.d.ts → radio.d.ts} +1 -1
  48. package/declarations/components/controls/radio.d.ts.map +1 -0
  49. package/declarations/components/controls/{range-input.gts.d.ts → range-input.d.ts} +1 -1
  50. package/declarations/components/controls/range-input.d.ts.map +1 -0
  51. package/declarations/components/controls/{select.gts.d.ts → select.d.ts} +1 -1
  52. package/declarations/components/controls/select.d.ts.map +1 -0
  53. package/declarations/components/controls/{tabs.gts.d.ts → tabs.d.ts} +1 -1
  54. package/declarations/components/controls/tabs.d.ts.map +1 -0
  55. package/declarations/components/controls/{text-area.gts.d.ts → text-area.d.ts} +1 -1
  56. package/declarations/components/controls/text-area.d.ts.map +1 -0
  57. package/declarations/components/controls/{text-input.gts.d.ts → text-input.d.ts} +1 -1
  58. package/declarations/components/controls/text-input.d.ts.map +1 -0
  59. package/declarations/components/{currency-input.gts.d.ts → currency-input.d.ts} +1 -1
  60. package/declarations/components/currency-input.d.ts.map +1 -0
  61. package/declarations/components/data/{data-table.gts.d.ts → data-table.d.ts} +1 -1
  62. package/declarations/components/data/data-table.d.ts.map +1 -0
  63. package/declarations/components/{data-table.gts.d.ts → data-table.d.ts} +1 -1
  64. package/declarations/components/data-table.d.ts.map +1 -0
  65. package/declarations/components/{date-input.gts.d.ts → date-input.d.ts} +1 -1
  66. package/declarations/components/date-input.d.ts.map +1 -0
  67. package/declarations/components/{email-input.gts.d.ts → email-input.d.ts} +1 -1
  68. package/declarations/components/email-input.d.ts.map +1 -0
  69. package/declarations/components/{focus-page.gts.d.ts → focus-page.d.ts} +1 -1
  70. package/declarations/components/focus-page.d.ts.map +1 -0
  71. package/declarations/components/form/{description.gts.d.ts → description.d.ts} +1 -1
  72. package/declarations/components/form/description.d.ts.map +1 -0
  73. package/declarations/components/form/{errors.gts.d.ts → errors.d.ts} +1 -1
  74. package/declarations/components/form/errors.d.ts.map +1 -0
  75. package/declarations/components/form/{field.gts.d.ts → field.d.ts} +1 -1
  76. package/declarations/components/form/field.d.ts.map +1 -0
  77. package/declarations/components/form/fields/{checkbox.gts.d.ts → checkbox.d.ts} +1 -1
  78. package/declarations/components/form/fields/checkbox.d.ts.map +1 -0
  79. package/declarations/components/form/fields/{currency.gts.d.ts → currency.d.ts} +1 -1
  80. package/declarations/components/form/fields/currency.d.ts.map +1 -0
  81. package/declarations/components/form/fields/{date.gts.d.ts → date.d.ts} +1 -1
  82. package/declarations/components/form/fields/date.d.ts.map +1 -0
  83. package/declarations/components/form/fields/{email.gts.d.ts → email.d.ts} +1 -1
  84. package/declarations/components/form/fields/email.d.ts.map +1 -0
  85. package/declarations/components/form/fields/{list.gts.d.ts → list.d.ts} +1 -1
  86. package/declarations/components/form/fields/list.d.ts.map +1 -0
  87. package/declarations/components/form/fields/{multiple-choice.gts.d.ts → multiple-choice.d.ts} +1 -1
  88. package/declarations/components/form/fields/multiple-choice.d.ts.map +1 -0
  89. package/declarations/components/form/fields/{number.gts.d.ts → number.d.ts} +1 -1
  90. package/declarations/components/form/fields/number.d.ts.map +1 -0
  91. package/declarations/components/form/fields/{password.gts.d.ts → password.d.ts} +1 -1
  92. package/declarations/components/form/fields/password.d.ts.map +1 -0
  93. package/declarations/components/form/fields/{phone.gts.d.ts → phone.d.ts} +1 -1
  94. package/declarations/components/form/fields/phone.d.ts.map +1 -0
  95. package/declarations/components/form/fields/{range.gts.d.ts → range.d.ts} +1 -1
  96. package/declarations/components/form/fields/range.d.ts.map +1 -0
  97. package/declarations/components/form/fields/{select.gts.d.ts → select.d.ts} +1 -1
  98. package/declarations/components/form/fields/select.d.ts.map +1 -0
  99. package/declarations/components/form/fields/{singular-choice.gts.d.ts → singular-choice.d.ts} +1 -1
  100. package/declarations/components/form/fields/singular-choice.d.ts.map +1 -0
  101. package/declarations/components/form/fields/{text-area.gts.d.ts → text-area.d.ts} +1 -1
  102. package/declarations/components/form/fields/text-area.d.ts.map +1 -0
  103. package/declarations/components/form/fields/{text.gts.d.ts → text.d.ts} +1 -1
  104. package/declarations/components/form/fields/text.d.ts.map +1 -0
  105. package/declarations/components/form/{form.gts.d.ts → form.d.ts} +1 -1
  106. package/declarations/components/form/form.d.ts.map +1 -0
  107. package/declarations/components/form/{label.gts.d.ts → label.d.ts} +1 -1
  108. package/declarations/components/form/label.d.ts.map +1 -0
  109. package/declarations/components/form/{reset.gts.d.ts → reset.d.ts} +1 -1
  110. package/declarations/components/form/reset.d.ts.map +1 -0
  111. package/declarations/components/form/{rules.gts.d.ts → rules.d.ts} +1 -1
  112. package/declarations/components/form/rules.d.ts.map +1 -0
  113. package/declarations/components/form/{submit.gts.d.ts → submit.d.ts} +1 -1
  114. package/declarations/components/form/submit.d.ts.map +1 -0
  115. package/declarations/components/{form.gts.d.ts → form.d.ts} +1 -1
  116. package/declarations/components/form.d.ts.map +1 -0
  117. package/declarations/components/graphics/{avatar.gts.d.ts → avatar.d.ts} +1 -1
  118. package/declarations/components/graphics/avatar.d.ts.map +1 -0
  119. package/declarations/components/graphics/{icon.gts.d.ts → icon.d.ts} +5 -3
  120. package/declarations/components/graphics/icon.d.ts.map +1 -0
  121. package/declarations/components/{icon-button.gts.d.ts → icon-button.d.ts} +1 -1
  122. package/declarations/components/icon-button.d.ts.map +1 -0
  123. package/declarations/components/{icon.gts.d.ts → icon.d.ts} +1 -1
  124. package/declarations/components/icon.d.ts.map +1 -0
  125. package/declarations/components/{input-builder.gts.d.ts → input-builder.d.ts} +1 -1
  126. package/declarations/components/input-builder.d.ts.map +1 -0
  127. package/declarations/components/layouts/{focus-page.gts.d.ts → focus-page.d.ts} +1 -1
  128. package/declarations/components/layouts/focus-page.d.ts.map +1 -0
  129. package/declarations/components/layouts/{page.gts.d.ts → page.d.ts} +1 -1
  130. package/declarations/components/layouts/page.d.ts.map +1 -0
  131. package/declarations/components/layouts/{sectioned-page.gts.d.ts → sectioned-page.d.ts} +1 -1
  132. package/declarations/components/layouts/sectioned-page.d.ts.map +1 -0
  133. package/declarations/components/{link.gts.d.ts → link.d.ts} +1 -1
  134. package/declarations/components/link.d.ts.map +1 -0
  135. package/declarations/components/{list.gts.d.ts → list.d.ts} +1 -1
  136. package/declarations/components/list.d.ts.map +1 -0
  137. package/declarations/components/{menu.gts.d.ts → menu.d.ts} +1 -1
  138. package/declarations/components/menu.d.ts.map +1 -0
  139. package/declarations/components/navigation/{app-header.gts.d.ts → app-header.d.ts} +1 -1
  140. package/declarations/components/navigation/app-header.d.ts.map +1 -0
  141. package/declarations/components/navigation/{link.gts.d.ts → link.d.ts} +1 -1
  142. package/declarations/components/navigation/link.d.ts.map +1 -0
  143. package/declarations/components/navigation/{nav-link.gts.d.ts → nav-link.d.ts} +1 -1
  144. package/declarations/components/navigation/nav-link.d.ts.map +1 -0
  145. package/declarations/components/navigation/{navigation-list.gts.d.ts → navigation-list.d.ts} +1 -1
  146. package/declarations/components/navigation/navigation-list.d.ts.map +1 -0
  147. package/declarations/components/navigation/{pagination.gts.d.ts → pagination.d.ts} +1 -1
  148. package/declarations/components/navigation/pagination.d.ts.map +1 -0
  149. package/declarations/components/{navigation-list.gts.d.ts → navigation-list.d.ts} +1 -1
  150. package/declarations/components/navigation-list.d.ts.map +1 -0
  151. package/declarations/components/{number-input.gts.d.ts → number-input.d.ts} +1 -1
  152. package/declarations/components/number-input.d.ts.map +1 -0
  153. package/declarations/components/{page.gts.d.ts → page.d.ts} +1 -1
  154. package/declarations/components/page.d.ts.map +1 -0
  155. package/declarations/components/{pagination.gts.d.ts → pagination.d.ts} +1 -1
  156. package/declarations/components/pagination.d.ts.map +1 -0
  157. package/declarations/components/{password-input.gts.d.ts → password-input.d.ts} +1 -1
  158. package/declarations/components/password-input.d.ts.map +1 -0
  159. package/declarations/components/{phone-input.gts.d.ts → phone-input.d.ts} +1 -1
  160. package/declarations/components/phone-input.d.ts.map +1 -0
  161. package/declarations/components/{popover.gts.d.ts → popover.d.ts} +1 -1
  162. package/declarations/components/popover.d.ts.map +1 -0
  163. package/declarations/components/{radio.gts.d.ts → radio.d.ts} +1 -1
  164. package/declarations/components/radio.d.ts.map +1 -0
  165. package/declarations/components/{range-input.gts.d.ts → range-input.d.ts} +1 -1
  166. package/declarations/components/range-input.d.ts.map +1 -0
  167. package/declarations/components/{section.gts.d.ts → section.d.ts} +1 -1
  168. package/declarations/components/section.d.ts.map +1 -0
  169. package/declarations/components/{sectioned-page.gts.d.ts → sectioned-page.d.ts} +1 -1
  170. package/declarations/components/sectioned-page.d.ts.map +1 -0
  171. package/declarations/components/{select.gts.d.ts → select.d.ts} +1 -1
  172. package/declarations/components/select.d.ts.map +1 -0
  173. package/declarations/components/{tabs.gts.d.ts → tabs.d.ts} +1 -1
  174. package/declarations/components/tabs.d.ts.map +1 -0
  175. package/declarations/components/{text-area.gts.d.ts → text-area.d.ts} +1 -1
  176. package/declarations/components/text-area.d.ts.map +1 -0
  177. package/declarations/components/{text-input.gts.d.ts → text-input.d.ts} +1 -1
  178. package/declarations/components/text-input.d.ts.map +1 -0
  179. package/declarations/components/windows/{popover.gts.d.ts → popover.d.ts} +1 -1
  180. package/declarations/components/windows/popover.d.ts.map +1 -0
  181. package/dist/{app-header-nmqytjxx.js → app-header-DKlDPWSe.js} +5 -7
  182. package/dist/app-header-DKlDPWSe.js.map +1 -0
  183. package/dist/{avatar-DGE5ExoJ.js → avatar-DTqwlbny.js} +2 -4
  184. package/dist/avatar-DTqwlbny.js.map +1 -0
  185. package/dist/{box-DU6m9gDw.js → box-COwjh1Rb.js} +3 -5
  186. package/dist/box-COwjh1Rb.js.map +1 -0
  187. package/dist/button-BAtG9lC0.js +24 -0
  188. package/dist/button-BAtG9lC0.js.map +1 -0
  189. package/dist/card-Bq4sLW1m.js +14 -0
  190. package/dist/card-Bq4sLW1m.js.map +1 -0
  191. package/dist/{checkbox-D3_2ps5M.js → checkbox-C9-RZtWK.js} +2 -4
  192. package/dist/checkbox-C9-RZtWK.js.map +1 -0
  193. package/dist/components/app-header.js +1 -1
  194. package/dist/components/avatar.js +1 -1
  195. package/dist/components/box.js +1 -1
  196. package/dist/components/button.js +1 -1
  197. package/dist/components/card.js +1 -1
  198. package/dist/components/checkbox.js +1 -1
  199. package/dist/components/currency-input.js +1 -1
  200. package/dist/components/data-table.js +1 -1
  201. package/dist/components/date-input.js +1 -1
  202. package/dist/components/email-input.js +1 -1
  203. package/dist/components/focus-page.js +1 -1
  204. package/dist/components/form.js +1 -1
  205. package/dist/components/icon-button.js +1 -1
  206. package/dist/components/icon.js +1 -1
  207. package/dist/components/input-builder.js +1 -1
  208. package/dist/components/list.js +1 -1
  209. package/dist/components/menu.js +1 -1
  210. package/dist/components/navigation-list.js +1 -1
  211. package/dist/components/number-input.js +1 -1
  212. package/dist/components/page.js +1 -1
  213. package/dist/components/pagination.js +1 -1
  214. package/dist/components/password-input.js +1 -1
  215. package/dist/components/phone-input.js +1 -1
  216. package/dist/components/popover.js +1 -1
  217. package/dist/components/radio.js +1 -1
  218. package/dist/components/range-input.js +1 -1
  219. package/dist/components/section.js +1 -1
  220. package/dist/components/sectioned-page.js +1 -1
  221. package/dist/components/select.js +1 -1
  222. package/dist/components/tabs.js +1 -1
  223. package/dist/components/text-area.js +1 -1
  224. package/dist/components/text-input.js +1 -1
  225. package/dist/{currency-input-tBhgIMTh.js → currency-input-BqNb3IcU.js} +3 -5
  226. package/dist/currency-input-BqNb3IcU.js.map +1 -0
  227. package/dist/data-table-ZliVM1td.js +16 -0
  228. package/dist/data-table-ZliVM1td.js.map +1 -0
  229. package/dist/{date-input-DLv9jE39.js → date-input-DxDpVu3A.js} +2 -4
  230. package/dist/date-input-DxDpVu3A.js.map +1 -0
  231. package/dist/{email-input-BR33Qevz.js → email-input-84impWbH.js} +2 -4
  232. package/dist/email-input-84impWbH.js.map +1 -0
  233. package/dist/focus-page-Boq96jK3.js +19 -0
  234. package/dist/focus-page-Boq96jK3.js.map +1 -0
  235. package/dist/{form-VsNkRlXs.js → form-CoJgUXR6.js} +32 -50
  236. package/dist/form-CoJgUXR6.js.map +1 -0
  237. package/dist/{icon-button-DBt7fMi1.js → icon-button-hS8-Jo0v.js} +3 -5
  238. package/dist/icon-button-hS8-Jo0v.js.map +1 -0
  239. package/dist/{icon-BfRBkZ72.js → icon-rlG6O1ps.js} +6 -4
  240. package/dist/icon-rlG6O1ps.js.map +1 -0
  241. package/dist/index.js +32 -32
  242. package/dist/input-builder-C6GkddCw.js +18 -0
  243. package/dist/input-builder-C6GkddCw.js.map +1 -0
  244. package/dist/{list-CsLvih6-.js → list-C86dLtuk.js} +2 -4
  245. package/dist/list-C86dLtuk.js.map +1 -0
  246. package/dist/{menu-s0AthZse.js → menu-DCDUaqYZ.js} +2 -4
  247. package/dist/menu-DCDUaqYZ.js.map +1 -0
  248. package/dist/{nav-link-CDtYj6HW.js → nav-link-DL59IUt0.js} +2 -2
  249. package/dist/{nav-link-CDtYj6HW.js.map → nav-link-DL59IUt0.js.map} +1 -1
  250. package/dist/{navigation-list-Ng5UsNCY.js → navigation-list-Dt-WaMyp.js} +3 -5
  251. package/dist/navigation-list-Dt-WaMyp.js.map +1 -0
  252. package/dist/{number-input-FJympEv2.js → number-input-CDMSp7qk.js} +2 -4
  253. package/dist/number-input-CDMSp7qk.js.map +1 -0
  254. package/dist/page-DNrVa_Zo.js +19 -0
  255. package/dist/page-DNrVa_Zo.js.map +1 -0
  256. package/dist/{pagination-DCMxI10i.js → pagination-BYiNuWz8.js} +5 -7
  257. package/dist/pagination-BYiNuWz8.js.map +1 -0
  258. package/dist/{password-input-DV5yb10h.js → password-input-BYvLH8gQ.js} +2 -4
  259. package/dist/password-input-BYvLH8gQ.js.map +1 -0
  260. package/dist/{phone-input-Uv5v9hK9.js → phone-input-8N_lOkZ2.js} +2 -4
  261. package/dist/phone-input-8N_lOkZ2.js.map +1 -0
  262. package/dist/{popover-B6j413u9.js → popover-wLRNTIPC.js} +3 -7
  263. package/dist/popover-wLRNTIPC.js.map +1 -0
  264. package/dist/{radio-CLF40kob.js → radio-BQvSPyDT.js} +2 -4
  265. package/dist/radio-BQvSPyDT.js.map +1 -0
  266. package/dist/{range-input-BIb7GkKH.js → range-input-Bosd7QI2.js} +2 -4
  267. package/dist/range-input-Bosd7QI2.js.map +1 -0
  268. package/dist/section-B_1poNPX.js +21 -0
  269. package/dist/section-B_1poNPX.js.map +1 -0
  270. package/dist/sectioned-page-D9Xxr97R.js +21 -0
  271. package/dist/sectioned-page-D9Xxr97R.js.map +1 -0
  272. package/dist/{select-CeO8AZMK.js → select-DWOHAUfQ.js} +2 -4
  273. package/dist/select-DWOHAUfQ.js.map +1 -0
  274. package/dist/{tabs-DAscspzh.js → tabs-e_cUi6pL.js} +2 -4
  275. package/dist/tabs-e_cUi6pL.js.map +1 -0
  276. package/dist/test-support/index.js +1 -1
  277. package/dist/{text-area-DF8-cDiy.js → text-area-CLRp3q_-.js} +2 -4
  278. package/dist/text-area-CLRp3q_-.js.map +1 -0
  279. package/dist/{text-input-CcIcYksE.js → text-input-BntDzi8S.js} +2 -4
  280. package/dist/text-input-BntDzi8S.js.map +1 -0
  281. package/package.json +40 -42
  282. package/declarations/-private/push.gts.d.ts.map +0 -1
  283. package/declarations/components/actions/button.gts.d.ts.map +0 -1
  284. package/declarations/components/actions/icon-button.gts.d.ts.map +0 -1
  285. package/declarations/components/app-header.gts.d.ts.map +0 -1
  286. package/declarations/components/avatar.gts.d.ts.map +0 -1
  287. package/declarations/components/box.gts.d.ts.map +0 -1
  288. package/declarations/components/button.gts.d.ts.map +0 -1
  289. package/declarations/components/card.gts.d.ts.map +0 -1
  290. package/declarations/components/checkbox.gts.d.ts.map +0 -1
  291. package/declarations/components/content/box.gts.d.ts.map +0 -1
  292. package/declarations/components/content/card.gts.d.ts.map +0 -1
  293. package/declarations/components/content/section.gts.d.ts.map +0 -1
  294. package/declarations/components/controls/-menu.gts.d.ts.map +0 -1
  295. package/declarations/components/controls/checkbox.gts.d.ts.map +0 -1
  296. package/declarations/components/controls/currency-input.gts.d.ts.map +0 -1
  297. package/declarations/components/controls/date-input.gts.d.ts.map +0 -1
  298. package/declarations/components/controls/email-input.gts.d.ts.map +0 -1
  299. package/declarations/components/controls/input-builder.gts.d.ts.map +0 -1
  300. package/declarations/components/controls/list.gts.d.ts.map +0 -1
  301. package/declarations/components/controls/menu.gts.d.ts.map +0 -1
  302. package/declarations/components/controls/number-input.gts.d.ts.map +0 -1
  303. package/declarations/components/controls/password-input.gts.d.ts.map +0 -1
  304. package/declarations/components/controls/phone-input.gts.d.ts.map +0 -1
  305. package/declarations/components/controls/radio.gts.d.ts.map +0 -1
  306. package/declarations/components/controls/range-input.gts.d.ts.map +0 -1
  307. package/declarations/components/controls/select.gts.d.ts.map +0 -1
  308. package/declarations/components/controls/tabs.gts.d.ts.map +0 -1
  309. package/declarations/components/controls/text-area.gts.d.ts.map +0 -1
  310. package/declarations/components/controls/text-input.gts.d.ts.map +0 -1
  311. package/declarations/components/currency-input.gts.d.ts.map +0 -1
  312. package/declarations/components/data/data-table.gts.d.ts.map +0 -1
  313. package/declarations/components/data-table.gts.d.ts.map +0 -1
  314. package/declarations/components/date-input.gts.d.ts.map +0 -1
  315. package/declarations/components/email-input.gts.d.ts.map +0 -1
  316. package/declarations/components/focus-page.gts.d.ts.map +0 -1
  317. package/declarations/components/form/description.gts.d.ts.map +0 -1
  318. package/declarations/components/form/errors.gts.d.ts.map +0 -1
  319. package/declarations/components/form/field.gts.d.ts.map +0 -1
  320. package/declarations/components/form/fields/checkbox.gts.d.ts.map +0 -1
  321. package/declarations/components/form/fields/currency.gts.d.ts.map +0 -1
  322. package/declarations/components/form/fields/date.gts.d.ts.map +0 -1
  323. package/declarations/components/form/fields/email.gts.d.ts.map +0 -1
  324. package/declarations/components/form/fields/list.gts.d.ts.map +0 -1
  325. package/declarations/components/form/fields/multiple-choice.gts.d.ts.map +0 -1
  326. package/declarations/components/form/fields/number.gts.d.ts.map +0 -1
  327. package/declarations/components/form/fields/password.gts.d.ts.map +0 -1
  328. package/declarations/components/form/fields/phone.gts.d.ts.map +0 -1
  329. package/declarations/components/form/fields/range.gts.d.ts.map +0 -1
  330. package/declarations/components/form/fields/select.gts.d.ts.map +0 -1
  331. package/declarations/components/form/fields/singular-choice.gts.d.ts.map +0 -1
  332. package/declarations/components/form/fields/text-area.gts.d.ts.map +0 -1
  333. package/declarations/components/form/fields/text.gts.d.ts.map +0 -1
  334. package/declarations/components/form/form.gts.d.ts.map +0 -1
  335. package/declarations/components/form/label.gts.d.ts.map +0 -1
  336. package/declarations/components/form/reset.gts.d.ts.map +0 -1
  337. package/declarations/components/form/rules.gts.d.ts.map +0 -1
  338. package/declarations/components/form/submit.gts.d.ts.map +0 -1
  339. package/declarations/components/form.gts.d.ts.map +0 -1
  340. package/declarations/components/graphics/avatar.gts.d.ts.map +0 -1
  341. package/declarations/components/graphics/icon.gts.d.ts.map +0 -1
  342. package/declarations/components/icon-button.gts.d.ts.map +0 -1
  343. package/declarations/components/icon.gts.d.ts.map +0 -1
  344. package/declarations/components/input-builder.gts.d.ts.map +0 -1
  345. package/declarations/components/layouts/focus-page.gts.d.ts.map +0 -1
  346. package/declarations/components/layouts/page.gts.d.ts.map +0 -1
  347. package/declarations/components/layouts/sectioned-page.gts.d.ts.map +0 -1
  348. package/declarations/components/link.gts.d.ts.map +0 -1
  349. package/declarations/components/list.gts.d.ts.map +0 -1
  350. package/declarations/components/menu.gts.d.ts.map +0 -1
  351. package/declarations/components/navigation/app-header.gts.d.ts.map +0 -1
  352. package/declarations/components/navigation/link.gts.d.ts.map +0 -1
  353. package/declarations/components/navigation/nav-link.gts.d.ts.map +0 -1
  354. package/declarations/components/navigation/navigation-list.gts.d.ts.map +0 -1
  355. package/declarations/components/navigation/pagination.gts.d.ts.map +0 -1
  356. package/declarations/components/navigation-list.gts.d.ts.map +0 -1
  357. package/declarations/components/number-input.gts.d.ts.map +0 -1
  358. package/declarations/components/page.gts.d.ts.map +0 -1
  359. package/declarations/components/pagination.gts.d.ts.map +0 -1
  360. package/declarations/components/password-input.gts.d.ts.map +0 -1
  361. package/declarations/components/phone-input.gts.d.ts.map +0 -1
  362. package/declarations/components/popover.gts.d.ts.map +0 -1
  363. package/declarations/components/radio.gts.d.ts.map +0 -1
  364. package/declarations/components/range-input.gts.d.ts.map +0 -1
  365. package/declarations/components/section.gts.d.ts.map +0 -1
  366. package/declarations/components/sectioned-page.gts.d.ts.map +0 -1
  367. package/declarations/components/select.gts.d.ts.map +0 -1
  368. package/declarations/components/tabs.gts.d.ts.map +0 -1
  369. package/declarations/components/text-area.gts.d.ts.map +0 -1
  370. package/declarations/components/text-input.gts.d.ts.map +0 -1
  371. package/declarations/components/windows/popover.gts.d.ts.map +0 -1
  372. package/dist/app-header-nmqytjxx.js.map +0 -1
  373. package/dist/avatar-DGE5ExoJ.js.map +0 -1
  374. package/dist/box-DU6m9gDw.js.map +0 -1
  375. package/dist/button-BhxkZ70u.js +0 -26
  376. package/dist/button-BhxkZ70u.js.map +0 -1
  377. package/dist/card-tK78paQn.js +0 -16
  378. package/dist/card-tK78paQn.js.map +0 -1
  379. package/dist/checkbox-D3_2ps5M.js.map +0 -1
  380. package/dist/currency-input-tBhgIMTh.js.map +0 -1
  381. package/dist/data-table-5VDYeRya.js +0 -18
  382. package/dist/data-table-5VDYeRya.js.map +0 -1
  383. package/dist/date-input-DLv9jE39.js.map +0 -1
  384. package/dist/email-input-BR33Qevz.js.map +0 -1
  385. package/dist/focus-page-DFu6qtBk.js +0 -23
  386. package/dist/focus-page-DFu6qtBk.js.map +0 -1
  387. package/dist/form-VsNkRlXs.js.map +0 -1
  388. package/dist/icon-BfRBkZ72.js.map +0 -1
  389. package/dist/icon-button-DBt7fMi1.js.map +0 -1
  390. package/dist/input-builder-DHYx-2Yz.js +0 -20
  391. package/dist/input-builder-DHYx-2Yz.js.map +0 -1
  392. package/dist/list-CsLvih6-.js.map +0 -1
  393. package/dist/menu-s0AthZse.js.map +0 -1
  394. package/dist/navigation-list-Ng5UsNCY.js.map +0 -1
  395. package/dist/number-input-FJympEv2.js.map +0 -1
  396. package/dist/page-BuLkLO08.js +0 -23
  397. package/dist/page-BuLkLO08.js.map +0 -1
  398. package/dist/pagination-DCMxI10i.js.map +0 -1
  399. package/dist/password-input-DV5yb10h.js.map +0 -1
  400. package/dist/phone-input-Uv5v9hK9.js.map +0 -1
  401. package/dist/popover-B6j413u9.js.map +0 -1
  402. package/dist/radio-CLF40kob.js.map +0 -1
  403. package/dist/range-input-BIb7GkKH.js.map +0 -1
  404. package/dist/section-BAdmc3Yn.js +0 -25
  405. package/dist/section-BAdmc3Yn.js.map +0 -1
  406. package/dist/sectioned-page-CgINWVQ2.js +0 -25
  407. package/dist/sectioned-page-CgINWVQ2.js.map +0 -1
  408. package/dist/select-CeO8AZMK.js.map +0 -1
  409. package/dist/tabs-DAscspzh.js.map +0 -1
  410. package/dist/text-area-DF8-cDiy.js.map +0 -1
  411. package/dist/text-input-CcIcYksE.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"number-input.gts.d.ts","sourceRoot":"","sources":["../../src/components/number-input.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.gts.d.ts","sourceRoot":"","sources":["../../src/components/page.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination.gts.d.ts","sourceRoot":"","sources":["../../src/components/pagination.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"password-input.gts.d.ts","sourceRoot":"","sources":["../../src/components/password-input.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,+BAA+B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"phone-input.gts.d.ts","sourceRoot":"","sources":["../../src/components/phone-input.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover.gts.d.ts","sourceRoot":"","sources":["../../src/components/popover.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"radio.gts.d.ts","sourceRoot":"","sources":["../../src/components/radio.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"range-input.gts.d.ts","sourceRoot":"","sources":["../../src/components/range-input.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"section.gts.d.ts","sourceRoot":"","sources":["../../src/components/section.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sectioned-page.gts.d.ts","sourceRoot":"","sources":["../../src/components/sectioned-page.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.gts.d.ts","sourceRoot":"","sources":["../../src/components/select.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabs.gts.d.ts","sourceRoot":"","sources":["../../src/components/tabs.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-area.gts.d.ts","sourceRoot":"","sources":["../../src/components/text-area.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-input.gts.d.ts","sourceRoot":"","sources":["../../src/components/text-input.gts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover.gts.d.ts","sourceRoot":"","sources":["../../../src/components/windows/popover.gts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE;QACN,OAAO,EAAE,EAAE,CAAC;KACb,CAAC;CACH;AAED,eAAO,MAAM,OAAO,EAAE,GAAG,CAAC,gBAAgB,CAaxC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-header-nmqytjxx.js","sources":["../src/components/navigation/app-header.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { hash, uniqueId } from '@ember/helper';\n\nimport { type CommandAction, CommandElement } from 'ember-command';\nimport { keepLatestTask, timeout } from 'ember-concurrency';\nimport { modifier } from 'ember-modifier';\n\nimport styles from '@hokulea/core/navigation.module.css';\n\nimport { and, not, or } from '../../-private/helpers.ts';\nimport { popover } from '../../helpers/popover.ts';\nimport { IconButton } from '../actions/icon-button.gts';\nimport { Menu } from '../controls/menu.gts';\nimport { NavLink } from './nav-link.gts';\n\nimport type { MenuItemArgs, MenuItemSignature } from '../controls/-menu.gts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { Placement } from '@floating-ui/dom';\nimport type { ComponentLike } from '@glint/template';\n\ninterface NavItemSignature extends MenuItemSignature {\n Args: MenuItemArgs & {\n position?: Placement;\n };\n}\n\nconst NavItem: TOC<NavItemSignature> = <template>\n {{#if (has-block)}}\n <NavLink @push={{@push}} @href={{@href}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n {{#let (popover position=(if @position @position \"bottom-start\")) as |p|}}\n <button type=\"button\" aria-haspopup=\"menu\" part=\"item\" {{p.trigger}}>\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 {{/if}}\n</template>;\n\nconst PopoverNavItem: TOC<NavItemSignature> = <template>\n {{#if (has-block)}}\n <NavLink @push={{@push}} @href={{@href}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n <details>\n <summary part=\"item\">{{yield to=\"label\"}}</summary>\n\n <div>\n {{yield (hash Item=PopoverNavItem) to=\"menu\"}}\n </div>\n </details>\n {{/if}}\n</template>;\n\nconst CloseIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M205.66 194.34a8 8 0 0 1-11.32 11.32L128 139.31l-66.34 66.35a8 8 0 0 1-11.32-11.32L116.69 128L50.34 61.66a8 8 0 0 1 11.32-11.32L128 116.69l66.34-66.35a8 8 0 0 1 11.32 11.32L139.31 128Z\"/></svg>';\nconst ListIcon =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M224 128a8 8 0 0 1-8 8H40a8 8 0 0 1 0-16h176a8 8 0 0 1 8 8M40 72h176a8 8 0 0 0 0-16H40a8 8 0 0 0 0 16m176 112H40a8 8 0 0 0 0 16h176a8 8 0 0 0 0-16\"/></svg>';\n\ninterface AppHeaderSignature {\n Element: HTMLElement;\n Args: {\n /**\n * Position of the navbar\n *\n * @default start\n */\n position?: 'start' | 'center' | 'end';\n\n home?: CommandAction;\n };\n Blocks: {\n brand?: [];\n nav?: [{ Item: typeof NavItem }];\n aux?: [{ Item: ComponentLike<typeof NavItem> }];\n };\n}\n\nexport class AppHeader extends Component<AppHeaderSignature> {\n @tracked topNavShown = true;\n @tracked sensing = false;\n\n detectOverflow = keepLatestTask(async (element: HTMLElement) => {\n await timeout(30);\n\n this.sensing = true;\n\n // wait till sensing is flushed to the browser and made elements visible\n await timeout(0);\n\n const relevantChildren = [...element.children].filter(\n (elem) => elem.tagName.toLowerCase() === 'nav' || elem.getAttribute('part') === 'aux'\n );\n\n if (relevantChildren.length === 0) {\n this.sensing = false;\n\n return;\n }\n\n let headerWidth = [...element.children]\n .filter((elem) => elem.getAttribute('part') !== 'menu')\n .map((e) => Math.floor(e.scrollWidth))\n .reduce((sum, elemWidth) => sum + elemWidth, 0);\n\n // + padding\n headerWidth +=\n Number.parseInt(getComputedStyle(element).getPropertyValue('padding-inline'), 10) * 2;\n\n // + gap\n headerWidth +=\n Number.parseInt(getComputedStyle(element).getPropertyValue('gap'), 10) *\n (element.childElementCount - 1);\n\n this.topNavShown = element.clientWidth >= headerWidth;\n this.sensing = false;\n });\n\n flipflop = modifier((element: HTMLElement) => {\n const sensor = () => this.detectOverflow.perform(element);\n\n void sensor();\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n window.addEventListener('resize', sensor);\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n window.removeEventListener('resize', sensor);\n };\n });\n\n closeWhenLink = modifier((element: HTMLElement) => {\n const checkForClose = (event: Event) => {\n const hitALink = event\n .composedPath()\n .some(\n (target: EventTarget) =>\n (target as HTMLElement | null)?.tagName &&\n ['a', 'button'].includes((target as HTMLElement).tagName.toLowerCase()) &&\n !(target as HTMLElement).getAttribute('aria-haspopup')\n );\n\n if (hitALink) {\n element.hidePopover();\n }\n };\n\n element.addEventListener('click', checkForClose);\n\n return () => {\n element.removeEventListener('click', checkForClose);\n };\n });\n\n <template>\n {{#let (uniqueId) as |brandId|}}\n <header class={{styles.appHeader}} data-test-app-header ...attributes>\n <div class={{styles.appHeaderContent}} data-sensing={{this.sensing}} {{this.flipflop}}>\n {{#if (has-block \"brand\")}}\n <CommandElement @command={{@home}} part=\"brand\" id={{brandId}}>\n {{yield to=\"brand\"}}\n </CommandElement>\n {{/if}}\n\n {{#if (or this.topNavShown this.sensing)}}\n <nav data-position={{if @position @position}} aria-labelledby={{brandId}}>\n {{yield (hash Item=NavItem) to=\"nav\"}}\n </nav>\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=NavItem) to=\"aux\"}}\n </span>\n {{/if}}\n {{/if}}\n\n {{#if (not this.topNavShown)}}\n <span part=\"menu\">\n {{#let (popover) as |p|}}\n <IconButton\n @importance=\"plain\"\n @icon={{if p.opened CloseIcon ListIcon}}\n {{p.trigger}}\n data-test-toggle\n @label=\"toggle\"\n />\n\n <div popover {{p.target}} {{this.closeWhenLink}}>\n <div data-menu-header>\n {{#if (has-block \"brand\")}}\n <span part=\"brand\">\n {{yield to=\"brand\"}}\n </span>\n {{/if}}\n </div>\n\n <div data-menu-content>\n {{! template-lint-disable no-duplicate-landmark-elements }}\n <nav aria-labelledby={{brandId}}>\n {{yield (hash Item=PopoverNavItem) to=\"nav\"}}\n </nav>\n {{! template-lint-enable no-duplicate-landmark-elements }}\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=(component NavItem position=\"top-start\")) to=\"aux\"}}\n </span>\n {{/if}}\n </div>\n </div>\n {{/let}}\n </span>\n {{/if}}\n </div>\n </header>\n {{/let}}\n </template>\n}\n"],"names":["NavItem","setComponentTemplate","precompileTemplate","strictMode","scope","NavLink","and","popover","Menu","templateOnly","PopoverNavItem","hash","CloseIcon","ListIcon","AppHeader","Component","g","prototype","tracked","i","void 0","detectOverflow","_buildTask","context","generator","element","timeout","sensing","relevantChildren","children","filter","elem","tagName","toLowerCase","getAttribute","length","headerWidth","map","e","Math","floor","scrollWidth","reduce","sum","elemWidth","Number","parseInt","getComputedStyle","getPropertyValue","childElementCount","topNavShown","clientWidth","flipflop","modifier","sensor","perform","window","addEventListener","removeEventListener","closeWhenLink","checkForClose","event","hitALink","composedPath","some","target","includes","hidePopover","uniqueId","styles","CommandElement","or","not","IconButton"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"avatar-DGE5ExoJ.js","sources":["../src/components/graphics/avatar.gts"],"sourcesContent":["import { type TOC } from '@ember/component/template-only';\nimport { htmlSafe } from '@ember/template';\n\nimport styles from '@hokulea/core/graphics.module.css';\n\nfunction getInitials(name: string) {\n const parts = name.split(' ');\n\n if (parts.length > 1) {\n return `${parts[0]?.[0]} ${parts.at(-1)?.[0]}`;\n }\n\n if (parts.length === 1) {\n return name[0];\n }\n\n return '';\n}\n\nconst UserIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M172 120a44 44 0 1 1-44-44a44.05 44.05 0 0 1 44 44m60 8A104 104 0 1 1 128 24a104.11 104.11 0 0 1 104 104m-16 0a88.09 88.09 0 0 0-91.47-87.93C77.43 41.89 39.87 81.12 40 128.25a87.65 87.65 0 0 0 22.24 58.16A79.7 79.7 0 0 1 84 165.1a4 4 0 0 1 4.83.32a59.83 59.83 0 0 0 78.28 0a4 4 0 0 1 4.83-.32a79.7 79.7 0 0 1 21.79 21.31A87.62 87.62 0 0 0 216 128\"/></svg>`;\n\ninterface AvatarSignature {\n Element: HTMLSpanElement;\n Args: {\n src?: string | null;\n name?: string;\n };\n}\n\nexport const Avatar: TOC<AvatarSignature> = <template>\n <span class={{styles.avatar}} data-test-avatar ...attributes>\n {{#if @src}}\n <img src={{@src}} alt={{@name}} />\n {{else if @name}}\n {{getInitials @name}}\n {{else}}\n {{htmlSafe UserIcon}}\n {{/if}}\n </span>\n</template>;\n"],"names":["getInitials","name","parts","split","length","at","UserIcon","Avatar","setComponentTemplate","precompileTemplate","strictMode","scope","styles","htmlSafe","templateOnly"],"mappings":";;;;;;AAKA,SAASA,WAAAA,CAAYC,IAAY,EAAA;AAC/B,EAAA,MAAMC,KAAA,GAAQD,IAAA,CAAKE,KAAK,CAAC,GAAA,CAAA;AAEzB,EAAA,IAAID,KAAA,CAAME,MAAM,GAAG,CAAA,EAAG;AACpB,IAAA,OAAO,GAAGF,KAAK,CAAC,CAAA,CAAE,GAAG,CAAA,CAAE,CAAA,CAAA,EAAIA,KAAA,CAAMG,EAAE,CAAC,MAAM,CAAA,CAAE,CAAA,CAAE;AAChD,EAAA;AAEA,EAAA,IAAIH,KAAA,CAAME,MAAM,KAAK,CAAA,EAAG;IACtB,OAAOH,IAAI,CAAC,CAAA,CAAE;AAChB,EAAA;AAEA,EAAA,OAAO,EAAA;AACT;AAEA,MAAMK,QAAA,GAAW,CAAA,8bAAA,CAAgc;MAUpcC,MAAY,GAAAC,oBAAA,CAAmBC,kBAAA,CAAA,wPAAA,EAU5C;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAZ,WAAA;IAAAa,QAAA;AAAAP,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAQ,YAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"box-DU6m9gDw.js","sources":["../src/components/content/box.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport { element } from 'ember-element-helper';\n\nimport styles from '@hokulea/core/layouts.module.css';\n\nimport type { ComponentLike } from '@glint/template';\n\nexport interface BoxSignature<E extends Element = HTMLDivElement> {\n Element: E;\n Args: {\n element?: ComponentLike<{ Element: HTMLElement }>;\n };\n Blocks: {\n default: [];\n };\n}\n\nexport class Box<E extends Element = HTMLDivElement> extends Component<BoxSignature<E>> {\n <template>\n {{#let (if @element @element (element \"div\")) as |Element|}}\n <Element class={{styles.container}} ...attributes>\n {{yield}}\n </Element>\n {{/let}}\n </template>\n}\n"],"names":["Box","Component","setComponentTemplate","precompileTemplate","strictMode","scope","element","styles"],"mappings":";;;;;;AAkBO,MAAMA,GAAA,SAAgDC,UAAuB;AAClF,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,uLAAA,EAMA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1,26 +0,0 @@
1
- import { element } from 'ember-element-helper';
2
- import styles from '@hokulea/core/actions.module.css';
3
- import { b as asBoolean, n as not, a as and } from './helpers-D4So5-uK.js';
4
- import { d as disabled } from './disabled-B_FQ0Z51.js';
5
- import { P as PushElement } from './push-DnJFFc_p.js';
6
- import { i as isLink } from './-button-KUaJCQaB.js';
7
- import { precompileTemplate } from '@ember/template-compilation';
8
- import { setComponentTemplate } from '@ember/component';
9
- import templateOnly from '@ember/component/template-only';
10
-
11
- const Button = setComponentTemplate(precompileTemplate("\n <PushElement @push={{@push}} @href={{@href}} @element={{element \"button\"}} class=\"{{styles.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}} {{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 </PushElement>\n", {
12
- strictMode: true,
13
- scope: () => ({
14
- PushElement,
15
- element,
16
- styles,
17
- and,
18
- not,
19
- isLink,
20
- asBoolean,
21
- disabled
22
- })
23
- }), templateOnly());
24
-
25
- export { Button as B };
26
- //# sourceMappingURL=button-BhxkZ70u.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-BhxkZ70u.js","sources":["../src/components/actions/button.gts"],"sourcesContent":["import { element } from 'ember-element-helper';\n\nimport styles from '@hokulea/core/actions.module.css';\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 { isLink } from './-button.ts';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { Importance, Intent, Spacing } from '@hokulea/tokens';\n\nexport interface ButtonSignature {\n Element: HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement;\n Args: PushArgs & {\n intent?: Intent;\n importance?: Importance;\n spacing?: Spacing;\n disabled?: boolean;\n };\n Blocks: {\n /** The label for the button */\n default: [];\n\n /** The label for the button */\n label: [];\n\n /** A slot in front of the label */\n before: [];\n\n /** A slot after the label */\n after: [];\n };\n}\n\nexport const Button: TOC<ButtonSignature> = <template>\n <PushElement\n @push={{@push}}\n @href={{@href}}\n @element={{element \"button\"}}\n class=\"{{styles.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 {{disabled when=(if @disabled @disabled false)}}\n data-test-button\n ...attributes\n >\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n </PushElement>\n</template>;\n"],"names":["Button","setComponentTemplate","precompileTemplate","strictMode","scope","PushElement","element","styles","and","not","isLink","asBoolean","disabled","templateOnly"],"mappings":";;;;;;;;;;MAmCaA,MAAY,GAAAC,oBAAA,CAAmBC,kBAAA,CAAA,83BAAA,EAoC5C;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,WAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,GAAA;IAAAC,GAAA;IAAAC,MAAA;IAAAC,SAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1,16 +0,0 @@
1
- import styles from '@hokulea/core/content.module.css';
2
- import { o as or } from './helpers-D4So5-uK.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 Card = setComponentTemplate(precompileTemplate("\n <div class={{styles.card}} ...attributes>\n {{#if (has-block \"header\")}}\n <div class={{styles.header}} part=\"header\">\n {{yield to=\"header\"}}\n </div>\n {{/if}}\n\n {{#if (or (has-block \"body\") (has-block))}}\n <div class={{styles.body}} part=\"body\">\n {{#if (has-block \"body\")}}\n {{yield to=\"body\"}}\n {{else if (has-block)}}\n {{yield}}\n {{/if}}\n </div>\n {{/if}}\n\n {{#if (has-block \"footer\")}}\n <div class={{styles.footer}} part=\"footer\">\n {{yield to=\"footer\"}}\n </div>\n {{/if}}\n </div>\n", {
8
- strictMode: true,
9
- scope: () => ({
10
- styles,
11
- or
12
- })
13
- }), templateOnly());
14
-
15
- export { Card as C };
16
- //# sourceMappingURL=card-tK78paQn.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"card-tK78paQn.js","sources":["../src/components/content/card.gts"],"sourcesContent":["import styles from '@hokulea/core/content.module.css';\n\nimport { or } from '../../-private/helpers.ts';\n\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface CardSignature {\n Element: HTMLDivElement;\n Blocks: {\n header?: [];\n footer?: [];\n body?: [];\n default?: [];\n };\n}\n\nexport const Card: TOC<CardSignature> = <template>\n <div class={{styles.card}} ...attributes>\n {{#if (has-block \"header\")}}\n <div class={{styles.header}} part=\"header\">\n {{yield to=\"header\"}}\n </div>\n {{/if}}\n\n {{#if (or (has-block \"body\") (has-block))}}\n <div class={{styles.body}} part=\"body\">\n {{#if (has-block \"body\")}}\n {{yield to=\"body\"}}\n {{else if (has-block)}}\n {{yield}}\n {{/if}}\n </div>\n {{/if}}\n\n {{#if (has-block \"footer\")}}\n <div class={{styles.footer}} part=\"footer\">\n {{yield to=\"footer\"}}\n </div>\n {{/if}}\n </div>\n</template>;\n"],"names":["Card","setComponentTemplate","precompileTemplate","strictMode","scope","styles","or","templateOnly"],"mappings":";;;;;;MAgBaA,IAAU,GAAAC,oBAAA,CAAiBC,kBAAA,CAAA,snBAAA,EAwBxC;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkbox-D3_2ps5M.js","sources":["../src/components/controls/checkbox.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\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 CheckboxSignature {\n Element: HTMLInputElement;\n Args: InputArgs<boolean>;\n}\n\nexport const Checkbox: TOC<CheckboxSignature> = <template>\n <input\n class={{styles.choice}}\n type=\"checkbox\"\n checked={{@value}}\n disabled={{@disabled}}\n data-test-choice\n {{on \"input\" (pick \"target.checked\" @update) capture=true}}\n ...attributes\n />\n</template>;\n"],"names":["Checkbox","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;MAcaA,QAAc,GAAAC,oBAAA,CAAqBC,kBAAA,CAAA,oMAAA,EAUhD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"currency-input-tBhgIMTh.js","sources":["../src/components/controls/currency-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../../-private/helpers.ts';\nimport { pickAsNumber } from './-input.ts';\nimport { InputBuilder } from './input-builder.gts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface CurrencyInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<number>;\n}\n\nexport const CurrencyInput: TOC<CurrencyInputSignature> = <template>\n <InputBuilder @disabled={{@disabled}} @spacing={{@spacing}} as |b|>\n <input\n class=\"{{styles.input}} {{styles.currency}}\"\n type=\"text\"\n inputmode=\"decimal\"\n value={{@value}}\n disabled={{@disabled}}\n data-test-input\n {{on \"input\" (pick \"target.value\" (pickAsNumber @update)) capture=true}}\n ...attributes\n />\n <b.Affix>€</b.Affix>\n </InputBuilder>\n</template>;\n"],"names":["CurrencyInput","setComponentTemplate","precompileTemplate","strictMode","scope","InputBuilder","styles","on","pick","pickAsNumber","templateOnly"],"mappings":";;;;;;;;;MAgBaA,aAAmB,GAAAC,oBAAA,CAA0BC,kBAAA,CAAA,kXAAA,EAc1D;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,YAAA;IAAAC,MAAA;IAAAC,EAAA;IAAAC,IAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1,18 +0,0 @@
1
- import styles from '@hokulea/core/data.module.css';
2
- import { precompileTemplate } from '@ember/template-compilation';
3
- import { setComponentTemplate } from '@ember/component';
4
- import templateOnly from '@ember/component/template-only';
5
-
6
- function get(haystack, key) {
7
- return key in haystack ? haystack[key] : '';
8
- }
9
- const DataTable = setComponentTemplate(precompileTemplate("\n <table class={{styles.dataTable}} data-test-data-table>\n <thead>\n <tr>\n {{#each @header as |header|}}\n <th>{{header.content}}</th>\n {{/each}}\n </tr>\n </thead>\n <tbody>\n {{#each @rows as |row|}}\n <tr>\n {{#each @header as |header|}}\n <td>\n {{#let (get row header.name) as |c|}}\n {{c}}\n {{/let}}\n </td>\n {{/each}}\n </tr>\n {{/each}}\n </tbody>\n\n {{#if (has-block \"pagination\")}}\n <tfoot>\n <tr>\n <td colspan=\"100%\" data-pagination>\n {{yield to=\"pagination\"}}\n </td>\n </tr>\n </tfoot>\n {{/if}}\n </table>\n", {
10
- strictMode: true,
11
- scope: () => ({
12
- styles,
13
- get
14
- })
15
- }), templateOnly());
16
-
17
- export { DataTable as D };
18
- //# sourceMappingURL=data-table-5VDYeRya.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-table-5VDYeRya.js","sources":["../src/components/data/data-table.gts"],"sourcesContent":["import styles from '@hokulea/core/data.module.css';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { ComponentLike, ContentValue } from '@glint/template';\n\ninterface DataTableHeader {\n name: string;\n content: ContentValue;\n}\n\ninterface DataTableSignature {\n Element: HTMLTableElement;\n Args: {\n header: DataTableHeader[];\n rows: Record<string, ContentValue | ComponentLike>[];\n };\n Blocks: {\n default: [];\n };\n}\n\nfunction get(haystack: Record<string, ContentValue | ComponentLike>, key: string): ContentValue {\n return key in haystack ? (haystack[key] as ContentValue) : '';\n}\n\nexport const DataTable: TOC<DataTableSignature> = <template>\n <table class={{styles.dataTable}} data-test-data-table>\n <thead>\n <tr>\n {{#each @header as |header|}}\n <th>{{header.content}}</th>\n {{/each}}\n </tr>\n </thead>\n <tbody>\n {{#each @rows as |row|}}\n <tr>\n {{#each @header as |header|}}\n <td>\n {{#let (get row header.name) as |c|}}\n {{c}}\n {{/let}}\n </td>\n {{/each}}\n </tr>\n {{/each}}\n </tbody>\n\n {{#if (has-block \"pagination\")}}\n <tfoot>\n <tr>\n <td colspan=\"100%\" data-pagination>\n {{yield to=\"pagination\"}}\n </td>\n </tr>\n </tfoot>\n {{/if}}\n </table>\n</template>;\n"],"names":["get","haystack","key","DataTable","setComponentTemplate","precompileTemplate","strictMode","scope","styles","templateOnly"],"mappings":";;;;;AAqBA,SAASA,GAAAA,CAAIC,QAAsD,EAAEC,GAAW,EAAG;EACjF,OAAOA,GAAA,IAAOD,WAAYA,QAAQ,CAACC,GAAA,CAAI,GAAoB,EAAA;AAC7D;MAEaC,SAAe,GAAAC,oBAAA,CAAsBC,kBAAA,CAAA,8uBAAA,EAiClD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;AAAAR,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAS,YAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-input-DLv9jE39.js","sources":["../src/components/controls/date-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\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 DateInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<string>;\n}\n\nexport const DateInput: TOC<DateInputSignature> = <template>\n <input\n class={{styles.input}}\n type=\"date\"\n value={{@value}}\n disabled={{@disabled}}\n data-spacing={{@spacing}}\n data-test-input\n {{on \"input\" (pick \"target.value\" @update) capture=true}}\n ...attributes\n />\n</template>;\n"],"names":["DateInput","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;MAcaA,SAAe,GAAAC,oBAAA,CAAsBC,kBAAA,CAAA,oNAAA,EAWlD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"email-input-BR33Qevz.js","sources":["../src/components/controls/email-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\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 EmailInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<string>;\n}\n\nexport const EmailInput: TOC<EmailInputSignature> = <template>\n <input\n class={{styles.input}}\n type=\"email\"\n value={{@value}}\n disabled={{@disabled}}\n data-spacing={{@spacing}}\n data-test-input\n {{on \"input\" (pick \"target.value\" @update) capture=true}}\n ...attributes\n />\n</template>;\n"],"names":["EmailInput","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;MAcaA,UAAgB,GAAAC,oBAAA,CAAuBC,kBAAA,CAAA,qNAAA,EAWpD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1,23 +0,0 @@
1
- import { element } from 'ember-element-helper';
2
- import styles from '@hokulea/core/layouts.module.css';
3
- import typo from '@hokulea/core/typography.module.css';
4
- import { o as or } from './helpers-D4So5-uK.js';
5
- import { P as PageDestructor, a as PageElement } from './pages-DgHJEvSy.js';
6
- import { precompileTemplate } from '@ember/template-compilation';
7
- import { setComponentTemplate } from '@ember/component';
8
- import templateOnly from '@ember/component/template-only';
9
-
10
- const FocusPage = setComponentTemplate(precompileTemplate("\n {{#let (if @element @element (element (pageElement))) as |Element|}}\n <Element class={{styles.focusPage}} {{pageDestructor}} ...attributes data-test-page>\n {{#if (or @title @description (has-block \"title\") (has-block \"description\") (has-block \"nav\"))}}\n <header class={{styles.pageContent}}>\n <h1 class={{typo.display}}>\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else if @title}}\n {{@title}}\n {{/if}}\n </h1>\n\n {{#if (or (has-block \"description\") @description)}}\n <p>\n {{#if (has-block \"description\")}}\n {{yield to=\"description\"}}\n {{else if @description}}\n {{@description}}\n {{/if}}\n </p>\n {{/if}}\n </header>\n {{/if}}\n\n <div class=\"{{styles.pageContent}} {{styles.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", {
11
- strictMode: true,
12
- scope: () => ({
13
- element,
14
- pageElement: PageElement,
15
- styles,
16
- pageDestructor: PageDestructor,
17
- or,
18
- typo
19
- })
20
- }), templateOnly());
21
-
22
- export { FocusPage as F };
23
- //# sourceMappingURL=focus-page-DFu6qtBk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"focus-page-DFu6qtBk.js","sources":["../src/components/layouts/focus-page.gts"],"sourcesContent":["import { element } from 'ember-element-helper';\n\n// eslint-disable-next-line import-x/no-duplicates\nimport styles from '@hokulea/core/layouts.module.css';\n// eslint-disable-next-line import-x/no-duplicates\nimport typo from '@hokulea/core/typography.module.css';\n\nimport { or } from '../../-private/helpers.ts';\nimport { pageDestructor, pageElement } from './pages.ts';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { ComponentLike } from '@glint/template';\n\ninterface FocusPageSignature {\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 content?: [];\n default?: [];\n };\n}\n\nexport const FocusPage: TOC<FocusPageSignature> = <template>\n {{#let (if @element @element (element (pageElement))) as |Element|}}\n <Element class={{styles.focusPage}} {{pageDestructor}} ...attributes data-test-page>\n {{#if\n (or @title @description (has-block \"title\") (has-block \"description\") (has-block \"nav\"))\n }}\n <header class={{styles.pageContent}}>\n <h1 class={{typo.display}}>\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else if @title}}\n {{@title}}\n {{/if}}\n </h1>\n\n {{#if (or (has-block \"description\") @description)}}\n <p>\n {{#if (has-block \"description\")}}\n {{yield to=\"description\"}}\n {{else if @description}}\n {{@description}}\n {{/if}}\n </p>\n {{/if}}\n </header>\n {{/if}}\n\n <div class=\"{{styles.pageContent}} {{styles.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":["FocusPage","setComponentTemplate","precompileTemplate","strictMode","scope","element","pageElement","styles","pageDestructor","or","typo","templateOnly"],"mappings":";;;;;;;;;MA4BaA,SAAe,GAAAC,oBAAA,CAAsBC,kBAAA,CAAA,uoCAAA,EAoClD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,OAAA;iBAAAC,WAAA;IAAAC,MAAA;oBAAAC,cAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"form-VsNkRlXs.js","sources":["../src/components/form/description.gts","../src/components/form/errors.gts","../src/components/form/label.gts","../src/components/form/rules.gts","../src/components/form/field.gts","../src/components/form/manage-validation.ts","../src/components/form/fields/checkbox.gts","../src/components/form/fields/currency.gts","../src/components/form/fields/date.gts","../src/components/form/fields/email.gts","../src/components/form/fields/list.gts","../src/components/form/fields/multiple-choice.gts","../src/components/form/fields/number.gts","../src/components/form/fields/password.gts","../src/components/form/fields/phone.gts","../src/components/form/fields/range.gts","../src/components/form/fields/select.gts","../src/components/form/fields/singular-choice.gts","../src/components/form/fields/text.gts","../src/components/form/fields/text-area.gts","../src/components/form/reset.gts","../src/components/form/submit.gts","../src/components/form/form.gts"],"sourcesContent":["import styles from '@hokulea/core/forms.module.css';\n\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface DescriptionSignature {\n Element: HTMLParagraphElement;\n Blocks: {\n default: [];\n };\n}\n\nexport const Description: TOC<DescriptionSignature> = <template>\n <p class={{styles.description}} data-test-description ...attributes>\n {{yield}}\n </p>\n</template>;\n","import styles from '@hokulea/core/forms.module.css';\n\nimport type { TOC } from '@ember/component/template-only';\n// import Icon from '../../../components/icon';\nimport type { Issue } from '@hokulea/ember-pahu';\n\nexport interface ErrorsSignature {\n Element: HTMLDivElement;\n Args: {\n // the following are private arguments curried by the component helper, so users will never have to use those\n\n /*\n * @internal\n */\n errors: Issue[];\n\n /*\n * @internal\n */\n id: string;\n };\n Blocks: {\n default?: [Issue[]];\n };\n}\n\nexport const Errors: TOC<ErrorsSignature> = <template>\n <div id={{@id}} aria-live=\"assertive\" class={{styles.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\n data-test-error\n data-test-error-type=\"{{e.type}}\"\n data-test-error-value=\"{{e.value}}\"\n >{{e.message}}</p>\n {{/if}}\n {{/each}}\n </div>\n {{/if}}\n </div>\n</template>;\n","import { element } from 'ember-element-helper';\n\nimport styles from '@hokulea/core/forms.module.css';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { ComponentLike } from '@glint/template';\n\nexport interface LabelSignature {\n Element: HTMLLabelElement;\n Args: {\n element?: ComponentLike<{ Element: HTMLElement }>;\n };\n Blocks: {\n default: [];\n };\n}\n\nexport const Label: TOC<LabelSignature> = <template>\n {{#let (if @element @element (element \"label\")) as |Element|}}\n <Element class={{styles.label}} data-test-label ...attributes>\n {{yield}}\n </Element>\n {{/let}}\n</template>;\n","import Component from '@glimmer/component';\n\nimport styles from '@hokulea/core/forms.module.css';\n\nimport { Icon } from '../graphics/icon.gts';\n\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\nimport type { Issue } from '@hokulea/ember-pahu';\n\nconst ErrorIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\"\nheight=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"M208.49\n191.51a12 12 0 0 1-17 17L128 145l-63.51 63.49a12 12 0 0 1-17-17L111 128L47.51\n64.49a12 12 0 0 1 17-17L128 111l63.51-63.52a12 12 0 0 1 17 17L145\n128Z\"/></svg>`;\nconst ValidIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\"\nheight=\"256\" viewBox=\"0 0 256 256\"><path fill=\"currentColor\" d=\"m232.49\n80.49l-128 128a12 12 0 0 1-17 0l-56-56a12 12 0 1 1 17-17L96 183L215.51 63.51a12\n12 0 0 1 17 17Z\"/></svg>`;\n\ninterface RuleSignature {\n Args: {\n key: string;\n value: unknown;\n errors?: Issue[];\n };\n Blocks: {\n default: [];\n };\n}\n\nclass Rule extends Component<RuleSignature> {\n isInvalid = () => {\n return this.args.errors?.some(\n (i) => this.args.key in i && i[this.args.key] === this.args.value\n );\n };\n\n <template>\n <p data-test-rule data-test-rule-invalid={{(this.isInvalid)}}>\n <Icon\n @icon={{if (this.isInvalid) ErrorIcon ValidIcon}}\n data-invalid={{(this.isInvalid)}}\n data-icon\n />\n\n <span>{{yield}}</span>\n </p>\n </template>\n}\n\nexport interface RulesBlock {\n rules: [WithBoundArgs<typeof Rule, 'errors'>];\n}\n\nexport interface RulesSignature {\n Element: HTMLDivElement;\n Args: {\n useRules: (useRules: boolean) => void;\n\n /*\n * @internal\n */\n errors: Issue[];\n\n /*\n * @internal\n */\n id: string;\n };\n Blocks: {\n default: [WithBoundArgs<typeof Rule, 'errors'>];\n };\n}\n\nexport class Rules extends Component<RulesSignature> {\n constructor(owner: Owner, args: RulesSignature['Args']) {\n super(owner, args);\n\n args.useRules(true);\n }\n\n <template>\n <div id={{@id}} aria-live=\"assertive\" class={{styles.rules}} ...attributes>\n {{yield (component Rule errors=@errors)}}\n </div>\n </template>\n}\n","import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { hash, uniqueId } from '@ember/helper';\nimport { next } from '@ember/runloop';\n\nimport { element } from 'ember-element-helper';\n\nimport styles from '@hokulea/core/forms.module.css';\n\nimport { and } from '../../-private/helpers.ts';\nimport { Description } from './description.gts';\nimport { Errors } from './errors.gts';\nimport { Label } from './label.gts';\nimport { Rules } from './rules.gts';\n\nimport type { LabelSignature } from './label.gts';\nimport type { AttrValue, ComponentLike, WithBoundArgs } from '@glint/template';\nimport type {\n FieldAPI,\n FieldConfig,\n FieldNames,\n FieldValue,\n FormAPI,\n Issue,\n UserData\n} from '@hokulea/ember-pahu';\n\nexport type BoundField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> = WithBoundArgs<typeof Field<DATA, NAME, VALUE>, 'form'>;\n\nexport type FieldArgs<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> = FieldConfig<DATA, NAME, VALUE> & {\n /**\n * The label for your field.\n *\n * Alternatively you can use `<:label>` block for more fine-control (which\n * takes precendence if both are given)\n */\n label: string;\n\n /**\n * The description for your field.\n *\n * Alternatively you can use `<:description>` block for more fine-control (which\n * takes precendence if both are given)\n */\n description?: string;\n};\n\nexport interface FieldBlock<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n /**\n * The field's current value.\n *\n * If you don't use one of the supplied control components, then use this to pass the value to your custom component.\n */\n value?: FieldValue<DATA, NAME, VALUE>;\n\n /**\n * Action to update the (internal) form data for this field.\n *\n * If you don't use one of the supplied control components, then use this to update the value whenever your custom component's value has changed.\n */\n setValue: (value: FieldValue<DATA, NAME, VALUE>) => void;\n\n /**\n * Unique ID of this field, used to associate the control with its label.\n *\n * If you don't use the supplied components, then you can use this as the `id` of the control and the `for` attribute of the `<label>`.\n */\n id: string;\n\n /**\n * Unique error ID of this field, used to associate the control with its validation error message.\n *\n * If you don't use the supplied components, then you can use this as the `id` of the validation error element and the `aria-errormessage` or `aria-describedby` attribute of the control.\n */\n errorId: string;\n\n /**\n * Will be `true` when validation was triggered and this field is invalid.\n *\n * You can use this to customize your markup, e.g. apply HTML classes for error styling.\n */\n invalid: boolean;\n\n registerElement: FieldAPI<DATA, NAME, VALUE>['registerElement'];\n\n showErrors: boolean;\n\n /**\n * An array of raw ValidationError objects, for custom rendering of error output\n */\n issues: Issue[];\n\n /**\n * When calling this action, validation will be triggered.\n *\n * Can be used for custom controls that don't emit the `@validateOn` events that would normally trigger a dynamic validation.\n */\n validate: FieldAPI<DATA, NAME, VALUE>['validate'];\n\n Rules: WithBoundArgs<typeof Rules, 'useRules' | 'errors' | 'id'>;\n}\n\nexport type MultipleFieldBlock<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> = Omit<FieldBlock<DATA, NAME, VALUE>, 'value' | 'setValue'> & {\n /**\n * The current value of the field's form data.\n *\n * If you don't use one of the supplied control components, then use this to pass the value to your custom component.\n */\n value?: FieldValue<DATA, NAME, VALUE>[];\n\n /**\n * Action to update the (internal) form data for this field.\n *\n * If you don't use one of the supplied control components, then use this to update the value whenever your custom component's value has changed.\n */\n setValue: (value: FieldValue<DATA, NAME, VALUE>[]) => void;\n};\n\nexport interface FieldSignature<\n DATA extends UserData,\n NAME extends string,\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: HTMLDivElement;\n Args: Omit<FieldArgs<DATA, NAME, VALUE>, 'element'> & {\n /** @internal */\n form: FormAPI<DATA>;\n\n /** @internal */\n element?: ComponentLike<{ Element: HTMLElement; Blocks: { default: [] } }>;\n\n /** @internal */\n labelComponent?: ComponentLike<LabelSignature>;\n\n showErrors?: boolean;\n };\n Blocks: {\n default: [FieldBlock<DATA, NAME, VALUE>];\n };\n}\n\nexport class Field<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<FieldSignature<DATA, NAME, VALUE>> {\n @tracked rulesUsed = false;\n #field?: FieldAPI<DATA, NAME, VALUE>;\n\n get validateOn() {\n return this.rulesUsed ? 'input' : this.args.validateOn;\n }\n\n get revalidateOn() {\n return this.rulesUsed ? 'input' : this.args.revalidateOn;\n }\n\n createOrUpdateField = (config: FieldConfig<DATA, NAME, VALUE>): FieldAPI<DATA, NAME, VALUE> => {\n const filteredConfig = Object.fromEntries(\n Object.entries(config).filter(([_, v]) => v !== undefined)\n ) as FieldConfig<DATA, NAME, VALUE>;\n\n if (this.#field) {\n this.#field.updateConfig(filteredConfig);\n } else {\n this.#field = this.args.form.createField<NAME, VALUE>(filteredConfig);\n }\n\n return this.#field;\n };\n\n useRules = (useRules: boolean) => {\n // eslint-disable-next-line ember/no-runloop\n next(async () => {\n this.rulesUsed = useRules;\n\n if (useRules) {\n await this.#field?.validate();\n }\n });\n };\n\n get showErrors() {\n return !this.rulesUsed && this.args.showErrors !== false;\n }\n\n <template>\n {{#let\n (uniqueId)\n (uniqueId)\n (if @element @element (element \"div\"))\n (this.createOrUpdateField\n name=@name\n ignoreNativeValidation=@ignoreNativeValidation\n linkedField=@linkedField\n validateOn=this.validateOn\n revalidateOn=this.revalidateOn\n validate=@validate\n validated=@validated\n value=@value\n )\n (component Rules useRules=this.useRules)\n as |fieldId errorId Element field WiredRules|\n }}\n <Element class={{styles.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\n (hash\n value=field.value\n setValue=field.setValue\n id=fieldId\n errorId=errorId\n invalid=field.invalid\n registerElement=field.registerElement\n issues=field.issues\n validate=field.validate\n showErrors=this.showErrors\n Rules=(component WiredRules id=errorId errors=field.issues)\n )\n }}\n\n {{#if (and this.showErrors field.issues)}}\n <Errors @id={{errorId}} @errors={{field.issues}} />\n {{/if}}\n </Element>\n {{/let}}\n </template>\n}\n","import { modifier } from 'ember-modifier';\n\nexport interface NamedOptions {\n /** @internal */\n invalid: boolean;\n\n /** @internal */\n errorMessageId: string;\n\n /** @internal */\n showErrors?: boolean;\n}\n\ntype ValidationElements =\n | HTMLInputElement\n | HTMLSelectElement\n | HTMLTextAreaElement\n | HTMLDivElement;\n\nexport const manageValidation = modifier(\n (element: ValidationElements, _: [], { showErrors, invalid, errorMessageId }: NamedOptions) => {\n if (showErrors !== false) {\n element.ariaInvalid = invalid ? 'true' : 'false';\n\n if (invalid) {\n element.setAttribute('aria-errormessage', errorMessageId);\n } else {\n element.removeAttribute('aria-errormessage');\n }\n\n if (element.parentElement && 'inputBuilder' in element.parentElement.dataset) {\n element.parentElement.dataset.invalid = invalid ? 'true' : 'false';\n }\n }\n\n return;\n }\n);\n","import Component from '@glimmer/component';\n\nimport styles from '@hokulea/core/forms.module.css';\n\nimport { asBoolean } from '../../../-private/helpers.ts';\nimport { Checkbox } from '../../controls/checkbox.gts';\nimport { Description } from '../description.gts';\nimport { Label } from '../label.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { CheckboxSignature } from '../../controls/checkbox.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface CheckboxFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: CheckboxSignature['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<CheckboxSignature['Args'], 'value' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n}\n\nexport class CheckboxField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<CheckboxFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n\n setBooleanValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: boolean) => setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n <this.Field\n @label=\"\"\n @name={{@name}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <div class={{styles.choices}}>\n <div class={{styles.choice}}>\n <span>\n <Checkbox\n @value={{asBoolean f.value}}\n @update={{this.setBooleanValue f.setValue}}\n @disabled={{@disabled}}\n id={{f.id}}\n name={{@name}}\n {{f.registerElement}}\n {{manageValidation\n errorMessageId=f.errorId\n invalid=f.invalid\n showErrors=f.showErrors\n }}\n ...attributes\n />\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 </template>\n}\n","import Component from '@glimmer/component';\n\nimport { asNumber } from '../../../-private/helpers.ts';\nimport { CurrencyInput } from '../../controls/currency-input.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { CurrencyInputSignature } from '../../controls/currency-input.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface CurrencyFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: CurrencyInputSignature['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<CurrencyInputSignature['Args'], 'value' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n}\n\nexport class CurrencyField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<CurrencyFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n\n setNumberValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: number) => setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n <this.Field\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <CurrencyInput\n @value={{asNumber f.value}}\n @update={{this.setNumberValue f.setValue}}\n @disabled={{@disabled}}\n name={{@name}}\n id={{f.id}}\n {{f.registerElement}}\n {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}}\n ...attributes\n />\n </this.Field>\n </template>\n}\n","import Component from '@glimmer/component';\n\nimport { asString } from '../../../-private/helpers.ts';\nimport { DateInput } from '../../controls/date-input.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { DateInputSignature } from '../../controls/date-input.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface DateFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: DateInputSignature['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<DateInputSignature['Args'], 'value' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n}\n\nexport class DateField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<DateFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n\n setStringValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: string) => setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n <this.Field\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <DateInput\n @value={{asString f.value}}\n @update={{this.setStringValue f.setValue}}\n @disabled={{@disabled}}\n name={{@name}}\n id={{f.id}}\n {{f.registerElement}}\n {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}}\n ...attributes\n />\n </this.Field>\n </template>\n}\n","import Component from '@glimmer/component';\n\nimport { asString } from '../../../-private/helpers.ts';\nimport { EmailInput } from '../../controls/email-input.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { EmailInputSignature } from '../../controls/email-input.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface EmailFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: EmailInputSignature['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<EmailInputSignature['Args'], 'value' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n}\n\nexport class EmailField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<EmailFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n\n setStringValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: string) => setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n <this.Field\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <EmailInput\n @value={{asString f.value}}\n @update={{this.setStringValue f.setValue}}\n @disabled={{@disabled}}\n name={{@name}}\n id={{f.id}}\n {{f.registerElement}}\n {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}}\n ...attributes\n />\n </this.Field>\n </template>\n}\n","import Component from '@glimmer/component';\nimport { uniqueId } from '@ember/helper';\n\nimport { element } from 'ember-element-helper';\n\nimport { List } from '../../controls/list.gts';\nimport { Label } from '../label.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { ListSignature } from '../../controls/list.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\ninterface ListLabelSignature {\n Element: HTMLLabelElement;\n Args: {\n id: string;\n };\n Blocks: {\n default: [];\n };\n}\n\nconst ListLabel: TOC<ListLabelSignature> = <template>\n <Label @element={{element \"span\"}} id={{@id}}>{{yield}}</Label>\n</template>;\n\nexport interface ListFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: ListSignature<FieldValue<DATA, NAME, VALUE>>['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<ListSignature<FieldValue<DATA, NAME, VALUE>>['Args'], 'selection' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n Blocks: ListSignature<FieldValue<DATA, NAME, VALUE>>['Blocks'];\n}\n\nexport class ListField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<ListFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n List = List<FieldValue<DATA, NAME, VALUE>>;\n\n setValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: FieldValue<DATA, NAME, VALUE> | FieldValue<DATA, NAME, VALUE>[]) =>\n setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n asValue = (value: unknown) => value as FieldValue<DATA, NAME, VALUE>;\n\n <template>\n {{#let (uniqueId) as |labelId|}}\n <this.Field\n @name={{@name}}\n @label={{@label}}\n @labelComponent={{component ListLabel id=labelId}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <this.List\n @value={{this.asValue f.value}}\n @update={{this.setValue f.setValue}}\n @disabled={{@disabled}}\n {{!-- name={{@name}} --}}\n aria-labelledby={{labelId}}\n {{f.registerElement}}\n {{manageValidation errorMessageId=f.errorId invalid=f.invalid}}\n ...attributes\n as |s|\n >\n {{yield s}}\n </this.List>\n </this.Field>\n {{/let}}\n </template>\n}\n","import Component from '@glimmer/component';\nimport { hash, uniqueId } from '@ember/helper';\n\nimport { element } from 'ember-element-helper';\n\nimport styles from '@hokulea/core/forms.module.css';\n\nimport { Checkbox } from '../../controls/checkbox.gts';\nimport { Description } from '../description.gts';\nimport { Errors } from '../errors.gts';\nimport { Label } from '../label.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { RadioSignature } from '../../controls/radio.gts';\nimport type { BoundField, FieldArgs, FieldBlock, MultipleFieldBlock } from '../field';\nimport type { AttrValue, WithBoundArgs } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface OptionSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: RadioSignature['Element'];\n Args: {\n value: string;\n label: string;\n description?: string;\n\n /** @internal */\n name: string;\n\n /** @internal */\n disabled?: boolean;\n\n /** @internal */\n field: MultipleFieldBlock<DATA, NAME, VALUE>;\n };\n Blocks: {\n default: [];\n };\n}\n\nclass Option<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<OptionSignature<DATA, NAME, VALUE>> {\n select = (checked: boolean) => {\n if (checked) {\n this.args.field.setValue([...(this.args.field.value ?? []), this.args.value] as FieldValue<\n DATA,\n NAME,\n VALUE\n >[]);\n } else {\n const values = this.args.field.value;\n const index = this.args.field.value?.indexOf(\n this.args.value as FieldValue<DATA, NAME, VALUE>\n );\n\n if (Array.isArray(values) && index) {\n values.splice(index, 1);\n\n this.args.field.setValue(values);\n }\n }\n };\n\n get checked() {\n return this.args.field.value?.includes(this.args.value as FieldValue<DATA, NAME, VALUE>);\n }\n\n get issues() {\n return this.args.field.issues.filter((i) => 'value' in i && i.value === this.args.value);\n }\n\n get invalid() {\n return this.issues.length > 0;\n }\n\n <template>\n {{#let (uniqueId) (uniqueId) as |id errorId|}}\n <div class={{styles.choice}} data-test-option>\n <span>\n <Checkbox\n @value={{this.checked}}\n @update={{this.select}}\n @disabled={{@disabled}}\n id={{id}}\n name={{@name}}\n value={{@value}}\n {{@field.registerElement}}\n {{manageValidation errorMessageId=errorId invalid=this.invalid}}\n ...attributes\n />\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 </template>\n}\n\nexport interface MultipleChoiceFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Args: FieldArgs<DATA, NAME, VALUE> & {\n disabled?: boolean;\n Field: BoundField<DATA, NAME, VALUE>;\n };\n Blocks: {\n default: [\n {\n Option: WithBoundArgs<typeof Option<DATA, NAME, VALUE>, 'field' | 'name'>;\n }\n ];\n };\n}\n\nexport class MultipleChoiceField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<MultipleChoiceFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n Option = Option<DATA, NAME, VALUE>;\n\n asMultiField = (field: FieldBlock<DATA, NAME, VALUE>) => {\n return field as MultipleFieldBlock<DATA, NAME, VALUE>;\n };\n\n <template>\n <this.Field\n @element={{element \"fieldset\"}}\n @showErrors={{false}}\n @labelComponent={{component Label element=(element \"legend\")}}\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <div class={{styles.choices}} data-test-choices>\n {{yield\n (hash\n Option=(component this.Option field=(this.asMultiField f) name=@name disabled=@disabled)\n )\n }}\n </div>\n </this.Field>\n </template>\n}\n","import Component from '@glimmer/component';\n\nimport { asNumber } from '../../../-private/helpers.ts';\nimport { NumberInput } from '../../controls/number-input.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { NumberInputSignature } from '../../controls/number-input.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface NumberFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: NumberInputSignature['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<NumberInputSignature['Args'], 'value' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n}\n\nexport class NumberField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<NumberFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n\n setNumberValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: number) => setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n <this.Field\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <NumberInput\n @value={{asNumber f.value}}\n @update={{this.setNumberValue f.setValue}}\n @disabled={{@disabled}}\n name={{@name}}\n id={{f.id}}\n {{f.registerElement}}\n {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}}\n ...attributes\n />\n </this.Field>\n </template>\n}\n","import Component from '@glimmer/component';\n\nimport { asString } from '../../../-private/helpers.ts';\nimport { PasswordInput } from '../../controls/password-input.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { PasswordInputSignature } from '../../controls/password-input.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { RulesBlock } from '../rules.gts';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface PasswordFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: PasswordInputSignature['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<PasswordInputSignature['Args'], 'value' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n Blocks: RulesBlock;\n}\n\nexport class PasswordField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<PasswordFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n\n setStringValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: string) => setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n <this.Field\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <PasswordInput\n @value={{asString f.value}}\n @update={{this.setStringValue f.setValue}}\n @disabled={{@disabled}}\n name={{@name}}\n id={{f.id}}\n {{f.registerElement}}\n {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}}\n ...attributes\n />\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 </template>\n}\n","import Component from '@glimmer/component';\n\nimport { asString } from '../../../-private/helpers.ts';\nimport { PhoneInput } from '../../controls/phone-input.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { PhoneInputSignature } from '../../controls/phone-input.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { RulesBlock } from '../rules.gts';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface PhoneFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: PhoneInputSignature['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<PhoneInputSignature['Args'], 'value' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n Blocks: RulesBlock;\n}\n\nexport class PhoneField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<PhoneFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n\n setStringValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: string) => setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n <this.Field\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <PhoneInput\n @value={{asString f.value}}\n @update={{this.setStringValue f.setValue}}\n @disabled={{@disabled}}\n name={{@name}}\n id={{f.id}}\n {{f.registerElement}}\n {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}}\n ...attributes\n />\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 </template>\n}\n","import Component from '@glimmer/component';\n\nimport { asNumber } from '../../../-private/helpers.ts';\nimport { RangeInput } from '../../controls/range-input.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { RangeInputSignature } from '../../controls/range-input.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface RangeFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: RangeInputSignature['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<RangeInputSignature['Args'], 'value' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n}\n\nexport class RangeField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<RangeFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n\n setNumberValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: number) => setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n <this.Field\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <RangeInput\n @value={{asNumber f.value}}\n @update={{this.setNumberValue f.setValue}}\n @disabled={{@disabled}}\n @orientation={{@orientation}}\n @min={{@min}}\n @max={{@max}}\n @step={{@step}}\n name={{@name}}\n id={{f.id}}\n {{f.registerElement}}\n {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}}\n ...attributes\n />\n </this.Field>\n </template>\n}\n","import Component from '@glimmer/component';\n\nimport { asString } from '../../../-private/helpers.ts';\nimport { Select } from '../../controls/select.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { SelectSignature, Value } from '../../controls/select.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface SelectFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: SelectSignature['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<SelectSignature['Args'], 'selection' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n Blocks: SelectSignature['Blocks'];\n}\n\nexport class SelectField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<SelectFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n\n setValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: Value | Value[]) => setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n <this.Field\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <Select\n @value={{asString f.value}}\n @update={{this.setValue f.setValue}}\n @disabled={{@disabled}}\n name={{@name}}\n id={{f.id}}\n {{f.registerElement}}\n {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}}\n ...attributes\n as |s|\n >\n {{yield s}}\n </Select>\n </this.Field>\n </template>\n}\n","import Component from '@glimmer/component';\nimport { hash, uniqueId } from '@ember/helper';\n\nimport { element } from 'ember-element-helper';\n\nimport styles from '@hokulea/core/forms.module.css';\n\nimport { eq } from '../../../-private/helpers.ts';\nimport { Radio } from '../../controls/radio.gts';\nimport { Description } from '../description.gts';\nimport { Label } from '../label.gts';\n\nimport type { RadioSignature } from '../../controls/radio.gts';\nimport type { BoundField, FieldArgs, FieldBlock } from '../field';\nimport type { AttrValue, WithBoundArgs } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface OptionSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: RadioSignature['Element'];\n Args: {\n value: string;\n label: string;\n description?: string;\n\n /** @internal */\n name: string;\n\n /** @internal */\n disabled?: boolean;\n\n /** @internal */\n field: FieldBlock<DATA, NAME, VALUE>;\n };\n Blocks: {\n default: [];\n };\n}\n\nclass Option<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<OptionSignature<DATA, NAME, VALUE>> {\n select = () => {\n this.args.field.setValue(this.args.value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n {{#let (uniqueId) as |id|}}\n <div class={{styles.choice}} data-test-option>\n <span>\n <Radio\n @value={{eq @field.value @value}}\n @update={{this.select}}\n @disabled={{@disabled}}\n id={{id}}\n name={{@name}}\n value={{@value}}\n {{@field.registerElement}}\n ...attributes\n />\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 </template>\n}\n\nexport interface SingularChoiceFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Args: FieldArgs<DATA, NAME, VALUE> & {\n disabled?: boolean;\n Field: BoundField<DATA, NAME, VALUE>;\n };\n Blocks: {\n default: [\n {\n Option: WithBoundArgs<typeof Option<DATA, NAME, VALUE>, 'field' | 'name'>;\n }\n ];\n };\n}\n\nexport class SingularChoiceField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<SingularChoiceFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n Option = Option<DATA, NAME, VALUE>;\n\n <template>\n <this.Field\n @element={{element \"fieldset\"}}\n @labelComponent={{component Label element=(element \"legend\")}}\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <div class={{styles.choices}} data-test-choices>\n {{yield (hash Option=(component this.Option field=f name=@name disabled=@disabled))}}\n </div>\n </this.Field>\n </template>\n}\n","import Component from '@glimmer/component';\n\nimport { asString } from '../../../-private/helpers.ts';\nimport { TextInput } from '../../controls/text-input.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { TextInputSignature } from '../../controls/text-input.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { RulesBlock } from '../rules.gts';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface TextFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: TextInputSignature['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<TextInputSignature['Args'], 'value' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n Blocks: RulesBlock;\n}\n\nexport class TextField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<TextFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n\n setStringValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: string) => setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n <@Field\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <TextInput\n @value={{asString f.value}}\n @update={{this.setStringValue f.setValue}}\n @disabled={{@disabled}}\n name={{@name}}\n id={{f.id}}\n {{f.registerElement}}\n {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}}\n ...attributes\n />\n\n {{#if (has-block \"rules\")}}\n <f.Rules as |Rule|>\n {{yield Rule to=\"rules\"}}\n </f.Rules>\n {{/if}}\n </@Field>\n </template>\n}\n","import Component from '@glimmer/component';\n\nimport { asString } from '../../../-private/helpers.ts';\nimport { TextArea } from '../../controls/text-area.gts';\nimport { manageValidation } from '../manage-validation.ts';\n\nimport type { TextAreaSignature } from '../../controls/text-area.gts';\nimport type { BoundField, FieldArgs } from '../field.gts';\nimport type { AttrValue } from '@glint/template';\nimport type { FieldNames, FieldValue, UserData } from '@hokulea/ember-pahu';\n\nexport interface TextAreaFieldSignature<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> {\n Element: TextAreaSignature['Element'];\n Args: FieldArgs<DATA, NAME, VALUE> &\n Omit<TextAreaSignature['Args'], 'value' | 'update'> & {\n Field: BoundField<DATA, NAME, VALUE>;\n };\n}\n\nexport class TextAreaField<\n DATA extends UserData,\n NAME extends string = FieldNames<DATA> | (string & {}),\n VALUE = NAME extends keyof DATA ? DATA[NAME] : AttrValue\n> extends Component<TextAreaFieldSignature<DATA, NAME, VALUE>> {\n Field = this.args.Field;\n\n setStringValue = (setValue: (value: FieldValue<DATA, NAME, VALUE>) => void) => {\n return (value: string) => setValue(value as FieldValue<DATA, NAME, VALUE>);\n };\n\n <template>\n <this.Field\n @name={{@name}}\n @label={{@label}}\n @description={{@description}}\n @value={{@value}}\n @ignoreNativeValidation={{@ignoreNativeValidation}}\n @validateOn={{@validateOn}}\n @revalidateOn={{@revalidateOn}}\n @validate={{@validate}}\n @validated={{@validated}}\n as |f|\n >\n <TextArea\n @value={{asString f.value}}\n @update={{this.setStringValue f.setValue}}\n @disabled={{@disabled}}\n name={{@name}}\n id={{f.id}}\n {{f.registerElement}}\n {{manageValidation errorMessageId=f.errorId invalid=f.invalid showErrors=f.showErrors}}\n ...attributes\n />\n </this.Field>\n </template>\n}\n","import styles from '@hokulea/core/actions.module.css';\n\nimport disabled from '../../-private/modifiers/disabled.ts';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { Importance, Intent, Spacing } from '@hokulea/tokens';\n\nexport interface ResetSignature {\n Element: HTMLButtonElement;\n Args: {\n intent?: Intent;\n importance?: Importance;\n spacing?: Spacing;\n disabled?: boolean;\n };\n Blocks: {\n /** The label for the button */\n default: [];\n\n /** The label for the button */\n label: [];\n\n /** A slot in front of the label */\n before: [];\n\n /** A slot after the label */\n after: [];\n };\n}\n\nexport const Reset: TOC<ResetSignature> = <template>\n <button\n type=\"reset\"\n class={{styles.button}}\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-button\n ...attributes\n >\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n </button>\n</template>;\n","import styles from '@hokulea/core/actions.module.css';\n\nimport disabled from '../../-private/modifiers/disabled.ts';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { Importance, Intent, Spacing } from '@hokulea/tokens';\n\nexport interface SubmitSignature {\n Element: HTMLButtonElement;\n Args: {\n intent?: Intent;\n importance?: Importance;\n spacing?: Spacing;\n disabled?: boolean;\n };\n Blocks: {\n /** The label for the button */\n default: [];\n\n /** The label for the button */\n label: [];\n\n /** A slot in front of the label */\n before: [];\n\n /** A slot after the label */\n after: [];\n };\n}\n\nexport const Submit: TOC<SubmitSignature> = <template>\n <button\n type=\"submit\"\n class={{styles.button}}\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-button\n ...attributes\n >\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n </button>\n</template>;\n","import Component from '@glimmer/component';\nimport { hash } from '@ember/helper';\n\nimport styles from '@hokulea/core/forms.module.css';\nimport { createForm } from '@hokulea/ember-pahu';\n\nimport { Field } from './field.gts';\nimport { CheckboxField } from './fields/checkbox.gts';\nimport { CurrencyField } from './fields/currency.gts';\nimport { DateField } from './fields/date.gts';\nimport { EmailField } from './fields/email.gts';\nimport { ListField } from './fields/list.gts';\nimport { MultipleChoiceField } from './fields/multiple-choice.gts';\nimport { NumberField } from './fields/number.gts';\nimport { PasswordField } from './fields/password.gts';\nimport { PhoneField } from './fields/phone.gts';\nimport { RangeField } from './fields/range.gts';\nimport { SelectField } from './fields/select.gts';\nimport { SingularChoiceField } from './fields/singular-choice.gts';\nimport { TextField } from './fields/text.gts';\nimport { TextAreaField } from './fields/text-area.gts';\nimport { Reset } from './reset.gts';\nimport { Submit } from './submit.gts';\n\nimport type { BoundField } from './field.gts';\nimport type { WithBoundArgs } from '@glint/template';\nimport type { FormAPI, FormConfig, UserData } from '@hokulea/ember-pahu';\n\nexport interface FormBuilder<DATA extends UserData> {\n Checkbox: WithBoundArgs<typeof CheckboxField<DATA>, 'Field'>;\n Currency: WithBoundArgs<typeof CurrencyField<DATA>, 'Field'>;\n Date: WithBoundArgs<typeof DateField<DATA>, 'Field'>;\n Email: WithBoundArgs<typeof EmailField<DATA>, 'Field'>;\n List: WithBoundArgs<typeof ListField<DATA>, 'Field'>;\n MultipleChoice: WithBoundArgs<typeof MultipleChoiceField<DATA>, 'Field'>;\n Number: WithBoundArgs<typeof NumberField<DATA>, 'Field'>;\n Range: WithBoundArgs<typeof RangeField<DATA>, 'Field'>;\n Password: WithBoundArgs<typeof PasswordField<DATA>, 'Field'>;\n Phone: WithBoundArgs<typeof PhoneField<DATA>, 'Field'>;\n Select: WithBoundArgs<typeof SelectField<DATA>, 'Field'>;\n SingularChoice: WithBoundArgs<typeof SingularChoiceField<DATA>, 'Field'>;\n Text: WithBoundArgs<typeof TextField<DATA>, 'Field'>;\n TextArea: WithBoundArgs<typeof TextAreaField<DATA>, 'Field'>;\n Field: BoundField<DATA>;\n Submit: typeof Submit;\n Reset: typeof Reset;\n\n /**\n * Will be true if at least one form field is invalid.\n */\n invalid: boolean;\n\n /**\n * Yielded action that will trigger form validation and submission, same as when triggering the native `submit` event on the form.\n */\n submit: FormAPI<DATA>['submit'];\n\n /**\n * Yielded action that will reset form state, same as when triggering the native `reset` event on the form.\n */\n reset: FormAPI<DATA>['reset'];\n\n /**\n * Trigger validation on the form\n */\n validate: FormAPI<DATA>['validate'];\n\n /* @TODO: Remove, for debug only */\n form: ReturnType<typeof createForm<DATA>>;\n}\n\nexport interface FormSignature<DATA extends UserData> {\n Element: HTMLFormElement;\n Args: FormConfig<DATA>;\n Blocks: {\n default: [FormBuilder<DATA>];\n };\n}\n\nexport class Form<DATA extends UserData> extends Component<FormSignature<DATA>> {\n Field = Field<DATA>;\n CheckboxField = CheckboxField<DATA>;\n CurrencyField = CurrencyField<DATA>;\n DateField = DateField<DATA>;\n EmailField = EmailField<DATA>;\n ListField = ListField<DATA>;\n MultipleChoiceField = MultipleChoiceField<DATA>;\n NumberField = NumberField<DATA>;\n PasswordField = PasswordField<DATA>;\n PhoneField = PhoneField<DATA>;\n RangeField = RangeField<DATA>;\n SelectField = SelectField<DATA>;\n SingularChoiceField = SingularChoiceField<DATA>;\n TextAreaField = TextAreaField<DATA>;\n TextField = TextField<DATA>;\n\n <template>\n {{#let\n (createForm\n data=@data\n ignoreNativeValidation=@ignoreNativeValidation\n validateOn=@validateOn\n revalidateOn=@revalidateOn\n submit=@submit\n validate=@validate\n validated=@validated\n )\n as |f|\n }}\n <form novalidate class={{styles.form}} data-test-form ...attributes {{f.registerElement}}>\n {{#let (component this.Field form=f) as |WiredField|}}\n {{yield\n (hash\n invalid=f.invalid\n submit=f.submit\n Field=WiredField\n Checkbox=(component this.CheckboxField Field=WiredField)\n Currency=(component this.CurrencyField Field=WiredField)\n Date=(component this.DateField Field=WiredField)\n Email=(component this.EmailField Field=WiredField)\n List=(component this.ListField Field=WiredField)\n MultipleChoice=(component this.MultipleChoiceField Field=WiredField)\n Number=(component this.NumberField Field=WiredField)\n Password=(component this.PasswordField Field=WiredField)\n Phone=(component this.PhoneField Field=WiredField)\n Range=(component this.RangeField Field=WiredField)\n Select=(component this.SelectField Field=WiredField)\n SingularChoice=(component this.SingularChoiceField Field=WiredField)\n TextArea=(component this.TextAreaField Field=WiredField)\n Text=(component this.TextField Field=WiredField)\n Submit=Submit\n Reset=Reset\n form=f\n )\n }}\n {{/let}}\n </form>\n {{/let}}\n </template>\n}\n"],"names":["Description","setComponentTemplate","precompileTemplate","strictMode","scope","styles","templateOnly","Errors","Label","element","ErrorIcon","ValidIcon","Rule","Component","isInvalid","args","errors","some","i","key","value","Icon","Rules","constructor","owner","useRules","Field","g","prototype","tracked","void 0","validateOn","rulesUsed","revalidateOn","createOrUpdateField","config","filteredConfig","Object","fromEntries","entries","filter","_","v","undefined","updateConfig","form","createField","next","validate","showErrors","uniqueId","hash","and","manageValidation","modifier","invalid","errorMessageId","ariaInvalid","setAttribute","removeAttribute","parentElement","dataset","CheckboxField","setBooleanValue","setValue","Checkbox","asBoolean","CurrencyField","setNumberValue","CurrencyInput","asNumber","DateField","setStringValue","DateInput","asString","EmailField","EmailInput","ListLabel","ListField","List","asValue","Option","select","checked","field","values","index","indexOf","Array","isArray","splice","includes","issues","length","MultipleChoiceField","asMultiField","NumberField","NumberInput","PasswordField","PasswordInput","PhoneField","PhoneInput","RangeField","RangeInput","SelectField","Select","Radio","eq","SingularChoiceField","TextField","TextInput","TextAreaField","TextArea","Reset","disabled","Submit","Form","createForm"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-BfRBkZ72.js","sources":["../src/components/graphics/icon.gts"],"sourcesContent":["import { htmlSafe } from '@ember/template';\n\nimport styles from '@hokulea/core/graphics.module.css';\n\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface IconSignature {\n Element: HTMLSpanElement;\n Args: {\n /**\n * A string containing a `<svg>` element.\n * Make sure to use `currentColor` to comply with the styling\n */\n icon: string;\n };\n}\n\nexport const Icon: TOC<IconSignature> = <template>\n <span class={{styles.icon}} data-test-icon ...attributes>\n {{htmlSafe @icon}}\n </span>\n</template>;\n"],"names":["Icon","setComponentTemplate","precompileTemplate","strictMode","scope","styles","htmlSafe","templateOnly"],"mappings":";;;;;;MAiBaA,IAAU,GAAAC,oBAAA,CAAiBC,kBAAA,CAAA,oGAAA,EAIxC;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon-button-DBt7fMi1.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 styles from '@hokulea/core/actions.module.css';\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=\"{{styles.iconButton}}\"\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","styles","and","not","isLink","asBoolean","disabled","Icon"],"mappings":";;;;;;;;;;;;AAkCO,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,wgBAAA,EAiBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,WAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,GAAA;QAAAC,GAAA;QAAAC,MAAA;QAAAC,SAAA;QAAAC,QAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1,20 +0,0 @@
1
- import { hash } from '@ember/helper';
2
- import styles from '@hokulea/core/controls.module.css';
3
- import { precompileTemplate } from '@ember/template-compilation';
4
- import { setComponentTemplate } from '@ember/component';
5
- import templateOnly from '@ember/component/template-only';
6
-
7
- const Affix = setComponentTemplate(precompileTemplate("\n <span class={{@class}} data-test-input-builder={{@identity}}>{{yield}}</span>\n", {
8
- strictMode: true
9
- }), templateOnly());
10
- const InputBuilder = setComponentTemplate(precompileTemplate("\n {{!-- template-lint-disable no-unsupported-role-attributes --}}\n <span class={{styles.inputBuilder}} aria-disabled={{if @disabled \"true\"}} data-spacing={{@spacing}} data-input-builder data-test-input-builder>\n {{yield (hash Prefix=(component Affix class=styles.prefix identity=\"prefix\") Affix=(component Affix class=styles.affix identity=\"affix\") Suffix=(component Affix class=styles.suffix identity=\"suffix\"))}}\n </span>\n", {
11
- strictMode: true,
12
- scope: () => ({
13
- styles,
14
- hash,
15
- Affix
16
- })
17
- }), templateOnly());
18
-
19
- export { InputBuilder as I };
20
- //# sourceMappingURL=input-builder-DHYx-2Yz.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-builder-DHYx-2Yz.js","sources":["../src/components/controls/input-builder.gts"],"sourcesContent":["import { hash } from '@ember/helper';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport type { ShapeArgs } from '../../-private/shapes.ts';\nimport type { TOC } from '@ember/component/template-only';\nimport type { WithBoundArgs } from '@glint/template';\n\ninterface AffixSignature {\n Args: {\n class: string;\n identity: 'prefix' | 'affix' | 'suffix';\n };\n Blocks: {\n default: [];\n };\n}\n\nconst Affix: TOC<AffixSignature> = <template>\n <span class={{@class}} data-test-input-builder={{@identity}}>{{yield}}</span>\n</template>;\n\nexport interface InputBuilderSignature {\n Args: ShapeArgs & {\n disabled?: boolean;\n };\n Blocks: {\n default: [\n {\n Affix: WithBoundArgs<typeof Affix, 'class' | 'identity'>;\n Prefix: WithBoundArgs<typeof Affix, 'class' | 'identity'>;\n Suffix: WithBoundArgs<typeof Affix, 'class' | 'identity'>;\n }\n ];\n };\n}\n\nexport const InputBuilder: TOC<InputBuilderSignature> = <template>\n {{! template-lint-disable no-unsupported-role-attributes }}\n <span\n class={{styles.inputBuilder}}\n aria-disabled={{if @disabled \"true\"}}\n data-spacing={{@spacing}}\n data-input-builder\n data-test-input-builder\n >\n {{yield\n (hash\n Prefix=(component Affix class=styles.prefix identity=\"prefix\")\n Affix=(component Affix class=styles.affix identity=\"affix\")\n Suffix=(component Affix class=styles.suffix identity=\"suffix\")\n )\n }}\n </span>\n</template>;\n"],"names":["Affix","setComponentTemplate","precompileTemplate","strictMode","templateOnly","InputBuilder","scope","styles","hash"],"mappings":";;;;;;AAkBA,MAAMA,KAAW,GAAAC,oBAAA,CAAkBC,kBAAA,CAAA,qFAAA,EAEnC;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA;MAiBGC,YAAkB,GAAAJ,oBAAA,CAAyBC,kBAAA,CAAA,6bAAA,EAiBxD;EAAAC,UAAA,EAAA,IAAA;AAAAG,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,IAAA;AAAAR,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAI,YAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"list-CsLvih6-.js","sources":["../src/components/controls/list.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { registerDestructor } from '@ember/destroyable';\nimport { hash } from '@ember/helper';\nimport { next } from '@ember/runloop';\n\nimport { ariaListbox } from 'ember-aria-voyager';\nimport { TrackedArray } from 'tracked-built-ins';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport type Owner from '@ember/owner';\nimport type { WithBoundArgs } from '@glint/template';\n\nexport interface OptionSignature<V> {\n Element: HTMLOptionElement;\n Args: {\n value: V;\n isSelected: (option: V) => boolean;\n registerItem: (item: V) => void;\n unregisterItem: (item: V) => void;\n };\n Blocks: {\n default: [];\n };\n}\n\nclass Option<V> extends Component<OptionSignature<V>> {\n constructor(owner: Owner, args: OptionSignature<V>['Args']) {\n super(owner, args);\n\n args.registerItem(args.value);\n\n registerDestructor(this, () => {\n args.unregisterItem(args.value);\n });\n }\n\n <template>\n <span role=\"option\" aria-selected={{if (@isSelected @value) \"true\"}}>\n {{yield}}\n </span>\n </template>\n}\n\nexport interface ListSignature<V> {\n Element: HTMLDivElement;\n Args: {\n multiple?: boolean;\n disabled?: boolean;\n value?: V | V[];\n update?: (value: V | V[]) => void;\n activateItem?: (value: V) => void;\n };\n Blocks: {\n default: [\n {\n Option: WithBoundArgs<typeof Option<V>, 'isSelected' | 'registerItem' | 'unregisterItem'>;\n }\n ];\n };\n}\n\nexport class List<V> extends Component<ListSignature<V>> {\n Option = Option<V>;\n\n @tracked items: V[] = new TrackedArray();\n\n registerItem = (item: V) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.push(item);\n });\n };\n\n unregisterItem = (item: V) => {\n // eslint-disable-next-line ember/no-runloop\n next(() => {\n this.items.splice(this.items.indexOf(item), 1);\n });\n };\n\n isSelected = (option: V) => {\n if (Array.isArray(this.args.value)) {\n return this.args.value.includes(option);\n }\n\n return this.args.value === option;\n };\n\n <template>\n <div\n class={{styles.list}}\n data-test-list\n ...attributes\n {{ariaListbox\n items=this.items\n selection=@value\n multi=@multiple\n disabled=@disabled\n select=@update\n activateItem=@activateItem\n }}\n >\n {{yield\n (hash\n Option=(component\n this.Option\n isSelected=this.isSelected\n registerItem=this.registerItem\n unregisterItem=this.unregisterItem\n )\n )\n }}\n </div>\n </template>\n}\n"],"names":["Option","Component","constructor","owner","args","registerItem","value","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","strictMode","List","g","prototype","tracked","TrackedArray","i","void 0","item","next","items","push","splice","indexOf","isSelected","option","Array","isArray","includes","scope","styles","ariaListbox","hash"],"mappings":";;;;;;;;;;;;AA2BA,MAAMA,MAAA,SAAkBC,SAAA,CAA0B;AAChDC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAAgC,EAAE;AAC1D,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;AAEbA,IAAAA,IAAA,CAAKC,YAAY,CAACD,IAAA,CAAKE,KAAK,CAAA;IAE5BC,kBAAA,CAAmB,IAAI,EAAE,MAAA;AACvBH,MAAAA,IAAA,CAAKI,cAAc,CAACJ,IAAA,CAAKE,KAAK,CAAA;AAChC,IAAA,CAAA,CAAA;AACF,EAAA;AAEA,EAAA;IAAAG,oBAAA,CAAAC,kBAAA,CAAA,mHAAA,EAIA;MAAAC,UAAA,EAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;AAoBO,MAAMC,IAAA,SAAgBX,SAAA,CAAwB;AACnDD,EAAAA,MAAA,GAASA;AAAU,EAAA;IAAAa,CAAA,CAAA,IAAA,CAAAC,SAAA,EAAA,OAAA,EAAA,CAElBC,OAAA,CAAA,EAAA,YAAA;MAAA,OAAqB,IAAIC,YAAA,EAAA;AAAA,IAAA,CAAA,CAAA;AAAA;AAAA,EAAA,MAAA,IAAAC,CAAA,CAAA,IAAA,EAAA,OAAA,CAAA,EAAAC,MAAA;EAE1Bb,YAAA,GAAgBc,IAAM,IAAA;AACpB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACC,IAAI,CAACH,IAAA,CAAA;AAClB,IAAA,CAAA,CAAA;EACF,CAAA;EAEAX,cAAA,GAAkBW,IAAM,IAAA;AACtB;AACAC,IAAAA,IAAA,CAAK,MAAA;AACH,MAAA,IAAI,CAACC,KAAK,CAACE,MAAM,CAAC,IAAI,CAACF,KAAK,CAACG,OAAO,CAACL,IAAA,CAAA,EAAO,CAAA,CAAA;AAC9C,IAAA,CAAA,CAAA;EACF,CAAA;EAEAM,UAAA,GAAcC,MAAQ,IAAA;IACpB,IAAIC,KAAA,CAAMC,OAAO,CAAC,IAAI,CAACxB,IAAI,CAACE,KAAK,CAAA,EAAG;MAClC,OAAO,IAAI,CAACF,IAAI,CAACE,KAAK,CAACuB,QAAQ,CAACH,MAAA,CAAA;AAClC,IAAA;AAEA,IAAA,OAAO,IAAI,CAACtB,IAAI,CAACE,KAAK,KAAKoB,MAAA;EAC7B,CAAA;AAEA,EAAA;IAAAjB,oBAAA,CAAAC,kBAAA,CAAA,mWAAA,EAyBA;MAAAC,UAAA,EAAA,IAAA;AAAAmB,MAAAA,KAAA,EAAAA,OAAA;QAAAC,MAAA;QAAAC,WAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"menu-s0AthZse.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 styles from '@hokulea/core/controls.module.css';\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 {{~yield to=\"label\"~}}\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 {{~yield~}}\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={{styles.menu}}\n data-test-menu\n ...attributes\n {{ariaMenu items=this.items disabled=@disabled}}\n style={{if this.hideInSSR (htmlSafe \"display: none\")}}\n >\n {{yield\n (hash\n Item=(component\n MenuItem registerItem=this.registerItem unregisterItem=this.unregisterItem\n )\n )\n }}\n </div>\n </template>\n}\n"],"names":["MenuItem","Component","constructor","owner","args","registerItem","registerDestructor","unregisterItem","setComponentTemplate","precompileTemplate","strictMode","scope","popover","disabled","Menu","PushElement","g","prototype","service","i","void 0","tracked","TrackedArray","hideInSSR","fastboot","isFastBoot","item","next","items","push","splice","indexOf","styles","htmlSafe","ariaMenu","hash"],"mappings":";;;;;;;;;;;;;;;;;AAqCA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,MAAMA,QAAA,SAAiBC,SAAA,CAAU;AAC/BC,EAAAA,WAAAA,CAAYC,KAAY,EAAEC,IAA+B,EAAE;AACzD,IAAA,KAAK,CAACD,KAAA,EAAOC,IAAA,CAAA;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,2kBAAA,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,8SAAA,EAgBA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAqB,MAAA;QAAAC,QAAA;QAAAC,QAAA;QAAAC,IAAA;AAAAnC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation-list-Ng5UsNCY.js","sources":["../src/components/navigation/navigation-list.gts"],"sourcesContent":["import { hash } from '@ember/helper';\n\nimport styles from '@hokulea/core/navigation.module.css';\n\nimport { NavLink } from './nav-link.gts';\n\nimport type { TOC } from '@ember/component/template-only';\n\nconst Title: TOC<{ Blocks: { default: [] } }> = <template>\n <span part=\"title\">{{yield}}</span>\n</template>;\n\nexport interface NavigationListSignature {\n Element: HTMLElement;\n Blocks: {\n default?: [{ Item: typeof NavLink; Title: typeof Title }];\n };\n}\n\nexport const NavigationList: TOC<NavigationListSignature> = <template>\n <nav class={{styles.navigationList}} data-test-navigation-list ...attributes>\n {{yield (hash Item=NavLink Title=Title)}}\n </nav>\n</template>;\n"],"names":["Title","setComponentTemplate","precompileTemplate","strictMode","templateOnly","NavigationList","scope","styles","hash","NavLink"],"mappings":";;;;;;;AAQA,MAAMA,KAA0C,GAAAC,oBAAA,CAAAC,kBAAA,CAAA,6CAAA,EAEhD;EAAAC,UAAA,EAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA,CAAA;MASGC,cAAoB,GAAAJ,oBAAA,CAA2BC,kBAAA,CAAA,8IAAA,EAI5D;EAAAC,UAAA,EAAA,IAAA;AAAAG,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,IAAA;IAAAC,OAAA;AAAAT,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAI,YAAA,EAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"number-input-FJympEv2.js","sources":["../src/components/controls/number-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../../-private/helpers.ts';\nimport { pickAsNumber } from './-input.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface NumberInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<number>;\n}\n\nexport const NumberInput: TOC<NumberInputSignature> = <template>\n <input\n class={{styles.input}}\n type=\"number\"\n value={{@value}}\n disabled={{@disabled}}\n data-spacing={{@spacing}}\n data-test-input\n {{on \"input\" (pick \"target.value\" (pickAsNumber @update)) capture=true}}\n ...attributes\n />\n</template>;\n"],"names":["NumberInput","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","pickAsNumber","templateOnly"],"mappings":";;;;;;;;MAeaA,WAAiB,GAAAC,oBAAA,CAAwBC,kBAAA,CAAA,qOAAA,EAWtD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;IAAAC,IAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
@@ -1,23 +0,0 @@
1
- import { element } from 'ember-element-helper';
2
- import styles from '@hokulea/core/layouts.module.css';
3
- import typo from '@hokulea/core/typography.module.css';
4
- import { o as or } from './helpers-D4So5-uK.js';
5
- import { P as PageDestructor, a as PageElement } from './pages-DgHJEvSy.js';
6
- import { precompileTemplate } from '@ember/template-compilation';
7
- import { setComponentTemplate } from '@ember/component';
8
- import templateOnly from '@ember/component/template-only';
9
-
10
- const Page = setComponentTemplate(precompileTemplate("\n {{#let (if @element @element (element (pageElement))) as |Element|}}\n <Element class={{styles.page}} {{pageDestructor}} ...attributes data-test-page>\n {{#if (or @title @description (has-block \"title\") (has-block \"description\") (has-block \"nav\"))}}\n <header class={{styles.pageContent}}>\n <h1 class={{typo.display}}>\n {{#if (has-block \"title\")}}\n {{yield to=\"title\"}}\n {{else if @title}}\n {{@title}}\n {{/if}}\n </h1>\n\n {{#if (or (has-block \"description\") @description)}}\n <p>\n {{#if (has-block \"description\")}}\n {{yield to=\"description\"}}\n {{else if @description}}\n {{@description}}\n {{/if}}\n </p>\n {{/if}}\n </header>\n {{/if}}\n\n <div class=\"{{styles.pageContent}} {{styles.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", {
11
- strictMode: true,
12
- scope: () => ({
13
- element,
14
- pageElement: PageElement,
15
- styles,
16
- pageDestructor: PageDestructor,
17
- or,
18
- typo
19
- })
20
- }), templateOnly());
21
-
22
- export { Page as P };
23
- //# sourceMappingURL=page-BuLkLO08.js.map