@foxy.io/elements 1.16.0-beta.3 → 1.16.0-beta.4

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 (440) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +2 -2
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  5. package/dist/cdn/foxy-attribute-card.js +1 -1
  6. package/dist/cdn/foxy-attribute-form.js +1 -1
  7. package/dist/cdn/foxy-cancellation-form.js +1 -1
  8. package/dist/cdn/foxy-collection-page.js +1 -1
  9. package/dist/cdn/foxy-collection-pages.js +1 -1
  10. package/dist/cdn/foxy-copy-to-clipboard.js +1 -0
  11. package/dist/cdn/foxy-coupon-card.js +1 -1
  12. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  13. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  14. package/dist/cdn/foxy-coupon-detail-card.js +1 -0
  15. package/dist/cdn/foxy-coupon-form.js +1 -1
  16. package/dist/cdn/foxy-custom-field-card.js +1 -1
  17. package/dist/cdn/foxy-custom-field-form.js +1 -1
  18. package/dist/cdn/foxy-customer-api.js +1 -1
  19. package/dist/cdn/foxy-customer-card.js +1 -1
  20. package/dist/cdn/foxy-customer-form.js +1 -1
  21. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  22. package/dist/cdn/foxy-customer-portal.js +15 -15
  23. package/dist/cdn/foxy-customer.js +1 -1
  24. package/dist/cdn/foxy-customers-table.js +1 -1
  25. package/dist/cdn/foxy-discount-builder.js +1 -0
  26. package/dist/cdn/foxy-discount-card.js +1 -1
  27. package/dist/cdn/foxy-discount-detail-card.js +1 -0
  28. package/dist/cdn/foxy-donation.js +1 -1
  29. package/dist/cdn/foxy-email-template-form.js +1 -1
  30. package/dist/cdn/foxy-error-entry-card.js +1 -1
  31. package/dist/cdn/foxy-form-dialog.js +1 -1
  32. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  33. package/dist/cdn/foxy-gift-card-card.js +1 -1
  34. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  35. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  36. package/dist/cdn/foxy-gift-card-form.js +1 -1
  37. package/dist/cdn/foxy-i18n.js +1 -1
  38. package/dist/cdn/foxy-item-card.js +1 -0
  39. package/dist/cdn/foxy-item-form.js +1 -0
  40. package/dist/cdn/foxy-item-option-card.js +1 -0
  41. package/dist/cdn/foxy-item-option-form.js +1 -0
  42. package/dist/cdn/foxy-items-form.js +1 -1
  43. package/dist/cdn/foxy-nucleon-element.js +1 -1
  44. package/dist/cdn/foxy-pagination.js +1 -1
  45. package/dist/cdn/foxy-payment-card.js +1 -1
  46. package/dist/cdn/foxy-payment-method-card.js +1 -1
  47. package/dist/cdn/foxy-query-builder.js +1 -1
  48. package/dist/cdn/foxy-report-form.js +9 -9
  49. package/dist/cdn/foxy-reports-table.js +1 -1
  50. package/dist/cdn/foxy-shipment-card.js +17 -0
  51. package/dist/cdn/foxy-sign-in-form.js +1 -1
  52. package/dist/cdn/foxy-spinner.js +2 -2
  53. package/dist/cdn/foxy-subscription-card.js +1 -1
  54. package/dist/cdn/foxy-subscription-form.js +4 -4
  55. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  56. package/dist/cdn/foxy-table.js +1 -1
  57. package/dist/cdn/foxy-tax-card.js +1 -1
  58. package/dist/cdn/foxy-tax-form.js +1 -1
  59. package/dist/cdn/foxy-template-config-form.js +1 -1
  60. package/dist/cdn/foxy-template-form.js +1 -1
  61. package/dist/cdn/foxy-transaction-card.js +1 -1
  62. package/dist/cdn/foxy-transaction.js +64 -0
  63. package/dist/cdn/foxy-transactions-table.js +1 -1
  64. package/dist/cdn/foxy-user-form.js +1 -1
  65. package/dist/cdn/foxy-users-table.js +1 -1
  66. package/dist/cdn/{shared-8c308dc1.js → shared-007660a6.js} +1 -1
  67. package/dist/cdn/shared-06014421.js +1 -0
  68. package/dist/cdn/shared-072abf87.js +1 -0
  69. package/dist/cdn/shared-1b064836.js +1 -0
  70. package/dist/cdn/shared-1ddccf4d.js +1 -0
  71. package/dist/cdn/{shared-03949800.js → shared-22103348.js} +1 -1
  72. package/dist/cdn/{shared-9aed33de.js → shared-25e9c276.js} +1 -1
  73. package/dist/cdn/{shared-571516a4.js → shared-2bb49907.js} +1 -1
  74. package/dist/cdn/{shared-5bf947db.js → shared-2eee69db.js} +1 -1
  75. package/dist/cdn/shared-3026cee0.js +15 -0
  76. package/dist/cdn/{shared-e6dd0f55.js → shared-34998df6.js} +1 -1
  77. package/dist/cdn/{shared-70c7bf00.js → shared-35de1004.js} +1 -1
  78. package/dist/cdn/{shared-70d6309f.js → shared-368a2f85.js} +1 -1
  79. package/dist/cdn/{shared-42457145.js → shared-38f8a319.js} +7 -7
  80. package/dist/cdn/{shared-ea015924.js → shared-3ffd77da.js} +14 -19
  81. package/dist/cdn/shared-4e63d6e0.js +1 -0
  82. package/dist/cdn/{shared-3a7ec144.js → shared-5097c880.js} +2 -11
  83. package/dist/cdn/shared-518902c8.js +1 -0
  84. package/dist/cdn/{shared-8c3463b5.js → shared-5e75308a.js} +1 -1
  85. package/dist/cdn/{shared-15d3d613.js → shared-60e98fbf.js} +1 -1
  86. package/dist/cdn/shared-64657919.js +1 -0
  87. package/dist/cdn/{shared-7a93239c.js → shared-757bb517.js} +1 -1
  88. package/dist/cdn/{shared-7823570c.js → shared-7819b0b0.js} +1 -1
  89. package/dist/cdn/{shared-712b7f69.js → shared-7f3ca8e7.js} +5 -5
  90. package/dist/cdn/shared-874bbae5.js +1 -0
  91. package/dist/cdn/{shared-1dedbcf4.js → shared-92d6f937.js} +1 -1
  92. package/dist/cdn/shared-935ba2fc.js +1 -0
  93. package/dist/cdn/shared-96df3c85.js +1 -0
  94. package/dist/cdn/shared-9a089d49.js +1 -0
  95. package/dist/cdn/shared-9d4835ed.js +1 -0
  96. package/dist/cdn/{shared-6b326bd8.js → shared-9d7aaf7a.js} +1 -1
  97. package/dist/cdn/shared-a8e21a41.js +1 -0
  98. package/dist/cdn/{shared-864a9f46.js → shared-b4a4a92b.js} +1 -1
  99. package/dist/cdn/{shared-7991f6c1.js → shared-b8f492a4.js} +1 -1
  100. package/dist/cdn/{shared-7eaa7ada.js → shared-bbfdfee2.js} +2 -2
  101. package/dist/cdn/{shared-9b0b7e4d.js → shared-bc94606b.js} +1 -1
  102. package/dist/cdn/{shared-3d12e221.js → shared-c3c424cd.js} +1 -1
  103. package/dist/cdn/{shared-667a8855.js → shared-c4f0a219.js} +1 -1
  104. package/dist/cdn/shared-d3ffe0ef.js +1 -0
  105. package/dist/cdn/{shared-5499ce50.js → shared-e090608c.js} +1 -1
  106. package/dist/cdn/{shared-447623da.js → shared-e59c65e3.js} +1 -1
  107. package/dist/cdn/shared-e6f3e9f0.js +6 -0
  108. package/dist/cdn/{shared-c937b8af.js → shared-ea9af4b0.js} +2 -2
  109. package/dist/cdn/{shared-1faaa1b6.js → shared-f0ba30e8.js} +1 -1
  110. package/dist/cdn/{shared-afa7534d.js → shared-f3655f42.js} +1 -1
  111. package/dist/cdn/{shared-dfb99fb9.js → shared-f3f9f752.js} +1 -1
  112. package/dist/cdn/shared-f7bddf72.js +9 -0
  113. package/dist/cdn/{shared-b4159722.js → shared-fe8ec1f9.js} +1 -1
  114. package/dist/cdn/translations/copy-to-clipboard/en.json +6 -0
  115. package/dist/cdn/translations/coupon-form/en.json +21 -2
  116. package/dist/cdn/translations/gift-card-form/en.json +21 -0
  117. package/dist/cdn/translations/item-card/en.json +9 -0
  118. package/dist/cdn/translations/item-form/en.json +387 -0
  119. package/dist/cdn/translations/item-option-form/en.json +43 -0
  120. package/dist/cdn/translations/shipment-card/en.json +470 -0
  121. package/dist/cdn/translations/transaction/en.json +941 -0
  122. package/dist/elements/index.d.ts +1 -0
  123. package/dist/elements/index.js +2 -0
  124. package/dist/elements/index.js.map +1 -0
  125. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.d.ts +12 -0
  126. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js +65 -0
  127. package/dist/elements/internal/InternalAsyncComboBoxControl/InternalAsyncComboBoxControl.js.map +1 -0
  128. package/dist/elements/internal/InternalAsyncComboBoxControl/index.d.ts +4 -0
  129. package/dist/elements/internal/InternalAsyncComboBoxControl/index.js +6 -0
  130. package/dist/elements/internal/InternalAsyncComboBoxControl/index.js.map +1 -0
  131. package/dist/elements/internal/InternalCard/InternalCard.d.ts +13 -0
  132. package/dist/elements/internal/InternalCard/InternalCard.js +43 -0
  133. package/dist/elements/internal/InternalCard/InternalCard.js.map +1 -0
  134. package/dist/elements/internal/InternalCard/index.d.ts +6 -0
  135. package/dist/elements/internal/InternalCard/index.js +8 -0
  136. package/dist/elements/internal/InternalCard/index.js.map +1 -0
  137. package/dist/elements/internal/InternalCollapsibleCard/InternalCollapsibleCard.d.ts +16 -0
  138. package/dist/elements/internal/InternalCollapsibleCard/InternalCollapsibleCard.js +63 -0
  139. package/dist/elements/internal/InternalCollapsibleCard/InternalCollapsibleCard.js.map +1 -0
  140. package/dist/elements/internal/InternalCollapsibleCard/index.d.ts +5 -0
  141. package/dist/elements/internal/InternalCollapsibleCard/index.js +7 -0
  142. package/dist/elements/internal/InternalCollapsibleCard/index.js.map +1 -0
  143. package/dist/elements/internal/InternalCollectionCard/InternalCollectionCard.d.ts +13 -0
  144. package/dist/elements/internal/InternalCollectionCard/InternalCollectionCard.js +119 -0
  145. package/dist/elements/internal/InternalCollectionCard/InternalCollectionCard.js.map +1 -0
  146. package/dist/elements/internal/InternalCollectionCard/index.d.ts +7 -0
  147. package/dist/elements/internal/InternalCollectionCard/index.js +9 -0
  148. package/dist/elements/internal/InternalCollectionCard/index.js.map +1 -0
  149. package/dist/elements/internal/InternalControl/InternalControl.d.ts +21 -0
  150. package/dist/elements/internal/InternalControl/InternalControl.js +53 -0
  151. package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -0
  152. package/dist/elements/internal/InternalControl/index.d.ts +2 -0
  153. package/dist/elements/internal/InternalControl/index.js +4 -0
  154. package/dist/elements/internal/InternalControl/index.js.map +1 -0
  155. package/dist/elements/internal/InternalCreateControl/InternalCreateControl.d.ts +13 -0
  156. package/dist/elements/internal/InternalCreateControl/InternalCreateControl.js +47 -0
  157. package/dist/elements/internal/InternalCreateControl/InternalCreateControl.js.map +1 -0
  158. package/dist/elements/internal/InternalCreateControl/index.d.ts +4 -0
  159. package/dist/elements/internal/InternalCreateControl/index.js +6 -0
  160. package/dist/elements/internal/InternalCreateControl/index.js.map +1 -0
  161. package/dist/elements/internal/InternalDateControl/InternalDateControl.d.ts +7 -0
  162. package/dist/elements/internal/InternalDateControl/InternalDateControl.js +48 -0
  163. package/dist/elements/internal/InternalDateControl/InternalDateControl.js.map +1 -0
  164. package/dist/elements/internal/InternalDateControl/index.d.ts +4 -0
  165. package/dist/elements/internal/InternalDateControl/index.js +6 -0
  166. package/dist/elements/internal/InternalDateControl/index.js.map +1 -0
  167. package/dist/elements/internal/InternalDeleteControl/InternalDeleteControl.d.ts +6 -0
  168. package/dist/elements/internal/InternalDeleteControl/InternalDeleteControl.js +39 -0
  169. package/dist/elements/internal/InternalDeleteControl/InternalDeleteControl.js.map +1 -0
  170. package/dist/elements/internal/InternalDeleteControl/index.d.ts +5 -0
  171. package/dist/elements/internal/InternalDeleteControl/index.js +7 -0
  172. package/dist/elements/internal/InternalDeleteControl/index.js.map +1 -0
  173. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.d.ts +25 -0
  174. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js +78 -0
  175. package/dist/elements/internal/InternalEditableControl/InternalEditableControl.js.map +1 -0
  176. package/dist/elements/internal/InternalEditableControl/index.d.ts +3 -0
  177. package/dist/elements/internal/InternalEditableControl/index.js +5 -0
  178. package/dist/elements/internal/InternalEditableControl/index.js.map +1 -0
  179. package/dist/elements/internal/InternalForm/InternalForm.d.ts +13 -0
  180. package/dist/elements/internal/InternalForm/InternalForm.js +49 -0
  181. package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -0
  182. package/dist/elements/internal/InternalForm/index.d.ts +6 -0
  183. package/dist/elements/internal/InternalForm/index.js +8 -0
  184. package/dist/elements/internal/InternalForm/index.js.map +1 -0
  185. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.d.ts +9 -0
  186. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js +115 -0
  187. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js.map +1 -0
  188. package/dist/elements/internal/InternalFrequencyControl/index.d.ts +7 -0
  189. package/dist/elements/internal/InternalFrequencyControl/index.js +9 -0
  190. package/dist/elements/internal/InternalFrequencyControl/index.js.map +1 -0
  191. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.d.ts +5 -0
  192. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js +28 -0
  193. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js.map +1 -0
  194. package/dist/elements/internal/InternalIntegerControl/index.d.ts +4 -0
  195. package/dist/elements/internal/InternalIntegerControl/index.js +6 -0
  196. package/dist/elements/internal/InternalIntegerControl/index.js.map +1 -0
  197. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.d.ts +5 -0
  198. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js +28 -0
  199. package/dist/elements/internal/InternalNumberControl/InternalNumberControl.js.map +1 -0
  200. package/dist/elements/internal/InternalNumberControl/index.d.ts +4 -0
  201. package/dist/elements/internal/InternalNumberControl/index.js +6 -0
  202. package/dist/elements/internal/InternalNumberControl/index.js.map +1 -0
  203. package/dist/elements/internal/InternalTextControl/InternalTextControl.d.ts +5 -0
  204. package/dist/elements/internal/InternalTextControl/InternalTextControl.js +27 -0
  205. package/dist/elements/internal/InternalTextControl/InternalTextControl.js.map +1 -0
  206. package/dist/elements/internal/InternalTextControl/index.d.ts +4 -0
  207. package/dist/elements/internal/InternalTextControl/index.js +6 -0
  208. package/dist/elements/internal/InternalTextControl/index.js.map +1 -0
  209. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.d.ts +8 -0
  210. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js +56 -0
  211. package/dist/elements/internal/InternalTimestampsControl/InternalTimestampsControl.js.map +1 -0
  212. package/dist/elements/internal/InternalTimestampsControl/index.d.ts +2 -0
  213. package/dist/elements/internal/InternalTimestampsControl/index.js +4 -0
  214. package/dist/elements/internal/InternalTimestampsControl/index.js.map +1 -0
  215. package/dist/elements/private/Dialog/Dialog.d.ts +4 -2
  216. package/dist/elements/private/Dialog/Dialog.js +3 -1
  217. package/dist/elements/private/Dialog/Dialog.js.map +1 -1
  218. package/dist/elements/private/EditableList/EditableList.d.ts +4 -2
  219. package/dist/elements/private/EditableList/EditableList.js +3 -1
  220. package/dist/elements/private/EditableList/EditableList.js.map +1 -1
  221. package/dist/elements/private/FrequencyInput/FrequencyInput.d.ts +3 -1
  222. package/dist/elements/private/FrequencyInput/FrequencyInput.js +2 -1
  223. package/dist/elements/private/FrequencyInput/FrequencyInput.js.map +1 -1
  224. package/dist/elements/public/CollectionPage/CollectionPage.d.ts +4 -3
  225. package/dist/elements/public/CollectionPage/CollectionPage.js +5 -3
  226. package/dist/elements/public/CollectionPage/CollectionPage.js.map +1 -1
  227. package/dist/elements/public/CollectionPage/types.d.ts +1 -0
  228. package/dist/elements/public/CollectionPage/types.js.map +1 -1
  229. package/dist/elements/public/CollectionPages/CollectionPages.d.ts +4 -2
  230. package/dist/elements/public/CollectionPages/CollectionPages.js +3 -1
  231. package/dist/elements/public/CollectionPages/CollectionPages.js.map +1 -1
  232. package/dist/elements/public/CopyToClipboard/CopyToClipboard.d.ts +14 -0
  233. package/dist/elements/public/CopyToClipboard/CopyToClipboard.js +112 -0
  234. package/dist/elements/public/CopyToClipboard/CopyToClipboard.js.map +1 -0
  235. package/dist/elements/public/CopyToClipboard/index.d.ts +4 -0
  236. package/dist/elements/public/CopyToClipboard/index.js +6 -0
  237. package/dist/elements/public/CopyToClipboard/index.js.map +1 -0
  238. package/dist/elements/public/CouponDetailCard/CouponDetailCard.d.ts +25 -0
  239. package/dist/elements/public/CouponDetailCard/CouponDetailCard.js +58 -0
  240. package/dist/elements/public/CouponDetailCard/CouponDetailCard.js.map +1 -0
  241. package/dist/elements/public/CouponDetailCard/index.d.ts +5 -0
  242. package/dist/elements/public/CouponDetailCard/index.js +7 -0
  243. package/dist/elements/public/CouponDetailCard/index.js.map +1 -0
  244. package/dist/elements/public/CouponDetailCard/types.d.ts +3 -0
  245. package/dist/elements/public/CouponDetailCard/types.js +2 -0
  246. package/dist/elements/public/CouponDetailCard/types.js.map +1 -0
  247. package/dist/elements/public/CouponForm/CouponForm.js +36 -35
  248. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  249. package/dist/elements/public/CouponForm/index.d.ts +1 -0
  250. package/dist/elements/public/CouponForm/index.js +1 -0
  251. package/dist/elements/public/CouponForm/index.js.map +1 -1
  252. package/dist/elements/public/CustomerApi/CustomerApi.d.ts +3 -1
  253. package/dist/elements/public/CustomerApi/CustomerApi.js +2 -1
  254. package/dist/elements/public/CustomerApi/CustomerApi.js.map +1 -1
  255. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.d.ts +3 -1
  256. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.js +2 -1
  257. package/dist/elements/public/CustomerPortal/InternalCustomerPortalChangePassword.js.map +1 -1
  258. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.d.ts +3 -1
  259. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js +2 -1
  260. package/dist/elements/public/CustomerPortal/InternalCustomerPortalLoggedOutView.js.map +1 -1
  261. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.d.ts +3 -1
  262. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js +2 -1
  263. package/dist/elements/public/CustomerPortal/InternalCustomerPortalSubscriptions.js.map +1 -1
  264. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.d.ts +3 -1
  265. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.js +2 -1
  266. package/dist/elements/public/CustomerPortal/InternalCustomerPortalTransactions.js.map +1 -1
  267. package/dist/elements/public/DiscountBuilder/DiscountBuilder.d.ts +28 -0
  268. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js +339 -0
  269. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js.map +1 -0
  270. package/dist/elements/public/DiscountBuilder/index.d.ts +2 -0
  271. package/dist/elements/public/DiscountBuilder/index.js +4 -0
  272. package/dist/elements/public/DiscountBuilder/index.js.map +1 -0
  273. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.d.ts +25 -0
  274. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.js +58 -0
  275. package/dist/elements/public/DiscountDetailCard/DiscountDetailCard.js.map +1 -0
  276. package/dist/elements/public/DiscountDetailCard/index.d.ts +5 -0
  277. package/dist/elements/public/DiscountDetailCard/index.js +7 -0
  278. package/dist/elements/public/DiscountDetailCard/index.js.map +1 -0
  279. package/dist/elements/public/DiscountDetailCard/types.d.ts +3 -0
  280. package/dist/elements/public/DiscountDetailCard/types.js +2 -0
  281. package/dist/elements/public/DiscountDetailCard/types.js.map +1 -0
  282. package/dist/elements/public/GiftCardForm/GiftCardForm.js +28 -15
  283. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  284. package/dist/elements/public/GiftCardForm/index.d.ts +1 -0
  285. package/dist/elements/public/GiftCardForm/index.js +1 -0
  286. package/dist/elements/public/GiftCardForm/index.js.map +1 -1
  287. package/dist/elements/public/I18n/I18n.d.ts +3 -1
  288. package/dist/elements/public/I18n/I18n.js +2 -1
  289. package/dist/elements/public/I18n/I18n.js.map +1 -1
  290. package/dist/elements/public/ItemCard/ItemCard.d.ts +16 -0
  291. package/dist/elements/public/ItemCard/ItemCard.js +139 -0
  292. package/dist/elements/public/ItemCard/ItemCard.js.map +1 -0
  293. package/dist/elements/public/ItemCard/index.d.ts +4 -0
  294. package/dist/elements/public/ItemCard/index.js +6 -0
  295. package/dist/elements/public/ItemCard/index.js.map +1 -0
  296. package/dist/elements/public/ItemCard/types.d.ts +5 -0
  297. package/dist/elements/public/ItemCard/types.js +2 -0
  298. package/dist/elements/public/ItemCard/types.js.map +1 -0
  299. package/dist/elements/public/ItemForm/ItemForm.d.ts +19 -0
  300. package/dist/elements/public/ItemForm/ItemForm.js +96 -0
  301. package/dist/elements/public/ItemForm/ItemForm.js.map +1 -0
  302. package/dist/elements/public/ItemForm/index.d.ts +19 -0
  303. package/dist/elements/public/ItemForm/index.js +21 -0
  304. package/dist/elements/public/ItemForm/index.js.map +1 -0
  305. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.d.ts +6 -0
  306. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js +23 -0
  307. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/InternalItemFormCartControl.js.map +1 -0
  308. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.d.ts +6 -0
  309. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js +8 -0
  310. package/dist/elements/public/ItemForm/internal/InternalItemFormCartControl/index.js.map +1 -0
  311. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.d.ts +6 -0
  312. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js +31 -0
  313. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/InternalItemFormInventoryControl.js.map +1 -0
  314. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.d.ts +5 -0
  315. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js +7 -0
  316. package/dist/elements/public/ItemForm/internal/InternalItemFormInventoryControl/index.js.map +1 -0
  317. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.d.ts +6 -0
  318. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js +48 -0
  319. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/InternalItemFormLineItemDiscountControl.js.map +1 -0
  320. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.d.ts +7 -0
  321. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js +9 -0
  322. package/dist/elements/public/ItemForm/internal/InternalItemFormLineItemDiscountControl/index.js.map +1 -0
  323. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.d.ts +6 -0
  324. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js +32 -0
  325. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/InternalItemFormShippingControl.js.map +1 -0
  326. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.d.ts +5 -0
  327. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js +7 -0
  328. package/dist/elements/public/ItemForm/internal/InternalItemFormShippingControl/index.js.map +1 -0
  329. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.d.ts +6 -0
  330. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js +75 -0
  331. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/InternalItemFormSubscriptionControl.js.map +1 -0
  332. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.d.ts +8 -0
  333. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js +10 -0
  334. package/dist/elements/public/ItemForm/internal/InternalItemFormSubscriptionControl/index.js.map +1 -0
  335. package/dist/elements/public/ItemForm/types.d.ts +3 -0
  336. package/dist/elements/public/ItemForm/types.js +2 -0
  337. package/dist/elements/public/ItemForm/types.js.map +1 -0
  338. package/dist/elements/public/ItemOptionCard/ItemOptionCard.d.ts +25 -0
  339. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js +56 -0
  340. package/dist/elements/public/ItemOptionCard/ItemOptionCard.js.map +1 -0
  341. package/dist/elements/public/ItemOptionCard/index.d.ts +6 -0
  342. package/dist/elements/public/ItemOptionCard/index.js +8 -0
  343. package/dist/elements/public/ItemOptionCard/index.js.map +1 -0
  344. package/dist/elements/public/ItemOptionCard/types.d.ts +11 -0
  345. package/dist/elements/public/ItemOptionCard/types.js +2 -0
  346. package/dist/elements/public/ItemOptionCard/types.js.map +1 -0
  347. package/dist/elements/public/ItemOptionForm/ItemOptionForm.d.ts +12 -0
  348. package/dist/elements/public/ItemOptionForm/ItemOptionForm.js +23 -0
  349. package/dist/elements/public/ItemOptionForm/ItemOptionForm.js.map +1 -0
  350. package/dist/elements/public/ItemOptionForm/index.d.ts +5 -0
  351. package/dist/elements/public/ItemOptionForm/index.js +7 -0
  352. package/dist/elements/public/ItemOptionForm/index.js.map +1 -0
  353. package/dist/elements/public/ItemOptionForm/types.d.ts +3 -0
  354. package/dist/elements/public/ItemOptionForm/types.js +2 -0
  355. package/dist/elements/public/ItemOptionForm/types.js.map +1 -0
  356. package/dist/elements/public/NucleonElement/NucleonElement.d.ts +7 -1
  357. package/dist/elements/public/NucleonElement/NucleonElement.js +13 -1
  358. package/dist/elements/public/NucleonElement/NucleonElement.js.map +1 -1
  359. package/dist/elements/public/Pagination/Pagination.d.ts +3 -1
  360. package/dist/elements/public/Pagination/Pagination.js +3 -2
  361. package/dist/elements/public/Pagination/Pagination.js.map +1 -1
  362. package/dist/elements/public/PaymentCard/PaymentCard.js +1 -1
  363. package/dist/elements/public/PaymentCard/PaymentCard.js.map +1 -1
  364. package/dist/elements/public/QueryBuilder/QueryBuilder.d.ts +3 -1
  365. package/dist/elements/public/QueryBuilder/QueryBuilder.js +2 -1
  366. package/dist/elements/public/QueryBuilder/QueryBuilder.js.map +1 -1
  367. package/dist/elements/public/ShipmentCard/ShipmentCard.d.ts +22 -0
  368. package/dist/elements/public/ShipmentCard/ShipmentCard.js +114 -0
  369. package/dist/elements/public/ShipmentCard/ShipmentCard.js.map +1 -0
  370. package/dist/elements/public/ShipmentCard/index.d.ts +7 -0
  371. package/dist/elements/public/ShipmentCard/index.js +9 -0
  372. package/dist/elements/public/ShipmentCard/index.js.map +1 -0
  373. package/dist/elements/public/ShipmentCard/types.d.ts +18 -0
  374. package/dist/elements/public/ShipmentCard/types.js +2 -0
  375. package/dist/elements/public/ShipmentCard/types.js.map +1 -0
  376. package/dist/elements/public/Spinner/Spinner.d.ts +4 -2
  377. package/dist/elements/public/Spinner/Spinner.js +3 -1
  378. package/dist/elements/public/Spinner/Spinner.js.map +1 -1
  379. package/dist/elements/public/Transaction/Transaction.d.ts +13 -0
  380. package/dist/elements/public/Transaction/Transaction.js +101 -0
  381. package/dist/elements/public/Transaction/Transaction.js.map +1 -0
  382. package/dist/elements/public/Transaction/index.d.ts +19 -0
  383. package/dist/elements/public/Transaction/index.js +21 -0
  384. package/dist/elements/public/Transaction/index.js.map +1 -0
  385. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.d.ts +9 -0
  386. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js +69 -0
  387. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js.map +1 -0
  388. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/index.d.ts +4 -0
  389. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/index.js +6 -0
  390. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/index.js.map +1 -0
  391. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.d.ts +5 -0
  392. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js +36 -0
  393. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/InternalTransactionCustomerControl.js.map +1 -0
  394. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.d.ts +7 -0
  395. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.js +9 -0
  396. package/dist/elements/public/Transaction/internal/InternalTransactionCustomerControl/index.js.map +1 -0
  397. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.d.ts +11 -0
  398. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js +50 -0
  399. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/InternalTransactionPostActionControl.js.map +1 -0
  400. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/index.d.ts +5 -0
  401. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/index.js +7 -0
  402. package/dist/elements/public/Transaction/internal/InternalTransactionPostActionControl/index.js.map +1 -0
  403. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.d.ts +8 -0
  404. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js +77 -0
  405. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/InternalTransactionSummaryControl.js.map +1 -0
  406. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.d.ts +4 -0
  407. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.js +6 -0
  408. package/dist/elements/public/Transaction/internal/InternalTransactionSummaryControl/index.js.map +1 -0
  409. package/dist/elements/public/Transaction/types.d.ts +3 -0
  410. package/dist/elements/public/Transaction/types.js +2 -0
  411. package/dist/elements/public/Transaction/types.js.map +1 -0
  412. package/dist/elements/public/index.d.ts +10 -0
  413. package/dist/elements/public/index.defined.d.ts +10 -0
  414. package/dist/elements/public/index.defined.js +10 -0
  415. package/dist/elements/public/index.defined.js.map +1 -1
  416. package/dist/elements/public/index.js +10 -0
  417. package/dist/elements/public/index.js.map +1 -1
  418. package/dist/mixins/configurable.d.ts +5 -3
  419. package/dist/mixins/configurable.js +39 -4
  420. package/dist/mixins/configurable.js.map +1 -1
  421. package/dist/mixins/inferrable.d.ts +15 -0
  422. package/dist/mixins/inferrable.js +66 -0
  423. package/dist/mixins/inferrable.js.map +1 -0
  424. package/dist/mixins/themeable.js +96 -16
  425. package/dist/mixins/themeable.js.map +1 -1
  426. package/dist/mixins/translatable.d.ts +3 -1
  427. package/dist/mixins/translatable.js +13 -1
  428. package/dist/mixins/translatable.js.map +1 -1
  429. package/package.json +1 -1
  430. package/dist/cdn/shared-102cccce.js +0 -1
  431. package/dist/cdn/shared-1b98e51a.js +0 -1
  432. package/dist/cdn/shared-50f0611d.js +0 -15
  433. package/dist/cdn/shared-58debe59.js +0 -1
  434. package/dist/cdn/shared-5bf4b9f9.js +0 -1
  435. package/dist/cdn/shared-84731e61.js +0 -1
  436. package/dist/cdn/shared-930bbe32.js +0 -1
  437. package/dist/cdn/shared-a821b675.js +0 -1
  438. package/dist/cdn/shared-ebd1dc3f.js +0 -1
  439. package/dist/cdn/shared-f7a9db82.js +0 -1
  440. package/dist/cdn/shared-f92fa56a.js +0 -1
@@ -16,6 +16,19 @@ export const ConfigurableMixin = (BaseElement) => {
16
16
  this.hiddenControls = BooleanSelector.False;
17
17
  this.__observer = new MutationObserver(() => this.__onMutation());
18
18
  }
19
+ static get inferredProperties() {
20
+ return [
21
+ ...super.inferredProperties,
22
+ 'disabledSelector',
23
+ 'readonlySelector',
24
+ 'hiddenSelector',
25
+ 'templates',
26
+ 'disabled',
27
+ 'readonly',
28
+ 'hidden',
29
+ 'mode',
30
+ ];
31
+ }
19
32
  static get properties() {
20
33
  return {
21
34
  ...super.properties,
@@ -86,7 +99,7 @@ export const ConfigurableMixin = (BaseElement) => {
86
99
  });
87
100
  this.templates = templates;
88
101
  }
89
- renderTemplateOrSlot(name, __noSandbox = false) {
102
+ renderTemplateOrSlot(name, context) {
90
103
  const templateName = name !== null && name !== void 0 ? name : 'default';
91
104
  const template = this.templates[templateName];
92
105
  if (!template)
@@ -94,15 +107,14 @@ export const ConfigurableMixin = (BaseElement) => {
94
107
  const renderer = () => {
95
108
  try {
96
109
  const target = {};
97
- const proxy = new Proxy(target, { get: (_, p) => this[p] });
110
+ const resolvedContext = context !== null && context !== void 0 ? context : this;
111
+ const proxy = new Proxy(target, { get: (_, key) => resolvedContext[key] });
98
112
  return template === null || template === void 0 ? void 0 : template(html, proxy);
99
113
  }
100
114
  catch (err) {
101
115
  console.error(err);
102
116
  }
103
117
  };
104
- if (__noSandbox)
105
- return renderer();
106
118
  return html `
107
119
  <foxy-internal-sandbox data-testid=${templateName} .render=${renderer}>
108
120
  </foxy-internal-sandbox>
@@ -118,6 +130,29 @@ export const ConfigurableMixin = (BaseElement) => {
118
130
  });
119
131
  return nestedTemplates;
120
132
  }
133
+ applyInferredProperties(context) {
134
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
135
+ super.applyInferredProperties(context);
136
+ if (this.infer === null)
137
+ return;
138
+ const disabledSelector = context.get('disabledSelector');
139
+ const disabled = context.get('disabled');
140
+ const readonlySelector = context.get('readonlySelector');
141
+ const readonly = context.get('readonly');
142
+ const hiddenSelector = context.get('hiddenSelector');
143
+ const hidden = context.get('hidden');
144
+ const templates = context.get('templates');
145
+ const mode = context.get('mode');
146
+ this.disabledControls = (_a = disabledSelector === null || disabledSelector === void 0 ? void 0 : disabledSelector.zoom(this.infer)) !== null && _a !== void 0 ? _a : BooleanSelector.False;
147
+ this.disabled = (_c = (_b = disabledSelector === null || disabledSelector === void 0 ? void 0 : disabledSelector.matches(this.infer, true)) !== null && _b !== void 0 ? _b : disabled) !== null && _c !== void 0 ? _c : false;
148
+ this.readonlyControls = (_d = readonlySelector === null || readonlySelector === void 0 ? void 0 : readonlySelector.zoom(this.infer)) !== null && _d !== void 0 ? _d : BooleanSelector.False;
149
+ this.readonly = (_f = (_e = readonlySelector === null || readonlySelector === void 0 ? void 0 : readonlySelector.matches(this.infer, true)) !== null && _e !== void 0 ? _e : readonly) !== null && _f !== void 0 ? _f : false;
150
+ this.hiddenControls = (_g = hiddenSelector === null || hiddenSelector === void 0 ? void 0 : hiddenSelector.zoom(this.infer)) !== null && _g !== void 0 ? _g : BooleanSelector.False;
151
+ this.hidden = (_j = (_h = hiddenSelector === null || hiddenSelector === void 0 ? void 0 : hiddenSelector.matches(this.infer, true)) !== null && _h !== void 0 ? _h : hidden) !== null && _j !== void 0 ? _j : false;
152
+ this.templates = templates !== null && templates !== void 0 ? templates : {};
153
+ this.templates = this.getNestedTemplates(this.infer);
154
+ this.mode = mode !== null && mode !== void 0 ? mode : 'production';
155
+ }
121
156
  __observe() {
122
157
  this.__observer.observe(this, {
123
158
  characterData: true,
@@ -1 +1 @@
1
- {"version":3,"file":"configurable.js","sourceRoot":"","sources":["../../src/mixins/configurable.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { Constructor, LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { ifDefined } from 'lit-html/directives/if-defined';\n\nexport declare class ConfigurableMixinHost {\n /** Template render functions mapped to their name. */\n templates: Partial<Record<string, Renderer<any>>>;\n\n /**\n * Toggles additional functionality for developers on and off. In particular,\n * setting this property (or attribute with the same name) to \"development\" will\n * start tracking changes in templates, allowing developers to edit HTML in the browser\n * and see results without having to refresh the page every time.\n */\n mode: 'development' | 'production';\n\n /**\n * If true, makes every editable control inside of this element read-only.\n * This property is reflected to the `readonly` boolean attribute.\n *\n * @since 1.4.0\n */\n readonly: boolean;\n\n /**\n * [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) selecting\n * controls to render as read-only. Parsed version of the `readonlycontrols` attribute value.\n *\n * @type {BooleanSelector}\n * @since 1.4.0\n * @default BooleanSelector.False\n */\n readonlyControls: BooleanSelector;\n\n /**\n * If true, disables every interactive control inside of this element.\n * This property is reflected to the `disabled` boolean attribute.\n *\n * @since 1.4.0\n */\n disabled: boolean;\n\n /**\n * [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) selecting\n * controls to render as disabled. Parsed version of the `disabledcontrols` attribute value.\n *\n * @type {BooleanSelector}\n * @since 1.4.0\n * @default BooleanSelector.False\n */\n disabledControls: BooleanSelector;\n\n /**\n * If true, hides every configurable control inside of this element.\n * This property is reflected to the `hidden` boolean attribute.\n *\n * @since 1.4.0\n */\n hidden: boolean;\n\n /**\n * [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) selecting\n * controls to hide. Parsed version of the `hiddencontrols` attribute value.\n *\n * @type {BooleanSelector}\n * @since 1.4.0\n * @default BooleanSelector.False\n */\n hiddenControls: BooleanSelector;\n\n /**\n * Combined [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) for `readonlyControls`\n * and `readonly` properties. If `readonly` is true, this selector will match any control,\n * otherwise it will match the same controls as in `readonlyControls`.\n *\n * @since 1.4.0\n */\n get readonlySelector(): BooleanSelector;\n\n /**\n * Combined [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) for `disabledControls`\n * and `disabled` properties. If `disabled` is true, this selector will match any control,\n * otherwise it will match the same controls as in `disabledControls`.\n *\n * @since 1.4.0\n */\n get disabledSelector(): BooleanSelector;\n\n /**\n * Combined [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) for `hiddenControls`\n * and `hidden` properties. If `hidden` is true, this selector will match any control,\n * otherwise it will match the same controls as in `hiddenControls`.\n *\n * @since 1.4.0\n */\n get hiddenSelector(): BooleanSelector;\n\n /**\n * Looks for templates in element's children and compiles them to render functions.\n *\n * @param replace If true, all existing templates will be removed.\n */\n compileTemplates(replace?: boolean): void;\n\n /**\n * Renders a template with the given name if available and a slot otherwise.\n * For empty name looks for a \"default\" template first and renders it if found – otherwise renders a default slot.\n *\n * @param name Name of the template/slot to render.\n * @param __noSandbox INTERNAL - if true, doesn't isolate template content in a sandbox.\n */\n renderTemplateOrSlot(name?: string, __noSandbox?: boolean): void;\n\n /**\n * Zooms into templates with complex names. For example, zooming on `customer` in `customer:header:before`\n * will return `header:before`.\n *\n * @param id Name to zoom on.\n */\n getNestedTemplates<T extends Partial<Record<string, Renderer<any>>>>(id: string): T;\n}\n\ntype Base = Constructor<LitElement> & { properties?: PropertyDeclarations };\ntype TemplateFunction = typeof html;\nexport type Renderer<THost> = (html: TemplateFunction, host: THost) => TemplateResult;\n\nexport const ConfigurableMixin = <TBase extends Base>(\n BaseElement: TBase\n): TBase & Constructor<ConfigurableMixinHost> => {\n return class ConfigurableElement extends BaseElement {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n\n templates: { attribute: false },\n mode: { type: String },\n\n readonly: { type: Boolean, reflect: true },\n readonlyControls: {\n attribute: 'readonlycontrols',\n converter: { fromAttribute: value => new BooleanSelector(value ?? '') },\n },\n\n disabled: { type: Boolean, reflect: true },\n disabledControls: {\n attribute: 'disabledcontrols',\n converter: { fromAttribute: value => new BooleanSelector(value ?? '') },\n },\n\n hidden: { type: Boolean, reflect: true },\n hiddenControls: {\n attribute: 'hiddencontrols',\n converter: { fromAttribute: value => new BooleanSelector(value ?? '') },\n },\n };\n }\n\n templates = {} as Partial<Record<string, Renderer<any>>>;\n\n mode: 'development' | 'production' = 'production';\n\n readonly = false;\n\n readonlyControls: BooleanSelector = BooleanSelector.False;\n\n disabled = false;\n\n disabledControls: BooleanSelector = BooleanSelector.False;\n\n hidden = false;\n\n hiddenControls: BooleanSelector = BooleanSelector.False;\n\n private readonly __observer = new MutationObserver(() => this.__onMutation());\n\n get readonlySelector(): BooleanSelector {\n return this.readonly ? BooleanSelector.True : this.readonlyControls;\n }\n\n get disabledSelector(): BooleanSelector {\n return this.disabled ? BooleanSelector.True : this.disabledControls;\n }\n\n get hiddenSelector(): BooleanSelector {\n return this.hidden ? BooleanSelector.True : this.hiddenControls;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n if (this.mode === 'development') this.__observe();\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__observer.disconnect();\n }\n\n protected firstUpdated(...args: Parameters<LitElement['firstUpdated']>): void {\n super.firstUpdated(...args);\n if (this.mode === 'production') this.compileTemplates();\n }\n\n protected updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n\n if (changes.has('mode')) {\n this.__observer.disconnect();\n if (this.mode === 'development') this.__observe();\n }\n }\n\n compileTemplates(replace = false): void {\n const templates = replace ? {} : { ...this.templates };\n\n Array.from(this.children).forEach(child => {\n if (child.localName !== 'template') return;\n const slot = child.getAttribute('slot') ?? 'default';\n\n try {\n const script = `return html\\`${child.innerHTML}\\``;\n templates[slot] = new Function('html', 'host', script) as () => TemplateResult;\n } catch (err) {\n console.error(err);\n }\n });\n\n this.templates = templates;\n }\n\n renderTemplateOrSlot(name?: string, __noSandbox = false) {\n const templateName = name ?? 'default';\n const template = this.templates[templateName];\n\n if (!template) return html`<slot name=${ifDefined(name)}></slot>`;\n\n const renderer = () => {\n try {\n const target = {} as unknown as this;\n const proxy = new Proxy(target, { get: (_, p) => this[p as keyof this] });\n return template?.(html, proxy);\n } catch (err) {\n console.error(err);\n }\n };\n\n if (__noSandbox) return renderer();\n\n return html`\n <foxy-internal-sandbox data-testid=${templateName} .render=${renderer}>\n </foxy-internal-sandbox>\n `;\n }\n\n getNestedTemplates<T extends Partial<Record<string, Renderer<any>>>>(id: string): T {\n const nestedTemplates = {} as T;\n\n Object.entries(this.templates).forEach(([key, value]) => {\n if (key.startsWith(`${id}:`)) {\n const zoomedKey = key.replace(`${id}:`, '');\n nestedTemplates[zoomedKey as keyof T] = value as T[keyof T];\n }\n });\n\n return nestedTemplates;\n }\n\n private __observe() {\n this.__observer.observe(this, {\n characterData: true,\n attributes: true,\n childList: true,\n subtree: true,\n });\n\n this.__onMutation();\n }\n\n private __onMutation() {\n const config: MutationObserverInit = {\n characterData: true,\n attributes: true,\n childList: true,\n subtree: true,\n };\n\n this.__observer.disconnect();\n this.__observer.observe(this, config);\n\n Array.from(this.children).forEach(child => {\n if (child.localName !== 'template' || !child.hasAttribute('slot')) return;\n this.__observer.observe((child as HTMLTemplateElement).content, config);\n });\n\n this.compileTemplates(true);\n }\n };\n};\n"]}
1
+ {"version":3,"file":"configurable.js","sourceRoot":"","sources":["../../src/mixins/configurable.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { Constructor, LitElement, PropertyDeclarations, TemplateResult, html } from 'lit-element';\n\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { InferrableMixinHost } from './inferrable';\n\nexport declare class ConfigurableMixinHost {\n /** Template render functions mapped to their name. */\n templates: Partial<Record<string, Renderer<any>>>;\n\n /**\n * Toggles additional functionality for developers on and off. In particular,\n * setting this property (or attribute with the same name) to \"development\" will\n * start tracking changes in templates, allowing developers to edit HTML in the browser\n * and see results without having to refresh the page every time.\n */\n mode: 'development' | 'production';\n\n /**\n * If true, makes every editable control inside of this element read-only.\n * This property is reflected to the `readonly` boolean attribute.\n *\n * @since 1.4.0\n */\n readonly: boolean;\n\n /**\n * [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) selecting\n * controls to render as read-only. Parsed version of the `readonlycontrols` attribute value.\n *\n * @type {BooleanSelector}\n * @since 1.4.0\n * @default BooleanSelector.False\n */\n readonlyControls: BooleanSelector;\n\n /**\n * If true, disables every interactive control inside of this element.\n * This property is reflected to the `disabled` boolean attribute.\n *\n * @since 1.4.0\n */\n disabled: boolean;\n\n /**\n * [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) selecting\n * controls to render as disabled. Parsed version of the `disabledcontrols` attribute value.\n *\n * @type {BooleanSelector}\n * @since 1.4.0\n * @default BooleanSelector.False\n */\n disabledControls: BooleanSelector;\n\n /**\n * If true, hides every configurable control inside of this element.\n * This property is reflected to the `hidden` boolean attribute.\n *\n * @since 1.4.0\n */\n hidden: boolean;\n\n /**\n * [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) selecting\n * controls to hide. Parsed version of the `hiddencontrols` attribute value.\n *\n * @type {BooleanSelector}\n * @since 1.4.0\n * @default BooleanSelector.False\n */\n hiddenControls: BooleanSelector;\n\n /**\n * Combined [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) for `readonlyControls`\n * and `readonly` properties. If `readonly` is true, this selector will match any control,\n * otherwise it will match the same controls as in `readonlyControls`.\n *\n * @since 1.4.0\n */\n get readonlySelector(): BooleanSelector;\n\n /**\n * Combined [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) for `disabledControls`\n * and `disabled` properties. If `disabled` is true, this selector will match any control,\n * otherwise it will match the same controls as in `disabledControls`.\n *\n * @since 1.4.0\n */\n get disabledSelector(): BooleanSelector;\n\n /**\n * Combined [BooleanSelector](https://sdk.foxy.dev/classes/_core_index_.booleanselector.html) for `hiddenControls`\n * and `hidden` properties. If `hidden` is true, this selector will match any control,\n * otherwise it will match the same controls as in `hiddenControls`.\n *\n * @since 1.4.0\n */\n get hiddenSelector(): BooleanSelector;\n\n /**\n * Looks for templates in element's children and compiles them to render functions.\n *\n * @param replace If true, all existing templates will be removed.\n */\n compileTemplates(replace?: boolean): void;\n\n /**\n * Renders a template with the given name if available and a slot otherwise.\n * For empty name looks for a \"default\" template first and renders it if found – otherwise renders a default slot.\n *\n * @param name Name of the template/slot to render.\n * @param context Context to provide template renderer with.\n */\n renderTemplateOrSlot(name?: string, context?: any): void;\n\n /**\n * Zooms into templates with complex names. For example, zooming on `customer` in `customer:header:before`\n * will return `header:before`.\n *\n * @param id Name to zoom on.\n */\n getNestedTemplates<T extends Partial<Record<string, Renderer<any>>>>(id: string): T;\n}\n\ntype Base = Constructor<InferrableMixinHost> &\n Constructor<LitElement> & { properties?: PropertyDeclarations; inferredProperties: string[] };\n\ntype TemplateFunction = typeof html;\n\nexport type Renderer<THost> = (html: TemplateFunction, host: THost) => TemplateResult;\n\nexport const ConfigurableMixin = <TBase extends Base>(\n BaseElement: TBase\n): TBase & Constructor<ConfigurableMixinHost> => {\n return class ConfigurableElement extends BaseElement {\n static get inferredProperties(): string[] {\n return [\n ...super.inferredProperties,\n 'disabledSelector',\n 'readonlySelector',\n 'hiddenSelector',\n 'templates',\n 'disabled',\n 'readonly',\n 'hidden',\n 'mode',\n ];\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n\n templates: { attribute: false },\n mode: { type: String },\n\n readonly: { type: Boolean, reflect: true },\n readonlyControls: {\n attribute: 'readonlycontrols',\n converter: { fromAttribute: value => new BooleanSelector(value ?? '') },\n },\n\n disabled: { type: Boolean, reflect: true },\n disabledControls: {\n attribute: 'disabledcontrols',\n converter: { fromAttribute: value => new BooleanSelector(value ?? '') },\n },\n\n hidden: { type: Boolean, reflect: true },\n hiddenControls: {\n attribute: 'hiddencontrols',\n converter: { fromAttribute: value => new BooleanSelector(value ?? '') },\n },\n };\n }\n\n templates = {} as Partial<Record<string, Renderer<any>>>;\n\n mode: 'development' | 'production' = 'production';\n\n readonly = false;\n\n readonlyControls: BooleanSelector = BooleanSelector.False;\n\n disabled = false;\n\n disabledControls: BooleanSelector = BooleanSelector.False;\n\n hidden = false;\n\n hiddenControls: BooleanSelector = BooleanSelector.False;\n\n private readonly __observer = new MutationObserver(() => this.__onMutation());\n\n get readonlySelector(): BooleanSelector {\n return this.readonly ? BooleanSelector.True : this.readonlyControls;\n }\n\n get disabledSelector(): BooleanSelector {\n return this.disabled ? BooleanSelector.True : this.disabledControls;\n }\n\n get hiddenSelector(): BooleanSelector {\n return this.hidden ? BooleanSelector.True : this.hiddenControls;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n if (this.mode === 'development') this.__observe();\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.__observer.disconnect();\n }\n\n protected firstUpdated(...args: Parameters<LitElement['firstUpdated']>): void {\n super.firstUpdated(...args);\n if (this.mode === 'production') this.compileTemplates();\n }\n\n protected updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n\n if (changes.has('mode')) {\n this.__observer.disconnect();\n if (this.mode === 'development') this.__observe();\n }\n }\n\n compileTemplates(replace = false): void {\n const templates = replace ? {} : { ...this.templates };\n\n Array.from(this.children).forEach(child => {\n if (child.localName !== 'template') return;\n const slot = child.getAttribute('slot') ?? 'default';\n\n try {\n const script = `return html\\`${child.innerHTML}\\``;\n templates[slot] = new Function('html', 'host', script) as () => TemplateResult;\n } catch (err) {\n console.error(err);\n }\n });\n\n this.templates = templates;\n }\n\n renderTemplateOrSlot(name?: string, context?: any) {\n const templateName = name ?? 'default';\n const template = this.templates[templateName];\n\n if (!template) return html`<slot name=${ifDefined(name)}></slot>`;\n\n const renderer = () => {\n try {\n const target = {} as unknown as this;\n const resolvedContext = context ?? this;\n const proxy = new Proxy(target, { get: (_, key) => resolvedContext[key] });\n\n return template?.(html, proxy);\n } catch (err) {\n console.error(err);\n }\n };\n\n return html`\n <foxy-internal-sandbox data-testid=${templateName} .render=${renderer}>\n </foxy-internal-sandbox>\n `;\n }\n\n getNestedTemplates<T extends Partial<Record<string, Renderer<any>>>>(id: string): T {\n const nestedTemplates = {} as T;\n\n Object.entries(this.templates).forEach(([key, value]) => {\n if (key.startsWith(`${id}:`)) {\n const zoomedKey = key.replace(`${id}:`, '');\n nestedTemplates[zoomedKey as keyof T] = value as T[keyof T];\n }\n });\n\n return nestedTemplates;\n }\n\n applyInferredProperties(context: Map<string, unknown>): void {\n super.applyInferredProperties(context);\n\n type Templates = ConfigurableMixinHost['templates'];\n type Mode = ConfigurableMixinHost['mode'];\n\n if (this.infer === null) return;\n\n const disabledSelector = context.get('disabledSelector') as BooleanSelector | undefined;\n const disabled = context.get('disabled') as boolean | undefined;\n\n const readonlySelector = context.get('readonlySelector') as BooleanSelector | undefined;\n const readonly = context.get('readonly') as boolean | undefined;\n\n const hiddenSelector = context.get('hiddenSelector') as BooleanSelector | undefined;\n const hidden = context.get('hidden') as boolean | undefined;\n\n const templates = context.get('templates') as Templates | undefined;\n const mode = context.get('mode') as Mode | undefined;\n\n this.disabledControls = disabledSelector?.zoom(this.infer) ?? BooleanSelector.False;\n this.disabled = disabledSelector?.matches(this.infer, true) ?? disabled ?? false;\n\n this.readonlyControls = readonlySelector?.zoom(this.infer) ?? BooleanSelector.False;\n this.readonly = readonlySelector?.matches(this.infer, true) ?? readonly ?? false;\n\n this.hiddenControls = hiddenSelector?.zoom(this.infer) ?? BooleanSelector.False;\n this.hidden = hiddenSelector?.matches(this.infer, true) ?? hidden ?? false;\n\n this.templates = templates ?? {};\n this.templates = this.getNestedTemplates(this.infer);\n\n this.mode = mode ?? 'production';\n }\n\n private __observe() {\n this.__observer.observe(this, {\n characterData: true,\n attributes: true,\n childList: true,\n subtree: true,\n });\n\n this.__onMutation();\n }\n\n private __onMutation() {\n const config: MutationObserverInit = {\n characterData: true,\n attributes: true,\n childList: true,\n subtree: true,\n };\n\n this.__observer.disconnect();\n this.__observer.observe(this, config);\n\n Array.from(this.children).forEach(child => {\n if (child.localName !== 'template' || !child.hasAttribute('slot')) return;\n this.__observer.observe((child as HTMLTemplateElement).content, config);\n });\n\n this.compileTemplates(true);\n }\n };\n};\n"]}
@@ -0,0 +1,15 @@
1
+ import { Constructor, LitElement, PropertyDeclarations } from 'lit-element';
2
+ declare type Base = Constructor<LitElement> & {
3
+ properties?: PropertyDeclarations;
4
+ };
5
+ export declare class InferrableMixinHost {
6
+ infer: string | null;
7
+ inferProperties(): void;
8
+ inferFromElement(key: string, element: HTMLElement): unknown | undefined;
9
+ inferPropertiesInDescendants(): void;
10
+ applyInferredProperties(context: Map<string, unknown>): void;
11
+ }
12
+ export declare const InferrableMixin: <TBase extends Base>(BaseElement: TBase) => TBase & Constructor<InferrableMixinHost> & {
13
+ inferredProperties: string[];
14
+ };
15
+ export {};
@@ -0,0 +1,66 @@
1
+ export const InferrableMixin = (BaseElement) => {
2
+ return class InferrableElement extends BaseElement {
3
+ constructor() {
4
+ super(...arguments);
5
+ /** Set a name for this element here to enable property inference. Set to `null` to disable. */
6
+ this.infer = null;
7
+ }
8
+ static get inferredProperties() {
9
+ return [];
10
+ }
11
+ static get properties() {
12
+ return {
13
+ ...super.properties,
14
+ infer: { type: String, reflect: true },
15
+ };
16
+ }
17
+ inferFromElement(key, element) {
18
+ if (key in element)
19
+ return element[key];
20
+ }
21
+ inferProperties() {
22
+ var _a;
23
+ const context = new Map();
24
+ const constructor = this.constructor;
25
+ const contextKeysToInfer = new Set(constructor.inferredProperties);
26
+ const processNode = (node) => {
27
+ if (node) {
28
+ if (node instanceof ShadowRoot) {
29
+ processNode(node.host);
30
+ }
31
+ else if (node instanceof HTMLElement) {
32
+ contextKeysToInfer.forEach(key => {
33
+ const value = this.inferFromElement(key, node);
34
+ if (value !== undefined) {
35
+ context.set(key, value);
36
+ contextKeysToInfer.delete(key);
37
+ }
38
+ });
39
+ if (contextKeysToInfer.size > 0)
40
+ processNode(node.parentNode);
41
+ }
42
+ }
43
+ };
44
+ processNode(this.parentNode);
45
+ (_a = this.applyInferredProperties) === null || _a === void 0 ? void 0 : _a.call(this, context);
46
+ }
47
+ inferPropertiesInDescendants() {
48
+ const roots = this.renderRoot === this ? [this.renderRoot] : [this.renderRoot, this];
49
+ roots.forEach(root => root
50
+ .querySelectorAll('[infer]')
51
+ .forEach(inferrable => inferrable.inferProperties()));
52
+ }
53
+ applyInferredProperties(context) {
54
+ //
55
+ }
56
+ connectedCallback() {
57
+ super.connectedCallback();
58
+ this.inferPropertiesInDescendants();
59
+ }
60
+ updated(changes) {
61
+ super.updated(changes);
62
+ this.inferPropertiesInDescendants();
63
+ }
64
+ };
65
+ };
66
+ //# sourceMappingURL=inferrable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inferrable.js","sourceRoot":"","sources":["../../src/mixins/inferrable.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,WAAkB,EAC2D,EAAE;IAC/E,OAAO,MAAM,iBAAkB,SAAQ,WAAW;QAA3C;;YAYL,+FAA+F;YAC/F,UAAK,GAAkB,IAAI,CAAC;QAwD9B,CAAC;QApEC,MAAM,KAAK,kBAAkB;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,UAAU;YACnB,OAAO;gBACL,GAAG,KAAK,CAAC,UAAU;gBACnB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;aACvC,CAAC;QACJ,CAAC;QAKD,gBAAgB,CAAC,GAAW,EAAE,OAAoB;YAChD,IAAI,GAAG,IAAI,OAAO;gBAAE,OAAQ,OAAe,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC;QAED,eAAe;;YACb,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAuC,CAAC;YACjE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YAEnE,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAQ,EAAE;gBAC9C,IAAI,IAAI,EAAE;oBACR,IAAI,IAAI,YAAY,UAAU,EAAE;wBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBACxB;yBAAM,IAAI,IAAI,YAAY,WAAW,EAAE;wBACtC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;4BAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;4BAC/C,IAAI,KAAK,KAAK,SAAS,EAAE;gCACvB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gCACxB,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;6BAChC;wBACH,CAAC,CAAC,CAAC;wBAEH,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC;4BAAE,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC/D;iBACF;YACH,CAAC,CAAC;YAEF,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,MAAA,IAAI,CAAC,uBAAuB,+CAA5B,IAAI,EAA2B,OAAO,EAAE;QAC1C,CAAC;QAED,4BAA4B;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAErF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CACnB,IAAI;iBACD,gBAAgB,CAAoC,SAAS,CAAC;iBAC9D,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CACvD,CAAC;QACJ,CAAC;QAED,uBAAuB,CAAC,OAA6B;YACnD,EAAE;QACJ,CAAC;QAED,iBAAiB;YACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC1B,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACtC,CAAC;QAED,OAAO,CAAC,OAAiC;YACvC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { Constructor, LitElement, PropertyDeclarations } from 'lit-element';\n\ntype Base = Constructor<LitElement> & { properties?: PropertyDeclarations };\n\nexport declare class InferrableMixinHost {\n infer: string | null;\n\n inferProperties(): void;\n\n inferFromElement(key: string, element: HTMLElement): unknown | undefined;\n\n inferPropertiesInDescendants(): void;\n\n applyInferredProperties(context: Map<string, unknown>): void;\n}\n\nexport const InferrableMixin = <TBase extends Base>(\n BaseElement: TBase\n): TBase & Constructor<InferrableMixinHost> & { inferredProperties: string[] } => {\n return class InferrableElement extends BaseElement {\n static get inferredProperties(): string[] {\n return [];\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n infer: { type: String, reflect: true },\n };\n }\n\n /** Set a name for this element here to enable property inference. Set to `null` to disable. */\n infer: string | null = null;\n\n inferFromElement(key: string, element: HTMLElement): unknown | undefined {\n if (key in element) return (element as any)[key];\n }\n\n inferProperties(): void {\n const context = new Map<string, unknown>();\n const constructor = this.constructor as typeof InferrableElement;\n const contextKeysToInfer = new Set(constructor.inferredProperties);\n\n const processNode = (node: Node | null): void => {\n if (node) {\n if (node instanceof ShadowRoot) {\n processNode(node.host);\n } else if (node instanceof HTMLElement) {\n contextKeysToInfer.forEach(key => {\n const value = this.inferFromElement(key, node);\n if (value !== undefined) {\n context.set(key, value);\n contextKeysToInfer.delete(key);\n }\n });\n\n if (contextKeysToInfer.size > 0) processNode(node.parentNode);\n }\n }\n };\n\n processNode(this.parentNode);\n this.applyInferredProperties?.(context);\n }\n\n inferPropertiesInDescendants(): void {\n const roots = this.renderRoot === this ? [this.renderRoot] : [this.renderRoot, this];\n\n roots.forEach(root =>\n root\n .querySelectorAll<InferrableMixinHost & HTMLElement>('[infer]')\n .forEach(inferrable => inferrable.inferProperties())\n );\n }\n\n applyInferredProperties(context: Map<string, unknown>): void {\n //\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.inferPropertiesInDescendants();\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n this.inferPropertiesInDescendants();\n }\n };\n};\n"]}
@@ -428,6 +428,13 @@ input::-webkit-date-and-time-value{
428
428
  left: 0;
429
429
  }
430
430
 
431
+ .inset {
432
+ top: var(--lumo-space-m, 1rem);
433
+ right: var(--lumo-space-m, 1rem);
434
+ bottom: var(--lumo-space-m, 1rem);
435
+ left: var(--lumo-space-m, 1rem);
436
+ }
437
+
431
438
  .top-0 {
432
439
  top: 0;
433
440
  }
@@ -452,10 +459,6 @@ input::-webkit-date-and-time-value{
452
459
  left: var(--lumo-space-m, 1rem);
453
460
  }
454
461
 
455
- .isolate {
456
- isolation: isolate;
457
- }
458
-
459
462
  .z-50 {
460
463
  z-index: 50;
461
464
  }
@@ -554,6 +557,11 @@ input::-webkit-date-and-time-value{
554
557
  margin-right: calc(var(--lumo-space-s, 0.5rem) * -1);
555
558
  }
556
559
 
560
+ .-mx-m {
561
+ margin-left: calc(var(--lumo-space-m, 1rem) * -1);
562
+ margin-right: calc(var(--lumo-space-m, 1rem) * -1);
563
+ }
564
+
557
565
  .my-auto {
558
566
  margin-top: auto;
559
567
  margin-bottom: auto;
@@ -1185,6 +1193,10 @@ input::-webkit-date-and-time-value{
1185
1193
  justify-content: space-evenly;
1186
1194
  }
1187
1195
 
1196
+ .gap-xs {
1197
+ gap: var(--lumo-space-xs, 0.25rem);
1198
+ }
1199
+
1188
1200
  .gap-s {
1189
1201
  gap: var(--lumo-space-s, 0.5rem);
1190
1202
  }
@@ -1618,6 +1630,10 @@ input::-webkit-date-and-time-value{
1618
1630
  padding-right: var(--lumo-space-xs, 0.25rem);
1619
1631
  }
1620
1632
 
1633
+ .pr-s {
1634
+ padding-right: var(--lumo-space-s, 0.5rem);
1635
+ }
1636
+
1621
1637
  .pr-m {
1622
1638
  padding-right: var(--lumo-space-m, 1rem);
1623
1639
  }
@@ -1823,6 +1839,10 @@ input::-webkit-date-and-time-value{
1823
1839
  color: var(--lumo-error-text-color, hsl(3, 92%, 53%));
1824
1840
  }
1825
1841
 
1842
+ .text-error-contrast {
1843
+ color: var(--lumo-error-contrast-color, #fff);
1844
+ }
1845
+
1826
1846
  .text-success {
1827
1847
  color: var(--lumo-success-text-color, hsl(145, 100%, 32%));
1828
1848
  }
@@ -2609,6 +2629,13 @@ input::-webkit-date-and-time-value{
2609
2629
  left: 0;
2610
2630
  }
2611
2631
 
2632
+ .inset {
2633
+ top: var(--lumo-space-m, 1rem);
2634
+ right: var(--lumo-space-m, 1rem);
2635
+ bottom: var(--lumo-space-m, 1rem);
2636
+ left: var(--lumo-space-m, 1rem);
2637
+ }
2638
+
2612
2639
  .top-0 {
2613
2640
  top: 0;
2614
2641
  }
@@ -2633,10 +2660,6 @@ input::-webkit-date-and-time-value{
2633
2660
  left: var(--lumo-space-m, 1rem);
2634
2661
  }
2635
2662
 
2636
- .isolate {
2637
- isolation: isolate;
2638
- }
2639
-
2640
2663
  .z-50 {
2641
2664
  z-index: 50;
2642
2665
  }
@@ -2735,6 +2758,11 @@ input::-webkit-date-and-time-value{
2735
2758
  margin-right: calc(var(--lumo-space-s, 0.5rem) * -1);
2736
2759
  }
2737
2760
 
2761
+ .-mx-m {
2762
+ margin-left: calc(var(--lumo-space-m, 1rem) * -1);
2763
+ margin-right: calc(var(--lumo-space-m, 1rem) * -1);
2764
+ }
2765
+
2738
2766
  .my-auto {
2739
2767
  margin-top: auto;
2740
2768
  margin-bottom: auto;
@@ -3366,6 +3394,10 @@ input::-webkit-date-and-time-value{
3366
3394
  justify-content: space-evenly;
3367
3395
  }
3368
3396
 
3397
+ .gap-xs {
3398
+ gap: var(--lumo-space-xs, 0.25rem);
3399
+ }
3400
+
3369
3401
  .gap-s {
3370
3402
  gap: var(--lumo-space-s, 0.5rem);
3371
3403
  }
@@ -3799,6 +3831,10 @@ input::-webkit-date-and-time-value{
3799
3831
  padding-right: var(--lumo-space-xs, 0.25rem);
3800
3832
  }
3801
3833
 
3834
+ .pr-s {
3835
+ padding-right: var(--lumo-space-s, 0.5rem);
3836
+ }
3837
+
3802
3838
  .pr-m {
3803
3839
  padding-right: var(--lumo-space-m, 1rem);
3804
3840
  }
@@ -4004,6 +4040,10 @@ input::-webkit-date-and-time-value{
4004
4040
  color: var(--lumo-error-text-color, hsl(3, 92%, 53%));
4005
4041
  }
4006
4042
 
4043
+ .text-error-contrast {
4044
+ color: var(--lumo-error-contrast-color, #fff);
4045
+ }
4046
+
4007
4047
  .text-success {
4008
4048
  color: var(--lumo-success-text-color, hsl(145, 100%, 32%));
4009
4049
  }
@@ -4786,6 +4826,13 @@ input::-webkit-date-and-time-value{
4786
4826
  left: 0;
4787
4827
  }
4788
4828
 
4829
+ .inset {
4830
+ top: var(--lumo-space-m, 1rem);
4831
+ right: var(--lumo-space-m, 1rem);
4832
+ bottom: var(--lumo-space-m, 1rem);
4833
+ left: var(--lumo-space-m, 1rem);
4834
+ }
4835
+
4789
4836
  .top-0 {
4790
4837
  top: 0;
4791
4838
  }
@@ -4810,10 +4857,6 @@ input::-webkit-date-and-time-value{
4810
4857
  left: var(--lumo-space-m, 1rem);
4811
4858
  }
4812
4859
 
4813
- .isolate {
4814
- isolation: isolate;
4815
- }
4816
-
4817
4860
  .z-50 {
4818
4861
  z-index: 50;
4819
4862
  }
@@ -4912,6 +4955,11 @@ input::-webkit-date-and-time-value{
4912
4955
  margin-right: calc(var(--lumo-space-s, 0.5rem) * -1);
4913
4956
  }
4914
4957
 
4958
+ .-mx-m {
4959
+ margin-left: calc(var(--lumo-space-m, 1rem) * -1);
4960
+ margin-right: calc(var(--lumo-space-m, 1rem) * -1);
4961
+ }
4962
+
4915
4963
  .my-auto {
4916
4964
  margin-top: auto;
4917
4965
  margin-bottom: auto;
@@ -5543,6 +5591,10 @@ input::-webkit-date-and-time-value{
5543
5591
  justify-content: space-evenly;
5544
5592
  }
5545
5593
 
5594
+ .gap-xs {
5595
+ gap: var(--lumo-space-xs, 0.25rem);
5596
+ }
5597
+
5546
5598
  .gap-s {
5547
5599
  gap: var(--lumo-space-s, 0.5rem);
5548
5600
  }
@@ -5976,6 +6028,10 @@ input::-webkit-date-and-time-value{
5976
6028
  padding-right: var(--lumo-space-xs, 0.25rem);
5977
6029
  }
5978
6030
 
6031
+ .pr-s {
6032
+ padding-right: var(--lumo-space-s, 0.5rem);
6033
+ }
6034
+
5979
6035
  .pr-m {
5980
6036
  padding-right: var(--lumo-space-m, 1rem);
5981
6037
  }
@@ -6181,6 +6237,10 @@ input::-webkit-date-and-time-value{
6181
6237
  color: var(--lumo-error-text-color, hsl(3, 92%, 53%));
6182
6238
  }
6183
6239
 
6240
+ .text-error-contrast {
6241
+ color: var(--lumo-error-contrast-color, #fff);
6242
+ }
6243
+
6184
6244
  .text-success {
6185
6245
  color: var(--lumo-success-text-color, hsl(145, 100%, 32%));
6186
6246
  }
@@ -6963,6 +7023,13 @@ input::-webkit-date-and-time-value{
6963
7023
  left: 0;
6964
7024
  }
6965
7025
 
7026
+ .inset {
7027
+ top: var(--lumo-space-m, 1rem);
7028
+ right: var(--lumo-space-m, 1rem);
7029
+ bottom: var(--lumo-space-m, 1rem);
7030
+ left: var(--lumo-space-m, 1rem);
7031
+ }
7032
+
6966
7033
  .top-0 {
6967
7034
  top: 0;
6968
7035
  }
@@ -6987,10 +7054,6 @@ input::-webkit-date-and-time-value{
6987
7054
  left: var(--lumo-space-m, 1rem);
6988
7055
  }
6989
7056
 
6990
- .isolate {
6991
- isolation: isolate;
6992
- }
6993
-
6994
7057
  .z-50 {
6995
7058
  z-index: 50;
6996
7059
  }
@@ -7089,6 +7152,11 @@ input::-webkit-date-and-time-value{
7089
7152
  margin-right: calc(var(--lumo-space-s, 0.5rem) * -1);
7090
7153
  }
7091
7154
 
7155
+ .-mx-m {
7156
+ margin-left: calc(var(--lumo-space-m, 1rem) * -1);
7157
+ margin-right: calc(var(--lumo-space-m, 1rem) * -1);
7158
+ }
7159
+
7092
7160
  .my-auto {
7093
7161
  margin-top: auto;
7094
7162
  margin-bottom: auto;
@@ -7720,6 +7788,10 @@ input::-webkit-date-and-time-value{
7720
7788
  justify-content: space-evenly;
7721
7789
  }
7722
7790
 
7791
+ .gap-xs {
7792
+ gap: var(--lumo-space-xs, 0.25rem);
7793
+ }
7794
+
7723
7795
  .gap-s {
7724
7796
  gap: var(--lumo-space-s, 0.5rem);
7725
7797
  }
@@ -8153,6 +8225,10 @@ input::-webkit-date-and-time-value{
8153
8225
  padding-right: var(--lumo-space-xs, 0.25rem);
8154
8226
  }
8155
8227
 
8228
+ .pr-s {
8229
+ padding-right: var(--lumo-space-s, 0.5rem);
8230
+ }
8231
+
8156
8232
  .pr-m {
8157
8233
  padding-right: var(--lumo-space-m, 1rem);
8158
8234
  }
@@ -8358,6 +8434,10 @@ input::-webkit-date-and-time-value{
8358
8434
  color: var(--lumo-error-text-color, hsl(3, 92%, 53%));
8359
8435
  }
8360
8436
 
8437
+ .text-error-contrast {
8438
+ color: var(--lumo-error-contrast-color, #fff);
8439
+ }
8440
+
8361
8441
  .text-success {
8362
8442
  color: var(--lumo-success-text-color, hsl(145, 100%, 32%));
8363
8443
  }
@@ -1 +1 @@
1
- {"version":3,"file":"themeable.js","sourceRoot":"","sources":["../../src/mixins/themeable.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAA0C,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,wBAAqB;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAI/E,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,WAAkB,EACkB,EAAE;IACtC,OAAO,MAAM,gBAAiB,SAAQ,WAAW;QAC/C,MAAM,KAAK,MAAM;YACf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YAEjC,OAAO;gBACL,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA6HF;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,CACZ,yBAAyB,EACzB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SASF,CACF,CAAC;AAEF,cAAc,CACZ,qCAAqC,EACrC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAOF,CACF,CAAC;AAEF,cAAc,CACZ,qCAAqC,EACrC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAOF,CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,OAAgB,SAAU,SAAQ,mBAAmB,CACzD,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAC5C;CAAG","sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { CSSResult, CSSResultArray, Constructor, LitElement, css } from 'lit-element';\n\nimport { ResponsiveMixin } from './responsive';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles';\n\ntype Base = Constructor<LitElement> & { styles?: CSSResult | CSSResultArray | CSSStyleSheet };\n\nexport const ThemeableMixin = <TBase extends Base>(\n BaseElement: TBase\n): TBase & { styles: CSSResultArray } => {\n return class ThemeableElement extends BaseElement {\n static get styles(): CSSResultArray {\n const originalCSS = super.styles;\n\n return [\n ...(originalCSS ? (Array.isArray(originalCSS) ? originalCSS : [originalCSS]) : []),\n css`\n @tailwind base;\n\n * {\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n :host {\n display: block;\n }\n\n details > summary::-webkit-details-marker {\n display: none;\n }\n\n details > summary {\n list-style: none;\n }\n\n vaadin-select {\n margin-top: -4px;\n margin-bottom: -4px;\n }\n\n vaadin-text-area,\n vaadin-text-field,\n vaadin-date-picker,\n vaadin-email-field,\n vaadin-number-field,\n vaadin-custom-field,\n vaadin-integer-field,\n vaadin-password-field,\n vaadin-combo-box::part(text-field) {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n vaadin-date-picker::part(text-field) {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n vaadin-time-picker {\n width: 100%;\n }\n\n vaadin-date-time-picker {\n width: 100%;\n }\n\n vaadin-button {\n margin: 0;\n }\n\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n }\n\n vaadin-checkbox::part(label) {\n margin: 0.1875em var(--lumo-space-m);\n }\n\n .appearance-none {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n\n .appearance-none::-webkit-calendar-picker-indicator,\n .appearance-none::-webkit-outer-spin-button,\n .appearance-none::-webkit-inner-spin-button,\n .appearance-none::-webkit-list-button {\n opacity: 0 !important;\n width: 0 !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n\n input::-webkit-date-and-time-value {\n text-align: inherit !important;\n }\n\n @tailwind components;\n\n @tailwind utilities;\n\n @layer utilities {\n .border-radius-overflow-fix {\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n }\n\n @variants sm, md, lg, xl {\n .grid-rows-auto {\n grid-auto-rows: 1fr;\n }\n\n .icon-inline {\n --iron-icon-height: 1em;\n --iron-icon-width: 1em;\n }\n\n .bg-blurred {\n backdrop-filter: blur(25px);\n background: var(--lumo-tint-80pct);\n }\n\n .max-w-modal {\n max-width: 28rem;\n }\n\n .w-narrow-modal {\n width: 18rem;\n }\n\n .snap-x-mandatory {\n scroll-snap-type: x mandatory;\n }\n\n .snap-start {\n scroll-snap-align: start;\n }\n }\n }\n `,\n ];\n }\n };\n};\n\nregisterStyles(\n 'vaadin-date-time-picker',\n css`\n vaadin-date-time-picker-custom-field {\n --lumo-text-field-size: auto;\n padding: 0;\n }\n\n vaadin-date-time-picker-custom-field::part(label) {\n padding-bottom: 0.5em;\n }\n `\n);\n\nregisterStyles(\n 'vaadin-date-time-picker-date-picker',\n css`\n :host {\n --lumo-text-field-size: auto;\n }\n vaadin-date-time-picker-date-text-field {\n padding: 0;\n }\n `\n);\n\nregisterStyles(\n 'vaadin-date-time-picker-time-picker',\n css`\n :host {\n --lumo-text-field-size: auto;\n }\n vaadin-date-time-picker-time-text-field {\n padding: 0;\n }\n `\n);\n\n/**\n * One of the base classes for each rel-specific element in the collection\n * providing shared TailwindCSS styles for Shadow DOM content.\n * This class MUST NOT be used on its own (hence the `abstract` keyword) or\n * referenced externally (outside of the package).\n *\n * @deprecated\n */\nexport abstract class Themeable extends ScopedElementsMixin(\n ResponsiveMixin(ThemeableMixin(LitElement))\n) {}\n"]}
1
+ {"version":3,"file":"themeable.js","sourceRoot":"","sources":["../../src/mixins/themeable.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAA0C,UAAU,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,wBAAqB;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAI/E,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,WAAkB,EACkB,EAAE;IACtC,OAAO,MAAM,gBAAiB,SAAQ,WAAW;QAC/C,MAAM,KAAK,MAAM;YACf,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;YAEjC,OAAO;gBACL,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClF,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA6HF;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,cAAc,CACZ,yBAAyB,EACzB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SASF,CACF,CAAC;AAEF,cAAc,CACZ,qCAAqC,EACrC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAOF,CACF,CAAC;AAEF,cAAc,CACZ,qCAAqC,EACrC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAOF,CACF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,OAAgB,SAAU,SAAQ,mBAAmB,CACzD,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAC5C;CAAG","sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n\nimport { CSSResult, CSSResultArray, Constructor, LitElement, css } from 'lit-element';\n\nimport { ResponsiveMixin } from './responsive';\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements';\nimport { registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles';\n\ntype Base = Constructor<LitElement> & { styles?: CSSResult | CSSResultArray | CSSStyleSheet };\n\nexport const ThemeableMixin = <TBase extends Base>(\n BaseElement: TBase\n): TBase & { styles: CSSResultArray } => {\n return class ThemeableElement extends BaseElement {\n static get styles(): CSSResultArray {\n const originalCSS = super.styles;\n\n return [\n ...(originalCSS ? (Array.isArray(originalCSS) ? originalCSS : [originalCSS]) : []),\n css`\n @tailwind base;\n\n * {\n -webkit-tap-highlight-color: transparent;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n :host {\n display: block;\n }\n\n details > summary::-webkit-details-marker {\n display: none;\n }\n\n details > summary {\n list-style: none;\n }\n\n vaadin-select {\n margin-top: -4px;\n margin-bottom: -4px;\n }\n\n vaadin-text-area,\n vaadin-text-field,\n vaadin-date-picker,\n vaadin-email-field,\n vaadin-number-field,\n vaadin-custom-field,\n vaadin-integer-field,\n vaadin-password-field,\n vaadin-combo-box::part(text-field) {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n vaadin-date-picker::part(text-field) {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n vaadin-time-picker {\n width: 100%;\n }\n\n vaadin-date-time-picker {\n width: 100%;\n }\n\n vaadin-button {\n margin: 0;\n }\n\n vaadin-checkbox::part(checkbox) {\n margin: 0;\n }\n\n vaadin-checkbox::part(label) {\n margin: 0.1875em var(--lumo-space-m);\n }\n\n .appearance-none {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n\n .appearance-none::-webkit-calendar-picker-indicator,\n .appearance-none::-webkit-outer-spin-button,\n .appearance-none::-webkit-inner-spin-button,\n .appearance-none::-webkit-list-button {\n opacity: 0 !important;\n width: 0 !important;\n margin: 0 !important;\n padding: 0 !important;\n }\n\n input::-webkit-date-and-time-value {\n text-align: inherit !important;\n }\n\n @tailwind components;\n\n @tailwind utilities;\n\n @layer utilities {\n .border-radius-overflow-fix {\n -webkit-mask-image: -webkit-radial-gradient(white, black);\n }\n\n @variants sm, md, lg, xl {\n .grid-rows-auto {\n grid-auto-rows: 1fr;\n }\n\n .icon-inline {\n --iron-icon-height: 1em;\n --iron-icon-width: 1em;\n }\n\n .bg-blurred {\n backdrop-filter: blur(25px);\n background: var(--lumo-tint-80pct);\n }\n\n .max-w-modal {\n max-width: 28rem;\n }\n\n .w-narrow-modal {\n width: 18rem;\n }\n\n .snap-x-mandatory {\n scroll-snap-type: x mandatory;\n }\n\n .snap-start {\n scroll-snap-align: start;\n }\n }\n }\n `,\n ];\n }\n };\n};\n\nregisterStyles(\n 'vaadin-date-time-picker',\n css`\n vaadin-date-time-picker-custom-field {\n --lumo-text-field-size: auto;\n padding: 0;\n }\n\n vaadin-date-time-picker-custom-field::part(label) {\n padding-bottom: 0.5em;\n }\n `\n);\n\nregisterStyles(\n 'vaadin-date-time-picker-date-picker',\n css`\n :host {\n --lumo-text-field-size: auto;\n }\n vaadin-date-time-picker-date-text-field {\n padding: 0;\n }\n `\n);\n\nregisterStyles(\n 'vaadin-date-time-picker-time-picker',\n css`\n :host {\n --lumo-text-field-size: auto;\n }\n vaadin-date-time-picker-time-text-field {\n padding: 0;\n }\n `\n);\n\n/**\n * One of the base classes for each rel-specific element in the collection\n * providing shared TailwindCSS styles for Shadow DOM content.\n * This class MUST NOT be used on its own (hence the `abstract` keyword) or\n * referenced externally (outside of the package).\n *\n * @deprecated\n */\nexport abstract class Themeable extends ScopedElementsMixin(\n ResponsiveMixin(ThemeableMixin(LitElement))\n) {}\n"]}
@@ -1,6 +1,7 @@
1
1
  import { Constructor, LitElement, PropertyDeclarations } from 'lit-element';
2
2
  import { StringMap, TFunction, i18n } from 'i18next';
3
3
  import { Themeable } from './themeable';
4
+ import { InferrableMixinHost } from './inferrable';
4
5
  /**
5
6
  * One of the base classes for each rel-specific element in the collection,
6
7
  * providing internationalization capabilities to the derived components.
@@ -64,8 +65,9 @@ export declare abstract class Translatable extends Themeable {
64
65
  protected get _isI18nReady(): boolean;
65
66
  protected get _t(): TFunction;
66
67
  }
67
- declare type Base = Constructor<LitElement> & {
68
+ declare type Base = Constructor<InferrableMixinHost> & Constructor<LitElement> & {
68
69
  properties?: PropertyDeclarations;
70
+ inferredProperties: string[];
69
71
  };
70
72
  declare type Translator = (key: string, options?: StringMap) => string;
71
73
  export declare class TranslatableMixinHost {
@@ -159,7 +159,7 @@ export const TranslatableMixin = (BaseElement, defaultNS = '') => {
159
159
  const keys = [
160
160
  ...[defaultNS, ...this.ns.split(' ').reverse()]
161
161
  .map(v => v.trim())
162
- .filter((v, i, a) => a.indexOf(v) === i && v.length > 0)
162
+ .filter(v => v.length > 0)
163
163
  .reverse()
164
164
  .map((v, i, a) => `${v}:${[...a.slice(i + 1), key].join('.')}`),
165
165
  `shared:${key}`,
@@ -167,6 +167,9 @@ export const TranslatableMixin = (BaseElement, defaultNS = '') => {
167
167
  return I18nElement.i18next.t(keys, { lng: this.lang, ...options }).toString();
168
168
  };
169
169
  }
170
+ static get inferredProperties() {
171
+ return [...super.inferredProperties, 'lang', 'ns'];
172
+ }
170
173
  static get properties() {
171
174
  return {
172
175
  ...super.properties,
@@ -198,6 +201,15 @@ export const TranslatableMixin = (BaseElement, defaultNS = '') => {
198
201
  super.disconnectedCallback();
199
202
  (_a = this.__untrackTranslations) === null || _a === void 0 ? void 0 : _a.call(this);
200
203
  }
204
+ applyInferredProperties(context) {
205
+ super.applyInferredProperties(context);
206
+ if (this.infer === null)
207
+ return;
208
+ const lang = context.get('lang');
209
+ const ns = context.get('ns');
210
+ this.lang = lang !== null && lang !== void 0 ? lang : '';
211
+ this.ns = ns ? `${ns} ${this.infer}`.trim() : defaultNS;
212
+ }
201
213
  };
202
214
  };
203
215
  //# sourceMappingURL=translatable.js.map