@foxy.io/elements 1.28.0 → 1.29.0-beta.2

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 (380) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +5 -5
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-admin-subscription-form.js +1 -0
  6. package/dist/cdn/foxy-api-browser.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  8. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  9. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-card.js +1 -1
  11. package/dist/cdn/foxy-attribute-form.js +1 -1
  12. package/dist/cdn/foxy-billing-address-card.js +1 -1
  13. package/dist/cdn/foxy-cancellation-form.js +1 -1
  14. package/dist/cdn/foxy-cart-card.js +1 -1
  15. package/dist/cdn/foxy-cart-form.js +57 -1
  16. package/dist/cdn/foxy-client-card.js +1 -1
  17. package/dist/cdn/foxy-client-form.js +1 -1
  18. package/dist/cdn/foxy-collection-page.js +1 -1
  19. package/dist/cdn/foxy-collection-pages.js +1 -1
  20. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  21. package/dist/cdn/foxy-coupon-card.js +1 -1
  22. package/dist/cdn/foxy-coupon-code-card.js +1 -1
  23. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  24. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  25. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  26. package/dist/cdn/foxy-coupon-form.js +1 -1
  27. package/dist/cdn/foxy-custom-field-card.js +1 -1
  28. package/dist/cdn/foxy-custom-field-form.js +1 -1
  29. package/dist/cdn/foxy-customer-api.js +1 -1
  30. package/dist/cdn/foxy-customer-card.js +1 -1
  31. package/dist/cdn/foxy-customer-form.js +1 -1
  32. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  33. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  34. package/dist/cdn/foxy-customer-portal.js +2 -2
  35. package/dist/cdn/foxy-customer.js +4 -4
  36. package/dist/cdn/foxy-customers-table.js +1 -1
  37. package/dist/cdn/foxy-discount-builder.js +1 -1
  38. package/dist/cdn/foxy-discount-card.js +1 -1
  39. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  40. package/dist/cdn/foxy-donation.js +1 -1
  41. package/dist/cdn/foxy-downloadable-card.js +1 -1
  42. package/dist/cdn/foxy-downloadable-form.js +1 -1
  43. package/dist/cdn/foxy-email-template-card.js +1 -1
  44. package/dist/cdn/foxy-email-template-form.js +1 -1
  45. package/dist/cdn/foxy-error-entry-card.js +1 -1
  46. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  47. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  48. package/dist/cdn/foxy-form-dialog.js +1 -1
  49. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  50. package/dist/cdn/foxy-gift-card-card.js +1 -1
  51. package/dist/cdn/foxy-gift-card-code-card.js +1 -1
  52. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  53. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  54. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  55. package/dist/cdn/foxy-gift-card-form.js +1 -1
  56. package/dist/cdn/foxy-i18n-editor.js +2 -2
  57. package/dist/cdn/foxy-i18n.js +1 -1
  58. package/dist/cdn/foxy-integration-card.js +1 -1
  59. package/dist/cdn/foxy-integration-form.js +1 -1
  60. package/dist/cdn/foxy-item-card.js +1 -1
  61. package/dist/cdn/foxy-item-category-card.js +1 -1
  62. package/dist/cdn/foxy-item-category-form.js +1 -1
  63. package/dist/cdn/foxy-item-form.js +3 -3
  64. package/dist/cdn/foxy-item-option-card.js +1 -1
  65. package/dist/cdn/foxy-item-option-form.js +1 -1
  66. package/dist/cdn/foxy-items-form.js +1 -1
  67. package/dist/cdn/foxy-native-integration-card.js +1 -1
  68. package/dist/cdn/foxy-native-integration-form.js +1 -1
  69. package/dist/cdn/foxy-nucleon-element.js +1 -1
  70. package/dist/cdn/foxy-pagination.js +1 -1
  71. package/dist/cdn/foxy-passkey-card.js +1 -1
  72. package/dist/cdn/foxy-passkey-form.js +1 -1
  73. package/dist/cdn/foxy-payment-card-embed.js +1 -1
  74. package/dist/cdn/foxy-payment-card.js +1 -1
  75. package/dist/cdn/foxy-payment-method-card.js +1 -1
  76. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  77. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  78. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  79. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  80. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  81. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  82. package/dist/cdn/foxy-payments-api.js +1 -1
  83. package/dist/cdn/foxy-query-builder.js +1 -1
  84. package/dist/cdn/foxy-report-form.js +2 -2
  85. package/dist/cdn/foxy-reports-table.js +5 -5
  86. package/dist/cdn/foxy-shipment-card.js +1 -1
  87. package/dist/cdn/foxy-shipping-container-card.js +1 -1
  88. package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
  89. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  90. package/dist/cdn/foxy-shipping-service-card.js +1 -1
  91. package/dist/cdn/foxy-sign-in-form.js +1 -1
  92. package/dist/cdn/foxy-spinner.js +2 -2
  93. package/dist/cdn/foxy-store-card.js +1 -1
  94. package/dist/cdn/foxy-store-form.js +1 -1
  95. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  96. package/dist/cdn/foxy-subscription-card.js +1 -1
  97. package/dist/cdn/foxy-subscription-form.js +1 -1
  98. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  99. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  100. package/dist/cdn/foxy-table.js +1 -1
  101. package/dist/cdn/foxy-tax-card.js +1 -1
  102. package/dist/cdn/foxy-tax-form.js +1 -1
  103. package/dist/cdn/foxy-template-config-form.js +1 -1
  104. package/dist/cdn/foxy-template-form.js +1 -1
  105. package/dist/cdn/foxy-template-set-card.js +1 -1
  106. package/dist/cdn/foxy-template-set-form.js +1 -1
  107. package/dist/cdn/foxy-transaction-card.js +1 -1
  108. package/dist/cdn/foxy-transaction.js +1 -1
  109. package/dist/cdn/foxy-transactions-table.js +7 -7
  110. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  111. package/dist/cdn/foxy-user-card.js +1 -1
  112. package/dist/cdn/foxy-user-form.js +1 -1
  113. package/dist/cdn/foxy-users-table.js +1 -1
  114. package/dist/cdn/foxy-webhook-card.js +1 -1
  115. package/dist/cdn/foxy-webhook-form.js +1 -1
  116. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  117. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  118. package/dist/cdn/{shared-c2128988.js → shared-01b2cad8.js} +1 -1
  119. package/dist/cdn/{shared-fad783a0.js → shared-021c7a22.js} +1 -1
  120. package/dist/cdn/{shared-f2335b72.js → shared-075796e2.js} +2 -2
  121. package/dist/cdn/{shared-fee535ca.js → shared-0b01f721.js} +1 -1
  122. package/dist/cdn/{shared-701157ac.js → shared-0f6e4584.js} +1 -1
  123. package/dist/cdn/{shared-414a0c9b.js → shared-10325cda.js} +1 -1
  124. package/dist/cdn/{shared-9f44b81f.js → shared-10b5e78f.js} +1 -1
  125. package/dist/cdn/{shared-042969fe.js → shared-12a7a15d.js} +1 -1
  126. package/dist/cdn/{shared-9ee719e6.js → shared-12ac8cc6.js} +1 -1
  127. package/dist/cdn/{shared-57e4bcb0.js → shared-1cf1e1a4.js} +1 -1
  128. package/dist/cdn/{shared-7004839c.js → shared-2099544a.js} +2 -2
  129. package/dist/cdn/{shared-cbeb8587.js → shared-24d71d01.js} +1 -1
  130. package/dist/cdn/shared-292ba15e.js +1 -0
  131. package/dist/cdn/{shared-850e441a.js → shared-2a71795e.js} +1 -1
  132. package/dist/cdn/{shared-c0e56e97.js → shared-2d723710.js} +1 -1
  133. package/dist/cdn/{shared-58095d4b.js → shared-2fc671cd.js} +1 -1
  134. package/dist/cdn/{shared-cfdd6c21.js → shared-30221a16.js} +1 -1
  135. package/dist/cdn/{shared-e4cc1191.js → shared-303b428e.js} +1 -1
  136. package/dist/cdn/{shared-44b101d0.js → shared-339bbd50.js} +1 -1
  137. package/dist/cdn/{shared-cf9c48f9.js → shared-39a33102.js} +1 -1
  138. package/dist/cdn/{shared-0ed41a9e.js → shared-3e03c988.js} +1 -1
  139. package/dist/cdn/{shared-66084f2e.js → shared-3fa791ca.js} +1 -1
  140. package/dist/cdn/{shared-a28c9952.js → shared-4993a79d.js} +1 -1
  141. package/dist/cdn/shared-4c2d43e6.js +1 -0
  142. package/dist/cdn/{shared-ecec6a10.js → shared-522a172d.js} +1 -1
  143. package/dist/cdn/{shared-f300193c.js → shared-558bc894.js} +1 -1
  144. package/dist/cdn/{shared-b44cf5a9.js → shared-5c05ac06.js} +1 -1
  145. package/dist/cdn/shared-61f4e91a.js +1 -0
  146. package/dist/cdn/{shared-ec696e1b.js → shared-634b670e.js} +1 -1
  147. package/dist/cdn/{shared-25c57c74.js → shared-644ee296.js} +1 -1
  148. package/dist/cdn/shared-6474675f.js +1 -0
  149. package/dist/cdn/{shared-24586cfb.js → shared-6a4e81ad.js} +1 -1
  150. package/dist/cdn/{shared-bb35ee61.js → shared-6ac0d05e.js} +1 -1
  151. package/dist/cdn/{shared-7063f5af.js → shared-6d645dc5.js} +1 -1
  152. package/dist/cdn/shared-6e355777.js +1 -0
  153. package/dist/cdn/shared-7026fb08.js +1 -0
  154. package/dist/cdn/shared-70a5fad6.js +1 -0
  155. package/dist/cdn/{shared-a79dbeb9.js → shared-72c61f43.js} +1 -1
  156. package/dist/cdn/{shared-484b31eb.js → shared-72f41a65.js} +1 -1
  157. package/dist/cdn/shared-77051754.js +1 -0
  158. package/dist/cdn/{shared-789e3185.js → shared-77c4acdd.js} +1 -1
  159. package/dist/cdn/{shared-1708eb3c.js → shared-797ba64a.js} +1 -1
  160. package/dist/cdn/shared-7b8ad9c1.js +1 -0
  161. package/dist/cdn/shared-7ce91c80.js +1 -0
  162. package/dist/cdn/{shared-b3681c71.js → shared-7fd9a30f.js} +1 -1
  163. package/dist/cdn/{shared-ba5c9c0b.js → shared-81d3a9ae.js} +1 -1
  164. package/dist/cdn/{shared-80b9cb48.js → shared-876a4341.js} +1 -1
  165. package/dist/cdn/shared-8c1df97c.js +1 -0
  166. package/dist/cdn/{shared-add044d3.js → shared-8f7a31e0.js} +2 -2
  167. package/dist/cdn/{shared-49d678ad.js → shared-91f5e0b3.js} +1 -1
  168. package/dist/cdn/{shared-059680a0.js → shared-9a90a24e.js} +1 -1
  169. package/dist/cdn/shared-9db46672.js +1 -0
  170. package/dist/cdn/{shared-23061fb2.js → shared-a036e345.js} +1 -1
  171. package/dist/cdn/{shared-baaa1e47.js → shared-a159ccff.js} +1 -1
  172. package/dist/cdn/shared-a6273e4a.js +1 -0
  173. package/dist/cdn/{shared-f91d5706.js → shared-abea5e34.js} +1 -1
  174. package/dist/cdn/{shared-ae200b9f.js → shared-acdcae7e.js} +1 -1
  175. package/dist/cdn/{shared-80c6f97e.js → shared-aefac46b.js} +1 -1
  176. package/dist/cdn/{shared-fd410dee.js → shared-b6814728.js} +2 -2
  177. package/dist/cdn/{shared-293f9c07.js → shared-b731dfc5.js} +1 -1
  178. package/dist/cdn/{shared-2782886e.js → shared-b98b8d02.js} +1 -1
  179. package/dist/cdn/{shared-32cac4bd.js → shared-bdd4fbbb.js} +3 -3
  180. package/dist/cdn/shared-c286c5ad.js +1 -0
  181. package/dist/cdn/shared-cbb0e610.js +1 -0
  182. package/dist/cdn/{shared-4761504a.js → shared-cc79152c.js} +1 -1
  183. package/dist/cdn/{shared-2e6bda84.js → shared-d464d078.js} +1 -1
  184. package/dist/cdn/shared-d4810405.js +1 -0
  185. package/dist/cdn/{shared-41d57c3b.js → shared-d6010c96.js} +1 -1
  186. package/dist/cdn/{shared-c4f5b03b.js → shared-df00a537.js} +1 -1
  187. package/dist/cdn/{shared-db108ddb.js → shared-e2a61f69.js} +1 -1
  188. package/dist/cdn/{shared-59d8b64e.js → shared-e5d37737.js} +1 -1
  189. package/dist/cdn/{shared-a4e0a78b.js → shared-e6e84ff5.js} +1 -1
  190. package/dist/cdn/{shared-fbfa45bb.js → shared-ee36b83f.js} +1 -1
  191. package/dist/cdn/{shared-6d1556a0.js → shared-f1d2b5bb.js} +1 -1
  192. package/dist/cdn/{shared-aac73acd.js → shared-f22f22ae.js} +1 -1
  193. package/dist/cdn/{shared-ae462b8e.js → shared-f5366dda.js} +1 -1
  194. package/dist/cdn/{shared-a5c48bf4.js → shared-f7a1193f.js} +1 -1
  195. package/dist/cdn/{shared-a05fe56c.js → shared-fa9e5c7f.js} +1 -1
  196. package/dist/cdn/{shared-a08d509a.js → shared-fb56178f.js} +1 -1
  197. package/dist/cdn/{shared-5c1e607b.js → shared-fe77f6f6.js} +1 -1
  198. package/dist/cdn/{shared-bba917bf.js → shared-ff63a551.js} +1 -1
  199. package/dist/cdn/{shared-4b209827.js → shared-ffd3690b.js} +1 -1
  200. package/dist/cdn/translations/address-form/en.json +3 -3
  201. package/dist/cdn/translations/admin-subscription-form/en.json +1840 -0
  202. package/dist/cdn/translations/api-browser/en.json +2 -5
  203. package/dist/cdn/translations/cart-form/en.json +598 -169
  204. package/dist/cdn/translations/customer/en.json +3 -3
  205. package/dist/cdn/translations/item-form/en.json +0 -1
  206. package/dist/cdn/translations/transaction/en.json +0 -1
  207. package/dist/elements/internal/InternalCalendar/InternalCalendar.js +2 -1
  208. package/dist/elements/internal/InternalCalendar/InternalCalendar.js.map +1 -1
  209. package/dist/elements/internal/InternalCard/InternalCard.js +1 -1
  210. package/dist/elements/internal/InternalCard/InternalCard.js.map +1 -1
  211. package/dist/elements/internal/InternalControl/InternalControl.d.ts +1 -0
  212. package/dist/elements/internal/InternalControl/InternalControl.js +10 -7
  213. package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -1
  214. package/dist/elements/internal/InternalDateControl/InternalDateControl.d.ts +4 -1
  215. package/dist/elements/internal/InternalDateControl/InternalDateControl.js +36 -3
  216. package/dist/elements/internal/InternalDateControl/InternalDateControl.js.map +1 -1
  217. package/dist/elements/internal/InternalDateControl/getMonthNames.d.ts +1 -0
  218. package/dist/elements/internal/InternalDateControl/getMonthNames.js +7 -0
  219. package/dist/elements/internal/InternalDateControl/getMonthNames.js.map +1 -0
  220. package/dist/elements/internal/InternalDateControl/getWeekdayLongNames.d.ts +1 -0
  221. package/dist/elements/internal/InternalDateControl/getWeekdayLongNames.js +8 -0
  222. package/dist/elements/internal/InternalDateControl/getWeekdayLongNames.js.map +1 -0
  223. package/dist/elements/internal/InternalDateControl/getWeekdayShortNames.d.ts +1 -0
  224. package/dist/elements/internal/InternalDateControl/getWeekdayShortNames.js +8 -0
  225. package/dist/elements/internal/InternalDateControl/getWeekdayShortNames.js.map +1 -0
  226. package/dist/elements/internal/InternalDateControl/index.d.ts +1 -0
  227. package/dist/elements/internal/InternalDateControl/index.js +1 -0
  228. package/dist/elements/internal/InternalDateControl/index.js.map +1 -1
  229. package/dist/elements/internal/InternalDateControl/vaadinStyles.d.ts +1 -0
  230. package/dist/elements/internal/InternalDateControl/vaadinStyles.js +73 -0
  231. package/dist/elements/internal/InternalDateControl/vaadinStyles.js.map +1 -0
  232. package/dist/elements/internal/InternalForm/InternalForm.d.ts +2 -0
  233. package/dist/elements/internal/InternalForm/InternalForm.js +26 -29
  234. package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -1
  235. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.d.ts +3 -0
  236. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js +128 -1
  237. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js.map +1 -1
  238. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.d.ts +4 -1
  239. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js +93 -1
  240. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js.map +1 -1
  241. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.d.ts +11 -1
  242. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js +115 -20
  243. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js.map +1 -1
  244. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js +0 -4
  245. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js.map +1 -1
  246. package/dist/elements/internal/InternalResourcePickerControl/index.d.ts +2 -0
  247. package/dist/elements/internal/InternalResourcePickerControl/index.js +2 -0
  248. package/dist/elements/internal/InternalResourcePickerControl/index.js.map +1 -1
  249. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.d.ts +4 -1
  250. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +70 -2
  251. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +1 -1
  252. package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.d.ts +8 -0
  253. package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.js +28 -0
  254. package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.js.map +1 -0
  255. package/dist/elements/internal/InternalSummaryControl/index.d.ts +4 -0
  256. package/dist/elements/internal/InternalSummaryControl/index.js +6 -0
  257. package/dist/elements/internal/InternalSummaryControl/index.js.map +1 -0
  258. package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.d.ts +7 -0
  259. package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.js +75 -0
  260. package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.js.map +1 -0
  261. package/dist/elements/internal/InternalSwitchControl/index.d.ts +4 -0
  262. package/dist/elements/internal/InternalSwitchControl/index.js +6 -0
  263. package/dist/elements/internal/InternalSwitchControl/index.js.map +1 -0
  264. package/dist/elements/internal/InternalTextControl/InternalTextControl.d.ts +4 -1
  265. package/dist/elements/internal/InternalTextControl/InternalTextControl.js +74 -1
  266. package/dist/elements/internal/InternalTextControl/InternalTextControl.js.map +1 -1
  267. package/dist/elements/private/Dialog/Dialog.js +1 -1
  268. package/dist/elements/private/Dialog/Dialog.js.map +1 -1
  269. package/dist/elements/public/AddressForm/AddressForm.d.ts +1 -1
  270. package/dist/elements/public/AddressForm/AddressForm.js +5 -5
  271. package/dist/elements/public/AddressForm/AddressForm.js.map +1 -1
  272. package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.d.ts +14 -0
  273. package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js +109 -0
  274. package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js.map +1 -0
  275. package/dist/elements/public/AdminSubscriptionForm/index.d.ts +13 -0
  276. package/dist/elements/public/AdminSubscriptionForm/index.js +15 -0
  277. package/dist/elements/public/AdminSubscriptionForm/index.js.map +1 -0
  278. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/InternalAdminSubscriptionFormError.d.ts +5 -0
  279. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/InternalAdminSubscriptionFormError.js +17 -0
  280. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/InternalAdminSubscriptionFormError.js.map +1 -0
  281. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/index.d.ts +3 -0
  282. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/index.js +5 -0
  283. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/index.js.map +1 -0
  284. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/InternalAdminSubscriptionFormLoadInCartAction.d.ts +8 -0
  285. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/InternalAdminSubscriptionFormLoadInCartAction.js +40 -0
  286. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/InternalAdminSubscriptionFormLoadInCartAction.js.map +1 -0
  287. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/index.d.ts +4 -0
  288. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/index.js +6 -0
  289. package/dist/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormLoadInCartAction/index.js.map +1 -0
  290. package/dist/elements/public/AdminSubscriptionForm/types.d.ts +5 -0
  291. package/dist/elements/public/AdminSubscriptionForm/types.js +2 -0
  292. package/dist/elements/public/AdminSubscriptionForm/types.js.map +1 -0
  293. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js +4 -1
  294. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js.map +1 -1
  295. package/dist/elements/public/AttributeCard/AttributeCard.js +3 -4
  296. package/dist/elements/public/AttributeCard/AttributeCard.js.map +1 -1
  297. package/dist/elements/public/CartForm/CartForm.d.ts +18 -35
  298. package/dist/elements/public/CartForm/CartForm.js +265 -501
  299. package/dist/elements/public/CartForm/CartForm.js.map +1 -1
  300. package/dist/elements/public/CartForm/index.d.ts +10 -5
  301. package/dist/elements/public/CartForm/index.js +10 -5
  302. package/dist/elements/public/CartForm/index.js.map +1 -1
  303. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.d.ts +33 -0
  304. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.js +293 -0
  305. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.js.map +1 -0
  306. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/index.d.ts +7 -0
  307. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/index.js +9 -0
  308. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/index.js.map +1 -0
  309. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/style.d.ts +1 -0
  310. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/style.js +58 -0
  311. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/style.js.map +1 -0
  312. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/types.d.ts +11 -0
  313. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/types.js +2 -0
  314. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/types.js.map +1 -0
  315. package/dist/elements/public/CartForm/internal/{InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.d.ts → InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.d.ts} +1 -1
  316. package/dist/elements/public/CartForm/internal/{InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.js → InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.js} +5 -5
  317. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.js.map +1 -0
  318. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/index.d.ts +4 -0
  319. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/index.js +6 -0
  320. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/index.js.map +1 -0
  321. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/InternalCartFormPaymentMethodCard.d.ts +6 -0
  322. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/InternalCartFormPaymentMethodCard.js +35 -0
  323. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/InternalCartFormPaymentMethodCard.js.map +1 -0
  324. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/index.d.ts +4 -0
  325. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/index.js +6 -0
  326. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/index.js.map +1 -0
  327. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/types.d.ts +5 -0
  328. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/types.js +2 -0
  329. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/types.js.map +1 -0
  330. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/InternalCartFormPaymentMethodForm.d.ts +13 -0
  331. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/InternalCartFormPaymentMethodForm.js +68 -0
  332. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/InternalCartFormPaymentMethodForm.js.map +1 -0
  333. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/index.d.ts +6 -0
  334. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/index.js +8 -0
  335. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/index.js.map +1 -0
  336. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/types.d.ts +5 -0
  337. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/types.js +2 -0
  338. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/types.js.map +1 -0
  339. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/InternalCartFormTotalsControl.d.ts +9 -0
  340. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/InternalCartFormTotalsControl.js +91 -0
  341. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/InternalCartFormTotalsControl.js.map +1 -0
  342. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/index.d.ts +5 -0
  343. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/index.js +7 -0
  344. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/index.js.map +1 -0
  345. package/dist/elements/public/CartForm/types.d.ts +11 -1
  346. package/dist/elements/public/CartForm/types.js.map +1 -1
  347. package/dist/elements/public/CustomFieldCard/TwoLineCard.js +1 -1
  348. package/dist/elements/public/CustomFieldCard/TwoLineCard.js.map +1 -1
  349. package/dist/elements/public/FormDialog/FormDialog.d.ts +2 -0
  350. package/dist/elements/public/FormDialog/FormDialog.js +9 -6
  351. package/dist/elements/public/FormDialog/FormDialog.js.map +1 -1
  352. package/dist/elements/public/index.d.ts +1 -0
  353. package/dist/elements/public/index.defined.d.ts +1 -0
  354. package/dist/elements/public/index.defined.js +1 -0
  355. package/dist/elements/public/index.defined.js.map +1 -1
  356. package/dist/elements/public/index.js +1 -0
  357. package/dist/elements/public/index.js.map +1 -1
  358. package/dist/mixins/themeable.js +18 -6
  359. package/dist/mixins/themeable.js.map +1 -1
  360. package/package.json +1 -1
  361. package/dist/cdn/shared-004fc193.js +0 -1
  362. package/dist/cdn/shared-08d018f5.js +0 -1
  363. package/dist/cdn/shared-0da6e42c.js +0 -1
  364. package/dist/cdn/shared-0e038fda.js +0 -1
  365. package/dist/cdn/shared-1d8edd03.js +0 -1
  366. package/dist/cdn/shared-365c8437.js +0 -1
  367. package/dist/cdn/shared-421708b0.js +0 -1
  368. package/dist/cdn/shared-57266e2a.js +0 -1
  369. package/dist/cdn/shared-5cb6aca6.js +0 -1
  370. package/dist/cdn/shared-6740ee7a.js +0 -1
  371. package/dist/cdn/shared-7af96c0a.js +0 -1
  372. package/dist/cdn/shared-824d0804.js +0 -1
  373. package/dist/cdn/shared-8f0251e9.js +0 -1
  374. package/dist/cdn/shared-b42c6fe3.js +0 -1
  375. package/dist/cdn/shared-b6376c8f.js +0 -1
  376. package/dist/cdn/shared-d82f9e35.js +0 -1
  377. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.js.map +0 -1
  378. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.d.ts +0 -4
  379. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.js +0 -6
  380. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalSwitchControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSwitchControl/InternalSwitchControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,IAAI,EAAwC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD,MAAM,OAAO,qBAAsB,SAAQ,uBAAuB;IAAlE;;QAQE,WAAM,GAAG,KAAK,CAAC;IA6DjB,CAAC;IApEC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SAC1B,CAAC;IACJ,CAAC;IAID,aAAa;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3D,OAAO,IAAI,CAAA;;;wDAGyC,IAAI,CAAC,KAAK;6CACrB,IAAI,CAAC,UAAU;iDACX,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;cACjE,IAAI,CAAC,aAAa;;;;UAItB,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA,6BAA6B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM;YAC1F,CAAC,CAAC,IAAI,CAAA;;;;0BAIU,QAAQ,CAAC;gBACf,iDAAiD,EAAE,IAAI;gBACvD,iCAAiC,EAAE,IAAI;gBACvC,YAAY,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO;gBACvC,qCAAqC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;gBACjE,gBAAgB,EAAE,IAAI,CAAC,QAAQ;gBAC/B,kDAAkD,EAAE,IAAI;aACzD,CAAC;2BACO,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;;;;4BAIjC,QAAQ,CAAC;gBACf,kDAAkD,EAAE,IAAI;gBACxD,eAAe,EAAE,OAAO;gBACxB,eAAe,EAAE,CAAC,OAAO;gBACzB,SAAS,EAAE,IAAI,CAAC,QAAQ;gBACxB,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ;gBACzB,uBAAuB,EAAE,CAAC,IAAI,CAAC,QAAQ;aACxC,CAAC;;;;;;;;gCAQU,IAAI,CAAC,QAAQ;gCACb,IAAI,CAAC,QAAQ;+BACd,OAAO;8BACR,CAAC,GAAU,EAAE,EAAE;gBACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAiC,CAAC;gBACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnE,CAAC;;;;aAIR;;KAER,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { html, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { classMap } from '../../../utils/class-map';\n\nexport class InternalSwitchControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n invert: { type: Boolean },\n };\n }\n\n invert = false;\n\n renderControl(): TemplateResult {\n const checked = this.invert ? !this._value : !!this._value;\n return html`\n <div class=\"flex items-center leading-xs\">\n <div class=\"flex-1\">\n <label class=\"text-m text-body\" for=\"input\">${this.label}</label>\n <p class=\"text-s text-secondary\">${this.helperText}</p>\n <p class=\"text-s text-error\" ?hidden=${this.disabled || this.readonly}>\n ${this._errorMessage}\n </p>\n </div>\n\n ${this.readonly\n ? html`<p class=\"text-secondary\">${checked ? this.t('checked') : this.t('unchecked')}</p>`\n : html`\n <div style=\"height: 1em\" class=\"flex items-center\">\n <div\n style=\"border-radius: var(--lumo-size-xl); width: calc((var(--lumo-space-m) * 2) + (var(--lumo-space-xs) * 2))\"\n class=${classMap({\n 'cursor-pointer group transition-colors relative': true,\n 'flex flex-shrink-0 items-center': true,\n 'bg-success': !this.disabled && checked,\n 'bg-contrast-20 hover-bg-contrast-30': !this.disabled && !checked,\n 'bg-contrast-10': this.disabled,\n 'focus-within-ring-2 focus-within-ring-primary-50': true,\n })}\n @click=${() => (this._value = !this._value)}\n >\n <div\n style=\"width: var(--lumo-space-m); height: var(--lumo-space-m)\"\n class=${classMap({\n 'transition-all transform block rounded-full m-xs': true,\n 'translate-x-m': checked,\n 'translate-x-0': !checked,\n 'bg-base': this.disabled,\n 'bg-tint': !this.disabled,\n 'group-hover-scale-110': !this.disabled,\n })}\n ></div>\n\n <input\n class=\"opacity-0 absolute inset-0 focus-outline-none\"\n type=\"checkbox\"\n id=\"input\"\n switch\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?checked=${checked}\n @change=${(evt: Event) => {\n const checkbox = evt.currentTarget as HTMLInputElement;\n this._value = this.invert ? !checkbox.checked : checkbox.checked;\n }}\n />\n </div>\n </div>\n `}\n </div>\n `;\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import '../InternalEditableControl/index';
2
+ import '../../public/I18n/index';
3
+ import { InternalSwitchControl as Control } from './InternalSwitchControl';
4
+ export { Control as InternalSwitchControl };
@@ -0,0 +1,6 @@
1
+ import "../InternalEditableControl/index.js";
2
+ import "../../public/I18n/index.js";
3
+ import { InternalSwitchControl as Control } from "./InternalSwitchControl.js";
4
+ customElements.define('foxy-internal-switch-control', Control);
5
+ export { Control as InternalSwitchControl };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSwitchControl/index.ts"],"names":[],"mappings":"AAAA,6CAA0C;AAC1C,oCAAiC;AAEjC,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,mCAAgC;AAE3E,cAAc,CAAC,MAAM,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;AAE/D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,CAAC","sourcesContent":["import '../InternalEditableControl/index';\nimport '../../public/I18n/index';\n\nimport { InternalSwitchControl as Control } from './InternalSwitchControl';\n\ncustomElements.define('foxy-internal-switch-control', Control);\n\nexport { Control as InternalSwitchControl };\n"]}
@@ -1,4 +1,4 @@
1
- import type { PropertyDeclarations, TemplateResult } from 'lit-element';
1
+ import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';
2
2
  import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
3
3
  /**
4
4
  * Internal control displaying a basic text box.
@@ -8,9 +8,12 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
8
8
  */
9
9
  export declare class InternalTextControl extends InternalEditableControl {
10
10
  static get properties(): PropertyDeclarations;
11
+ static get styles(): CSSResultArray;
12
+ layout: 'summary-item' | 'standalone' | null;
11
13
  prefix: string | null;
12
14
  suffix: string | null;
13
15
  renderControl(): TemplateResult;
14
16
  protected get _value(): string;
15
17
  protected set _value(newValue: string);
18
+ private __renderSummaryItemLayout;
16
19
  }
@@ -1,6 +1,7 @@
1
1
  import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
+ import { html, css, svg } from 'lit-element';
2
3
  import { ifDefined } from 'lit-html/directives/if-defined';
3
- import { html } from 'lit-element';
4
+ import { classMap } from "../../../utils/class-map.js";
4
5
  /**
5
6
  * Internal control displaying a basic text box.
6
7
  *
@@ -10,17 +11,34 @@ import { html } from 'lit-element';
10
11
  export class InternalTextControl extends InternalEditableControl {
11
12
  constructor() {
12
13
  super(...arguments);
14
+ this.layout = null;
13
15
  this.prefix = null;
14
16
  this.suffix = null;
15
17
  }
16
18
  static get properties() {
17
19
  return {
18
20
  ...super.properties,
21
+ layout: {},
19
22
  prefix: {},
20
23
  suffix: {},
21
24
  };
22
25
  }
26
+ static get styles() {
27
+ return [
28
+ super.styles,
29
+ css `input::-webkit-contacts-auto-fill-button{
30
+ visibility:hidden;
31
+ display:none !important;
32
+ pointer-events:none;
33
+ position:absolute;
34
+ right:0;
35
+ }
36
+ `,
37
+ ];
38
+ }
23
39
  renderControl() {
40
+ if (this.layout === 'summary-item')
41
+ return this.__renderSummaryItemLayout();
24
42
  return html `
25
43
  <vaadin-text-field
26
44
  error-message=${ifDefined(this._errorMessage)}
@@ -51,5 +69,60 @@ export class InternalTextControl extends InternalEditableControl {
51
69
  set _value(newValue) {
52
70
  super._value = newValue;
53
71
  }
72
+ __renderSummaryItemLayout() {
73
+ return html `
74
+ <div class="flex items-start gap-m leading-xs">
75
+ <div>
76
+ <label class="text-m text-body" for="input">${this.label}</label>
77
+ <p class="text-s text-secondary">${this.helperText}</p>
78
+ <p class="text-s text-error" ?hidden=${this.disabled || this.readonly}>
79
+ ${this._errorMessage}
80
+ </p>
81
+ </div>
82
+
83
+ <div class="flex-1 flex items-center gap-xs">
84
+ <input
85
+ placeholder=${this.placeholder}
86
+ class=${classMap({
87
+ 'w-full appearance-none text-right bg-transparent transition-colors': true,
88
+ 'text-m rounded-s focus-outline-none': true,
89
+ 'text-secondary': this.readonly,
90
+ 'text-disabled': this.disabled,
91
+ 'font-medium': !this.readonly,
92
+ })}
93
+ type="text"
94
+ id="input"
95
+ .value=${this._value}
96
+ ?disabled=${this.disabled}
97
+ ?readonly=${this.readonly}
98
+ @keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
99
+ @input=${(evt) => {
100
+ evt.stopPropagation();
101
+ this._value = evt.target.value;
102
+ }}
103
+ />
104
+
105
+ <button
106
+ aria-label=${this.t('clear')}
107
+ class=${classMap({
108
+ 'rounded-full transition-colors': true,
109
+ 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,
110
+ 'cursor-pointer text-tertiary hover-text-body': !this.disabled,
111
+ 'cursor-default text-disabled': this.disabled,
112
+ })}
113
+ style="width: 1em; height: 1em;"
114
+ ?disabled=${this.disabled}
115
+ ?hidden=${this.readonly || !this._value}
116
+ @click=${() => {
117
+ this._value = '';
118
+ this.dispatchEvent(new CustomEvent('clear'));
119
+ }}
120
+ >
121
+ ${svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" style="width: 1em; height: 1em; transform: scale(1.25); margin-right: -0.16em"><path d="M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" /></svg>`}
122
+ </button>
123
+ </div>
124
+ </div>
125
+ `;
126
+ }
54
127
  }
55
128
  //# sourceMappingURL=InternalTextControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InternalTextControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTextControl/InternalTextControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IAAhE;;QASE,WAAM,GAAkB,IAAI,CAAC;QAE7B,WAAM,GAAkB,IAAI,CAAC;IAkC/B,CAAC;IA5CC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAMD,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;;gCAEM,CAAC,IAAI,CAAC,MAAM;oBACxB,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAM;mBACT,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;iBACvE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAiC,CAAC;YACpD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;;UAEC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,sBAAsB,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE;UAChE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,+CAA+C,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE;;KAE9F,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { TextFieldElement } from '@vaadin/vaadin-text-field';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic text box.\n *\n * @since 1.17.0\n * @element foxy-internal-text-control\n */\nexport class InternalTextControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n prefix: {},\n suffix: {},\n };\n }\n\n prefix: string | null = null;\n\n suffix: string | null = null;\n\n renderControl(): TemplateResult {\n return html`\n <vaadin-text-field\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n ?clear-button-visible=${!this.suffix}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: CustomEvent) => {\n const field = evt.currentTarget as TextFieldElement;\n this._value = field.value;\n }}\n >\n ${this.prefix ? html`<div slot=\"prefix\">${this.prefix}</div>` : ''}\n ${this.suffix ? html`<div class=\"pr-s font-medium\" slot=\"suffix\">${this.suffix}</div>` : ''}\n </vaadin-text-field>\n `;\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalTextControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTextControl/InternalTextControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IAAhE;;QAyBE,WAAM,GAAyC,IAAI,CAAC;QAEpD,WAAM,GAAkB,IAAI,CAAC;QAE7B,WAAM,GAAkB,IAAI,CAAC;IA4F/B,CAAC;IAxHC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO;YACL,KAAK,CAAC,MAAM;YACZ,GAAG;;;;;;;OAQF;SACF,CAAC;IACJ,CAAC;IAQD,aAAa;QACX,IAAI,IAAI,CAAC,MAAM,KAAK,cAAc;YAAE,OAAO,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAE5E,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;;gCAEM,CAAC,IAAI,CAAC,MAAM;oBACxB,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAM;mBACT,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;iBACvE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAiC,CAAC;YACpD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;;UAEC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,sBAAsB,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE;UAChE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,+CAA+C,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE;;KAE9F,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;IAEO,yBAAyB;QAC/B,OAAO,IAAI,CAAA;;;wDAGyC,IAAI,CAAC,KAAK;6CACrB,IAAI,CAAC,UAAU;iDACX,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;cACjE,IAAI,CAAC,aAAa;;;;;;0BAMN,IAAI,CAAC,WAAW;oBACtB,QAAQ,CAAC;YACf,oEAAoE,EAAE,IAAI;YAC1E,qCAAqC,EAAE,IAAI;YAC3C,gBAAgB,EAAE,IAAI,CAAC,QAAQ;YAC/B,eAAe,EAAE,IAAI,CAAC,QAAQ;YAC9B,aAAa,EAAE,CAAC,IAAI,CAAC,QAAQ;SAC9B,CAAC;;;qBAGO,IAAI,CAAC,MAAM;wBACR,IAAI,CAAC,QAAQ;wBACb,IAAI,CAAC,QAAQ;uBACd,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;qBACvE,CAAC,GAAU,EAAE,EAAE;YACtB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAI,GAAG,CAAC,MAA2B,CAAC,KAAK,CAAC;QACvD,CAAC;;;;yBAIY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;oBACpB,QAAQ,CAAC;YACf,gCAAgC,EAAE,IAAI;YACtC,uDAAuD,EAAE,IAAI;YAC7D,8CAA8C,EAAE,CAAC,IAAI,CAAC,QAAQ;YAC9D,8BAA8B,EAAE,IAAI,CAAC,QAAQ;SAC9C,CAAC;;wBAEU,IAAI,CAAC,QAAQ;sBACf,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;qBAC9B,GAAG,EAAE;YACZ,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAC/C,CAAC;;cAEC,GAAG,CAAA,sWAAsW;;;;KAIlX,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { TextFieldElement } from '@vaadin/vaadin-text-field';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { html, css, svg } from 'lit-element';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\n\n/**\n * Internal control displaying a basic text box.\n *\n * @since 1.17.0\n * @element foxy-internal-text-control\n */\nexport class InternalTextControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n layout: {},\n prefix: {},\n suffix: {},\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n input::-webkit-contacts-auto-fill-button {\n visibility: hidden;\n display: none !important;\n pointer-events: none;\n position: absolute;\n right: 0;\n }\n `,\n ];\n }\n\n layout: 'summary-item' | 'standalone' | null = null;\n\n prefix: string | null = null;\n\n suffix: string | null = null;\n\n renderControl(): TemplateResult {\n if (this.layout === 'summary-item') return this.__renderSummaryItemLayout();\n\n return html`\n <vaadin-text-field\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n ?clear-button-visible=${!this.suffix}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: CustomEvent) => {\n const field = evt.currentTarget as TextFieldElement;\n this._value = field.value;\n }}\n >\n ${this.prefix ? html`<div slot=\"prefix\">${this.prefix}</div>` : ''}\n ${this.suffix ? html`<div class=\"pr-s font-medium\" slot=\"suffix\">${this.suffix}</div>` : ''}\n </vaadin-text-field>\n `;\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n\n private __renderSummaryItemLayout() {\n return html`\n <div class=\"flex items-start gap-m leading-xs\">\n <div>\n <label class=\"text-m text-body\" for=\"input\">${this.label}</label>\n <p class=\"text-s text-secondary\">${this.helperText}</p>\n <p class=\"text-s text-error\" ?hidden=${this.disabled || this.readonly}>\n ${this._errorMessage}\n </p>\n </div>\n\n <div class=\"flex-1 flex items-center gap-xs\">\n <input\n placeholder=${this.placeholder}\n class=${classMap({\n 'w-full appearance-none text-right bg-transparent transition-colors': true,\n 'text-m rounded-s focus-outline-none': true,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n 'font-medium': !this.readonly,\n })}\n type=\"text\"\n id=\"input\"\n .value=${this._value}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: Event) => {\n evt.stopPropagation();\n this._value = (evt.target as HTMLInputElement).value;\n }}\n />\n\n <button\n aria-label=${this.t('clear')}\n class=${classMap({\n 'rounded-full transition-colors': true,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n 'cursor-pointer text-tertiary hover-text-body': !this.disabled,\n 'cursor-default text-disabled': this.disabled,\n })}\n style=\"width: 1em; height: 1em;\"\n ?disabled=${this.disabled}\n ?hidden=${this.readonly || !this._value}\n @click=${() => {\n this._value = '';\n this.dispatchEvent(new CustomEvent('clear'));\n }}\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" style=\"width: 1em; height: 1em; transform: scale(1.25); margin-right: -0.16em\"><path d=\"M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z\" /></svg>`}\n </button>\n </div>\n </div>\n `;\n }\n}\n"]}
@@ -63,7 +63,7 @@ export class Dialog extends Base {
63
63
  }
64
64
 
65
65
  .max-h-alert{
66
- max-height:calc(100vh - var(--lumo-size-l) - var(--lumo-space-m) * 2);
66
+ max-height:calc(100dvh - var(--lumo-size-l) - var(--lumo-space-m) * 2);
67
67
  }
68
68
  `,
69
69
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../../src/elements/private/Dialog/Dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultArray, LitElement, PropertyDeclarations, css } from 'lit-element';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { API } from '../../public/NucleonElement/API';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DialogHideEvent } from './DialogHideEvent';\nimport { DialogShowEvent } from './DialogShowEvent';\nimport { DialogWindow } from './DialogWindow';\nimport { FetchEvent } from '../../public/NucleonElement/FetchEvent';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst Base = TranslatableMixin(ConfigurableMixin(ThemeableMixin(InferrableMixin(LitElement))));\n\nexport abstract class Dialog extends Base {\n /**\n * Selector of an element that will serve as a mounting point to all dialog windows.\n * It's `<body>` by default, but you can add your own element with `id=\"foxy-dialog-windows-host\"`\n * anywhere in the light DOM to render dialogs there.\n */\n static readonly dialogWindowsHost = '#foxy-dialog-windows-host, body';\n\n /** Map of all dialog windows linked to their dialog elements. */\n static readonly dialogWindows = new WeakMap<Dialog, DialogWindow>();\n\n /** List of all currently open dialogs. */\n static readonly openDialogs: Dialog[] = [];\n\n /**\n * Instance of this event will be dispatched on a dialog when it finishes entering the screen.\n * This event does not bubble and can't cross shadow DOM boundary.\n */\n static readonly ShowEvent = DialogShowEvent;\n\n /**\n * Instance of this event will be dispatched on a dialog when it finishes leaving the screen.\n * This event does not bubble and can't cross shadow DOM boundary.\n */\n static readonly HideEvent = DialogHideEvent;\n\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __connected: { attribute: false },\n __visible: { attribute: false },\n centered: { type: Boolean },\n closable: { type: Boolean },\n editable: { type: Boolean },\n header: { type: String },\n group: {},\n alert: { type: Boolean },\n wide: { type: Boolean },\n open: { type: Boolean, noAccessor: true },\n };\n }\n\n /** @readonly */\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .grid-cols-header {\n grid-template-columns: 1fr auto 1fr;\n }\n\n .scale-85 {\n --tw-scale-x: 0.85;\n --tw-scale-y: 0.85;\n }\n\n .max-h-alert {\n max-height: calc(100vh - var(--lumo-size-l) - var(--lumo-space-m) * 2);\n }\n `,\n ];\n }\n\n /** When true, renders Close button in the header. */\n closable = false;\n\n /** When true, renders Save button in the header. */\n editable = false;\n\n /** Header text or a i18next key for it. */\n header = '';\n\n /** NucleonElement's Rumour sync group. */\n group = '';\n\n /** When true, centers a dialog on the screen and does not animate the stack under. */\n alert = false;\n\n /** When true, dialog window will a larger maximum width. */\n wide = false;\n\n private __returnFocusTo?: HTMLElement;\n\n private __handleKeyDown = (evt: KeyboardEvent) => {\n if (evt.key === 'Escape' && Dialog.openDialogs[0] === this && this.closable)\n this.hide(this.editable);\n };\n\n private __connected = false;\n\n private __visible = false;\n\n /** True if dialog is mounted and has finished entering the screen. */\n get open(): boolean {\n return this.__visible && this.__connected;\n }\n\n set open(newValue: boolean) {\n newValue === this.open ? void 0 : newValue ? this.show() : this.hide(this.editable);\n }\n\n /** @readonly */\n connectedCallback(): void {\n super.connectedCallback();\n addEventListener('keydown', this.__handleKeyDown);\n }\n\n /** @readonly */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n removeEventListener('keydown', this.__handleKeyDown);\n\n Dialog.dialogWindows.get(this)?.remove();\n Dialog.dialogWindows.delete(this);\n }\n\n /** @readonly */\n createRenderRoot(): Element | ShadowRoot {\n const dialogWindow = new DialogWindow();\n const dialogWindowsHosts = document.querySelectorAll(Dialog.dialogWindowsHost);\n const dialogWindowsHost = Array.from(dialogWindowsHosts).pop();\n\n dialogWindow.addEventListener('fetch', (evt: Event) => {\n if (evt instanceof FetchEvent) {\n evt.stopImmediatePropagation();\n evt.preventDefault();\n evt.respondWith(new API(this).fetch(evt.request));\n }\n });\n\n dialogWindowsHost?.appendChild(dialogWindow);\n Dialog.dialogWindows.set(this, dialogWindow);\n\n return dialogWindow.shadowRoot!;\n }\n\n /** @readonly */\n render(content?: () => TemplateResult): TemplateResult {\n if (!this.__connected) return html``;\n\n const isFirst = Dialog.openDialogs[0] === this;\n const isSecond = Dialog.openDialogs[1] === this;\n const isThird = Dialog.openDialogs[2] === this;\n const isForthAndGreater = !isFirst && !isSecond && !isThird;\n\n return html`\n <div\n class=${classMap({ 'z-50 fixed inset-0': true, 'pointer-events-none': !this.__visible })}\n >\n <div\n id=\"backdrop\"\n class=${classMap({\n 'select-none ease-in-out transition duration-500 absolute inset-0 bg-shade-50 focus-outline-none':\n true,\n 'opacity-100': this.__visible,\n 'opacity-0': !this.__visible,\n })}\n tabindex=\"-1\"\n @click=${() => this.closable && this.hide(this.editable)}\n ></div>\n\n <div\n tabindex=\"0\"\n role=\"dialog\"\n aria-labelledby=\"dialog-title\"\n class=${classMap({\n 'transform ease-in-out transition duration-500 relative h-full ml-auto': true,\n 'origin-bottom sm-origin-center': true,\n 'focus-outline-none': true,\n 'sm-max-w-modal': !this.wide,\n 'sm-max-w-modal-wide': this.wide,\n 'flex justify-center items-end sm-items-center mr-auto': this.alert,\n 'translate-y-full sm-translate-y-0': !this.__visible,\n 'sm-translate-x-full': !this.alert && !this.__visible,\n 'sm-opacity-0 sm-scale-110': this.alert && !this.__visible,\n 'translate-y-0 translate-x-0': isFirst && this.__visible,\n 'scale-95 -translate-y-s sm-translate-y-0': isSecond && this.__visible,\n 'scale-90 -translate-y-m sm-translate-y-0': isThird && this.__visible,\n 'opacity-0 scale-85 -translate-y-l sm-translate-y-0':\n isForthAndGreater && this.__visible,\n })}\n >\n <div\n class=${classMap({\n 'overflow-hidden flex flex-col bg-base rounded-t-l sm-rounded-b-l': true,\n 'absolute inset-0 mt-xl sm-m-xl': !this.alert,\n 'shadow-xxl': this.__visible,\n 'flex-1': this.alert,\n })}\n >\n <div\n class=\"h-l grid grid-cols-header text-m font-lumo font-medium border-b border-contrast-10\"\n >\n ${this.closable && !this.hiddenSelector.matches('close-button', true)\n ? html`\n <vaadin-button\n id=\"close-button\"\n theme=\"tertiary-inline\"\n class=\"mr-auto m-s px-s\"\n ?disabled=${this.disabledSelector.matches('close-button', true)}\n @click=${() => this.hide(this.editable)}\n >\n <foxy-i18n\n lang=${this.lang}\n key=${this.editable ? 'cancel' : 'close'}\n ns=${this.ns}\n >\n </foxy-i18n>\n </vaadin-button>\n `\n : html`<div></div>`}\n\n <h1 id=\"dialog-title\" class=\"truncate self-center text-center\">\n <foxy-i18n ns=${this.ns} lang=${this.lang} key=${this.header}></foxy-i18n>\n </h1>\n\n ${this.editable && !this.hiddenSelector.matches('save-button', true)\n ? html`\n <vaadin-button\n data-testid=\"save-button\"\n ?disabled=${this.disabledSelector.matches('save-button', true)}\n theme=\"primary\"\n class=\"ml-auto h-auto min-h-0 min-w-0 m-xs px-m\"\n @click=${this.save}\n >\n <foxy-i18n ns=${this.ns} lang=${this.lang} key=\"save\"></foxy-i18n>\n </vaadin-button>\n `\n : html`<div></div>`}\n </div>\n\n <div\n class=${classMap({\n 'flex-1 overflow-y-auto overflow-x-hidden overscroll-contain': true,\n 'max-h-alert': this.alert,\n })}\n >\n <div class=\"p-m relative\">${content?.()}</div>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n\n const dialogWindow = Dialog.dialogWindows.get(this);\n\n if (dialogWindow) {\n dialogWindow.disabledControls = this.disabledControls;\n dialogWindow.disabled = this.disabled;\n\n dialogWindow.readonlyControls = this.readonlyControls;\n dialogWindow.readonly = this.readonly;\n\n dialogWindow.hiddenControls = this.hiddenControls;\n dialogWindow.hidden = this.hidden;\n\n dialogWindow.group = this.group;\n dialogWindow.lang = this.lang;\n dialogWindow.ns = this.ns;\n }\n }\n\n /**\n * Hides the dialog. Returns a promise that resolves when the dialog\n * finishes leaving the screen.\n *\n * @param cancelled Set this to `true` if closing an editable dialog without saving changes.\n */\n async hide(cancelled = false): Promise<void> {\n this.__returnFocusTo?.focus();\n\n await this.__setOpenDialogs(Dialog.openDialogs.filter(d => d !== this));\n await this.__setConnected(false);\n\n this.dispatchEvent(new Dialog.HideEvent(!!cancelled));\n }\n\n /**\n * Shows the dialog. Returns a promise that resolves when the dialog\n * finishes entering the screen.\n *\n * @param returnFocusTo If provided, the dialog will call `.focus()` on that element once it's closed.\n */\n async show(returnFocusTo?: HTMLElement): Promise<void> {\n this.__returnFocusTo = returnFocusTo;\n\n await this.__setConnected(true);\n await this.__setOpenDialogs([this, ...Dialog.openDialogs]);\n\n this.renderRoot.querySelector<HTMLDivElement>('[role=\"dialog\"]')?.focus();\n this.dispatchEvent(new Dialog.ShowEvent());\n }\n\n /** Alias for `dialog.hide(false)`. */\n async save(): Promise<void> {\n await this.hide(false);\n }\n\n private async __setOpenDialogs(newValue: Dialog[]) {\n Dialog.openDialogs.length = 0;\n Dialog.openDialogs.push(...newValue);\n\n await Promise.all([\n // animate dialog stack\n Promise.all(Dialog.openDialogs.map(dialog => dialog.requestUpdate())),\n\n // trigger exit transition\n new Promise<void>(resolve => {\n const backdrop = this.renderRoot.querySelector('#backdrop');\n\n if (backdrop) {\n backdrop.addEventListener('transitionend', () => resolve(), { once: true });\n setTimeout(() => resolve(), 2000);\n } else {\n resolve();\n }\n\n this.__visible = Dialog.openDialogs.includes(this);\n }),\n ]);\n }\n\n private async __setConnected(newValue: boolean) {\n this.__connected = newValue;\n await this.updateComplete.then(() => this.getBoundingClientRect());\n }\n}\n\ncustomElements.define('foxy-dialog-window', DialogWindow);\n"]}
1
+ {"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../../src/elements/private/Dialog/Dialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultArray, LitElement, PropertyDeclarations, css } from 'lit-element';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { API } from '../../public/NucleonElement/API';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { DialogHideEvent } from './DialogHideEvent';\nimport { DialogShowEvent } from './DialogShowEvent';\nimport { DialogWindow } from './DialogWindow';\nimport { FetchEvent } from '../../public/NucleonElement/FetchEvent';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { InferrableMixin } from '../../../mixins/inferrable';\n\nconst Base = TranslatableMixin(ConfigurableMixin(ThemeableMixin(InferrableMixin(LitElement))));\n\nexport abstract class Dialog extends Base {\n /**\n * Selector of an element that will serve as a mounting point to all dialog windows.\n * It's `<body>` by default, but you can add your own element with `id=\"foxy-dialog-windows-host\"`\n * anywhere in the light DOM to render dialogs there.\n */\n static readonly dialogWindowsHost = '#foxy-dialog-windows-host, body';\n\n /** Map of all dialog windows linked to their dialog elements. */\n static readonly dialogWindows = new WeakMap<Dialog, DialogWindow>();\n\n /** List of all currently open dialogs. */\n static readonly openDialogs: Dialog[] = [];\n\n /**\n * Instance of this event will be dispatched on a dialog when it finishes entering the screen.\n * This event does not bubble and can't cross shadow DOM boundary.\n */\n static readonly ShowEvent = DialogShowEvent;\n\n /**\n * Instance of this event will be dispatched on a dialog when it finishes leaving the screen.\n * This event does not bubble and can't cross shadow DOM boundary.\n */\n static readonly HideEvent = DialogHideEvent;\n\n /** @readonly */\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n __connected: { attribute: false },\n __visible: { attribute: false },\n centered: { type: Boolean },\n closable: { type: Boolean },\n editable: { type: Boolean },\n header: { type: String },\n group: {},\n alert: { type: Boolean },\n wide: { type: Boolean },\n open: { type: Boolean, noAccessor: true },\n };\n }\n\n /** @readonly */\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n .grid-cols-header {\n grid-template-columns: 1fr auto 1fr;\n }\n\n .scale-85 {\n --tw-scale-x: 0.85;\n --tw-scale-y: 0.85;\n }\n\n .max-h-alert {\n max-height: calc(100dvh - var(--lumo-size-l) - var(--lumo-space-m) * 2);\n }\n `,\n ];\n }\n\n /** When true, renders Close button in the header. */\n closable = false;\n\n /** When true, renders Save button in the header. */\n editable = false;\n\n /** Header text or a i18next key for it. */\n header = '';\n\n /** NucleonElement's Rumour sync group. */\n group = '';\n\n /** When true, centers a dialog on the screen and does not animate the stack under. */\n alert = false;\n\n /** When true, dialog window will a larger maximum width. */\n wide = false;\n\n private __returnFocusTo?: HTMLElement;\n\n private __handleKeyDown = (evt: KeyboardEvent) => {\n if (evt.key === 'Escape' && Dialog.openDialogs[0] === this && this.closable)\n this.hide(this.editable);\n };\n\n private __connected = false;\n\n private __visible = false;\n\n /** True if dialog is mounted and has finished entering the screen. */\n get open(): boolean {\n return this.__visible && this.__connected;\n }\n\n set open(newValue: boolean) {\n newValue === this.open ? void 0 : newValue ? this.show() : this.hide(this.editable);\n }\n\n /** @readonly */\n connectedCallback(): void {\n super.connectedCallback();\n addEventListener('keydown', this.__handleKeyDown);\n }\n\n /** @readonly */\n disconnectedCallback(): void {\n super.disconnectedCallback();\n removeEventListener('keydown', this.__handleKeyDown);\n\n Dialog.dialogWindows.get(this)?.remove();\n Dialog.dialogWindows.delete(this);\n }\n\n /** @readonly */\n createRenderRoot(): Element | ShadowRoot {\n const dialogWindow = new DialogWindow();\n const dialogWindowsHosts = document.querySelectorAll(Dialog.dialogWindowsHost);\n const dialogWindowsHost = Array.from(dialogWindowsHosts).pop();\n\n dialogWindow.addEventListener('fetch', (evt: Event) => {\n if (evt instanceof FetchEvent) {\n evt.stopImmediatePropagation();\n evt.preventDefault();\n evt.respondWith(new API(this).fetch(evt.request));\n }\n });\n\n dialogWindowsHost?.appendChild(dialogWindow);\n Dialog.dialogWindows.set(this, dialogWindow);\n\n return dialogWindow.shadowRoot!;\n }\n\n /** @readonly */\n render(content?: () => TemplateResult): TemplateResult {\n if (!this.__connected) return html``;\n\n const isFirst = Dialog.openDialogs[0] === this;\n const isSecond = Dialog.openDialogs[1] === this;\n const isThird = Dialog.openDialogs[2] === this;\n const isForthAndGreater = !isFirst && !isSecond && !isThird;\n\n return html`\n <div\n class=${classMap({ 'z-50 fixed inset-0': true, 'pointer-events-none': !this.__visible })}\n >\n <div\n id=\"backdrop\"\n class=${classMap({\n 'select-none ease-in-out transition duration-500 absolute inset-0 bg-shade-50 focus-outline-none':\n true,\n 'opacity-100': this.__visible,\n 'opacity-0': !this.__visible,\n })}\n tabindex=\"-1\"\n @click=${() => this.closable && this.hide(this.editable)}\n ></div>\n\n <div\n tabindex=\"0\"\n role=\"dialog\"\n aria-labelledby=\"dialog-title\"\n class=${classMap({\n 'transform ease-in-out transition duration-500 relative h-full ml-auto': true,\n 'origin-bottom sm-origin-center': true,\n 'focus-outline-none': true,\n 'sm-max-w-modal': !this.wide,\n 'sm-max-w-modal-wide': this.wide,\n 'flex justify-center items-end sm-items-center mr-auto': this.alert,\n 'translate-y-full sm-translate-y-0': !this.__visible,\n 'sm-translate-x-full': !this.alert && !this.__visible,\n 'sm-opacity-0 sm-scale-110': this.alert && !this.__visible,\n 'translate-y-0 translate-x-0': isFirst && this.__visible,\n 'scale-95 -translate-y-s sm-translate-y-0': isSecond && this.__visible,\n 'scale-90 -translate-y-m sm-translate-y-0': isThird && this.__visible,\n 'opacity-0 scale-85 -translate-y-l sm-translate-y-0':\n isForthAndGreater && this.__visible,\n })}\n >\n <div\n class=${classMap({\n 'overflow-hidden flex flex-col bg-base rounded-t-l sm-rounded-b-l': true,\n 'absolute inset-0 mt-xl sm-m-xl': !this.alert,\n 'shadow-xxl': this.__visible,\n 'flex-1': this.alert,\n })}\n >\n <div\n class=\"h-l grid grid-cols-header text-m font-lumo font-medium border-b border-contrast-10\"\n >\n ${this.closable && !this.hiddenSelector.matches('close-button', true)\n ? html`\n <vaadin-button\n id=\"close-button\"\n theme=\"tertiary-inline\"\n class=\"mr-auto m-s px-s\"\n ?disabled=${this.disabledSelector.matches('close-button', true)}\n @click=${() => this.hide(this.editable)}\n >\n <foxy-i18n\n lang=${this.lang}\n key=${this.editable ? 'cancel' : 'close'}\n ns=${this.ns}\n >\n </foxy-i18n>\n </vaadin-button>\n `\n : html`<div></div>`}\n\n <h1 id=\"dialog-title\" class=\"truncate self-center text-center\">\n <foxy-i18n ns=${this.ns} lang=${this.lang} key=${this.header}></foxy-i18n>\n </h1>\n\n ${this.editable && !this.hiddenSelector.matches('save-button', true)\n ? html`\n <vaadin-button\n data-testid=\"save-button\"\n ?disabled=${this.disabledSelector.matches('save-button', true)}\n theme=\"primary\"\n class=\"ml-auto h-auto min-h-0 min-w-0 m-xs px-m\"\n @click=${this.save}\n >\n <foxy-i18n ns=${this.ns} lang=${this.lang} key=\"save\"></foxy-i18n>\n </vaadin-button>\n `\n : html`<div></div>`}\n </div>\n\n <div\n class=${classMap({\n 'flex-1 overflow-y-auto overflow-x-hidden overscroll-contain': true,\n 'max-h-alert': this.alert,\n })}\n >\n <div class=\"p-m relative\">${content?.()}</div>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n\n const dialogWindow = Dialog.dialogWindows.get(this);\n\n if (dialogWindow) {\n dialogWindow.disabledControls = this.disabledControls;\n dialogWindow.disabled = this.disabled;\n\n dialogWindow.readonlyControls = this.readonlyControls;\n dialogWindow.readonly = this.readonly;\n\n dialogWindow.hiddenControls = this.hiddenControls;\n dialogWindow.hidden = this.hidden;\n\n dialogWindow.group = this.group;\n dialogWindow.lang = this.lang;\n dialogWindow.ns = this.ns;\n }\n }\n\n /**\n * Hides the dialog. Returns a promise that resolves when the dialog\n * finishes leaving the screen.\n *\n * @param cancelled Set this to `true` if closing an editable dialog without saving changes.\n */\n async hide(cancelled = false): Promise<void> {\n this.__returnFocusTo?.focus();\n\n await this.__setOpenDialogs(Dialog.openDialogs.filter(d => d !== this));\n await this.__setConnected(false);\n\n this.dispatchEvent(new Dialog.HideEvent(!!cancelled));\n }\n\n /**\n * Shows the dialog. Returns a promise that resolves when the dialog\n * finishes entering the screen.\n *\n * @param returnFocusTo If provided, the dialog will call `.focus()` on that element once it's closed.\n */\n async show(returnFocusTo?: HTMLElement): Promise<void> {\n this.__returnFocusTo = returnFocusTo;\n\n await this.__setConnected(true);\n await this.__setOpenDialogs([this, ...Dialog.openDialogs]);\n\n this.renderRoot.querySelector<HTMLDivElement>('[role=\"dialog\"]')?.focus();\n this.dispatchEvent(new Dialog.ShowEvent());\n }\n\n /** Alias for `dialog.hide(false)`. */\n async save(): Promise<void> {\n await this.hide(false);\n }\n\n private async __setOpenDialogs(newValue: Dialog[]) {\n Dialog.openDialogs.length = 0;\n Dialog.openDialogs.push(...newValue);\n\n await Promise.all([\n // animate dialog stack\n Promise.all(Dialog.openDialogs.map(dialog => dialog.requestUpdate())),\n\n // trigger exit transition\n new Promise<void>(resolve => {\n const backdrop = this.renderRoot.querySelector('#backdrop');\n\n if (backdrop) {\n backdrop.addEventListener('transitionend', () => resolve(), { once: true });\n setTimeout(() => resolve(), 2000);\n } else {\n resolve();\n }\n\n this.__visible = Dialog.openDialogs.includes(this);\n }),\n ]);\n }\n\n private async __setConnected(newValue: boolean) {\n this.__connected = newValue;\n await this.updateComplete.then(() => this.getBoundingClientRect());\n }\n}\n\ncustomElements.define('foxy-dialog-window', DialogWindow);\n"]}
@@ -19,7 +19,7 @@ export declare class AddressForm extends Base<Data> {
19
19
  private __ignoreAddressRestrictionsOptions;
20
20
  private __countrySetValue;
21
21
  get hiddenSelector(): BooleanSelector;
22
- get headerSubtitleKey(): string;
22
+ get headerTitleKey(): string;
23
23
  renderBody(): TemplateResult;
24
24
  protected _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult>;
25
25
  private get __countryOptions();
@@ -46,16 +46,16 @@ export class AddressForm extends Base {
46
46
  const alwaysHidden = [super.hiddenSelector.toString()];
47
47
  const isDefault = !!((_a = this.data) === null || _a === void 0 ? void 0 : _a.is_default_shipping) || !!((_b = this.data) === null || _b === void 0 ? void 0 : _b.is_default_billing);
48
48
  if (isDefault)
49
- alwaysHidden.unshift('delete', 'address-name');
49
+ alwaysHidden.unshift('delete', 'address-name', 'header:copy-id');
50
50
  return new BooleanSelector(alwaysHidden.join(' ').trim());
51
51
  }
52
- get headerSubtitleKey() {
52
+ get headerTitleKey() {
53
53
  var _a, _b;
54
54
  if ((_a = this.data) === null || _a === void 0 ? void 0 : _a.is_default_shipping)
55
- return 'subtitle_default_shipping';
55
+ return 'title_default_shipping';
56
56
  if ((_b = this.data) === null || _b === void 0 ? void 0 : _b.is_default_billing)
57
- return 'subtitle_default_billing';
58
- return 'subtitle_custom';
57
+ return 'title_default_billing';
58
+ return super.headerTitleKey;
59
59
  }
60
60
  renderBody() {
61
61
  const regionOptions = this.__regionOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"AddressForm.js","sourceRoot":"","sources":["../../../../src/elements/public/AddressForm/AddressForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Data } from './types';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { countries } from './countries';\nimport { html } from 'lit-html';\n\nconst NS = 'address-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Basic form displaying customer address.\n *\n * @element foxy-address-form\n * @since 1.2.0\n */\nexport class AddressForm extends Base<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ address_name: v }) => (v && v.length > 0) || 'address-name:v8n_required',\n ({ address_name: v }) => !v || v.length <= 100 || 'address-name:v8n_too_long',\n ({ first_name: v }) => !v || v.length <= 50 || 'first-name:v8n_too_long',\n ({ last_name: v }) => !v || v.length <= 50 || 'last-name:v8n_too_long',\n ({ region: v }) => !v || v.length <= 50 || 'region:v8n_too_long',\n ({ city: v }) => !v || v.length <= 50 || 'city:v8n_too_long',\n ({ phone: v }) => !v || v.length <= 50 || 'phone:v8n_too_long',\n ({ company: v }) => !v || v.length <= 50 || 'company:v8n_too_long',\n ({ address2: v }) => !v || v.length <= 100 || 'address-two:v8n_too_long',\n ({ address1: v }) => (v && v.length > 0) || 'address-one:v8n_required',\n ({ address1: v }) => !v || v.length <= 100 || 'address-one:v8n_too_long',\n ({ postal_code: v }) => !v || v.length <= 50 || 'postal-code:v8n_too_long',\n ];\n }\n\n private __ignoreAddressRestrictionsGetValue = () => {\n return this.form.ignore_address_restrictions ? ['true'] : [];\n };\n\n private __ignoreAddressRestrictionsSetValue = (newValue: string[]) => {\n this.edit({ ignore_address_restrictions: newValue.includes('true') });\n };\n\n private __ignoreAddressRestrictionsOptions = [{ label: 'option_true', value: 'true' }];\n\n private __countrySetValue = (newValue: string) => {\n this.edit({ country: newValue, region: '' });\n };\n\n get hiddenSelector(): BooleanSelector {\n const alwaysHidden = [super.hiddenSelector.toString()];\n const isDefault = !!this.data?.is_default_shipping || !!this.data?.is_default_billing;\n if (isDefault) alwaysHidden.unshift('delete', 'address-name');\n return new BooleanSelector(alwaysHidden.join(' ').trim());\n }\n\n get headerSubtitleKey(): string {\n if (this.data?.is_default_shipping) return 'subtitle_default_shipping';\n if (this.data?.is_default_billing) return 'subtitle_default_billing';\n return 'subtitle_custom';\n }\n\n renderBody(): TemplateResult {\n const regionOptions = this.__regionOptions;\n\n return html`\n ${this.renderHeader()}\n\n <div class=\"grid grid-cols-2 gap-m\">\n <foxy-internal-text-control class=\"col-span-2\" infer=\"address-name\">\n </foxy-internal-text-control>\n\n <foxy-internal-text-control infer=\"first-name\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"last-name\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"company\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"phone\"></foxy-internal-text-control>\n\n <foxy-internal-text-control class=\"col-span-2\" infer=\"address-one\" property=\"address1\">\n </foxy-internal-text-control>\n\n <foxy-internal-text-control class=\"col-span-2\" infer=\"address-two\" property=\"address2\">\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n infer=\"country\"\n .options=${this.__countryOptions}\n .setValue=${this.__countrySetValue}\n >\n </foxy-internal-select-control>\n\n ${regionOptions.length > 0\n ? html`\n <foxy-internal-select-control infer=\"region\" .options=${regionOptions}>\n </foxy-internal-select-control>\n `\n : html`<foxy-internal-text-control infer=\"region\"></foxy-internal-text-control>`}\n\n <foxy-internal-text-control infer=\"city\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"postal-code\"></foxy-internal-text-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"ignore-address-restrictions\"\n class=\"col-span-2\"\n .getValue=${this.__ignoreAddressRestrictionsGetValue}\n .setValue=${this.__ignoreAddressRestrictionsSetValue}\n .options=${this.__ignoreAddressRestrictionsOptions}\n >\n </foxy-internal-checkbox-group-control>\n </div>\n ${super.renderBody()}\n `;\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n return await super._fetch(...args);\n } catch (err) {\n let message;\n\n try {\n message = (await (err as Response).json())._embedded['fx:errors'][0].message;\n } catch {\n throw err;\n }\n\n if (message.includes('Country is invalid or disallowed by store configuration')) {\n throw ['error:country_banned'];\n } else if (message.includes('this address name already exists for this customer')) {\n throw ['error:address_name_exists'];\n } else {\n throw err;\n }\n }\n }\n\n private get __countryOptions() {\n return Object.keys(countries).map(code => ({\n label: this.t(`country_${code.toLowerCase()}`),\n value: code,\n }));\n }\n\n private get __regionOptions() {\n const country = this.form.country ?? '';\n const source = countries[country] ?? [];\n\n return source.map(code => ({\n label: this.t(`country_${country.toLowerCase()}_region_${code.toLowerCase()}`),\n value: code,\n }));\n }\n}\n"]}
1
+ {"version":3,"file":"AddressForm.js","sourceRoot":"","sources":["../../../../src/elements/public/AddressForm/AddressForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Data } from './types';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { countries } from './countries';\nimport { html } from 'lit-html';\n\nconst NS = 'address-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Basic form displaying customer address.\n *\n * @element foxy-address-form\n * @since 1.2.0\n */\nexport class AddressForm extends Base<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ address_name: v }) => (v && v.length > 0) || 'address-name:v8n_required',\n ({ address_name: v }) => !v || v.length <= 100 || 'address-name:v8n_too_long',\n ({ first_name: v }) => !v || v.length <= 50 || 'first-name:v8n_too_long',\n ({ last_name: v }) => !v || v.length <= 50 || 'last-name:v8n_too_long',\n ({ region: v }) => !v || v.length <= 50 || 'region:v8n_too_long',\n ({ city: v }) => !v || v.length <= 50 || 'city:v8n_too_long',\n ({ phone: v }) => !v || v.length <= 50 || 'phone:v8n_too_long',\n ({ company: v }) => !v || v.length <= 50 || 'company:v8n_too_long',\n ({ address2: v }) => !v || v.length <= 100 || 'address-two:v8n_too_long',\n ({ address1: v }) => (v && v.length > 0) || 'address-one:v8n_required',\n ({ address1: v }) => !v || v.length <= 100 || 'address-one:v8n_too_long',\n ({ postal_code: v }) => !v || v.length <= 50 || 'postal-code:v8n_too_long',\n ];\n }\n\n private __ignoreAddressRestrictionsGetValue = () => {\n return this.form.ignore_address_restrictions ? ['true'] : [];\n };\n\n private __ignoreAddressRestrictionsSetValue = (newValue: string[]) => {\n this.edit({ ignore_address_restrictions: newValue.includes('true') });\n };\n\n private __ignoreAddressRestrictionsOptions = [{ label: 'option_true', value: 'true' }];\n\n private __countrySetValue = (newValue: string) => {\n this.edit({ country: newValue, region: '' });\n };\n\n get hiddenSelector(): BooleanSelector {\n const alwaysHidden = [super.hiddenSelector.toString()];\n const isDefault = !!this.data?.is_default_shipping || !!this.data?.is_default_billing;\n if (isDefault) alwaysHidden.unshift('delete', 'address-name', 'header:copy-id');\n return new BooleanSelector(alwaysHidden.join(' ').trim());\n }\n\n get headerTitleKey(): string {\n if (this.data?.is_default_shipping) return 'title_default_shipping';\n if (this.data?.is_default_billing) return 'title_default_billing';\n return super.headerTitleKey;\n }\n\n renderBody(): TemplateResult {\n const regionOptions = this.__regionOptions;\n\n return html`\n ${this.renderHeader()}\n\n <div class=\"grid grid-cols-2 gap-m\">\n <foxy-internal-text-control class=\"col-span-2\" infer=\"address-name\">\n </foxy-internal-text-control>\n\n <foxy-internal-text-control infer=\"first-name\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"last-name\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"company\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"phone\"></foxy-internal-text-control>\n\n <foxy-internal-text-control class=\"col-span-2\" infer=\"address-one\" property=\"address1\">\n </foxy-internal-text-control>\n\n <foxy-internal-text-control class=\"col-span-2\" infer=\"address-two\" property=\"address2\">\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n infer=\"country\"\n .options=${this.__countryOptions}\n .setValue=${this.__countrySetValue}\n >\n </foxy-internal-select-control>\n\n ${regionOptions.length > 0\n ? html`\n <foxy-internal-select-control infer=\"region\" .options=${regionOptions}>\n </foxy-internal-select-control>\n `\n : html`<foxy-internal-text-control infer=\"region\"></foxy-internal-text-control>`}\n\n <foxy-internal-text-control infer=\"city\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"postal-code\"></foxy-internal-text-control>\n\n <foxy-internal-checkbox-group-control\n infer=\"ignore-address-restrictions\"\n class=\"col-span-2\"\n .getValue=${this.__ignoreAddressRestrictionsGetValue}\n .setValue=${this.__ignoreAddressRestrictionsSetValue}\n .options=${this.__ignoreAddressRestrictionsOptions}\n >\n </foxy-internal-checkbox-group-control>\n </div>\n ${super.renderBody()}\n `;\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n return await super._fetch(...args);\n } catch (err) {\n let message;\n\n try {\n message = (await (err as Response).json())._embedded['fx:errors'][0].message;\n } catch {\n throw err;\n }\n\n if (message.includes('Country is invalid or disallowed by store configuration')) {\n throw ['error:country_banned'];\n } else if (message.includes('this address name already exists for this customer')) {\n throw ['error:address_name_exists'];\n } else {\n throw err;\n }\n }\n }\n\n private get __countryOptions() {\n return Object.keys(countries).map(code => ({\n label: this.t(`country_${code.toLowerCase()}`),\n value: code,\n }));\n }\n\n private get __regionOptions() {\n const country = this.form.country ?? '';\n const source = countries[country] ?? [];\n\n return source.map(code => ({\n label: this.t(`country_${country.toLowerCase()}_region_${code.toLowerCase()}`),\n value: code,\n }));\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ import type { Data } from './types';
3
+ import { BooleanSelector } from '@foxy.io/sdk/core';
4
+ import { InternalForm } from '../../internal/InternalForm/InternalForm';
5
+ declare const Base: typeof InternalForm & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
6
+ defaultNS: string;
7
+ };
8
+ export declare class AdminSubscriptionForm extends Base<Data> {
9
+ get hiddenSelector(): BooleanSelector;
10
+ get headerSubtitleOptions(): Record<string, unknown>;
11
+ renderHeaderActions(data: Data): TemplateResult;
12
+ renderBody(): TemplateResult;
13
+ }
14
+ export {};
@@ -0,0 +1,109 @@
1
+ import { TranslatableMixin } from "../../../mixins/translatable.js";
2
+ import { BooleanSelector } from '@foxy.io/sdk/core';
3
+ import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
4
+ import { ifDefined } from 'lit-html/directives/if-defined';
5
+ import { html } from 'lit-html';
6
+ const NS = 'admin-subscription-form';
7
+ const Base = TranslatableMixin(InternalForm, NS);
8
+ export class AdminSubscriptionForm extends Base {
9
+ get hiddenSelector() {
10
+ var _a, _b;
11
+ const alwaysMatch = ['delete', super.hiddenSelector.toString()];
12
+ if (!((_a = this.data) === null || _a === void 0 ? void 0 : _a.error_message))
13
+ alwaysMatch.unshift('error-message');
14
+ if (!((_b = this.data) === null || _b === void 0 ? void 0 : _b.is_active))
15
+ alwaysMatch.unshift('view-action', 'cancel-action');
16
+ return new BooleanSelector(alwaysMatch.join(' ').trim());
17
+ }
18
+ get headerSubtitleOptions() {
19
+ var _a;
20
+ return { context: ((_a = this.data) === null || _a === void 0 ? void 0 : _a.is_active) ? 'active' : 'inactive' };
21
+ }
22
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
23
+ renderHeaderActions(data) {
24
+ return html `
25
+ <foxy-internal-admin-subscription-form-load-in-cart-action infer="view-action">
26
+ </foxy-internal-admin-subscription-form-load-in-cart-action>
27
+ <foxy-internal-admin-subscription-form-load-in-cart-action
28
+ action="cancel"
29
+ infer="cancel-action"
30
+ >
31
+ </foxy-internal-admin-subscription-form-load-in-cart-action>
32
+ `;
33
+ }
34
+ renderBody() {
35
+ var _a, _b, _c, _d, _e;
36
+ let transactionsHref;
37
+ try {
38
+ const url = new URL((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:transactions'].href) !== null && _b !== void 0 ? _b : '');
39
+ url.searchParams.set('zoom', 'items');
40
+ transactionsHref = url.toString();
41
+ }
42
+ catch (_f) {
43
+ transactionsHref = undefined;
44
+ }
45
+ return html `
46
+ ${this.renderHeader()}
47
+
48
+ <foxy-internal-admin-subscription-form-error infer="error-message">
49
+ </foxy-internal-admin-subscription-form-error>
50
+
51
+ <foxy-internal-summary-control infer="general">
52
+ <foxy-internal-date-control layout="summary-item" format="iso-long" infer="start-date">
53
+ </foxy-internal-date-control>
54
+ <foxy-internal-frequency-control
55
+ layout="summary-item"
56
+ infer="frequency"
57
+ allow-twice-a-month
58
+ >
59
+ </foxy-internal-frequency-control>
60
+ <foxy-internal-date-control
61
+ layout="summary-item"
62
+ format="iso-long"
63
+ infer="next-transaction-date"
64
+ >
65
+ </foxy-internal-date-control>
66
+ <foxy-internal-date-control layout="summary-item" format="iso-long" infer="end-date">
67
+ </foxy-internal-date-control>
68
+ </foxy-internal-summary-control>
69
+
70
+ <foxy-internal-summary-control infer="overdue">
71
+ <foxy-internal-number-control
72
+ layout="summary-item"
73
+ suffix=${ifDefined((_c = this.data) === null || _c === void 0 ? void 0 : _c._embedded['fx:transaction_template'].currency_code)}
74
+ infer="past-due-amount"
75
+ min="0"
76
+ >
77
+ </foxy-internal-number-control>
78
+ </foxy-internal-summary-control>
79
+
80
+ ${this.renderTemplateOrSlot()}
81
+
82
+ <foxy-internal-async-list-control
83
+ infer="attributes"
84
+ class="min-w-0"
85
+ first=${ifDefined((_e = (_d = this.data) === null || _d === void 0 ? void 0 : _d._links) === null || _e === void 0 ? void 0 : _e['fx:attributes'].href)}
86
+ item="foxy-attribute-card"
87
+ form="foxy-attribute-form"
88
+ alert
89
+ >
90
+ </foxy-internal-async-list-control>
91
+
92
+ <foxy-internal-async-list-control
93
+ infer="transactions"
94
+ class="min-w-0"
95
+ first=${ifDefined(transactionsHref)}
96
+ item="foxy-transaction-card"
97
+ form="foxy-transaction"
98
+ hide-create-button
99
+ hide-delete-button
100
+ alert
101
+ wide
102
+ >
103
+ </foxy-internal-async-list-control>
104
+
105
+ ${super.renderBody()}
106
+ `;
107
+ }
108
+ }
109
+ //# sourceMappingURL=AdminSubscriptionForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminSubscriptionForm.js","sourceRoot":"","sources":["../../../../src/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,yBAAyB,CAAC;AACrC,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEjD,MAAM,OAAO,qBAAsB,SAAQ,IAAU;IACnD,IAAI,cAAc;;QAChB,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,IAAI,QAAC,IAAI,CAAC,IAAI,0CAAE,aAAa,CAAA;YAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACpE,IAAI,QAAC,IAAI,CAAC,IAAI,0CAAE,SAAS,CAAA;YAAE,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;QAC/E,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,qBAAqB;;QACvB,OAAO,EAAE,OAAO,EAAE,OAAA,IAAI,CAAC,IAAI,0CAAE,SAAS,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACnE,CAAC;IAED,6DAA6D;IAC7D,mBAAmB,CAAC,IAAU;QAC5B,OAAO,IAAI,CAAA;;;;;;;;KAQV,CAAC;IACJ,CAAC;IAED,UAAU;;QACR,IAAI,gBAAoC,CAAC;QAEzC,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,GAAG,aAAC,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAC,iBAAiB,EAAE,IAAI,mCAAI,EAAE,CAAC,CAAC;YACrE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACtC,gBAAgB,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;SACnC;QAAC,WAAM;YACN,gBAAgB,GAAG,SAAS,CAAC;SAC9B;QAED,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;mBA2BR,SAAS,OAAC,IAAI,CAAC,IAAI,0CAAE,SAAS,CAAC,yBAAyB,EAAE,aAAa,CAAC;;;;;;;QAOnF,IAAI,CAAC,oBAAoB,EAAE;;;;;gBAKnB,SAAS,aAAC,IAAI,CAAC,IAAI,0CAAE,MAAM,0CAAG,eAAe,EAAE,IAAI,CAAC;;;;;;;;;;gBAUpD,SAAS,CAAC,gBAAgB,CAAC;;;;;;;;;;QAUnC,KAAK,CAAC,UAAU,EAAE;KACrB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'admin-subscription-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\nexport class AdminSubscriptionForm extends Base<Data> {\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = ['delete', super.hiddenSelector.toString()];\n if (!this.data?.error_message) alwaysMatch.unshift('error-message');\n if (!this.data?.is_active) alwaysMatch.unshift('view-action', 'cancel-action');\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n return { context: this.data?.is_active ? 'active' : 'inactive' };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n renderHeaderActions(data: Data): TemplateResult {\n return html`\n <foxy-internal-admin-subscription-form-load-in-cart-action infer=\"view-action\">\n </foxy-internal-admin-subscription-form-load-in-cart-action>\n <foxy-internal-admin-subscription-form-load-in-cart-action\n action=\"cancel\"\n infer=\"cancel-action\"\n >\n </foxy-internal-admin-subscription-form-load-in-cart-action>\n `;\n }\n\n renderBody(): TemplateResult {\n let transactionsHref: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:transactions'].href ?? '');\n url.searchParams.set('zoom', 'items');\n transactionsHref = url.toString();\n } catch {\n transactionsHref = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-admin-subscription-form-error infer=\"error-message\">\n </foxy-internal-admin-subscription-form-error>\n\n <foxy-internal-summary-control infer=\"general\">\n <foxy-internal-date-control layout=\"summary-item\" format=\"iso-long\" infer=\"start-date\">\n </foxy-internal-date-control>\n <foxy-internal-frequency-control\n layout=\"summary-item\"\n infer=\"frequency\"\n allow-twice-a-month\n >\n </foxy-internal-frequency-control>\n <foxy-internal-date-control\n layout=\"summary-item\"\n format=\"iso-long\"\n infer=\"next-transaction-date\"\n >\n </foxy-internal-date-control>\n <foxy-internal-date-control layout=\"summary-item\" format=\"iso-long\" infer=\"end-date\">\n </foxy-internal-date-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"overdue\">\n <foxy-internal-number-control\n layout=\"summary-item\"\n suffix=${ifDefined(this.data?._embedded['fx:transaction_template'].currency_code)}\n infer=\"past-due-amount\"\n min=\"0\"\n >\n </foxy-internal-number-control>\n </foxy-internal-summary-control>\n\n ${this.renderTemplateOrSlot()}\n\n <foxy-internal-async-list-control\n infer=\"attributes\"\n class=\"min-w-0\"\n first=${ifDefined(this.data?._links?.['fx:attributes'].href)}\n item=\"foxy-attribute-card\"\n form=\"foxy-attribute-form\"\n alert\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n infer=\"transactions\"\n class=\"min-w-0\"\n first=${ifDefined(transactionsHref)}\n item=\"foxy-transaction-card\"\n form=\"foxy-transaction\"\n hide-create-button\n hide-delete-button\n alert\n wide\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n `;\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import '../../internal/InternalAsyncListControl/index';
2
+ import '../../internal/InternalFrequencyControl/index';
3
+ import '../../internal/InternalNumberControl/index';
4
+ import '../../internal/InternalDateControl/index';
5
+ import '../../internal/InternalForm/index';
6
+ import '../TransactionCard/index';
7
+ import '../AttributeCard/index';
8
+ import '../AttributeForm/index';
9
+ import '../Transaction/index';
10
+ import './internal/InternalAdminSubscriptionFormLoadInCartAction/index';
11
+ import './internal/InternalAdminSubscriptionFormError/index';
12
+ import { AdminSubscriptionForm } from './AdminSubscriptionForm';
13
+ export { AdminSubscriptionForm };
@@ -0,0 +1,15 @@
1
+ import "../../internal/InternalAsyncListControl/index.js";
2
+ import "../../internal/InternalFrequencyControl/index.js";
3
+ import "../../internal/InternalNumberControl/index.js";
4
+ import "../../internal/InternalDateControl/index.js";
5
+ import "../../internal/InternalForm/index.js";
6
+ import "../TransactionCard/index.js";
7
+ import "../AttributeCard/index.js";
8
+ import "../AttributeForm/index.js";
9
+ import "../Transaction/index.js";
10
+ import "./internal/InternalAdminSubscriptionFormLoadInCartAction/index.js";
11
+ import "./internal/InternalAdminSubscriptionFormError/index.js";
12
+ import { AdminSubscriptionForm } from "./AdminSubscriptionForm.js";
13
+ customElements.define('foxy-admin-subscription-form', AdminSubscriptionForm);
14
+ export { AdminSubscriptionForm };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/AdminSubscriptionForm/index.ts"],"names":[],"mappings":"AAAA,0DAAuD;AACvD,0DAAuD;AACvD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,qCAAkC;AAClC,mCAAgC;AAChC,mCAAgC;AAChC,iCAA8B;AAE9B,2EAAwE;AACxE,gEAA6D;AAE7D,OAAO,EAAE,qBAAqB,EAAE,mCAAgC;AAEhE,cAAc,CAAC,MAAM,CAAC,8BAA8B,EAAE,qBAAqB,CAAC,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncListControl/index';\nimport '../../internal/InternalFrequencyControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalDateControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../TransactionCard/index';\nimport '../AttributeCard/index';\nimport '../AttributeForm/index';\nimport '../Transaction/index';\n\nimport './internal/InternalAdminSubscriptionFormLoadInCartAction/index';\nimport './internal/InternalAdminSubscriptionFormError/index';\n\nimport { AdminSubscriptionForm } from './AdminSubscriptionForm';\n\ncustomElements.define('foxy-admin-subscription-form', AdminSubscriptionForm);\n\nexport { AdminSubscriptionForm };\n"]}
@@ -0,0 +1,5 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ import { InternalControl } from '../../../../internal/InternalControl/InternalControl';
3
+ export declare class InternalAdminSubscriptionFormError extends InternalControl {
4
+ renderControl(): TemplateResult;
5
+ }
@@ -0,0 +1,17 @@
1
+ import { InternalControl } from "../../../../internal/InternalControl/InternalControl.js";
2
+ import { html, svg } from 'lit-html';
3
+ export class InternalAdminSubscriptionFormError extends InternalControl {
4
+ renderControl() {
5
+ var _a, _b;
6
+ return html `
7
+ <p
8
+ class="flex items-start gap-ds p-ds rounded border border-error-50"
9
+ style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"
10
+ >
11
+ ${svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="flex-shrink-0 text-error" style="width: 1.25em"><path fill-rule="evenodd" d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z" clip-rule="evenodd"></path></svg>`}
12
+ <span>${(_b = (_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.error_message}</span>
13
+ </p>
14
+ `;
15
+ }
16
+ }
17
+ //# sourceMappingURL=InternalAdminSubscriptionFormError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalAdminSubscriptionFormError.js","sourceRoot":"","sources":["../../../../../../src/elements/public/AdminSubscriptionForm/internal/InternalAdminSubscriptionFormError/InternalAdminSubscriptionFormError.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,gEAA6D;AACvF,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,OAAO,kCAAmC,SAAQ,eAAe;IACrE,aAAa;;QACX,OAAO,IAAI,CAAA;;;;;UAKL,GAAG,CAAA,+VAA+V;gBAC5V,YAAC,IAAI,CAAC,OAAwC,0CAAE,IAAI,0CAAE,aAAa;;KAE9E,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { AdminSubscriptionForm } from '../../AdminSubscriptionForm';\nimport type { TemplateResult } from 'lit-html';\n\nimport { InternalControl } from '../../../../internal/InternalControl/InternalControl';\nimport { html, svg } from 'lit-html';\n\nexport class InternalAdminSubscriptionFormError extends InternalControl {\n renderControl(): TemplateResult {\n return html`\n <p\n class=\"flex items-start gap-ds p-ds rounded border border-error-50\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-error\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <span>${(this.nucleon as AdminSubscriptionForm | null)?.data?.error_message}</span>\n </p>\n `;\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import '../../../../internal/InternalControl/index';
2
+ import { InternalAdminSubscriptionFormError } from './InternalAdminSubscriptionFormError';
3
+ export { InternalAdminSubscriptionFormError };
@@ -0,0 +1,5 @@
1
+ import "../../../../internal/InternalControl/index.js";
2
+ import { InternalAdminSubscriptionFormError } from "./InternalAdminSubscriptionFormError.js";
3
+ customElements.define('foxy-internal-admin-subscription-form-error', InternalAdminSubscriptionFormError);
4
+ export { InternalAdminSubscriptionFormError };
5
+ //# sourceMappingURL=index.js.map