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

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 (323) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +5 -5
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-api-browser.js +1 -1
  6. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  8. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  9. package/dist/cdn/foxy-attribute-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-form.js +1 -1
  11. package/dist/cdn/foxy-billing-address-card.js +1 -1
  12. package/dist/cdn/foxy-cancellation-form.js +1 -1
  13. package/dist/cdn/foxy-cart-card.js +1 -1
  14. package/dist/cdn/foxy-cart-form.js +57 -1
  15. package/dist/cdn/foxy-client-card.js +1 -1
  16. package/dist/cdn/foxy-client-form.js +1 -1
  17. package/dist/cdn/foxy-collection-page.js +1 -1
  18. package/dist/cdn/foxy-collection-pages.js +1 -1
  19. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  20. package/dist/cdn/foxy-coupon-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-code-card.js +1 -1
  22. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  23. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  24. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  25. package/dist/cdn/foxy-coupon-form.js +1 -1
  26. package/dist/cdn/foxy-custom-field-card.js +1 -1
  27. package/dist/cdn/foxy-custom-field-form.js +1 -1
  28. package/dist/cdn/foxy-customer-api.js +1 -1
  29. package/dist/cdn/foxy-customer-card.js +1 -1
  30. package/dist/cdn/foxy-customer-form.js +1 -1
  31. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  32. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  33. package/dist/cdn/foxy-customer-portal.js +2 -2
  34. package/dist/cdn/foxy-customer.js +4 -4
  35. package/dist/cdn/foxy-customers-table.js +1 -1
  36. package/dist/cdn/foxy-discount-builder.js +1 -1
  37. package/dist/cdn/foxy-discount-card.js +1 -1
  38. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  39. package/dist/cdn/foxy-donation.js +1 -1
  40. package/dist/cdn/foxy-downloadable-card.js +1 -1
  41. package/dist/cdn/foxy-downloadable-form.js +1 -1
  42. package/dist/cdn/foxy-email-template-card.js +1 -1
  43. package/dist/cdn/foxy-email-template-form.js +1 -1
  44. package/dist/cdn/foxy-error-entry-card.js +1 -1
  45. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  46. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  47. package/dist/cdn/foxy-form-dialog.js +1 -1
  48. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  49. package/dist/cdn/foxy-gift-card-card.js +1 -1
  50. package/dist/cdn/foxy-gift-card-code-card.js +1 -1
  51. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  52. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  53. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  54. package/dist/cdn/foxy-gift-card-form.js +1 -1
  55. package/dist/cdn/foxy-i18n-editor.js +2 -2
  56. package/dist/cdn/foxy-i18n.js +1 -1
  57. package/dist/cdn/foxy-integration-card.js +1 -1
  58. package/dist/cdn/foxy-integration-form.js +1 -1
  59. package/dist/cdn/foxy-item-card.js +1 -1
  60. package/dist/cdn/foxy-item-category-card.js +1 -1
  61. package/dist/cdn/foxy-item-category-form.js +1 -1
  62. package/dist/cdn/foxy-item-form.js +3 -3
  63. package/dist/cdn/foxy-item-option-card.js +1 -1
  64. package/dist/cdn/foxy-item-option-form.js +1 -1
  65. package/dist/cdn/foxy-items-form.js +1 -1
  66. package/dist/cdn/foxy-native-integration-card.js +1 -1
  67. package/dist/cdn/foxy-native-integration-form.js +1 -1
  68. package/dist/cdn/foxy-nucleon-element.js +1 -1
  69. package/dist/cdn/foxy-pagination.js +1 -1
  70. package/dist/cdn/foxy-passkey-card.js +1 -1
  71. package/dist/cdn/foxy-passkey-form.js +1 -1
  72. package/dist/cdn/foxy-payment-card-embed.js +1 -1
  73. package/dist/cdn/foxy-payment-card.js +1 -1
  74. package/dist/cdn/foxy-payment-method-card.js +1 -1
  75. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  76. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  77. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  78. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  79. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  80. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  81. package/dist/cdn/foxy-payments-api.js +1 -1
  82. package/dist/cdn/foxy-query-builder.js +1 -1
  83. package/dist/cdn/foxy-report-form.js +1 -1
  84. package/dist/cdn/foxy-reports-table.js +5 -5
  85. package/dist/cdn/foxy-shipment-card.js +1 -1
  86. package/dist/cdn/foxy-shipping-container-card.js +1 -1
  87. package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
  88. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  89. package/dist/cdn/foxy-shipping-service-card.js +1 -1
  90. package/dist/cdn/foxy-sign-in-form.js +1 -1
  91. package/dist/cdn/foxy-spinner.js +2 -2
  92. package/dist/cdn/foxy-store-card.js +1 -1
  93. package/dist/cdn/foxy-store-form.js +1 -1
  94. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  95. package/dist/cdn/foxy-subscription-card.js +1 -1
  96. package/dist/cdn/foxy-subscription-form.js +1 -1
  97. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  98. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  99. package/dist/cdn/foxy-table.js +1 -1
  100. package/dist/cdn/foxy-tax-card.js +1 -1
  101. package/dist/cdn/foxy-tax-form.js +1 -1
  102. package/dist/cdn/foxy-template-config-form.js +1 -1
  103. package/dist/cdn/foxy-template-form.js +1 -1
  104. package/dist/cdn/foxy-template-set-card.js +1 -1
  105. package/dist/cdn/foxy-template-set-form.js +1 -1
  106. package/dist/cdn/foxy-transaction-card.js +1 -1
  107. package/dist/cdn/foxy-transaction.js +1 -1
  108. package/dist/cdn/foxy-transactions-table.js +7 -7
  109. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  110. package/dist/cdn/foxy-user-card.js +1 -1
  111. package/dist/cdn/foxy-user-form.js +1 -1
  112. package/dist/cdn/foxy-users-table.js +1 -1
  113. package/dist/cdn/foxy-webhook-card.js +1 -1
  114. package/dist/cdn/foxy-webhook-form.js +1 -1
  115. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  116. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  117. package/dist/cdn/{shared-c2128988.js → shared-01b2cad8.js} +1 -1
  118. package/dist/cdn/{shared-a05fe56c.js → shared-02d9cca5.js} +1 -1
  119. package/dist/cdn/{shared-57e4bcb0.js → shared-06119334.js} +1 -1
  120. package/dist/cdn/{shared-23061fb2.js → shared-088655e0.js} +1 -1
  121. package/dist/cdn/{shared-fee535ca.js → shared-0b01f721.js} +1 -1
  122. package/dist/cdn/{shared-f300193c.js → shared-0b5eb6d1.js} +1 -1
  123. package/dist/cdn/{shared-701157ac.js → shared-0f6e4584.js} +1 -1
  124. package/dist/cdn/{shared-293f9c07.js → shared-1101a938.js} +1 -1
  125. package/dist/cdn/{shared-042969fe.js → shared-12a7a15d.js} +1 -1
  126. package/dist/cdn/{shared-b44cf5a9.js → shared-1a6877b1.js} +1 -1
  127. package/dist/cdn/shared-248c08ac.js +1 -0
  128. package/dist/cdn/{shared-cbeb8587.js → shared-24d71d01.js} +1 -1
  129. package/dist/cdn/{shared-b3681c71.js → shared-2ae42363.js} +1 -1
  130. package/dist/cdn/{shared-44b101d0.js → shared-30792d92.js} +1 -1
  131. package/dist/cdn/shared-30e7450c.js +1 -0
  132. package/dist/cdn/{shared-414a0c9b.js → shared-39c40d76.js} +1 -1
  133. package/dist/cdn/{shared-58095d4b.js → shared-3df30d85.js} +1 -1
  134. package/dist/cdn/shared-3f0e394a.js +1 -0
  135. package/dist/cdn/{shared-a08d509a.js → shared-4b7f8c12.js} +1 -1
  136. package/dist/cdn/{shared-32cac4bd.js → shared-4f0975c8.js} +3 -3
  137. package/dist/cdn/{shared-80c6f97e.js → shared-4feadd89.js} +1 -1
  138. package/dist/cdn/{shared-a28c9952.js → shared-509a1775.js} +1 -1
  139. package/dist/cdn/{shared-baaa1e47.js → shared-50db6104.js} +1 -1
  140. package/dist/cdn/{shared-ecec6a10.js → shared-522a172d.js} +1 -1
  141. package/dist/cdn/{shared-fad783a0.js → shared-5318a742.js} +1 -1
  142. package/dist/cdn/shared-55b621e8.js +1 -0
  143. package/dist/cdn/{shared-fd410dee.js → shared-5860410a.js} +1 -1
  144. package/dist/cdn/{shared-484b31eb.js → shared-59978b05.js} +1 -1
  145. package/dist/cdn/{shared-ae200b9f.js → shared-5ec4c4b3.js} +1 -1
  146. package/dist/cdn/shared-61c0bc51.js +1 -0
  147. package/dist/cdn/{shared-850e441a.js → shared-6271dae8.js} +1 -1
  148. package/dist/cdn/shared-6474675f.js +1 -0
  149. package/dist/cdn/{shared-e4cc1191.js → shared-64d3d924.js} +1 -1
  150. package/dist/cdn/shared-64fcd0da.js +1 -0
  151. package/dist/cdn/{shared-25c57c74.js → shared-665965d3.js} +1 -1
  152. package/dist/cdn/{shared-4761504a.js → shared-67aa8143.js} +1 -1
  153. package/dist/cdn/{shared-059680a0.js → shared-69a37aba.js} +1 -1
  154. package/dist/cdn/{shared-bb35ee61.js → shared-6ac0d05e.js} +1 -1
  155. package/dist/cdn/{shared-7063f5af.js → shared-6d645dc5.js} +1 -1
  156. package/dist/cdn/{shared-c0e56e97.js → shared-704ad583.js} +1 -1
  157. package/dist/cdn/{shared-add044d3.js → shared-70d41727.js} +1 -1
  158. package/dist/cdn/{shared-6d1556a0.js → shared-730e6ac7.js} +1 -1
  159. package/dist/cdn/{shared-80b9cb48.js → shared-74a6f365.js} +1 -1
  160. package/dist/cdn/{shared-421708b0.js → shared-7e39ec54.js} +1 -1
  161. package/dist/cdn/{shared-ec696e1b.js → shared-80bfcae3.js} +1 -1
  162. package/dist/cdn/{shared-9f44b81f.js → shared-83451a72.js} +1 -1
  163. package/dist/cdn/{shared-aac73acd.js → shared-84c5aab1.js} +1 -1
  164. package/dist/cdn/{shared-cfdd6c21.js → shared-8d6749b3.js} +1 -1
  165. package/dist/cdn/{shared-49d678ad.js → shared-91f5e0b3.js} +1 -1
  166. package/dist/cdn/shared-94bae3fb.js +1 -0
  167. package/dist/cdn/{shared-24586cfb.js → shared-94ddc918.js} +1 -1
  168. package/dist/cdn/shared-963d252e.js +1 -0
  169. package/dist/cdn/{shared-cf9c48f9.js → shared-9da63461.js} +1 -1
  170. package/dist/cdn/shared-9db46672.js +1 -0
  171. package/dist/cdn/{shared-ba5c9c0b.js → shared-9df5667e.js} +1 -1
  172. package/dist/cdn/{shared-ae462b8e.js → shared-9ee0844c.js} +1 -1
  173. package/dist/cdn/{shared-a79dbeb9.js → shared-a3abd1de.js} +1 -1
  174. package/dist/cdn/{shared-b42c6fe3.js → shared-a636184a.js} +1 -1
  175. package/dist/cdn/{shared-bba917bf.js → shared-a917b3e5.js} +1 -1
  176. package/dist/cdn/{shared-9ee719e6.js → shared-ae013b1a.js} +1 -1
  177. package/dist/cdn/shared-b4d20b03.js +1 -0
  178. package/dist/cdn/{shared-4b209827.js → shared-b5cd2b39.js} +1 -1
  179. package/dist/cdn/{shared-f91d5706.js → shared-bc0421a7.js} +1 -1
  180. package/dist/cdn/{shared-1708eb3c.js → shared-bc409d96.js} +1 -1
  181. package/dist/cdn/{shared-f2335b72.js → shared-bedfd929.js} +2 -2
  182. package/dist/cdn/{shared-59d8b64e.js → shared-c1b96673.js} +1 -1
  183. package/dist/cdn/shared-c286c5ad.js +1 -0
  184. package/dist/cdn/{shared-2e6bda84.js → shared-c47c9449.js} +1 -1
  185. package/dist/cdn/{shared-66084f2e.js → shared-c5a48553.js} +1 -1
  186. package/dist/cdn/{shared-789e3185.js → shared-cc4dabfb.js} +1 -1
  187. package/dist/cdn/{shared-0ed41a9e.js → shared-cfe1bd8c.js} +1 -1
  188. package/dist/cdn/shared-d6b4d84f.js +1 -0
  189. package/dist/cdn/{shared-2782886e.js → shared-ddde3914.js} +1 -1
  190. package/dist/cdn/{shared-824d0804.js → shared-deab9fa5.js} +1 -1
  191. package/dist/cdn/{shared-5c1e607b.js → shared-dfab3fb1.js} +1 -1
  192. package/dist/cdn/{shared-c4f5b03b.js → shared-e5a04929.js} +1 -1
  193. package/dist/cdn/{shared-fbfa45bb.js → shared-ee36b83f.js} +1 -1
  194. package/dist/cdn/{shared-7004839c.js → shared-ee67d0e4.js} +2 -2
  195. package/dist/cdn/{shared-41d57c3b.js → shared-ef2b5ceb.js} +1 -1
  196. package/dist/cdn/{shared-a4e0a78b.js → shared-f1e4e392.js} +1 -1
  197. package/dist/cdn/{shared-db108ddb.js → shared-f293f1ae.js} +1 -1
  198. package/dist/cdn/{shared-a5c48bf4.js → shared-f7a1193f.js} +1 -1
  199. package/dist/cdn/translations/address-form/en.json +3 -3
  200. package/dist/cdn/translations/api-browser/en.json +2 -5
  201. package/dist/cdn/translations/cart-form/en.json +598 -169
  202. package/dist/cdn/translations/customer/en.json +3 -3
  203. package/dist/cdn/translations/item-form/en.json +0 -1
  204. package/dist/elements/internal/InternalCalendar/InternalCalendar.js +2 -1
  205. package/dist/elements/internal/InternalCalendar/InternalCalendar.js.map +1 -1
  206. package/dist/elements/internal/InternalCard/InternalCard.js +1 -1
  207. package/dist/elements/internal/InternalCard/InternalCard.js.map +1 -1
  208. package/dist/elements/internal/InternalControl/InternalControl.d.ts +1 -0
  209. package/dist/elements/internal/InternalControl/InternalControl.js +10 -7
  210. package/dist/elements/internal/InternalControl/InternalControl.js.map +1 -1
  211. package/dist/elements/internal/InternalForm/InternalForm.d.ts +2 -0
  212. package/dist/elements/internal/InternalForm/InternalForm.js +26 -29
  213. package/dist/elements/internal/InternalForm/InternalForm.js.map +1 -1
  214. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.d.ts +11 -1
  215. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js +115 -20
  216. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js.map +1 -1
  217. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js +0 -4
  218. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.js.map +1 -1
  219. package/dist/elements/internal/InternalResourcePickerControl/index.d.ts +2 -0
  220. package/dist/elements/internal/InternalResourcePickerControl/index.js +2 -0
  221. package/dist/elements/internal/InternalResourcePickerControl/index.js.map +1 -1
  222. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.d.ts +4 -1
  223. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js +70 -2
  224. package/dist/elements/internal/InternalSelectControl/InternalSelectControl.js.map +1 -1
  225. package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.d.ts +8 -0
  226. package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.js +28 -0
  227. package/dist/elements/internal/InternalSummaryControl/InternalSummaryControl.js.map +1 -0
  228. package/dist/elements/internal/InternalSummaryControl/index.d.ts +4 -0
  229. package/dist/elements/internal/InternalSummaryControl/index.js +6 -0
  230. package/dist/elements/internal/InternalSummaryControl/index.js.map +1 -0
  231. package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.d.ts +7 -0
  232. package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.js +75 -0
  233. package/dist/elements/internal/InternalSwitchControl/InternalSwitchControl.js.map +1 -0
  234. package/dist/elements/internal/InternalSwitchControl/index.d.ts +4 -0
  235. package/dist/elements/internal/InternalSwitchControl/index.js +6 -0
  236. package/dist/elements/internal/InternalSwitchControl/index.js.map +1 -0
  237. package/dist/elements/internal/InternalTextControl/InternalTextControl.d.ts +4 -1
  238. package/dist/elements/internal/InternalTextControl/InternalTextControl.js +74 -1
  239. package/dist/elements/internal/InternalTextControl/InternalTextControl.js.map +1 -1
  240. package/dist/elements/private/Dialog/Dialog.js +1 -1
  241. package/dist/elements/private/Dialog/Dialog.js.map +1 -1
  242. package/dist/elements/public/AddressForm/AddressForm.d.ts +1 -1
  243. package/dist/elements/public/AddressForm/AddressForm.js +5 -5
  244. package/dist/elements/public/AddressForm/AddressForm.js.map +1 -1
  245. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js +4 -1
  246. package/dist/elements/public/ApiBrowser/internal/InternalApiBrowserResourceForm/InternalApiBrowserResourceForm.js.map +1 -1
  247. package/dist/elements/public/AttributeCard/AttributeCard.js +3 -4
  248. package/dist/elements/public/AttributeCard/AttributeCard.js.map +1 -1
  249. package/dist/elements/public/CartForm/CartForm.d.ts +17 -35
  250. package/dist/elements/public/CartForm/CartForm.js +264 -502
  251. package/dist/elements/public/CartForm/CartForm.js.map +1 -1
  252. package/dist/elements/public/CartForm/index.d.ts +10 -5
  253. package/dist/elements/public/CartForm/index.js +10 -5
  254. package/dist/elements/public/CartForm/index.js.map +1 -1
  255. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.d.ts +33 -0
  256. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.js +293 -0
  257. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/InternalCartFormAddressSummaryItem.js.map +1 -0
  258. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/index.d.ts +7 -0
  259. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/index.js +9 -0
  260. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/index.js.map +1 -0
  261. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/style.d.ts +1 -0
  262. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/style.js +58 -0
  263. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/style.js.map +1 -0
  264. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/types.d.ts +11 -0
  265. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/types.js +2 -0
  266. package/dist/elements/public/CartForm/internal/InternalCartFormAddressSummaryItem/types.js.map +1 -0
  267. package/dist/elements/public/CartForm/internal/{InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.d.ts → InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.d.ts} +1 -1
  268. package/dist/elements/public/CartForm/internal/{InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.js → InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.js} +5 -5
  269. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/InternalCartFormCreateSessionAction.js.map +1 -0
  270. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/index.d.ts +4 -0
  271. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/index.js +6 -0
  272. package/dist/elements/public/CartForm/internal/InternalCartFormCreateSessionAction/index.js.map +1 -0
  273. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/InternalCartFormPaymentMethodCard.d.ts +6 -0
  274. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/InternalCartFormPaymentMethodCard.js +35 -0
  275. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/InternalCartFormPaymentMethodCard.js.map +1 -0
  276. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/index.d.ts +4 -0
  277. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/index.js +6 -0
  278. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/index.js.map +1 -0
  279. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/types.d.ts +5 -0
  280. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/types.js +2 -0
  281. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodCard/types.js.map +1 -0
  282. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/InternalCartFormPaymentMethodForm.d.ts +13 -0
  283. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/InternalCartFormPaymentMethodForm.js +68 -0
  284. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/InternalCartFormPaymentMethodForm.js.map +1 -0
  285. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/index.d.ts +6 -0
  286. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/index.js +8 -0
  287. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/index.js.map +1 -0
  288. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/types.d.ts +5 -0
  289. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/types.js +2 -0
  290. package/dist/elements/public/CartForm/internal/InternalCartFormPaymentMethodForm/types.js.map +1 -0
  291. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/InternalCartFormTotalsControl.d.ts +9 -0
  292. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/InternalCartFormTotalsControl.js +91 -0
  293. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/InternalCartFormTotalsControl.js.map +1 -0
  294. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/index.d.ts +5 -0
  295. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/index.js +7 -0
  296. package/dist/elements/public/CartForm/internal/InternalCartFormTotalsControl/index.js.map +1 -0
  297. package/dist/elements/public/CartForm/types.d.ts +11 -1
  298. package/dist/elements/public/CartForm/types.js.map +1 -1
  299. package/dist/elements/public/CustomFieldCard/TwoLineCard.js +1 -1
  300. package/dist/elements/public/CustomFieldCard/TwoLineCard.js.map +1 -1
  301. package/dist/elements/public/FormDialog/FormDialog.d.ts +2 -0
  302. package/dist/elements/public/FormDialog/FormDialog.js +7 -3
  303. package/dist/elements/public/FormDialog/FormDialog.js.map +1 -1
  304. package/dist/mixins/themeable.js +14 -6
  305. package/dist/mixins/themeable.js.map +1 -1
  306. package/package.json +1 -1
  307. package/dist/cdn/shared-004fc193.js +0 -1
  308. package/dist/cdn/shared-08d018f5.js +0 -1
  309. package/dist/cdn/shared-0da6e42c.js +0 -1
  310. package/dist/cdn/shared-0e038fda.js +0 -1
  311. package/dist/cdn/shared-1d8edd03.js +0 -1
  312. package/dist/cdn/shared-365c8437.js +0 -1
  313. package/dist/cdn/shared-57266e2a.js +0 -1
  314. package/dist/cdn/shared-5cb6aca6.js +0 -1
  315. package/dist/cdn/shared-6740ee7a.js +0 -1
  316. package/dist/cdn/shared-7af96c0a.js +0 -1
  317. package/dist/cdn/shared-8f0251e9.js +0 -1
  318. package/dist/cdn/shared-b6376c8f.js +0 -1
  319. package/dist/cdn/shared-d82f9e35.js +0 -1
  320. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/InternalCartFormViewAsCustomerControl.js.map +0 -1
  321. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.d.ts +0 -4
  322. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.js +0 -6
  323. package/dist/elements/public/CartForm/internal/InternalCartFormViewAsCustomerControl/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"InternalResourcePickerControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { ItemRenderer } from '../../public/CollectionPage/types';\nimport type { FormDialog } from '../../public/FormDialog/FormDialog';\nimport type { Option } from '../../public/QueryBuilder/types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { FetchEvent } from '../../public/NucleonElement/FetchEvent';\nimport { classMap } from '../../../utils/class-map';\nimport { uniqueId } from 'lodash-es';\nimport { spread } from '@open-wc/lit-helpers';\nimport { html } from 'lit-html';\n\nimport memoize from 'lodash-es/memoize';\n\nexport class InternalResourcePickerControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n virtualHost: {},\n filters: { type: Array },\n first: {},\n item: {},\n };\n }\n\n virtualHost = uniqueId('internal-resource-picker-control-');\n\n filters: Option[] = [];\n\n first: string | null = null;\n\n item: string | null = null;\n\n private readonly __getItemRenderer = memoize((item: string | null) => {\n return new Function(\n 'ctx',\n `return ctx.html\\`\n <${item ?? 'foxy-null'}\n related=\\${JSON.stringify(ctx.related)}\n parent=\\${ctx.parent}\n infer=\"card\"\n href=$\\{ctx.href}\n ...=\\${ctx.spread(ctx.props)}\n >\n </${item ?? 'foxy-null'}>\\``\n ) as ItemRenderer;\n });\n\n renderControl(): TemplateResult {\n return html`\n <foxy-form-dialog\n parent=\"foxy://${this.virtualHost}/select\"\n infer=\"dialog\"\n form=\"foxy-internal-resource-picker-control-form\"\n alert\n .props=${{\n '.selectionProps': {\n '.filters': this.filters,\n '.first': this.first,\n '.item': this.item,\n },\n }}\n @fetch=${this.__handleFetchEvent}\n >\n </foxy-form-dialog>\n\n <div class=\"block group\">\n <div\n class=${classMap({\n 'transition-colors mb-xs font-medium text-s': true,\n 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n })}\n >\n ${this.label}\n </div>\n\n <button\n class=${classMap({\n 'block w-full rounded text-left transition-colors': true,\n 'border border-dashed': true,\n 'border-transparent': !this.readonly,\n 'cursor-pointer bg-contrast-5 hover-bg-contrast-10': !this.disabled && !this.readonly,\n 'cursor-default bg-contrast-5': this.disabled,\n 'cursor-default border-contrast-30': this.readonly,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n })}\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n ?disabled=${this.disabled || this.readonly}\n @click=${(evt: MouseEvent) => {\n const button = evt.currentTarget as HTMLButtonElement;\n const dialog = this.renderRoot.querySelector('foxy-form-dialog') as FormDialog;\n\n dialog.href = '';\n dialog.show(button);\n }}\n >\n <div class=${classMap({ 'transition-opacity': true, 'opacity-50': this.disabled })}>\n ${this.__getItemRenderer(this.item)({\n html,\n data: null,\n href: (this._value as string | undefined) || '',\n related: [],\n parent: '',\n props: {},\n spread: spread,\n simplifyNsLoading: this.simplifyNsLoading,\n disabled: this.disabled,\n disabledControls: this.disabledControls,\n readonly: this.readonly,\n readonlyControls: this.readonlyControls,\n hidden: this.hidden,\n hiddenControls: this.hiddenControls,\n templates: this.templates,\n previous: null,\n next: null,\n group: this.nucleon?.group ?? '',\n lang: this.lang,\n ns: this.ns,\n })}\n </div>\n </button>\n\n <div\n class=${classMap({\n 'transition-colors mt-xs text-xs': true,\n 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n })}\n ?hidden=${!this.helperText}\n >\n ${this.helperText}\n </div>\n\n <div\n class=\"mt-xs text-xs leading-xs text-error\"\n ?hidden=${!this._errorMessage || this.disabled || this.readonly}\n >\n ${this._errorMessage}\n </div>\n </div>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (changes.has('item')) this.__getItemRenderer.cache.clear?.();\n }\n\n private __handleFetchEvent(event: Event) {\n if (!(event instanceof FetchEvent)) return;\n if (event.defaultPrevented) return;\n\n const { url, method } = event.request;\n\n if (url === `foxy://${this.virtualHost}/select` && method === 'POST') {\n return event.respondWith(this.__handleSelect(event.request));\n }\n\n if (url === `foxy://${this.virtualHost}/empty` && method === 'GET') {\n return event.respondWith(this.__handleEmpty());\n }\n }\n\n private async __handleEmpty(): Promise<Response> {\n return new Response(\n JSON.stringify({\n _links: { self: { href: `foxy://${this.virtualHost}/empty` } },\n message: 'Resource selected.',\n })\n );\n }\n\n private async __handleSelect(request: Request): Promise<Response> {\n const body = (await request.clone().json()) as { selection: string };\n this._value = body.selection;\n return new Response(\n JSON.stringify({\n _links: { self: { href: `foxy://${this.virtualHost}/empty` } },\n message: 'Resource selected.',\n })\n );\n }\n}\n"]}
1
+ {"version":3,"file":"InternalResourcePickerControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { HALJSONResource } from '../../public/NucleonElement/types';\nimport type { NucleonElement } from '../../public/NucleonElement/NucleonElement';\nimport type { FormRenderer } from '../../public/FormDialog/types';\nimport type { ItemRenderer } from '../../public/CollectionPage/types';\nimport type { FormDialog } from '../../public/FormDialog/FormDialog';\nimport type { Option } from '../../public/QueryBuilder/types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { FetchEvent } from '../../public/NucleonElement/FetchEvent';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { classMap } from '../../../utils/class-map';\nimport { uniqueId } from 'lodash-es';\nimport { spread } from '@open-wc/lit-helpers';\n\nimport memoize from 'lodash-es/memoize';\n\ntype DisplayValueOptionsCb = (\n resource: HALJSONResource | null,\n context: string\n) => Record<string, unknown>;\n\nexport class InternalResourcePickerControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getDisplayValueOptions: { attribute: false },\n virtualHost: {},\n formProps: { type: Object },\n filters: { type: Array },\n layout: {},\n first: {},\n item: {},\n form: {},\n };\n }\n\n getDisplayValueOptions: DisplayValueOptionsCb = (r, c) => ({ resource: r, context: c });\n\n virtualHost = uniqueId('internal-resource-picker-control-');\n\n formProps: Record<string, unknown> = {};\n\n filters: Option[] = [];\n\n layout: 'summary-item' | 'standalone' | null = null;\n\n first: string | null = null;\n\n item: string | null = null;\n\n form: string | null | FormRenderer = null;\n\n private readonly __getItemRenderer = memoize((item: string | null) => {\n return new Function(\n 'ctx',\n `return ctx.html\\`\n <${item ?? 'foxy-null'}\n related=\\${JSON.stringify(ctx.related)}\n parent=\\${ctx.parent}\n infer=\"card\"\n href=$\\{ctx.href}\n ...=\\${ctx.spread(ctx.props)}\n >\n </${item ?? 'foxy-null'}>\\``\n ) as ItemRenderer;\n });\n\n renderControl(): TemplateResult {\n const dialogProps = {\n ...this.formProps,\n '.selectionProps': { '.filters': this.filters, '.first': this.first, '.item': this.item },\n };\n\n return html`\n <foxy-form-dialog\n parent=\"foxy://${this.virtualHost}/select\"\n header=\"header\"\n infer=\"dialog\"\n alert\n .props=${dialogProps}\n .form=${this.form ?? 'foxy-internal-resource-picker-control-form'}\n @fetch=${this.__handleFetchEvent}\n >\n </foxy-form-dialog>\n\n ${this.layout === 'summary-item'\n ? this.__renderSummaryItemLayout()\n : this.__renderStandaloneLayout()}\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (changes.has('item')) this.__getItemRenderer.cache.clear?.();\n }\n\n private __renderSummaryItemLayout() {\n const resource = this.renderRoot.querySelector<NucleonElement<any>>('#value');\n const onClick = (evt: Event) => {\n if (this.disabled || this.readonly) return;\n const button = evt.currentTarget as HTMLButtonElement;\n const dialog = this.renderRoot.querySelector('foxy-form-dialog') as FormDialog;\n\n dialog.href = '';\n dialog.show(button);\n };\n\n return html`\n <div class=\"flex items-start leading-xs gap-m\">\n <div class=\"flex-1\">\n <div class=\"text-m text-body whitespace-nowrap\">${this.label}</div>\n <div class=\"text-s text-secondary\">${this.helperText}</div>\n <div class=\"text-s text-error\" ?hidden=${this.disabled || this.readonly}>\n ${this._errorMessage}\n </div>\n </div>\n\n <div class=\"flex items-center gap-xs\">\n <button\n aria-label=${this.t('select')}\n class=${classMap({\n 'text-right min-w-0 transition-colors transition-opacity': true,\n 'rounded-s focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n 'cursor-pointer text-body hover-opacity-80': !this.disabled && !this.readonly,\n 'font-medium': !this.readonly,\n })}\n ?disabled=${this.disabled || this.readonly}\n @click=${onClick}\n >\n <div class=\"truncate min-w-0\">\n ${this._value\n ? html`\n <foxy-i18n\n infer=\"\"\n key=\"value\"\n .options=${this.getDisplayValueOptions(\n resource?.data ?? null,\n resource?.data ? '' : resource?.in('fail') ? 'fail' : 'busy'\n )}\n >\n </foxy-i18n>\n `\n : this.placeholder}\n </div>\n </button>\n\n <button\n aria-label=${this.t('clear')}\n class=${classMap({\n 'rounded-full transition-colors': true,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n 'cursor-pointer text-tertiary hover-text-body': !this.disabled,\n 'cursor-default text-disabled': this.disabled,\n })}\n style=\"width: 1em; height: 1em;\"\n ?disabled=${this.disabled}\n ?hidden=${this.readonly || !this._value}\n @click=${() => {\n this._value = '';\n this.dispatchEvent(new CustomEvent('clear'));\n }}\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" style=\"width: 1em; height: 1em; transform: scale(1.25); margin-right: -0.16em\"><path d=\"M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z\" /></svg>`}\n </button>\n </div>\n </div>\n\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(this._value || void 0)}\n id=\"value\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private __renderStandaloneLayout() {\n return html`\n <div class=\"block group\">\n <div\n class=${classMap({\n 'transition-colors mb-xs font-medium text-s': true,\n 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n })}\n >\n ${this.label}\n </div>\n\n <button\n class=${classMap({\n 'block w-full rounded text-left transition-colors': true,\n 'border border-dashed': true,\n 'border-transparent': !this.readonly,\n 'cursor-pointer bg-contrast-5 hover-bg-contrast-10': !this.disabled && !this.readonly,\n 'cursor-default bg-contrast-5': this.disabled,\n 'cursor-default border-contrast-30': this.readonly,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n })}\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n ?disabled=${this.disabled || this.readonly}\n @click=${(evt: MouseEvent) => {\n const button = evt.currentTarget as HTMLButtonElement;\n const dialog = this.renderRoot.querySelector('foxy-form-dialog') as FormDialog;\n\n dialog.href = '';\n dialog.show(button);\n }}\n >\n <div class=${classMap({ 'transition-opacity': true, 'opacity-50': this.disabled })}>\n ${this.__getItemRenderer(this.item)({\n html,\n data: null,\n href: (this._value as string | undefined) || '',\n related: [],\n parent: '',\n props: {},\n spread: spread,\n simplifyNsLoading: this.simplifyNsLoading,\n disabled: this.disabled,\n disabledControls: this.disabledControls,\n readonly: this.readonly,\n readonlyControls: this.readonlyControls,\n hidden: this.hidden,\n hiddenControls: this.hiddenControls,\n templates: this.templates,\n previous: null,\n next: null,\n group: this.nucleon?.group ?? '',\n lang: this.lang,\n ns: this.ns,\n })}\n </div>\n </button>\n\n <div\n class=${classMap({\n 'transition-colors mt-xs text-xs': true,\n 'text-secondary group-hover-text-body': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n })}\n ?hidden=${!this.helperText}\n >\n ${this.helperText}\n </div>\n\n <div\n class=\"mt-xs text-xs leading-xs text-error\"\n ?hidden=${!this._errorMessage || this.disabled || this.readonly}\n >\n ${this._errorMessage}\n </div>\n </div>\n `;\n }\n\n private __handleFetchEvent(event: Event) {\n if (!(event instanceof FetchEvent)) return;\n if (event.defaultPrevented) return;\n\n const { url, method } = event.request;\n\n if (url === `foxy://${this.virtualHost}/select` && method === 'POST') {\n return event.respondWith(this.__handleSelect(event.request));\n }\n\n if (url === `foxy://${this.virtualHost}/empty` && method === 'GET') {\n return event.respondWith(this.__handleEmpty());\n }\n }\n\n private async __handleSelect(request: Request): Promise<Response> {\n const body = (await request.clone().json()) as { selection: string };\n this._value = body.selection;\n return new Response(\n JSON.stringify({\n _links: { self: { href: `foxy://${this.virtualHost}/empty` } },\n message: 'Resource selected.',\n })\n );\n }\n\n private async __handleEmpty(): Promise<Response> {\n return new Response(\n JSON.stringify({\n _links: { self: { href: `foxy://${this.virtualHost}/empty` } },\n message: 'Resource selected.',\n })\n );\n }\n}\n"]}
@@ -17,10 +17,6 @@ export class InternalResourcePickerControlForm extends InternalForm {
17
17
  }
18
18
  renderBody() {
19
19
  return html `
20
- <h2 class="leading-xs text-xxl font-medium break-all">
21
- <foxy-i18n infer="" key="header"></foxy-i18n>
22
- </h2>
23
-
24
20
  <foxy-internal-async-list-control
25
21
  infer="selection"
26
22
  form="foxy-null"
@@ -1 +1 @@
1
- {"version":3,"file":"InternalResourcePickerControlForm.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,wCAAqC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAIhC,MAAM,OAAO,iCAAkC,SAAQ,YAAkB;IAAzE;;QAYE,mBAAc,GAAiC,EAAE,CAAC;IAuBpD,CAAC;IAlCC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,cAAc,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,CAAC;IAID,UAAU;QACR,OAAO,IAAI,CAAA;;;;;;;;;;qBAUM,CAAC,GAAwB,EAAE,EAAE;YACxC,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;cACK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;;;KAGpC,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { HALJSONResource, NucleonV8N } from '../../public/NucleonElement/types';\n\nimport { InternalForm } from '../InternalForm/InternalForm';\nimport { spread } from '@open-wc/lit-helpers';\nimport { html } from 'lit-html';\n\ntype Data = HALJSONResource & { selection: string; query: string };\n\nexport class InternalResourcePickerControlForm extends InternalForm<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n selectionProps: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [({ selection: v }) => (v === undefined ? 'silent:selection_required' : true)];\n }\n\n selectionProps: Record<PropertyKey, unknown> = {};\n\n renderBody(): TemplateResult {\n return html`\n <h2 class=\"leading-xs text-xxl font-medium break-all\">\n <foxy-i18n infer=\"\" key=\"header\"></foxy-i18n>\n </h2>\n\n <foxy-internal-async-list-control\n infer=\"selection\"\n form=\"foxy-null\"\n hide-delete-button\n hide-create-button\n @itemclick=${(evt: CustomEvent<string>) => {\n evt.preventDefault();\n this.edit({ selection: evt.detail });\n this.submit();\n }}\n ...=${spread(this.selectionProps)}\n >\n </foxy-internal-async-list-control>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalResourcePickerControlForm.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/InternalResourcePickerControlForm.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,wCAAqC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAIhC,MAAM,OAAO,iCAAkC,SAAQ,YAAkB;IAAzE;;QAYE,mBAAc,GAAiC,EAAE,CAAC;IAmBpD,CAAC;IA9BC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,cAAc,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,CAAC;IAID,UAAU;QACR,OAAO,IAAI,CAAA;;;;;;qBAMM,CAAC,GAAwB,EAAE,EAAE;YACxC,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;cACK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;;;KAGpC,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { HALJSONResource, NucleonV8N } from '../../public/NucleonElement/types';\n\nimport { InternalForm } from '../InternalForm/InternalForm';\nimport { spread } from '@open-wc/lit-helpers';\nimport { html } from 'lit-html';\n\ntype Data = HALJSONResource & { selection: string; query: string };\n\nexport class InternalResourcePickerControlForm extends InternalForm<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n selectionProps: { attribute: false },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [({ selection: v }) => (v === undefined ? 'silent:selection_required' : true)];\n }\n\n selectionProps: Record<PropertyKey, unknown> = {};\n\n renderBody(): TemplateResult {\n return html`\n <foxy-internal-async-list-control\n infer=\"selection\"\n form=\"foxy-null\"\n hide-delete-button\n hide-create-button\n @itemclick=${(evt: CustomEvent<string>) => {\n evt.preventDefault();\n this.edit({ selection: evt.detail });\n this.submit();\n }}\n ...=${spread(this.selectionProps)}\n >\n </foxy-internal-async-list-control>\n `;\n }\n}\n"]}
@@ -1,6 +1,8 @@
1
1
  import '../InternalAsyncListControl/index';
2
2
  import '../InternalEditableControl/index';
3
3
  import '../InternalForm/index';
4
+ import '../../public/NucleonElement/index';
4
5
  import '../../public/FormDialog/index';
6
+ import '../../public/I18n/index';
5
7
  import { InternalResourcePickerControl } from './InternalResourcePickerControl';
6
8
  export { InternalResourcePickerControl };
@@ -1,7 +1,9 @@
1
1
  import "../InternalAsyncListControl/index.js";
2
2
  import "../InternalEditableControl/index.js";
3
3
  import "../InternalForm/index.js";
4
+ import "../../public/NucleonElement/index.js";
4
5
  import "../../public/FormDialog/index.js";
6
+ import "../../public/I18n/index.js";
5
7
  import { InternalResourcePickerControlForm } from "./InternalResourcePickerControlForm.js";
6
8
  import { InternalResourcePickerControl } from "./InternalResourcePickerControl.js";
7
9
  customElements.define('foxy-internal-resource-picker-control-form', InternalResourcePickerControlForm);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/index.ts"],"names":[],"mappings":"AAAA,8CAA2C;AAC3C,6CAA0C;AAC1C,kCAA+B;AAE/B,0CAAuC;AAEvC,OAAO,EAAE,iCAAiC,EAAE,+CAA4C;AACxF,OAAO,EAAE,6BAA6B,EAAE,2CAAwC;AAEhF,cAAc,CAAC,MAAM,CACnB,4CAA4C,EAC5C,iCAAiC,CAClC,CAAC;AAEF,cAAc,CAAC,MAAM,CAAC,uCAAuC,EAAE,6BAA6B,CAAC,CAAC;AAE9F,OAAO,EAAE,6BAA6B,EAAE,CAAC","sourcesContent":["import '../InternalAsyncListControl/index';\nimport '../InternalEditableControl/index';\nimport '../InternalForm/index';\n\nimport '../../public/FormDialog/index';\n\nimport { InternalResourcePickerControlForm } from './InternalResourcePickerControlForm';\nimport { InternalResourcePickerControl } from './InternalResourcePickerControl';\n\ncustomElements.define(\n 'foxy-internal-resource-picker-control-form',\n InternalResourcePickerControlForm\n);\n\ncustomElements.define('foxy-internal-resource-picker-control', InternalResourcePickerControl);\n\nexport { InternalResourcePickerControl };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalResourcePickerControl/index.ts"],"names":[],"mappings":"AAAA,8CAA2C;AAC3C,6CAA0C;AAC1C,kCAA+B;AAE/B,8CAA2C;AAC3C,0CAAuC;AACvC,oCAAiC;AAEjC,OAAO,EAAE,iCAAiC,EAAE,+CAA4C;AACxF,OAAO,EAAE,6BAA6B,EAAE,2CAAwC;AAEhF,cAAc,CAAC,MAAM,CACnB,4CAA4C,EAC5C,iCAAiC,CAClC,CAAC;AAEF,cAAc,CAAC,MAAM,CAAC,uCAAuC,EAAE,6BAA6B,CAAC,CAAC;AAE9F,OAAO,EAAE,6BAA6B,EAAE,CAAC","sourcesContent":["import '../InternalAsyncListControl/index';\nimport '../InternalEditableControl/index';\nimport '../InternalForm/index';\n\nimport '../../public/NucleonElement/index';\nimport '../../public/FormDialog/index';\nimport '../../public/I18n/index';\n\nimport { InternalResourcePickerControlForm } from './InternalResourcePickerControlForm';\nimport { InternalResourcePickerControl } from './InternalResourcePickerControl';\n\ncustomElements.define(\n 'foxy-internal-resource-picker-control-form',\n InternalResourcePickerControlForm\n);\n\ncustomElements.define('foxy-internal-resource-picker-control', InternalResourcePickerControl);\n\nexport { InternalResourcePickerControl };\n"]}
@@ -2,7 +2,7 @@ import type { PropertyDeclarations, TemplateResult } from 'lit-element';
2
2
  import type { Option } from './types';
3
3
  import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
4
4
  /**
5
- * Internal control wrapper for `vaadin-select` element.
5
+ * Internal control wrapper for select elements.
6
6
  *
7
7
  * @since 1.21.0
8
8
  * @element foxy-internal-select-control
@@ -11,8 +11,11 @@ export declare class InternalSelectControl extends InternalEditableControl {
11
11
  static get properties(): PropertyDeclarations;
12
12
  /** List of radio buttons to render. */
13
13
  options: Option[];
14
+ /** Standalone renders Vaadin Combo Box. Summary item renders a special UI for summary control. */
15
+ layout: 'summary-item' | 'standalone' | null;
14
16
  /** Same as the "theme" attribute/property of `vaadin-combo-box`. */
15
17
  theme: string | null;
16
18
  renderControl(): TemplateResult;
17
19
  updated(changes: Map<keyof this, unknown>): void;
20
+ private __renderSummaryItemLayout;
18
21
  }
@@ -1,8 +1,9 @@
1
1
  import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
2
  import { ifDefined } from 'lit-html/directives/if-defined';
3
- import { html } from 'lit-html';
3
+ import { html, svg } from 'lit-html';
4
+ import { classMap } from "../../../utils/class-map.js";
4
5
  /**
5
- * Internal control wrapper for `vaadin-select` element.
6
+ * Internal control wrapper for select elements.
6
7
  *
7
8
  * @since 1.21.0
8
9
  * @element foxy-internal-select-control
@@ -12,6 +13,8 @@ export class InternalSelectControl extends InternalEditableControl {
12
13
  super(...arguments);
13
14
  /** List of radio buttons to render. */
14
15
  this.options = [];
16
+ /** Standalone renders Vaadin Combo Box. Summary item renders a special UI for summary control. */
17
+ this.layout = null;
15
18
  /** Same as the "theme" attribute/property of `vaadin-combo-box`. */
16
19
  this.theme = null;
17
20
  }
@@ -19,11 +22,14 @@ export class InternalSelectControl extends InternalEditableControl {
19
22
  return {
20
23
  ...super.properties,
21
24
  options: { type: Array },
25
+ layout: {},
22
26
  theme: { type: String },
23
27
  };
24
28
  }
25
29
  renderControl() {
26
30
  var _a;
31
+ if (this.layout === 'summary-item')
32
+ return this.__renderSummaryItemLayout();
27
33
  return html `
28
34
  <vaadin-combo-box
29
35
  item-value-path="value"
@@ -60,5 +66,67 @@ export class InternalSelectControl extends InternalEditableControl {
60
66
  if (comboBox && comboBox.value !== this._value)
61
67
  comboBox.value = this._value;
62
68
  }
69
+ __renderSummaryItemLayout() {
70
+ const selection = this.options.find(v => v.value === this._value);
71
+ return html `
72
+ <div class="flex items-start leading-xs">
73
+ <div class="flex-1">
74
+ <label class="text-m text-body" for="select">${this.label}</label>
75
+ <p class="text-s text-secondary">${this.helperText}</p>
76
+ <p class="text-s text-error" ?hidden=${this.disabled || this.readonly}>
77
+ ${this._errorMessage}
78
+ </p>
79
+ </div>
80
+
81
+ <div
82
+ class=${classMap({
83
+ 'relative rounded-s transition-colors transition-opacity': true,
84
+ 'focus-within-ring-2 focus-within-ring-primary-50': !this.disabled && !this.readonly,
85
+ 'text-body hover-opacity-80 cursor-pointer': !this.disabled && !this.readonly,
86
+ 'text-secondary': this.readonly,
87
+ 'text-disabled': this.disabled,
88
+ 'font-medium': !this.readonly,
89
+ })}
90
+ >
91
+ <div class="flex items-center gap-xs">
92
+ <div>
93
+ ${selection
94
+ ? 'label' in selection
95
+ ? this.t(selection.label)
96
+ : selection.rawLabel
97
+ : this.placeholder}
98
+ </div>
99
+ ${this.readonly
100
+ ? ''
101
+ : svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" style="width: 1em; height: 1em; transform: scale(1.25)"><path fill-rule="evenodd" d="M10.53 3.47a.75.75 0 0 0-1.06 0L6.22 6.72a.75.75 0 0 0 1.06 1.06L10 5.06l2.72 2.72a.75.75 0 1 0 1.06-1.06l-3.25-3.25Zm-4.31 9.81 3.25 3.25a.75.75 0 0 0 1.06 0l3.25-3.25a.75.75 0 1 0-1.06-1.06L10 14.94l-2.72-2.72a.75.75 0 0 0-1.06 1.06Z" clip-rule="evenodd" /></svg>`}
102
+ </div>
103
+
104
+ <select
105
+ class=${classMap({
106
+ 'absolute inset-0 opacity-0': true,
107
+ 'cursor-pointer': !this.disabled && !this.readonly,
108
+ })}
109
+ id="select"
110
+ ?disabled=${this.disabled}
111
+ ?hidden=${this.readonly}
112
+ @change=${(evt) => {
113
+ evt.stopPropagation();
114
+ this._value = evt.target.value;
115
+ }}
116
+ >
117
+ <option value="" ?selected=${!selection} disabled hidden>${this.placeholder}</option>
118
+ ${this.options.map(option => html `
119
+ <option
120
+ value=${option.value}
121
+ ?selected=${selection && option.value === this._value}
122
+ >
123
+ ${'label' in option ? this.t(option.label) : option.rawLabel}
124
+ </option>
125
+ `)}
126
+ </select>
127
+ </div>
128
+ </div>
129
+ `;
130
+ }
63
131
  }
64
132
  //# sourceMappingURL=InternalSelectControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InternalSelectControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSelectControl/InternalSelectControl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,uBAAuB;IAAlE;;QASE,uCAAuC;QACvC,YAAO,GAAa,EAAE,CAAC;QAEvB,oEAAoE;QACpE,UAAK,GAAkB,IAAI,CAAC;IAuC9B,CAAC;IAnDC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB,CAAC;IACJ,CAAC;IAQD,aAAa;;QACX,OAAO,IAAI,CAAA;;;;wBAIS,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;;sBAE/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;;gBAEV,SAAS,OAAC,IAAI,CAAC,KAAK,mCAAI,SAAS,CAAC;oBAC9B,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;;yBAER,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACnC,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ;YACjE,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC,CAAC;iBACM,IAAI,CAAC,MAAM;kBACV,CAAC,GAAgB,EAAE,EAAE;YAC7B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAgC,CAAC;YACtD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC7B,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,OAAiC;QACvC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QACnE,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM;YAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,MAAgB,CAAC;IACzF,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { ComboBoxElement } from '@vaadin/vaadin-combo-box';\nimport type { Option } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\n/**\n * Internal control wrapper for `vaadin-select` element.\n *\n * @since 1.21.0\n * @element foxy-internal-select-control\n */\nexport class InternalSelectControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n theme: { type: String },\n };\n }\n\n /** List of radio buttons to render. */\n options: Option[] = [];\n\n /** Same as the \"theme\" attribute/property of `vaadin-combo-box`. */\n theme: string | null = null;\n\n renderControl(): TemplateResult {\n return html`\n <vaadin-combo-box\n item-value-path=\"value\"\n item-label-path=\"label\"\n error-message=${ifDefined(this._errorMessage)}\n item-id-path=\"value\"\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n theme=${ifDefined(this.theme ?? undefined)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n clear-button-visible\n .checkValidity=${this._checkValidity}\n .items=${this.options.map(option => ({\n label: 'label' in option ? this.t(option.label) : option.rawLabel,\n value: option.value,\n }))}\n .value=${this._value}\n @change=${(evt: CustomEvent) => {\n evt.stopPropagation();\n const comboBox = evt.currentTarget as ComboBoxElement;\n this._value = comboBox.value;\n comboBox.validate();\n }}\n >\n </vaadin-combo-box>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n const comboBox = this.renderRoot.querySelector('vaadin-combo-box');\n if (comboBox && comboBox.value !== this._value) comboBox.value = this._value as string;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalSelectControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSelectControl/InternalSelectControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { ComboBoxElement } from '@vaadin/vaadin-combo-box';\nimport type { Option } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html, svg } from 'lit-html';\nimport { classMap } from '../../../utils/class-map';\n\n/**\n * Internal control wrapper for select elements.\n *\n * @since 1.21.0\n * @element foxy-internal-select-control\n */\nexport class InternalSelectControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n layout: {},\n theme: { type: String },\n };\n }\n\n /** List of radio buttons to render. */\n options: Option[] = [];\n\n /** Standalone renders Vaadin Combo Box. Summary item renders a special UI for summary control. */\n layout: 'summary-item' | 'standalone' | null = null;\n\n /** Same as the \"theme\" attribute/property of `vaadin-combo-box`. */\n theme: string | null = null;\n\n renderControl(): TemplateResult {\n if (this.layout === 'summary-item') return this.__renderSummaryItemLayout();\n\n return html`\n <vaadin-combo-box\n item-value-path=\"value\"\n item-label-path=\"label\"\n error-message=${ifDefined(this._errorMessage)}\n item-id-path=\"value\"\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n theme=${ifDefined(this.theme ?? undefined)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n clear-button-visible\n .checkValidity=${this._checkValidity}\n .items=${this.options.map(option => ({\n label: 'label' in option ? this.t(option.label) : option.rawLabel,\n value: option.value,\n }))}\n .value=${this._value}\n @change=${(evt: CustomEvent) => {\n evt.stopPropagation();\n const comboBox = evt.currentTarget as ComboBoxElement;\n this._value = comboBox.value;\n comboBox.validate();\n }}\n >\n </vaadin-combo-box>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n const comboBox = this.renderRoot.querySelector('vaadin-combo-box');\n if (comboBox && comboBox.value !== this._value) comboBox.value = this._value as string;\n }\n\n private __renderSummaryItemLayout() {\n const selection = this.options.find(v => v.value === this._value);\n\n return html`\n <div class=\"flex items-start leading-xs\">\n <div class=\"flex-1\">\n <label class=\"text-m text-body\" for=\"select\">${this.label}</label>\n <p class=\"text-s text-secondary\">${this.helperText}</p>\n <p class=\"text-s text-error\" ?hidden=${this.disabled || this.readonly}>\n ${this._errorMessage}\n </p>\n </div>\n\n <div\n class=${classMap({\n 'relative rounded-s transition-colors transition-opacity': true,\n 'focus-within-ring-2 focus-within-ring-primary-50': !this.disabled && !this.readonly,\n 'text-body hover-opacity-80 cursor-pointer': !this.disabled && !this.readonly,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n 'font-medium': !this.readonly,\n })}\n >\n <div class=\"flex items-center gap-xs\">\n <div>\n ${selection\n ? 'label' in selection\n ? this.t(selection.label)\n : selection.rawLabel\n : this.placeholder}\n </div>\n ${this.readonly\n ? ''\n : svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" style=\"width: 1em; height: 1em; transform: scale(1.25)\"><path fill-rule=\"evenodd\" d=\"M10.53 3.47a.75.75 0 0 0-1.06 0L6.22 6.72a.75.75 0 0 0 1.06 1.06L10 5.06l2.72 2.72a.75.75 0 1 0 1.06-1.06l-3.25-3.25Zm-4.31 9.81 3.25 3.25a.75.75 0 0 0 1.06 0l3.25-3.25a.75.75 0 1 0-1.06-1.06L10 14.94l-2.72-2.72a.75.75 0 0 0-1.06 1.06Z\" clip-rule=\"evenodd\" /></svg>`}\n </div>\n\n <select\n class=${classMap({\n 'absolute inset-0 opacity-0': true,\n 'cursor-pointer': !this.disabled && !this.readonly,\n })}\n id=\"select\"\n ?disabled=${this.disabled}\n ?hidden=${this.readonly}\n @change=${(evt: Event) => {\n evt.stopPropagation();\n this._value = (evt.target as HTMLSelectElement).value;\n }}\n >\n <option value=\"\" ?selected=${!selection} disabled hidden>${this.placeholder}</option>\n ${this.options.map(\n option =>\n html`\n <option\n value=${option.value}\n ?selected=${selection && option.value === this._value}\n >\n ${'label' in option ? this.t(option.label) : option.rawLabel}\n </option>\n `\n )}\n </select>\n </div>\n </div>\n `;\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import type { CSSResultArray } from 'lit-element';
2
+ import type { TemplateResult } from 'lit-html';
3
+ import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
4
+ export declare class InternalSummaryControl extends InternalEditableControl {
5
+ static get styles(): CSSResultArray;
6
+ renderLightDom(): void;
7
+ renderControl(): TemplateResult;
8
+ }
@@ -0,0 +1,28 @@
1
+ import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
+ import { html, css } from 'lit-element';
3
+ export class InternalSummaryControl extends InternalEditableControl {
4
+ static get styles() {
5
+ return [
6
+ ...super.styles,
7
+ css `::slotted(*){
8
+ padding:calc(0.625em + (var(--lumo-border-radius) / 4) - 1px);
9
+ }
10
+
11
+ ::slotted(:not(:first-child)){
12
+ border-top:thin var(--foxy-border-style, solid) var(--lumo-contrast-5pct) !important;
13
+ }
14
+ `,
15
+ ];
16
+ }
17
+ renderLightDom() {
18
+ return;
19
+ }
20
+ renderControl() {
21
+ return html `
22
+ <p class="mb-xs font-medium text-secondary text-s" ?hidden=${!this.label}>${this.label}</p>
23
+ <div class="border border-contrast-5 rounded"><slot></slot></div>
24
+ <p class="mt-xs text-xs text-secondary" ?hidden=${!this.helperText}>${this.helperText}</p>
25
+ `;
26
+ }
27
+ }
28
+ //# sourceMappingURL=InternalSummaryControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalSummaryControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSummaryControl/InternalSummaryControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,OAAO,sBAAuB,SAAQ,uBAAuB;IACjE,MAAM,KAAK,MAAM;QACf,OAAO;YACL,GAAG,KAAK,CAAC,MAAM;YACf,GAAG;;;;;;;OAQF;SACF,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO;IACT,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAA;mEACoD,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;;wDAEpC,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU;KACtF,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { CSSResultArray } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { html, css } from 'lit-element';\n\nexport class InternalSummaryControl extends InternalEditableControl {\n static get styles(): CSSResultArray {\n return [\n ...super.styles,\n css`\n ::slotted(*) {\n padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px);\n }\n\n ::slotted(:not(:first-child)) {\n border-top: thin var(--foxy-border-style, solid) var(--lumo-contrast-5pct) !important;\n }\n `,\n ];\n }\n\n renderLightDom(): void {\n return;\n }\n\n renderControl(): TemplateResult {\n return html`\n <p class=\"mb-xs font-medium text-secondary text-s\" ?hidden=${!this.label}>${this.label}</p>\n <div class=\"border border-contrast-5 rounded\"><slot></slot></div>\n <p class=\"mt-xs text-xs text-secondary\" ?hidden=${!this.helperText}>${this.helperText}</p>\n `;\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import '../InternalEditableControl/index';
2
+ import '../../public/I18n/index';
3
+ import { InternalSummaryControl } from './InternalSummaryControl';
4
+ export { InternalSummaryControl };
@@ -0,0 +1,6 @@
1
+ import "../InternalEditableControl/index.js";
2
+ import "../../public/I18n/index.js";
3
+ import { InternalSummaryControl } from "./InternalSummaryControl.js";
4
+ customElements.define('foxy-internal-summary-control', InternalSummaryControl);
5
+ export { InternalSummaryControl };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSummaryControl/index.ts"],"names":[],"mappings":"AAAA,6CAA0C;AAC1C,oCAAiC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,oCAAiC;AAElE,cAAc,CAAC,MAAM,CAAC,+BAA+B,EAAE,sBAAsB,CAAC,CAAC;AAE/E,OAAO,EAAE,sBAAsB,EAAE,CAAC","sourcesContent":["import '../InternalEditableControl/index';\nimport '../../public/I18n/index';\n\nimport { InternalSummaryControl } from './InternalSummaryControl';\n\ncustomElements.define('foxy-internal-summary-control', InternalSummaryControl);\n\nexport { InternalSummaryControl };\n"]}
@@ -0,0 +1,7 @@
1
+ import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
2
+ import { PropertyDeclarations, TemplateResult } from 'lit-element';
3
+ export declare class InternalSwitchControl extends InternalEditableControl {
4
+ static get properties(): PropertyDeclarations;
5
+ invert: boolean;
6
+ renderControl(): TemplateResult;
7
+ }
@@ -0,0 +1,75 @@
1
+ import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
+ import { html } from 'lit-element';
3
+ import { classMap } from "../../../utils/class-map.js";
4
+ export class InternalSwitchControl extends InternalEditableControl {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.invert = false;
8
+ }
9
+ static get properties() {
10
+ return {
11
+ ...super.properties,
12
+ invert: { type: Boolean },
13
+ };
14
+ }
15
+ renderControl() {
16
+ const checked = this.invert ? !this._value : !!this._value;
17
+ return html `
18
+ <div class="flex items-center leading-xs">
19
+ <div class="flex-1">
20
+ <label class="text-m text-body" for="input">${this.label}</label>
21
+ <p class="text-s text-secondary">${this.helperText}</p>
22
+ <p class="text-s text-error" ?hidden=${this.disabled || this.readonly}>
23
+ ${this._errorMessage}
24
+ </p>
25
+ </div>
26
+
27
+ ${this.readonly
28
+ ? html `<p class="text-secondary">${checked ? this.t('checked') : this.t('unchecked')}</p>`
29
+ : html `
30
+ <div style="height: 1em" class="flex items-center">
31
+ <div
32
+ style="border-radius: var(--lumo-size-xl); width: calc((var(--lumo-space-m) * 2) + (var(--lumo-space-xs) * 2))"
33
+ class=${classMap({
34
+ 'cursor-pointer group transition-colors relative': true,
35
+ 'flex flex-shrink-0 items-center': true,
36
+ 'bg-success': !this.disabled && checked,
37
+ 'bg-contrast-20 hover-bg-contrast-30': !this.disabled && !checked,
38
+ 'bg-contrast-10': this.disabled,
39
+ 'focus-within-ring-2 focus-within-ring-primary-50': true,
40
+ })}
41
+ @click=${() => (this._value = !this._value)}
42
+ >
43
+ <div
44
+ style="width: var(--lumo-space-m); height: var(--lumo-space-m)"
45
+ class=${classMap({
46
+ 'transition-all transform block rounded-full m-xs': true,
47
+ 'translate-x-m': checked,
48
+ 'translate-x-0': !checked,
49
+ 'bg-base': this.disabled,
50
+ 'bg-tint': !this.disabled,
51
+ 'group-hover-scale-110': !this.disabled,
52
+ })}
53
+ ></div>
54
+
55
+ <input
56
+ class="opacity-0 absolute inset-0 focus-outline-none"
57
+ type="checkbox"
58
+ id="input"
59
+ switch
60
+ ?disabled=${this.disabled}
61
+ ?readonly=${this.readonly}
62
+ ?checked=${checked}
63
+ @change=${(evt) => {
64
+ const checkbox = evt.currentTarget;
65
+ this._value = this.invert ? !checkbox.checked : checkbox.checked;
66
+ }}
67
+ />
68
+ </div>
69
+ </div>
70
+ `}
71
+ </div>
72
+ `;
73
+ }
74
+ }
75
+ //# sourceMappingURL=InternalSwitchControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalSwitchControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSwitchControl/InternalSwitchControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,IAAI,EAAwC,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD,MAAM,OAAO,qBAAsB,SAAQ,uBAAuB;IAAlE;;QAQE,WAAM,GAAG,KAAK,CAAC;IA6DjB,CAAC;IApEC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SAC1B,CAAC;IACJ,CAAC;IAID,aAAa;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3D,OAAO,IAAI,CAAA;;;wDAGyC,IAAI,CAAC,KAAK;6CACrB,IAAI,CAAC,UAAU;iDACX,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;cACjE,IAAI,CAAC,aAAa;;;;UAItB,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA,6BAA6B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM;YAC1F,CAAC,CAAC,IAAI,CAAA;;;;0BAIU,QAAQ,CAAC;gBACf,iDAAiD,EAAE,IAAI;gBACvD,iCAAiC,EAAE,IAAI;gBACvC,YAAY,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO;gBACvC,qCAAqC,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO;gBACjE,gBAAgB,EAAE,IAAI,CAAC,QAAQ;gBAC/B,kDAAkD,EAAE,IAAI;aACzD,CAAC;2BACO,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;;;;4BAIjC,QAAQ,CAAC;gBACf,kDAAkD,EAAE,IAAI;gBACxD,eAAe,EAAE,OAAO;gBACxB,eAAe,EAAE,CAAC,OAAO;gBACzB,SAAS,EAAE,IAAI,CAAC,QAAQ;gBACxB,SAAS,EAAE,CAAC,IAAI,CAAC,QAAQ;gBACzB,uBAAuB,EAAE,CAAC,IAAI,CAAC,QAAQ;aACxC,CAAC;;;;;;;;gCAQU,IAAI,CAAC,QAAQ;gCACb,IAAI,CAAC,QAAQ;+BACd,OAAO;8BACR,CAAC,GAAU,EAAE,EAAE;gBACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAiC,CAAC;gBACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnE,CAAC;;;;aAIR;;KAER,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { html, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { classMap } from '../../../utils/class-map';\n\nexport class InternalSwitchControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n invert: { type: Boolean },\n };\n }\n\n invert = false;\n\n renderControl(): TemplateResult {\n const checked = this.invert ? !this._value : !!this._value;\n return html`\n <div class=\"flex items-center leading-xs\">\n <div class=\"flex-1\">\n <label class=\"text-m text-body\" for=\"input\">${this.label}</label>\n <p class=\"text-s text-secondary\">${this.helperText}</p>\n <p class=\"text-s text-error\" ?hidden=${this.disabled || this.readonly}>\n ${this._errorMessage}\n </p>\n </div>\n\n ${this.readonly\n ? html`<p class=\"text-secondary\">${checked ? this.t('checked') : this.t('unchecked')}</p>`\n : html`\n <div style=\"height: 1em\" class=\"flex items-center\">\n <div\n style=\"border-radius: var(--lumo-size-xl); width: calc((var(--lumo-space-m) * 2) + (var(--lumo-space-xs) * 2))\"\n class=${classMap({\n 'cursor-pointer group transition-colors relative': true,\n 'flex flex-shrink-0 items-center': true,\n 'bg-success': !this.disabled && checked,\n 'bg-contrast-20 hover-bg-contrast-30': !this.disabled && !checked,\n 'bg-contrast-10': this.disabled,\n 'focus-within-ring-2 focus-within-ring-primary-50': true,\n })}\n @click=${() => (this._value = !this._value)}\n >\n <div\n style=\"width: var(--lumo-space-m); height: var(--lumo-space-m)\"\n class=${classMap({\n 'transition-all transform block rounded-full m-xs': true,\n 'translate-x-m': checked,\n 'translate-x-0': !checked,\n 'bg-base': this.disabled,\n 'bg-tint': !this.disabled,\n 'group-hover-scale-110': !this.disabled,\n })}\n ></div>\n\n <input\n class=\"opacity-0 absolute inset-0 focus-outline-none\"\n type=\"checkbox\"\n id=\"input\"\n switch\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?checked=${checked}\n @change=${(evt: Event) => {\n const checkbox = evt.currentTarget as HTMLInputElement;\n this._value = this.invert ? !checkbox.checked : checkbox.checked;\n }}\n />\n </div>\n </div>\n `}\n </div>\n `;\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import '../InternalEditableControl/index';
2
+ import '../../public/I18n/index';
3
+ import { InternalSwitchControl as Control } from './InternalSwitchControl';
4
+ export { Control as InternalSwitchControl };
@@ -0,0 +1,6 @@
1
+ import "../InternalEditableControl/index.js";
2
+ import "../../public/I18n/index.js";
3
+ import { InternalSwitchControl as Control } from "./InternalSwitchControl.js";
4
+ customElements.define('foxy-internal-switch-control', Control);
5
+ export { Control as InternalSwitchControl };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalSwitchControl/index.ts"],"names":[],"mappings":"AAAA,6CAA0C;AAC1C,oCAAiC;AAEjC,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,mCAAgC;AAE3E,cAAc,CAAC,MAAM,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;AAE/D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,CAAC","sourcesContent":["import '../InternalEditableControl/index';\nimport '../../public/I18n/index';\n\nimport { InternalSwitchControl as Control } from './InternalSwitchControl';\n\ncustomElements.define('foxy-internal-switch-control', Control);\n\nexport { Control as InternalSwitchControl };\n"]}
@@ -1,4 +1,4 @@
1
- import type { PropertyDeclarations, TemplateResult } from 'lit-element';
1
+ import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';
2
2
  import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
3
3
  /**
4
4
  * Internal control displaying a basic text box.
@@ -8,9 +8,12 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
8
8
  */
9
9
  export declare class InternalTextControl extends InternalEditableControl {
10
10
  static get properties(): PropertyDeclarations;
11
+ static get styles(): CSSResultArray;
12
+ layout: 'summary-item' | 'standalone' | null;
11
13
  prefix: string | null;
12
14
  suffix: string | null;
13
15
  renderControl(): TemplateResult;
14
16
  protected get _value(): string;
15
17
  protected set _value(newValue: string);
18
+ private __renderSummaryItemLayout;
16
19
  }
@@ -1,6 +1,7 @@
1
1
  import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
+ import { html, css, svg } from 'lit-element';
2
3
  import { ifDefined } from 'lit-html/directives/if-defined';
3
- import { html } from 'lit-element';
4
+ import { classMap } from "../../../utils/class-map.js";
4
5
  /**
5
6
  * Internal control displaying a basic text box.
6
7
  *
@@ -10,17 +11,34 @@ import { html } from 'lit-element';
10
11
  export class InternalTextControl extends InternalEditableControl {
11
12
  constructor() {
12
13
  super(...arguments);
14
+ this.layout = null;
13
15
  this.prefix = null;
14
16
  this.suffix = null;
15
17
  }
16
18
  static get properties() {
17
19
  return {
18
20
  ...super.properties,
21
+ layout: {},
19
22
  prefix: {},
20
23
  suffix: {},
21
24
  };
22
25
  }
26
+ static get styles() {
27
+ return [
28
+ super.styles,
29
+ css `input::-webkit-contacts-auto-fill-button{
30
+ visibility:hidden;
31
+ display:none !important;
32
+ pointer-events:none;
33
+ position:absolute;
34
+ right:0;
35
+ }
36
+ `,
37
+ ];
38
+ }
23
39
  renderControl() {
40
+ if (this.layout === 'summary-item')
41
+ return this.__renderSummaryItemLayout();
24
42
  return html `
25
43
  <vaadin-text-field
26
44
  error-message=${ifDefined(this._errorMessage)}
@@ -51,5 +69,60 @@ export class InternalTextControl extends InternalEditableControl {
51
69
  set _value(newValue) {
52
70
  super._value = newValue;
53
71
  }
72
+ __renderSummaryItemLayout() {
73
+ return html `
74
+ <div class="flex items-start gap-m leading-xs">
75
+ <div>
76
+ <label class="text-m text-body" for="input">${this.label}</label>
77
+ <p class="text-s text-secondary">${this.helperText}</p>
78
+ <p class="text-s text-error" ?hidden=${this.disabled || this.readonly}>
79
+ ${this._errorMessage}
80
+ </p>
81
+ </div>
82
+
83
+ <div class="flex-1 flex items-center gap-xs">
84
+ <input
85
+ placeholder=${this.placeholder}
86
+ class=${classMap({
87
+ 'w-full appearance-none text-right bg-transparent transition-colors': true,
88
+ 'text-m rounded-s focus-outline-none': true,
89
+ 'text-secondary': this.readonly,
90
+ 'text-disabled': this.disabled,
91
+ 'font-medium': !this.readonly,
92
+ })}
93
+ type="text"
94
+ id="input"
95
+ .value=${this._value}
96
+ ?disabled=${this.disabled}
97
+ ?readonly=${this.readonly}
98
+ @keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
99
+ @input=${(evt) => {
100
+ evt.stopPropagation();
101
+ this._value = evt.target.value;
102
+ }}
103
+ />
104
+
105
+ <button
106
+ aria-label=${this.t('clear')}
107
+ class=${classMap({
108
+ 'rounded-full transition-colors': true,
109
+ 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,
110
+ 'cursor-pointer text-tertiary hover-text-body': !this.disabled,
111
+ 'cursor-default text-disabled': this.disabled,
112
+ })}
113
+ style="width: 1em; height: 1em;"
114
+ ?disabled=${this.disabled}
115
+ ?hidden=${this.readonly || !this._value}
116
+ @click=${() => {
117
+ this._value = '';
118
+ this.dispatchEvent(new CustomEvent('clear'));
119
+ }}
120
+ >
121
+ ${svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" style="width: 1em; height: 1em; transform: scale(1.25); margin-right: -0.16em"><path d="M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" /></svg>`}
122
+ </button>
123
+ </div>
124
+ </div>
125
+ `;
126
+ }
54
127
  }
55
128
  //# sourceMappingURL=InternalTextControl.js.map