@websolutespa/bom-mixer-ui 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/index.js +443 -211
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/esm/accessibility/index.js +13 -0
  5. package/dist/esm/accessibility/index.js.map +1 -0
  6. package/dist/esm/components/breakpoint/breakpoint.js +2 -1
  7. package/dist/esm/components/breakpoint/breakpoint.js.map +1 -1
  8. package/dist/esm/components/media/media-image.js +6 -7
  9. package/dist/esm/components/media/media-image.js.map +1 -1
  10. package/dist/esm/components/media/media.js +15 -5
  11. package/dist/esm/components/media/media.js.map +1 -1
  12. package/dist/esm/fields/field-accept.js +22 -8
  13. package/dist/esm/fields/field-accept.js.map +1 -1
  14. package/dist/esm/fields/field-autocomplete.js +19 -13
  15. package/dist/esm/fields/field-autocomplete.js.map +1 -1
  16. package/dist/esm/fields/field-card.js +7 -4
  17. package/dist/esm/fields/field-card.js.map +1 -1
  18. package/dist/esm/fields/field-checkbox.js +7 -4
  19. package/dist/esm/fields/field-checkbox.js.map +1 -1
  20. package/dist/esm/fields/field-collection.js +44 -35
  21. package/dist/esm/fields/field-collection.js.map +1 -1
  22. package/dist/esm/fields/field-error.variants.js +8 -7
  23. package/dist/esm/fields/field-error.variants.js.map +1 -1
  24. package/dist/esm/fields/field-password.js +12 -6
  25. package/dist/esm/fields/field-password.js.map +1 -1
  26. package/dist/esm/fields/field-select.js +15 -8
  27. package/dist/esm/fields/field-select.js.map +1 -1
  28. package/dist/esm/fields/field-text.js +16 -8
  29. package/dist/esm/fields/field-text.js.map +1 -1
  30. package/dist/esm/fields/field-textarea.js +92 -0
  31. package/dist/esm/fields/field-textarea.js.map +1 -0
  32. package/dist/esm/fields/fields.js +5 -0
  33. package/dist/esm/fields/fields.js.map +1 -1
  34. package/dist/esm/forms/autocomplete/autocomplete.js +17 -11
  35. package/dist/esm/forms/autocomplete/autocomplete.js.map +1 -1
  36. package/dist/esm/forms/custom-select/custom-select-input.js +15 -13
  37. package/dist/esm/forms/custom-select/custom-select-input.js.map +1 -1
  38. package/dist/esm/forms/custom-select/custom-select.js +8 -5
  39. package/dist/esm/forms/custom-select/custom-select.js.map +1 -1
  40. package/dist/esm/forms/field/field.js +3 -2
  41. package/dist/esm/forms/field/field.js.map +1 -1
  42. package/dist/esm/forms/field/field.variants.js +24 -3
  43. package/dist/esm/forms/field/field.variants.js.map +1 -1
  44. package/dist/esm/forms/form/form.js +0 -22
  45. package/dist/esm/forms/form/form.js.map +1 -1
  46. package/dist/esm/forms/form-error/form-error.variants.js +14 -2
  47. package/dist/esm/forms/form-error/form-error.variants.js.map +1 -1
  48. package/dist/esm/forms/form-tester/form-tester.variants.js +1 -1
  49. package/dist/esm/forms/form-tester/form-tester.variants.js.map +1 -1
  50. package/dist/esm/forms/input/input.js +6 -2
  51. package/dist/esm/forms/input/input.js.map +1 -1
  52. package/dist/esm/forms/input/input.variants.js +4 -3
  53. package/dist/esm/forms/input/input.variants.js.map +1 -1
  54. package/dist/esm/forms/input-group/input-group.js +4 -3
  55. package/dist/esm/forms/input-group/input-group.js.map +1 -1
  56. package/dist/esm/forms/label/label.variants.js +3 -1
  57. package/dist/esm/forms/label/label.variants.js.map +1 -1
  58. package/dist/esm/forms/select/select.js +1 -1
  59. package/dist/esm/forms/select/select.js.map +1 -1
  60. package/dist/esm/forms/textarea/textarea.js +21 -3
  61. package/dist/esm/forms/textarea/textarea.js.map +1 -1
  62. package/dist/esm/forms/textarea/textarea.variants.js +1 -1
  63. package/dist/esm/forms/textarea/textarea.variants.js.map +1 -1
  64. package/dist/esm/forms/utils/utils.js +3 -2
  65. package/dist/esm/forms/utils/utils.js.map +1 -1
  66. package/dist/esm/index.js +2 -0
  67. package/dist/esm/index.js.map +1 -1
  68. package/dist/esm/layouts/layout-default/layout-default.js +2 -1
  69. package/dist/esm/layouts/layout-default/layout-default.js.map +1 -1
  70. package/dist/esm/lazy/carousel-1/carousel-1.js +1 -1
  71. package/dist/esm/lazy/carousel-1/carousel-1.js.map +1 -1
  72. package/dist/esm/lazy/download-1/download-1.js +1 -1
  73. package/dist/esm/lazy/download-1/download-1.js.map +1 -1
  74. package/dist/esm/lazy/lazy-loader/lazy-loader.js +11 -6
  75. package/dist/esm/lazy/lazy-loader/lazy-loader.js.map +1 -1
  76. package/dist/esm/lazy/media-full-1/media-full-1.js +1 -1
  77. package/dist/esm/lazy/media-full-1/media-full-1.js.map +1 -1
  78. package/dist/esm/lazy/media-full-2/media-full-2.js +1 -1
  79. package/dist/esm/lazy/media-full-2/media-full-2.js.map +1 -1
  80. package/dist/esm/lazy/media-media-1/media-media-1.js +1 -1
  81. package/dist/esm/lazy/media-media-1/media-media-1.js.map +1 -1
  82. package/dist/esm/lazy/related-1/related-1.js +1 -1
  83. package/dist/esm/lazy/related-1/related-1.js.map +1 -1
  84. package/dist/esm/lazy/sizes-colors-1/sizes-colors-1.js +1 -1
  85. package/dist/esm/lazy/sizes-colors-1/sizes-colors-1.js.map +1 -1
  86. package/dist/esm/lazy/text-1/text-1.js +1 -1
  87. package/dist/esm/lazy/text-1/text-1.js.map +1 -1
  88. package/dist/esm/lazy/text-aside-1/text-aside-1.js +1 -1
  89. package/dist/esm/lazy/text-aside-1/text-aside-1.js.map +1 -1
  90. package/dist/esm/lazy/text-media-1/text-media-1.js +1 -1
  91. package/dist/esm/lazy/text-media-1/text-media-1.js.map +1 -1
  92. package/dist/esm/lazy/text-text-1/text-text-1.js +1 -1
  93. package/dist/esm/lazy/text-text-1/text-text-1.js.map +1 -1
  94. package/dist/esm/sections/auth/auth-change-password.js +2 -1
  95. package/dist/esm/sections/auth/auth-change-password.js.map +1 -1
  96. package/dist/esm/sections/auth/auth-forgot.js +2 -1
  97. package/dist/esm/sections/auth/auth-forgot.js.map +1 -1
  98. package/dist/esm/sections/auth/auth-login.js +2 -1
  99. package/dist/esm/sections/auth/auth-login.js.map +1 -1
  100. package/dist/esm/sections/auth/auth-register.js +2 -1
  101. package/dist/esm/sections/auth/auth-register.js.map +1 -1
  102. package/dist/esm/sections/auth/auth-update.js +2 -1
  103. package/dist/esm/sections/auth/auth-update.js.map +1 -1
  104. package/dist/esm/sections/checkout/checkout-delivery.js +2 -1
  105. package/dist/esm/sections/checkout/checkout-delivery.js.map +1 -1
  106. package/dist/esm/sections/checkout/checkout-discount.js +2 -1
  107. package/dist/esm/sections/checkout/checkout-discount.js.map +1 -1
  108. package/dist/esm/sections/checkout/checkout-payment.js +2 -1
  109. package/dist/esm/sections/checkout/checkout-payment.js.map +1 -1
  110. package/dist/esm/sections/checkout/checkout-review.js +2 -1
  111. package/dist/esm/sections/checkout/checkout-review.js.map +1 -1
  112. package/dist/esm/sections/footer/footer.js +1 -0
  113. package/dist/esm/sections/footer/footer.js.map +1 -1
  114. package/dist/esm/sections/magazine-related/magazine-related.js +1 -1
  115. package/dist/esm/sections/magazine-related/magazine-related.js.map +1 -1
  116. package/dist/esm/sections/products-detail-download/products-detail-download.js +1 -1
  117. package/dist/esm/sections/products-detail-download/products-detail-download.js.map +1 -1
  118. package/dist/esm/sections/products-detail-related/products-detail-related.js +1 -1
  119. package/dist/esm/sections/products-detail-related/products-detail-related.js.map +1 -1
  120. package/dist/esm/sections/products-detail-size-color/products-detail-size-color.js +1 -1
  121. package/dist/esm/sections/products-detail-size-color/products-detail-size-color.js.map +1 -1
  122. package/dist/esm/sections/shop-detail-related/shop-detail-related.js +1 -1
  123. package/dist/esm/sections/shop-detail-related/shop-detail-related.js.map +1 -1
  124. package/dist/esm/theme/global.vars.js +34 -7
  125. package/dist/esm/theme/global.vars.js.map +1 -1
  126. package/dist/esm/theme/theme.json.js +26 -5
  127. package/dist/esm/theme/theme.json.js.map +1 -1
  128. package/dist/types/accessibility/index.d.ts +3 -0
  129. package/dist/types/accessibility/index.d.ts.map +1 -0
  130. package/dist/types/components/breakpoint/breakpoint.d.ts.map +1 -1
  131. package/dist/types/components/media/media-image.d.ts +1 -1
  132. package/dist/types/components/media/media-image.d.ts.map +1 -1
  133. package/dist/types/components/media/media.d.ts +17 -0
  134. package/dist/types/components/media/media.d.ts.map +1 -1
  135. package/dist/types/fields/field-accept.d.ts +2 -2
  136. package/dist/types/fields/field-accept.d.ts.map +1 -1
  137. package/dist/types/fields/field-autocomplete.d.ts +2 -2
  138. package/dist/types/fields/field-autocomplete.d.ts.map +1 -1
  139. package/dist/types/fields/field-card.d.ts +2 -2
  140. package/dist/types/fields/field-card.d.ts.map +1 -1
  141. package/dist/types/fields/field-checkbox.d.ts +2 -2
  142. package/dist/types/fields/field-checkbox.d.ts.map +1 -1
  143. package/dist/types/fields/field-collection.d.ts +4 -2
  144. package/dist/types/fields/field-collection.d.ts.map +1 -1
  145. package/dist/types/fields/field-error.variants.d.ts.map +1 -1
  146. package/dist/types/fields/field-password.d.ts +2 -2
  147. package/dist/types/fields/field-password.d.ts.map +1 -1
  148. package/dist/types/fields/field-select.d.ts +2 -2
  149. package/dist/types/fields/field-select.d.ts.map +1 -1
  150. package/dist/types/fields/field-text.d.ts +2 -2
  151. package/dist/types/fields/field-text.d.ts.map +1 -1
  152. package/dist/types/fields/field-textarea.d.ts +8 -0
  153. package/dist/types/fields/field-textarea.d.ts.map +1 -0
  154. package/dist/types/fields/fields.d.ts +1 -1
  155. package/dist/types/fields/fields.d.ts.map +1 -1
  156. package/dist/types/fields/index.d.ts +1 -0
  157. package/dist/types/fields/index.d.ts.map +1 -1
  158. package/dist/types/forms/autocomplete/autocomplete.d.ts.map +1 -1
  159. package/dist/types/forms/custom-select/custom-select-input.d.ts.map +1 -1
  160. package/dist/types/forms/custom-select/custom-select.d.ts.map +1 -1
  161. package/dist/types/forms/field/field.d.ts +2 -0
  162. package/dist/types/forms/field/field.d.ts.map +1 -1
  163. package/dist/types/forms/field/field.variants.d.ts.map +1 -1
  164. package/dist/types/forms/form/form.d.ts.map +1 -1
  165. package/dist/types/forms/form-error/form-error.variants.d.ts.map +1 -1
  166. package/dist/types/forms/input/input.d.ts.map +1 -1
  167. package/dist/types/forms/input/input.variants.d.ts.map +1 -1
  168. package/dist/types/forms/input-group/input-group.d.ts.map +1 -1
  169. package/dist/types/forms/label/label.variants.d.ts.map +1 -1
  170. package/dist/types/forms/textarea/textarea.d.ts.map +1 -1
  171. package/dist/types/forms/utils/utils.d.ts.map +1 -1
  172. package/dist/types/index.d.ts +1 -0
  173. package/dist/types/index.d.ts.map +1 -1
  174. package/dist/types/lazy/carousel-1/carousel-1.d.ts +4 -8
  175. package/dist/types/lazy/carousel-1/carousel-1.d.ts.map +1 -1
  176. package/dist/types/lazy/download-1/download-1.d.ts +4 -8
  177. package/dist/types/lazy/download-1/download-1.d.ts.map +1 -1
  178. package/dist/types/lazy/lazy-loader/lazy-loader-client.d.ts +5 -2
  179. package/dist/types/lazy/lazy-loader/lazy-loader-client.d.ts.map +1 -1
  180. package/dist/types/lazy/lazy-loader/lazy-loader.d.ts +5 -3
  181. package/dist/types/lazy/lazy-loader/lazy-loader.d.ts.map +1 -1
  182. package/dist/types/lazy/media-full-1/media-full-1.d.ts +4 -8
  183. package/dist/types/lazy/media-full-1/media-full-1.d.ts.map +1 -1
  184. package/dist/types/lazy/media-full-2/media-full-2.d.ts +4 -8
  185. package/dist/types/lazy/media-full-2/media-full-2.d.ts.map +1 -1
  186. package/dist/types/lazy/media-media-1/media-media-1.d.ts +4 -7
  187. package/dist/types/lazy/media-media-1/media-media-1.d.ts.map +1 -1
  188. package/dist/types/lazy/not-found/not-found.d.ts +4 -8
  189. package/dist/types/lazy/not-found/not-found.d.ts.map +1 -1
  190. package/dist/types/lazy/related-1/related-1-card.d.ts +1 -2
  191. package/dist/types/lazy/related-1/related-1-card.d.ts.map +1 -1
  192. package/dist/types/lazy/related-1/related-1.d.ts +4 -8
  193. package/dist/types/lazy/related-1/related-1.d.ts.map +1 -1
  194. package/dist/types/lazy/sizes-colors-1/sizes-colors-1.d.ts +4 -7
  195. package/dist/types/lazy/sizes-colors-1/sizes-colors-1.d.ts.map +1 -1
  196. package/dist/types/lazy/text-1/text-1.d.ts +4 -7
  197. package/dist/types/lazy/text-1/text-1.d.ts.map +1 -1
  198. package/dist/types/lazy/text-aside-1/text-aside-1.d.ts +4 -8
  199. package/dist/types/lazy/text-aside-1/text-aside-1.d.ts.map +1 -1
  200. package/dist/types/lazy/text-media-1/text-media-1.d.ts +4 -8
  201. package/dist/types/lazy/text-media-1/text-media-1.d.ts.map +1 -1
  202. package/dist/types/lazy/text-text-1/text-text-1.d.ts +4 -8
  203. package/dist/types/lazy/text-text-1/text-text-1.d.ts.map +1 -1
  204. package/dist/types/sections/magazine-related/magazine-related.d.ts +4 -8
  205. package/dist/types/sections/magazine-related/magazine-related.d.ts.map +1 -1
  206. package/dist/types/sections/products-detail-download/products-detail-download.d.ts +6 -9
  207. package/dist/types/sections/products-detail-download/products-detail-download.d.ts.map +1 -1
  208. package/dist/types/sections/products-detail-related/products-detail-related.d.ts +6 -9
  209. package/dist/types/sections/products-detail-related/products-detail-related.d.ts.map +1 -1
  210. package/dist/types/sections/products-detail-size-color/products-detail-size-color.d.ts +6 -9
  211. package/dist/types/sections/products-detail-size-color/products-detail-size-color.d.ts.map +1 -1
  212. package/dist/types/sections/shop-detail-related/shop-detail-related.d.ts +6 -9
  213. package/dist/types/sections/shop-detail-related/shop-detail-related.d.ts.map +1 -1
  214. package/dist/types/theme/global.vars.d.ts.map +1 -1
  215. package/dist/types/theme/types.d.ts +11 -2
  216. package/dist/types/theme/types.d.ts.map +1 -1
  217. package/package.json +2 -1
  218. package/src/accessibility/index.ts +10 -0
  219. package/src/components/breakpoint/breakpoint.tsx +1 -0
  220. package/src/components/media/media-image.tsx +6 -3
  221. package/src/components/media/media.tsx +36 -13
  222. package/src/fields/field-accept.tsx +18 -8
  223. package/src/fields/field-autocomplete.tsx +15 -15
  224. package/src/fields/field-card.tsx +4 -8
  225. package/src/fields/field-checkbox.tsx +4 -8
  226. package/src/fields/field-collection.tsx +42 -27
  227. package/src/fields/field-error.variants.ts +8 -7
  228. package/src/fields/field-password.tsx +9 -9
  229. package/src/fields/field-select.tsx +12 -13
  230. package/src/fields/field-text.tsx +11 -12
  231. package/src/fields/field-textarea.tsx +62 -0
  232. package/src/fields/fields.tsx +3 -1
  233. package/src/fields/index.ts +1 -0
  234. package/src/forms/autocomplete/autocomplete.tsx +24 -10
  235. package/src/forms/custom-select/custom-select-input.tsx +16 -14
  236. package/src/forms/custom-select/custom-select.tsx +12 -5
  237. package/src/forms/field/field.tsx +4 -1
  238. package/src/forms/field/field.variants.ts +24 -3
  239. package/src/forms/form/form.tsx +0 -22
  240. package/src/forms/form-error/form-error.variants.ts +14 -2
  241. package/src/forms/form-tester/form-tester.variants.ts +1 -1
  242. package/src/forms/input/input.tsx +3 -1
  243. package/src/forms/input/input.variants.ts +4 -3
  244. package/src/forms/input-group/input-group.tsx +4 -3
  245. package/src/forms/label/label.variants.ts +3 -1
  246. package/src/forms/select/select.tsx +1 -1
  247. package/src/forms/textarea/textarea.tsx +19 -3
  248. package/src/forms/textarea/textarea.variants.ts +1 -1
  249. package/src/forms/utils/utils.tsx +3 -2
  250. package/src/index.ts +1 -0
  251. package/src/lazy/carousel-1/carousel-1.tsx +5 -10
  252. package/src/lazy/download-1/download-1.tsx +5 -10
  253. package/src/lazy/lazy-loader/lazy-loader-client.tsx +13 -17
  254. package/src/lazy/lazy-loader/lazy-loader.tsx +13 -9
  255. package/src/lazy/media-full-1/media-full-1.tsx +5 -10
  256. package/src/lazy/media-full-2/media-full-2.tsx +5 -10
  257. package/src/lazy/media-media-1/media-media-1.tsx +5 -9
  258. package/src/lazy/not-found/not-found.tsx +4 -9
  259. package/src/lazy/related-1/related-1-card.tsx +1 -1
  260. package/src/lazy/related-1/related-1.tsx +5 -9
  261. package/src/lazy/sizes-colors-1/sizes-colors-1.tsx +5 -9
  262. package/src/lazy/text-1/text-1.tsx +5 -9
  263. package/src/lazy/text-aside-1/text-aside-1.tsx +5 -10
  264. package/src/lazy/text-media-1/text-media-1.tsx +5 -10
  265. package/src/lazy/text-text-1/text-text-1.tsx +5 -10
  266. package/src/sections/footer/footer.tsx +1 -1
  267. package/src/sections/magazine-related/magazine-related.tsx +5 -10
  268. package/src/sections/products-detail-download/products-detail-download.tsx +5 -11
  269. package/src/sections/products-detail-related/products-detail-related.tsx +5 -11
  270. package/src/sections/products-detail-size-color/products-detail-size-color.tsx +5 -11
  271. package/src/sections/shop-detail-related/shop-detail-related.tsx +5 -11
  272. package/src/theme/global.vars.scss +34 -7
  273. package/src/theme/global.vars.ts +34 -7
  274. package/src/theme/theme.json +26 -5
  275. package/src/theme/types.ts +12 -2
@@ -0,0 +1,13 @@
1
+ import { __awaiter } from '../node_modules/tslib/tslib.es6.js';
2
+ import { isDevelopment, isBrowser } from '@websolutespa/bom-core';
3
+
4
+ const accessibility = (App, config) => __awaiter(void 0, void 0, void 0, function* () {
5
+ if (isDevelopment && isBrowser) {
6
+ const axe = yield import('@axe-core/react');
7
+ const ReactDOM = yield import('react-dom');
8
+ axe.default(App, ReactDOM, 1000, config);
9
+ }
10
+ });
11
+
12
+ export { accessibility };
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/accessibility/index.ts"],"sourcesContent":["import { __awaiter } from \"tslib\";\nimport { isBrowser, isDevelopment } from '@websolutespa/bom-core';\nexport const accessibility = (App, config) => __awaiter(void 0, void 0, void 0, function* () {\n if (isDevelopment && isBrowser) {\n const axe = yield import('@axe-core/react');\n const ReactDOM = yield import('react-dom');\n axe.default(App, ReactDOM, 1000, config);\n }\n});\n//# sourceMappingURL=index.js.map"],"names":["accessibility","App","config","__awaiter","isDevelopment","isBrowser","axe","ReactDOM","default"],"mappings":";;;MAEaA,aAAa,GAAGA,CAACC,GAAG,EAAEC,MAAM,KAAKC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;EACzF,IAAIC,aAAa,IAAIC,SAAS,EAAE;AAC5B,IAAA,MAAMC,GAAG,GAAG,MAAM,OAAO,iBAAiB,CAAC,CAAA;AAC3C,IAAA,MAAMC,QAAQ,GAAG,MAAM,OAAO,WAAW,CAAC,CAAA;IAC1CD,GAAG,CAACE,OAAO,CAACP,GAAG,EAAEM,QAAQ,EAAE,IAAI,EAAEL,MAAM,CAAC,CAAA;AAC5C,GAAA;AACJ,CAAC;;;;"}
@@ -36,7 +36,8 @@ const Breakpoint = props => {
36
36
  exit: {
37
37
  opacity: 0,
38
38
  y: '100%'
39
- }
39
+ },
40
+ "aria-hidden": "true"
40
41
  }, props, {
41
42
  children: [breakpoint.key, " (", breakpoint.min, "/", breakpoint.max < 50000 ? breakpoint.max : '∞', ")"]
42
43
  }), "breakpoint")
@@ -1 +1 @@
1
- {"version":3,"file":"breakpoint.js","sources":["../../../../src/components/breakpoint/breakpoint.tsx"],"sourcesContent":["import { jsxs as _jsxs, jsx as _jsx } from \"react/jsx-runtime\";\nimport { useBreakpoint, useIdle } from '@websolutespa/bom-mixer-hooks';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport styled from 'styled-components';\nimport { getCssResponsive } from '../../components/utils';\nconst StyledBreakpoint = styled(motion.div) `\r\n position: fixed;\r\n top: 6px;\r\n left: 6px;\r\n padding: 0.3em 0.8em;\r\n background: var(--color-warning-500);\r\n color: var(--color-warning-900);\r\n border: 1px solid var(--color-warning-700);\r\n border-radius: 0.3em;\r\n z-index: 10000;\r\n font-family: monospace;\r\n font-size: 0.8rem;\r\n line-height: 1;\r\n pointer-events: none;\r\n ${props => getCssResponsive(props)}\r\n`;\nexport const Breakpoint = ((props) => {\n const breakpoint = useBreakpoint();\n const isIdle = useIdle(3000);\n return breakpoint.max > 0 ? (_jsx(AnimatePresence, { children: !isIdle && (_jsxs(StyledBreakpoint, Object.assign({ initial: { opacity: 0, y: '100%' }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: '100%' } }, props, { children: [breakpoint.key, \" (\", breakpoint.min, \"/\", breakpoint.max < 50000 ? breakpoint.max : '∞', \")\"] }), \"breakpoint\")) })) : null;\n});\n//# sourceMappingURL=breakpoint.js.map"],"names":["StyledBreakpoint","styled","motion","div","props","getCssResponsive","Breakpoint","breakpoint","useBreakpoint","isIdle","useIdle","max","_jsx","AnimatePresence","children","_jsxs","Object","assign","initial","opacity","y","animate","exit","key","min"],"mappings":";;;;;;AAKA,MAAMA,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAACC,GAAG,CAAG,CAAA;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,EAAIC,KAAK,IAAIC,gBAAgB,CAACD,KAAK,CAAE,CAAA;AACrC,CAAC,CAAA;AACYE,MAAAA,UAAU,GAAKF,KAAK,IAAK;AAClC,EAAA,MAAMG,UAAU,GAAGC,aAAa,EAAE,CAAA;AAClC,EAAA,MAAMC,MAAM,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA;EAC5B,OAAOH,UAAU,CAACI,GAAG,GAAG,CAAC,GAAIC,GAAI,CAACC,eAAe,EAAE;IAAEC,QAAQ,EAAE,CAACL,MAAM,IAAKM,IAAK,CAACf,gBAAgB,EAAEgB,MAAM,CAACC,MAAM,CAAC;AAAEC,MAAAA,OAAO,EAAE;AAAEC,QAAAA,OAAO,EAAE,CAAC;AAAEC,QAAAA,CAAC,EAAE,MAAA;OAAQ;AAAEC,MAAAA,OAAO,EAAE;AAAEF,QAAAA,OAAO,EAAE,CAAC;AAAEC,QAAAA,CAAC,EAAE,CAAA;OAAG;AAAEE,MAAAA,IAAI,EAAE;AAAEH,QAAAA,OAAO,EAAE,CAAC;AAAEC,QAAAA,CAAC,EAAE,MAAA;AAAO,OAAA;KAAG,EAAEhB,KAAK,EAAE;MAAEU,QAAQ,EAAE,CAACP,UAAU,CAACgB,GAAG,EAAE,IAAI,EAAEhB,UAAU,CAACiB,GAAG,EAAE,GAAG,EAAEjB,UAAU,CAACI,GAAG,GAAG,KAAK,GAAGJ,UAAU,CAACI,GAAG,GAAG,GAAG,EAAE,GAAG,CAAA;KAAG,CAAC,EAAE,YAAY,CAAA;GAAI,CAAC,GAAI,IAAI,CAAA;AAC7W;;;;"}
1
+ {"version":3,"file":"breakpoint.js","sources":["../../../../src/components/breakpoint/breakpoint.tsx"],"sourcesContent":["import { jsxs as _jsxs, jsx as _jsx } from \"react/jsx-runtime\";\nimport { useBreakpoint, useIdle } from '@websolutespa/bom-mixer-hooks';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport styled from 'styled-components';\nimport { getCssResponsive } from '../../components/utils';\nconst StyledBreakpoint = styled(motion.div) `\r\n position: fixed;\r\n top: 6px;\r\n left: 6px;\r\n padding: 0.3em 0.8em;\r\n background: var(--color-warning-500);\r\n color: var(--color-warning-900);\r\n border: 1px solid var(--color-warning-700);\r\n border-radius: 0.3em;\r\n z-index: 10000;\r\n font-family: monospace;\r\n font-size: 0.8rem;\r\n line-height: 1;\r\n pointer-events: none;\r\n ${props => getCssResponsive(props)}\r\n`;\nexport const Breakpoint = ((props) => {\n const breakpoint = useBreakpoint();\n const isIdle = useIdle(3000);\n return breakpoint.max > 0 ? (_jsx(AnimatePresence, { children: !isIdle && (_jsxs(StyledBreakpoint, Object.assign({ initial: { opacity: 0, y: '100%' }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: '100%' }, \"aria-hidden\": \"true\" }, props, { children: [breakpoint.key, \" (\", breakpoint.min, \"/\", breakpoint.max < 50000 ? breakpoint.max : '∞', \")\"] }), \"breakpoint\")) })) : null;\n});\n//# sourceMappingURL=breakpoint.js.map"],"names":["StyledBreakpoint","styled","motion","div","props","getCssResponsive","Breakpoint","breakpoint","useBreakpoint","isIdle","useIdle","max","_jsx","AnimatePresence","children","_jsxs","Object","assign","initial","opacity","y","animate","exit","key","min"],"mappings":";;;;;;AAKA,MAAMA,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAACC,GAAG,CAAG,CAAA;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAA,EAAIC,KAAK,IAAIC,gBAAgB,CAACD,KAAK,CAAE,CAAA;AACrC,CAAC,CAAA;AACYE,MAAAA,UAAU,GAAKF,KAAK,IAAK;AAClC,EAAA,MAAMG,UAAU,GAAGC,aAAa,EAAE,CAAA;AAClC,EAAA,MAAMC,MAAM,GAAGC,OAAO,CAAC,IAAI,CAAC,CAAA;EAC5B,OAAOH,UAAU,CAACI,GAAG,GAAG,CAAC,GAAIC,GAAI,CAACC,eAAe,EAAE;IAAEC,QAAQ,EAAE,CAACL,MAAM,IAAKM,IAAK,CAACf,gBAAgB,EAAEgB,MAAM,CAACC,MAAM,CAAC;AAAEC,MAAAA,OAAO,EAAE;AAAEC,QAAAA,OAAO,EAAE,CAAC;AAAEC,QAAAA,CAAC,EAAE,MAAA;OAAQ;AAAEC,MAAAA,OAAO,EAAE;AAAEF,QAAAA,OAAO,EAAE,CAAC;AAAEC,QAAAA,CAAC,EAAE,CAAA;OAAG;AAAEE,MAAAA,IAAI,EAAE;AAAEH,QAAAA,OAAO,EAAE,CAAC;AAAEC,QAAAA,CAAC,EAAE,MAAA;OAAQ;AAAE,MAAA,aAAa,EAAE,MAAA;KAAQ,EAAEhB,KAAK,EAAE;MAAEU,QAAQ,EAAE,CAACP,UAAU,CAACgB,GAAG,EAAE,IAAI,EAAEhB,UAAU,CAACiB,GAAG,EAAE,GAAG,EAAEjB,UAAU,CAACI,GAAG,GAAG,KAAK,GAAGJ,UAAU,CAACI,GAAG,GAAG,GAAG,EAAE,GAAG,CAAA;KAAG,CAAC,EAAE,YAAY,CAAA;GAAI,CAAC,GAAI,IAAI,CAAA;AACpY;;;;"}
@@ -19,19 +19,18 @@ const StyledMediaImage = styled.img`
19
19
  `;
20
20
  const MediaImage = _a => {
21
21
  var {
22
- alt = '',
23
22
  className,
24
- type
23
+ type,
24
+ loading = 'lazy'
25
25
  } = _a,
26
- props = __rest(_a, ["alt", "className", "type"]);
26
+ props = __rest(_a, ["className", "type", "loading"]);
27
27
  const classNames = getClassNames(className, 'image', {
28
28
  'image-svg': isSVG(props.src)
29
29
  });
30
30
  const imageProps = getImageProps(props);
31
31
  return jsx(StyledMediaImage, Object.assign({
32
32
  className: classNames,
33
- alt: alt,
34
- loading: "lazy"
33
+ loading: loading
35
34
  }, imageProps));
36
35
  };
37
36
  function getImageProps(_a) {
@@ -40,9 +39,9 @@ function getImageProps(_a) {
40
39
  } = _a,
41
40
  props = __rest(_a, ["src"]);
42
41
  if (IMAGE_STRATEGY === ImageStrategy.None || isSVG(src)) {
43
- return {
42
+ return Object.assign({
44
43
  src
45
- };
44
+ }, props);
46
45
  }
47
46
  const ratio = props.width && props.height ? parseInt(props.width.toString()) / parseInt(props.height.toString()) : 0;
48
47
  const sizes = IMAGE_SIZES;
@@ -1 +1 @@
1
- {"version":3,"file":"media-image.js","sources":["../../../../src/components/media/media-image.tsx"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getClassNames } from '@websolutespa/bom-core';\nimport styled from 'styled-components';\nexport var ImageStrategy;\n(function (ImageStrategy) {\n ImageStrategy[\"None\"] = \"none\";\n ImageStrategy[\"Next\"] = \"next\";\n ImageStrategy[\"Custom\"] = \"custom\";\n})(ImageStrategy || (ImageStrategy = {}));\nconst IMAGE_QUALITY = process.env.IMAGE_QUALITY ?\n parseInt(process.env.IMAGE_QUALITY) :\n 80;\nconst IMAGE_SIZES = process.env.IMAGE_SIZES ?\n process.env.IMAGE_SIZES.split(',').map(x => parseInt(x)) :\n [640, 828, 1080, 1200, 1920];\nconst IMAGE_STRATEGY = process.env.IMAGE_STRATEGY ?\n process.env.IMAGE_STRATEGY :\n ImageStrategy.Next;\nconst StyledMediaImage = styled.img `\r\n max-width: 100%;\r\n // height: auto;\r\n user-select: none;\r\n`;\nexport const MediaImage = (_a) => {\n var { alt = '', className, type } = _a, props = __rest(_a, [\"alt\", \"className\", \"type\"]);\n const classNames = getClassNames(className, 'image', { 'image-svg': isSVG(props.src) });\n const imageProps = getImageProps(props);\n return (_jsx(StyledMediaImage, Object.assign({ className: classNames, alt: alt, loading: \"lazy\" }, imageProps)));\n};\nfunction getImageProps(_a) {\n var { src } = _a, props = __rest(_a, [\"src\"]);\n if (IMAGE_STRATEGY === ImageStrategy.None || isSVG(src)) {\n return { src };\n }\n const ratio = props.width && props.height ? (parseInt(props.width.toString()) / parseInt(props.height.toString())) : 0;\n const sizes = IMAGE_SIZES;\n return Object.assign({ src: getImageSrc(src, ratio, sizes[0]), srcSet: getImageSrcset(src, ratio, sizes), sizes: ratio !== 0 ? getImageSizes(sizes) : '100vw' }, props);\n}\nfunction getImageSrc(src, ratio, width, quality = IMAGE_QUALITY) {\n if (isSVG(src)) {\n return src;\n }\n return ratio !== 0 ?\n `/_next/image?url=${encodeURIComponent(src)}&w=${width}&h=${width / ratio}&q=${quality}` :\n `/_next/image?url=${encodeURIComponent(src)}&w=${width}&q=${quality}`;\n}\nfunction getImageSrcset(src, ratio, widths, quality = IMAGE_QUALITY) {\n if (isSVG(src)) {\n return undefined;\n }\n return widths.map(width => getImageSrc(src, ratio, width, quality) + ` ${width}w`).join(', ');\n}\nfunction getImageSizes(widths) {\n return widths.map((width, i) => `${i < widths.length - 1 ? `(max-width: ${width}px) ` : ''}${width}px`).join(', ');\n}\nfunction isSVG(src) {\n return src.indexOf('.svg') !== -1;\n}\n//# sourceMappingURL=media-image.js.map"],"names":["ImageStrategy","IMAGE_QUALITY","process","env","parseInt","IMAGE_SIZES","split","map","x","IMAGE_STRATEGY","Next","StyledMediaImage","styled","img","MediaImage","_a","alt","className","type","props","__rest","classNames","getClassNames","isSVG","src","imageProps","getImageProps","_jsx","Object","assign","loading","None","ratio","width","height","toString","sizes","getImageSrc","srcSet","getImageSrcset","getImageSizes","quality","encodeURIComponent","widths","undefined","join","i","length","indexOf"],"mappings":"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"}
1
+ {"version":3,"file":"media-image.js","sources":["../../../../src/components/media/media-image.tsx"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getClassNames } from '@websolutespa/bom-core';\nimport styled from 'styled-components';\nexport var ImageStrategy;\n(function (ImageStrategy) {\n ImageStrategy[\"None\"] = \"none\";\n ImageStrategy[\"Next\"] = \"next\";\n ImageStrategy[\"Custom\"] = \"custom\";\n})(ImageStrategy || (ImageStrategy = {}));\nconst IMAGE_QUALITY = process.env.IMAGE_QUALITY ?\n parseInt(process.env.IMAGE_QUALITY) :\n 80;\nconst IMAGE_SIZES = process.env.IMAGE_SIZES ?\n process.env.IMAGE_SIZES.split(',').map(x => parseInt(x)) :\n [640, 828, 1080, 1200, 1920];\nconst IMAGE_STRATEGY = process.env.IMAGE_STRATEGY ?\n process.env.IMAGE_STRATEGY :\n ImageStrategy.Next;\nconst StyledMediaImage = styled.img `\r\n max-width: 100%;\r\n // height: auto;\r\n user-select: none;\r\n`;\nexport const MediaImage = (_a) => {\n var { className, type, loading = 'lazy' } = _a, props = __rest(_a, [\"className\", \"type\", \"loading\"]);\n const classNames = getClassNames(className, 'image', { 'image-svg': isSVG(props.src) });\n const imageProps = getImageProps(props);\n return (_jsx(StyledMediaImage, Object.assign({ className: classNames, loading: loading }, imageProps)));\n};\nfunction getImageProps(_a) {\n var { src } = _a, props = __rest(_a, [\"src\"]);\n if (IMAGE_STRATEGY === ImageStrategy.None || isSVG(src)) {\n return Object.assign({ src }, props);\n }\n const ratio = props.width && props.height ? (parseInt(props.width.toString()) / parseInt(props.height.toString())) : 0;\n const sizes = IMAGE_SIZES;\n return Object.assign({ src: getImageSrc(src, ratio, sizes[0]), srcSet: getImageSrcset(src, ratio, sizes), sizes: ratio !== 0 ? getImageSizes(sizes) : '100vw' }, props);\n}\nfunction getImageSrc(src, ratio, width, quality = IMAGE_QUALITY) {\n if (isSVG(src)) {\n return src;\n }\n return ratio !== 0 ?\n `/_next/image?url=${encodeURIComponent(src)}&w=${width}&h=${width / ratio}&q=${quality}` :\n `/_next/image?url=${encodeURIComponent(src)}&w=${width}&q=${quality}`;\n}\nfunction getImageSrcset(src, ratio, widths, quality = IMAGE_QUALITY) {\n if (isSVG(src)) {\n return undefined;\n }\n return widths.map(width => getImageSrc(src, ratio, width, quality) + ` ${width}w`).join(', ');\n}\nfunction getImageSizes(widths) {\n return widths.map((width, i) => `${i < widths.length - 1 ? `(max-width: ${width}px) ` : ''}${width}px`).join(', ');\n}\nfunction isSVG(src) {\n return src.indexOf('.svg') !== -1;\n}\n//# sourceMappingURL=media-image.js.map"],"names":["ImageStrategy","IMAGE_QUALITY","process","env","parseInt","IMAGE_SIZES","split","map","x","IMAGE_STRATEGY","Next","StyledMediaImage","styled","img","MediaImage","_a","className","type","loading","props","__rest","classNames","getClassNames","isSVG","src","imageProps","getImageProps","_jsx","Object","assign","None","ratio","width","height","toString","sizes","getImageSrc","srcSet","getImageSrcset","getImageSizes","quality","encodeURIComponent","widths","undefined","join","i","length","indexOf"],"mappings":"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"}
@@ -118,9 +118,13 @@ const MediaBase = /*#__PURE__*/forwardRef((_a, ref) => {
118
118
  item,
119
119
  onClick,
120
120
  className,
121
+ aspectRatio,
122
+ eager,
123
+ alt,
124
+ title,
121
125
  as = 'div'
122
126
  } = _a,
123
- props = __rest(_a, ["children", "item", "onClick", "className", "as"]);
127
+ props = __rest(_a, ["children", "item", "onClick", "className", "aspectRatio", "eager", "alt", "title", "as"]);
124
128
  const {
125
129
  id,
126
130
  open
@@ -129,9 +133,11 @@ const MediaBase = /*#__PURE__*/forwardRef((_a, ref) => {
129
133
  'media--gallery': id
130
134
  });
131
135
  const mediaChildren = item && !children ? getMediaItems(item, {
132
- aspectRatio: props.aspectRatio,
133
- eager: props.eager,
136
+ aspectRatio,
137
+ eager,
134
138
  galleryId: id,
139
+ alt,
140
+ title,
135
141
  open
136
142
  }) : children;
137
143
  return jsx(StyledMedia, Object.assign({
@@ -162,7 +168,12 @@ function getMediaItems(itemOrItems, options) {
162
168
  });
163
169
  const hasGallery = options.galleryId != null && typeof options.open === 'function';
164
170
  const getMediaItemProps = media => {
165
- const props = {};
171
+ const title = media.title || options.title || media.alt || options.alt;
172
+ const alt = media.alt || options.alt || media.title || options.title;
173
+ const props = {
174
+ title,
175
+ alt
176
+ };
166
177
  if (hasGallery) {
167
178
  props['data-gallery'] = JSON.stringify({
168
179
  galleryId: options.galleryId,
@@ -197,7 +208,6 @@ function getMediaItems(itemOrItems, options) {
197
208
  type: "video/mp4"
198
209
  })
199
210
  }), m) : jsx(MediaImage, Object.assign({}, media, {
200
- alt: media.alt,
201
211
  draggable: false
202
212
  }, getMediaItemProps(media)), m));
203
213
  }
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sources":["../../../../src/components/media/media.tsx"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getClassNames, withSchema } from '@websolutespa/bom-core';\nimport { forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport { getAspectResponsive, getCssResponsive } from '../../components/utils';\nimport { useMediaGalleryContext } from '../media-gallery/media-gallery-context';\nimport { MediaImage } from './media-image';\nconst StyledMediaInfo = styled.div `\r\n position: absolute;\r\n display: flex;\r\n flex-direction: column;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n z-index: 1;\r\n color: var(--color-neutral-100);\r\n\r\n ${props => getCssResponsive(props)}\r\n`;\nconst MediaInfo = (_a) => {\n var { children, className } = _a, props = __rest(_a, [\"children\", \"className\"]);\n const classNames = getClassNames(className, 'media-info');\n return (_jsx(StyledMediaInfo, Object.assign({ className: classNames }, props, { children: children })));\n};\nconst StyledMedia = styled.div `\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n // color: var(--color-neutral-100);\r\n\r\n ${props => getCssResponsive(props)}\r\n\r\n &>:not(.media-info) {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n &>.image:not(.image-svg),\r\n &>video,\r\n &>.video {\r\n object-fit: cover;\r\n background: var(--color-neutral-200);\r\n }\r\n\r\n &>svg {\r\n height: 100%;\r\n }\r\n\r\n &.media--gallery {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n overflow: hidden;\r\n cursor: pointer;\r\n\r\n &>:not(.media-info) {\r\n transition: ease-in-out 200ms;\r\n transition-property: transform, opacity;\r\n }\r\n\r\n &:hover {\r\n &>:not(.media-info) {\r\n transform: scale(1.05);\r\n }\r\n }\r\n }\r\n\r\n ${props => props.circle ? css `\r\n aspect-ratio: 1;\r\n overflow: hidden;\r\n border-radius: 50%;\r\n &>* {\r\n top: 0;\r\n left: 0;\r\n height: 100%;\r\n }\r\n ` : ''};\r\n\r\n ${props => props.rounded ? css `\r\n overflow: hidden;\r\n border-radius: var(--border-radius);\r\n ` : ''};\r\n\r\n ${props => getAspectResponsive(props, props.circle ? { aspectRatio: 1 } : undefined)};\r\n\r\n ${props => props.overlay ? (css `\r\n position: relative;\r\n\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n ${typeof props.overlay === 'number' ?\n (css `background: rgba(0,0,0,${props.overlay})`) :\n (css `background-image: linear-gradient(180deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.1) 15.9%, rgba(0, 0, 0, 0) 41.67%, rgba(0, 0, 0, 0.1) 61.79%, rgba(0, 0, 0, 0.6) 100%)`)};\r\n }\r\n `) : ''}\r\n`;\nconst MediaBase = forwardRef((_a, ref) => {\n var { children, item, onClick, className, as = 'div' } = _a, props = __rest(_a, [\"children\", \"item\", \"onClick\", \"className\", \"as\"]);\n const { id, open } = useMediaGalleryContext();\n const classNames = getClassNames(className, 'media', { 'media--gallery': id });\n const mediaChildren = (item && !children) ? getMediaItems(item, {\n aspectRatio: props.aspectRatio,\n eager: props.eager,\n galleryId: id,\n open,\n }) : children;\n return (_jsx(StyledMedia, Object.assign({ className: classNames, ref: ref, as: as }, props, { children: mediaChildren })));\n});\nMediaBase.displayName = 'Media';\nexport const Media = withSchema(MediaBase, {\n Info: MediaInfo,\n});\nfunction getMediaItems(itemOrItems, options = {}) {\n // !!! todo remap payloadcms media\n const items = (Array.isArray(itemOrItems) ? itemOrItems : [itemOrItems]).map(x => {\n if (typeof x['media'] === 'object') {\n x = x['media'];\n }\n if (typeof x.url === 'string') {\n x.src = x.url;\n }\n return x;\n });\n const hasGallery = options.galleryId != null && typeof options.open === 'function';\n const getMediaItemProps = (media) => {\n const props = {};\n if (hasGallery) {\n props['data-gallery'] = JSON.stringify({ galleryId: options.galleryId, media });\n props.onClick = (event) => {\n if (options.open) {\n options.open(media);\n }\n };\n }\n if (media.type === 'image') {\n const aspectRatio = typeof options.aspectRatio === 'string' ? parseFloat(options.aspectRatio) : options.aspectRatio;\n if (aspectRatio != null) {\n props.width = 800;\n props.height = 800 / aspectRatio;\n }\n if (options.eager) {\n props.loading = 'eager';\n }\n }\n return props;\n };\n return (items.map((media, m) => media.type === 'video' ?\n (_jsx(\"video\", Object.assign({ playsInline: true, autoPlay: true, muted: true, loop: true }, getMediaItemProps(media), { children: _jsx(\"source\", { src: media.src, type: \"video/mp4\" }) }), m)) :\n (_jsx(MediaImage, Object.assign({}, media, { alt: media.alt, draggable: false }, getMediaItemProps(media)), m))));\n}\n//# sourceMappingURL=media.js.map"],"names":["StyledMediaInfo","styled","div","props","getCssResponsive","MediaInfo","_a","children","className","__rest","classNames","getClassNames","_jsx","Object","assign","StyledMedia","circle","css","rounded","getAspectResponsive","aspectRatio","undefined","overlay","MediaBase","forwardRef","ref","item","onClick","as","id","open","useMediaGalleryContext","mediaChildren","getMediaItems","eager","galleryId","displayName","Media","withSchema","Info","itemOrItems","options","items","Array","isArray","map","x","url","src","hasGallery","getMediaItemProps","media","JSON","stringify","event","type","parseFloat","width","height","loading","m","playsInline","autoPlay","muted","loop","MediaImage","alt","draggable"],"mappings":"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"}
1
+ {"version":3,"file":"media.js","sources":["../../../../src/components/media/media.tsx"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { getClassNames, withSchema } from '@websolutespa/bom-core';\nimport { forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport { getAspectResponsive, getCssResponsive } from '../../components/utils';\nimport { useMediaGalleryContext } from '../media-gallery/media-gallery-context';\nimport { MediaImage } from './media-image';\nconst StyledMediaInfo = styled.div `\r\n position: absolute;\r\n display: flex;\r\n flex-direction: column;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n z-index: 1;\r\n color: var(--color-neutral-100);\r\n\r\n ${props => getCssResponsive(props)}\r\n`;\nconst MediaInfo = (_a) => {\n var { children, className } = _a, props = __rest(_a, [\"children\", \"className\"]);\n const classNames = getClassNames(className, 'media-info');\n return (_jsx(StyledMediaInfo, Object.assign({ className: classNames }, props, { children: children })));\n};\nconst StyledMedia = styled.div `\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n // color: var(--color-neutral-100);\r\n\r\n ${props => getCssResponsive(props)}\r\n\r\n &>:not(.media-info) {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n &>.image:not(.image-svg),\r\n &>video,\r\n &>.video {\r\n object-fit: cover;\r\n background: var(--color-neutral-200);\r\n }\r\n\r\n &>svg {\r\n height: 100%;\r\n }\r\n\r\n &.media--gallery {\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n overflow: hidden;\r\n cursor: pointer;\r\n\r\n &>:not(.media-info) {\r\n transition: ease-in-out 200ms;\r\n transition-property: transform, opacity;\r\n }\r\n\r\n &:hover {\r\n &>:not(.media-info) {\r\n transform: scale(1.05);\r\n }\r\n }\r\n }\r\n\r\n ${props => props.circle ? css `\r\n aspect-ratio: 1;\r\n overflow: hidden;\r\n border-radius: 50%;\r\n &>* {\r\n top: 0;\r\n left: 0;\r\n height: 100%;\r\n }\r\n ` : ''};\r\n\r\n ${props => props.rounded ? css `\r\n overflow: hidden;\r\n border-radius: var(--border-radius);\r\n ` : ''};\r\n\r\n ${props => getAspectResponsive(props, props.circle ? { aspectRatio: 1 } : undefined)};\r\n\r\n ${props => props.overlay ? (css `\r\n position: relative;\r\n\r\n &:after {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n ${typeof props.overlay === 'number' ?\n (css `background: rgba(0,0,0,${props.overlay})`) :\n (css `background-image: linear-gradient(180deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.1) 15.9%, rgba(0, 0, 0, 0) 41.67%, rgba(0, 0, 0, 0.1) 61.79%, rgba(0, 0, 0, 0.6) 100%)`)};\r\n }\r\n `) : ''}\r\n`;\nconst MediaBase = forwardRef((_a, ref) => {\n var { children, item, onClick, className, aspectRatio, eager, alt, title, as = 'div' } = _a, props = __rest(_a, [\"children\", \"item\", \"onClick\", \"className\", \"aspectRatio\", \"eager\", \"alt\", \"title\", \"as\"]);\n const { id, open } = useMediaGalleryContext();\n const classNames = getClassNames(className, 'media', { 'media--gallery': id });\n const mediaChildren = (item && !children) ? getMediaItems(item, {\n aspectRatio,\n eager,\n galleryId: id,\n alt,\n title,\n open,\n }) : children;\n return (_jsx(StyledMedia, Object.assign({ className: classNames, ref: ref, as: as }, props, { children: mediaChildren })));\n});\nMediaBase.displayName = 'Media';\nexport const Media = withSchema(MediaBase, {\n Info: MediaInfo,\n});\nfunction getMediaItems(itemOrItems, options = {}) {\n // !!! todo remap payloadcms media\n const items = (Array.isArray(itemOrItems) ? itemOrItems : [itemOrItems]).map(x => {\n if (typeof x['media'] === 'object') {\n x = x['media'];\n }\n if (typeof x.url === 'string') {\n x.src = x.url;\n }\n return x;\n });\n const hasGallery = options.galleryId != null && typeof options.open === 'function';\n const getMediaItemProps = (media) => {\n const title = media.title || options.title || media.alt || options.alt;\n const alt = media.alt || options.alt || media.title || options.title;\n const props = { title, alt };\n if (hasGallery) {\n props['data-gallery'] = JSON.stringify({ galleryId: options.galleryId, media });\n props.onClick = (event) => {\n if (options.open) {\n options.open(media);\n }\n };\n }\n if (media.type === 'image') {\n const aspectRatio = typeof options.aspectRatio === 'string' ? parseFloat(options.aspectRatio) : options.aspectRatio;\n if (aspectRatio != null) {\n props.width = 800;\n props.height = 800 / aspectRatio;\n }\n if (options.eager) {\n props.loading = 'eager';\n }\n }\n return props;\n };\n return (items.map((media, m) => media.type === 'video' ?\n (_jsx(\"video\", Object.assign({ playsInline: true, autoPlay: true, muted: true, loop: true }, getMediaItemProps(media), { children: _jsx(\"source\", { src: media.src, type: \"video/mp4\" }) }), m)) :\n (_jsx(MediaImage, Object.assign({}, media, { draggable: false }, getMediaItemProps(media)), m))));\n}\n//# sourceMappingURL=media.js.map"],"names":["StyledMediaInfo","styled","div","props","getCssResponsive","MediaInfo","_a","children","className","__rest","classNames","getClassNames","_jsx","Object","assign","StyledMedia","circle","css","rounded","getAspectResponsive","aspectRatio","undefined","overlay","MediaBase","forwardRef","ref","item","onClick","eager","alt","title","as","id","open","useMediaGalleryContext","mediaChildren","getMediaItems","galleryId","displayName","Media","withSchema","Info","itemOrItems","options","items","Array","isArray","map","x","url","src","hasGallery","getMediaItemProps","media","JSON","stringify","event","type","parseFloat","width","height","loading","m","playsInline","autoPlay","muted","loop","MediaImage","draggable"],"mappings":"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"}
@@ -92,9 +92,16 @@ import '../forms/textarea/textarea.variants.js';
92
92
  import '../forms/utils/utils.js';
93
93
  import { FieldError } from './field-error.js';
94
94
 
95
- function FieldAccept(props) {
95
+ function FieldAccept(_ref) {
96
+ let {
97
+ control,
98
+ uid = 0
99
+ } = _ref;
96
100
  const label = useLabel();
97
- const [state, setValue, setTouched] = useControl(props.control);
101
+ const uniqueName = `${control.name}-${uid}`;
102
+ const uniqueNameTrue = `${uniqueName}-true`;
103
+ const uniqueNameFalse = `${uniqueName}-false`;
104
+ const [state, setValue, setTouched] = useControl(control);
98
105
  const onSelect = value => {
99
106
  // console.log('value', value);
100
107
  setValue(value);
@@ -114,6 +121,7 @@ function FieldAccept(props) {
114
121
  type: "hidden",
115
122
  value: state.value ? 'true' : 'false'
116
123
  }) : jsxs(Field, {
124
+ state: state,
117
125
  padding: "1em 0",
118
126
  borderBottom: "1px solid var(--color-neutral-200)",
119
127
  children: [jsxs(Radio.Group, {
@@ -123,18 +131,24 @@ function FieldAccept(props) {
123
131
  onFocus: onFocus,
124
132
  disabled: state.flags.disabled || state.flags.readonly,
125
133
  children: [jsxs(Label, {
134
+ htmlFor: uniqueNameTrue,
126
135
  width: "auto",
127
136
  children: [jsx(Radio, {
128
- value: "true"
129
- }), " ", label('form.accept.true')]
137
+ value: "true",
138
+ name: uniqueNameTrue,
139
+ id: uniqueNameTrue
140
+ }), label('form.accept.true')]
130
141
  }), jsxs(Label, {
142
+ htmlFor: uniqueNameFalse,
131
143
  width: "auto",
132
144
  children: [jsx(Radio, {
133
- value: "false"
134
- }), " ", label('form.accept.false')]
145
+ value: "false",
146
+ name: uniqueNameFalse,
147
+ id: uniqueNameFalse
148
+ }), label('form.accept.false')]
135
149
  })]
136
- }), props.control.label && jsx(Text, {
137
- children: label(props.control.label)
150
+ }), control.label && jsx(Text, {
151
+ children: label(control.label)
138
152
  }), jsx(FieldError, {
139
153
  state: state
140
154
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"field-accept.js","sources":["../../../src/fields/field-accept.tsx"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useControl } from '@websolutespa/bom-mixer-forms';\nimport { useLabel } from '@websolutespa/bom-mixer-hooks';\nimport { useState } from 'react';\nimport { Text } from '../components';\nimport { Field, Label, Radio } from '../forms';\nimport { FieldError } from './field-error';\nexport function FieldAccept(props) {\n const label = useLabel();\n const [state, setValue, setTouched] = useControl(props.control);\n const onSelect = (value) => {\n // console.log('value', value);\n setValue(value);\n };\n const onChange = (event) => {\n onSelect(event.target.value === 'true');\n };\n const [focus, setFocus] = useState(false);\n const onBlur = (_) => {\n setTouched();\n setFocus(false);\n };\n const onFocus = (_) => {\n setFocus(true);\n };\n return (state.flags.hidden ? (_jsx(\"input\", { type: \"hidden\", value: state.value ? 'true' : 'false' })) : (_jsxs(Field, { padding: \"1em 0\", borderBottom: \"1px solid var(--color-neutral-200)\", children: [_jsxs(Radio.Group, { initialValue: state.value ? 'true' : 'false', onChange: onChange, onBlur: onBlur, onFocus: onFocus, disabled: state.flags.disabled || state.flags.readonly, children: [_jsxs(Label, { width: \"auto\", children: [_jsx(Radio, { value: \"true\" }), \" \", label('form.accept.true')] }), _jsxs(Label, { width: \"auto\", children: [_jsx(Radio, { value: \"false\" }), \" \", label('form.accept.false')] })] }), props.control.label &&\n _jsx(Text, { children: label(props.control.label) }), _jsx(FieldError, { state: state })] })));\n}\n//# sourceMappingURL=field-accept.js.map"],"names":["FieldAccept","props","label","useLabel","state","setValue","setTouched","useControl","control","onSelect","value","onChange","event","target","focus","setFocus","useState","onBlur","_","onFocus","flags","hidden","_jsx","type","_jsxs","Field","padding","borderBottom","children","Radio","Group","initialValue","disabled","readonly","Label","width","Text","FieldError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,SAASA,WAAWA,CAACC,KAAK,EAAE;AAC/B,EAAA,MAAMC,KAAK,GAAGC,QAAQ,EAAE,CAAA;AACxB,EAAA,MAAM,CAACC,KAAK,EAAEC,QAAQ,EAAEC,UAAU,CAAC,GAAGC,UAAU,CAACN,KAAK,CAACO,OAAO,CAAC,CAAA;EAC/D,MAAMC,QAAQ,GAAIC,KAAK,IAAK;AACxB;IACAL,QAAQ,CAACK,KAAK,CAAC,CAAA;GAClB,CAAA;EACD,MAAMC,QAAQ,GAAIC,KAAK,IAAK;IACxBH,QAAQ,CAACG,KAAK,CAACC,MAAM,CAACH,KAAK,KAAK,MAAM,CAAC,CAAA;GAC1C,CAAA;EACD,MAAM,CAACI,KAAK,EAAEC,QAAQ,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EACzC,MAAMC,MAAM,GAAIC,CAAC,IAAK;AAClBZ,IAAAA,UAAU,EAAE,CAAA;IACZS,QAAQ,CAAC,KAAK,CAAC,CAAA;GAClB,CAAA;EACD,MAAMI,OAAO,GAAID,CAAC,IAAK;IACnBH,QAAQ,CAAC,IAAI,CAAC,CAAA;GACjB,CAAA;EACD,OAAQX,KAAK,CAACgB,KAAK,CAACC,MAAM,GAAIC,GAAI,CAAC,OAAO,EAAE;AAAEC,IAAAA,IAAI,EAAE,QAAQ;AAAEb,IAAAA,KAAK,EAAEN,KAAK,CAACM,KAAK,GAAG,MAAM,GAAG,OAAA;AAAQ,GAAC,CAAC,GAAKc,IAAK,CAACC,KAAK,EAAE;AAAEC,IAAAA,OAAO,EAAE,OAAO;AAAEC,IAAAA,YAAY,EAAE,oCAAoC;AAAEC,IAAAA,QAAQ,EAAE,CAACJ,IAAK,CAACK,KAAK,CAACC,KAAK,EAAE;AAAEC,MAAAA,YAAY,EAAE3B,KAAK,CAACM,KAAK,GAAG,MAAM,GAAG,OAAO;AAAEC,MAAAA,QAAQ,EAAEA,QAAQ;AAAEM,MAAAA,MAAM,EAAEA,MAAM;AAAEE,MAAAA,OAAO,EAAEA,OAAO;MAAEa,QAAQ,EAAE5B,KAAK,CAACgB,KAAK,CAACY,QAAQ,IAAI5B,KAAK,CAACgB,KAAK,CAACa,QAAQ;AAAEL,MAAAA,QAAQ,EAAE,CAACJ,IAAK,CAACU,KAAK,EAAE;AAAEC,QAAAA,KAAK,EAAE,MAAM;AAAEP,QAAAA,QAAQ,EAAE,CAACN,GAAI,CAACO,KAAK,EAAE;AAAEnB,UAAAA,KAAK,EAAE,MAAA;AAAO,SAAC,CAAC,EAAE,GAAG,EAAER,KAAK,CAAC,kBAAkB,CAAC,CAAA;AAAE,OAAC,CAAC,EAAEsB,IAAK,CAACU,KAAK,EAAE;AAAEC,QAAAA,KAAK,EAAE,MAAM;AAAEP,QAAAA,QAAQ,EAAE,CAACN,GAAI,CAACO,KAAK,EAAE;AAAEnB,UAAAA,KAAK,EAAE,OAAA;AAAQ,SAAC,CAAC,EAAE,GAAG,EAAER,KAAK,CAAC,mBAAmB,CAAC,CAAA;AAAE,OAAC,CAAC,CAAA;KAAG,CAAC,EAAED,KAAK,CAACO,OAAO,CAACN,KAAK,IAC9mBoB,GAAI,CAACc,IAAI,EAAE;AAAER,MAAAA,QAAQ,EAAE1B,KAAK,CAACD,KAAK,CAACO,OAAO,CAACN,KAAK,CAAA;AAAE,KAAC,CAAC,EAAEoB,GAAI,CAACe,UAAU,EAAE;AAAEjC,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAC,CAAC,CAAA;AAAE,GAAC,CAAE,CAAA;AAC7G;;;;"}
1
+ {"version":3,"file":"field-accept.js","sources":["../../../src/fields/field-accept.tsx"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useControl } from '@websolutespa/bom-mixer-forms';\nimport { useLabel } from '@websolutespa/bom-mixer-hooks';\nimport { useState } from 'react';\nimport { Text } from '../components';\nimport { Field, Label, Radio } from '../forms';\nimport { FieldError } from './field-error';\nexport function FieldAccept({ control, uid = 0 }) {\n const label = useLabel();\n const uniqueName = `${control.name}-${uid}`;\n const uniqueNameTrue = `${uniqueName}-true`;\n const uniqueNameFalse = `${uniqueName}-false`;\n const [state, setValue, setTouched] = useControl(control);\n const onSelect = (value) => {\n // console.log('value', value);\n setValue(value);\n };\n const onChange = (event) => {\n onSelect(event.target.value === 'true');\n };\n const [focus, setFocus] = useState(false);\n const onBlur = (_) => {\n setTouched();\n setFocus(false);\n };\n const onFocus = (_) => {\n setFocus(true);\n };\n return (state.flags.hidden ? (_jsx(\"input\", { type: \"hidden\", value: state.value ? 'true' : 'false' })) : (_jsxs(Field, { state: state, padding: \"1em 0\", borderBottom: \"1px solid var(--color-neutral-200)\", children: [_jsxs(Radio.Group, { initialValue: state.value ? 'true' : 'false', onChange: onChange, onBlur: onBlur, onFocus: onFocus, disabled: state.flags.disabled || state.flags.readonly, children: [_jsxs(Label, { htmlFor: uniqueNameTrue, width: \"auto\", children: [_jsx(Radio, { value: \"true\", name: uniqueNameTrue, id: uniqueNameTrue }), label('form.accept.true')] }), _jsxs(Label, { htmlFor: uniqueNameFalse, width: \"auto\", children: [_jsx(Radio, { value: \"false\", name: uniqueNameFalse, id: uniqueNameFalse }), label('form.accept.false')] })] }), control.label &&\n _jsx(Text, { children: label(control.label) }), _jsx(FieldError, { state: state })] })));\n}\n//# sourceMappingURL=field-accept.js.map"],"names":["FieldAccept","_ref","control","uid","label","useLabel","uniqueName","name","uniqueNameTrue","uniqueNameFalse","state","setValue","setTouched","useControl","onSelect","value","onChange","event","target","focus","setFocus","useState","onBlur","_","onFocus","flags","hidden","_jsx","type","_jsxs","Field","padding","borderBottom","children","Radio","Group","initialValue","disabled","readonly","Label","htmlFor","width","id","Text","FieldError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,SAASA,WAAWA,CAAAC,IAAA,EAAuB;EAAA,IAAtB;IAAEC,OAAO;AAAEC,IAAAA,GAAG,GAAG,CAAA;AAAE,GAAC,GAAAF,IAAA,CAAA;AAC5C,EAAA,MAAMG,KAAK,GAAGC,QAAQ,EAAE,CAAA;EACxB,MAAMC,UAAU,GAAI,CAAEJ,EAAAA,OAAO,CAACK,IAAK,CAAA,CAAA,EAAGJ,GAAI,CAAC,CAAA,CAAA;AAC3C,EAAA,MAAMK,cAAc,GAAI,CAAEF,EAAAA,UAAW,CAAM,KAAA,CAAA,CAAA;AAC3C,EAAA,MAAMG,eAAe,GAAI,CAAEH,EAAAA,UAAW,CAAO,MAAA,CAAA,CAAA;EAC7C,MAAM,CAACI,KAAK,EAAEC,QAAQ,EAAEC,UAAU,CAAC,GAAGC,UAAU,CAACX,OAAO,CAAC,CAAA;EACzD,MAAMY,QAAQ,GAAIC,KAAK,IAAK;AACxB;IACAJ,QAAQ,CAACI,KAAK,CAAC,CAAA;GAClB,CAAA;EACD,MAAMC,QAAQ,GAAIC,KAAK,IAAK;IACxBH,QAAQ,CAACG,KAAK,CAACC,MAAM,CAACH,KAAK,KAAK,MAAM,CAAC,CAAA;GAC1C,CAAA;EACD,MAAM,CAACI,KAAK,EAAEC,QAAQ,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EACzC,MAAMC,MAAM,GAAIC,CAAC,IAAK;AAClBX,IAAAA,UAAU,EAAE,CAAA;IACZQ,QAAQ,CAAC,KAAK,CAAC,CAAA;GAClB,CAAA;EACD,MAAMI,OAAO,GAAID,CAAC,IAAK;IACnBH,QAAQ,CAAC,IAAI,CAAC,CAAA;GACjB,CAAA;EACD,OAAQV,KAAK,CAACe,KAAK,CAACC,MAAM,GAAIC,GAAI,CAAC,OAAO,EAAE;AAAEC,IAAAA,IAAI,EAAE,QAAQ;AAAEb,IAAAA,KAAK,EAAEL,KAAK,CAACK,KAAK,GAAG,MAAM,GAAG,OAAA;AAAQ,GAAC,CAAC,GAAKc,IAAK,CAACC,KAAK,EAAE;AAAEpB,IAAAA,KAAK,EAAEA,KAAK;AAAEqB,IAAAA,OAAO,EAAE,OAAO;AAAEC,IAAAA,YAAY,EAAE,oCAAoC;AAAEC,IAAAA,QAAQ,EAAE,CAACJ,IAAK,CAACK,KAAK,CAACC,KAAK,EAAE;AAAEC,MAAAA,YAAY,EAAE1B,KAAK,CAACK,KAAK,GAAG,MAAM,GAAG,OAAO;AAAEC,MAAAA,QAAQ,EAAEA,QAAQ;AAAEM,MAAAA,MAAM,EAAEA,MAAM;AAAEE,MAAAA,OAAO,EAAEA,OAAO;MAAEa,QAAQ,EAAE3B,KAAK,CAACe,KAAK,CAACY,QAAQ,IAAI3B,KAAK,CAACe,KAAK,CAACa,QAAQ;AAAEL,MAAAA,QAAQ,EAAE,CAACJ,IAAK,CAACU,KAAK,EAAE;AAAEC,QAAAA,OAAO,EAAEhC,cAAc;AAAEiC,QAAAA,KAAK,EAAE,MAAM;AAAER,QAAAA,QAAQ,EAAE,CAACN,GAAI,CAACO,KAAK,EAAE;AAAEnB,UAAAA,KAAK,EAAE,MAAM;AAAER,UAAAA,IAAI,EAAEC,cAAc;AAAEkC,UAAAA,EAAE,EAAElC,cAAAA;AAAe,SAAC,CAAC,EAAEJ,KAAK,CAAC,kBAAkB,CAAC,CAAA;AAAE,OAAC,CAAC,EAAEyB,IAAK,CAACU,KAAK,EAAE;AAAEC,QAAAA,OAAO,EAAE/B,eAAe;AAAEgC,QAAAA,KAAK,EAAE,MAAM;AAAER,QAAAA,QAAQ,EAAE,CAACN,GAAI,CAACO,KAAK,EAAE;AAAEnB,UAAAA,KAAK,EAAE,OAAO;AAAER,UAAAA,IAAI,EAAEE,eAAe;AAAEiC,UAAAA,EAAE,EAAEjC,eAAAA;AAAgB,SAAC,CAAC,EAAEL,KAAK,CAAC,mBAAmB,CAAC,CAAA;AAAE,OAAC,CAAC,CAAA;KAAG,CAAC,EAAEF,OAAO,CAACE,KAAK,IACrvBuB,GAAI,CAACgB,IAAI,EAAE;AAAEV,MAAAA,QAAQ,EAAE7B,KAAK,CAACF,OAAO,CAACE,KAAK,CAAA;AAAE,KAAC,CAAC,EAAEuB,GAAI,CAACiB,UAAU,EAAE;AAAElC,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAC,CAAC,CAAA;AAAE,GAAC,CAAE,CAAA;AACvG;;;;"}
@@ -43,12 +43,16 @@ import '../forms/utils/utils.js';
43
43
  import { FieldError } from './field-error.js';
44
44
 
45
45
  // !!! todo
46
- function FieldAutocomplete(props) {
46
+ function FieldAutocomplete(_ref) {
47
+ let {
48
+ control,
49
+ uid = 0
50
+ } = _ref;
47
51
  const label = useLabel();
48
- const uniqueName = `${props.control.name}-${props.uid}`;
49
- const [state, setValue, setTouched] = useControl(props.control);
52
+ const uniqueName = `${control.name}-${uid}`;
53
+ const [state, setValue, setTouched] = useControl(control);
50
54
  const onChange = value => {
51
- const valueOrValues = stringToValue(value, props.control.options);
55
+ const valueOrValues = stringToValue(value, control.options);
52
56
  setValue(valueOrValues);
53
57
  };
54
58
  const [focus, setFocus] = useState(false);
@@ -74,7 +78,7 @@ function FieldAutocomplete(props) {
74
78
  }
75
79
  function source(query) {
76
80
  return new Promise((resolve, reject) => {
77
- const options = (props.control.options || []).filter(x => {
81
+ const options = (control.options || []).filter(x => {
78
82
  const name = x.name.toString().toLowerCase();
79
83
  return name.indexOf(query.toLowerCase()) !== -1;
80
84
  }).map(x => {
@@ -88,8 +92,8 @@ function FieldAutocomplete(props) {
88
92
  }
89
93
  const initialValue = useMemo(() => {
90
94
  var _a;
91
- if ((_a = props.control.optionsExtra) === null || _a === void 0 ? void 0 : _a.asEquatable) {
92
- const options = props.control.options || [];
95
+ if ((_a = control.optionsExtra) === null || _a === void 0 ? void 0 : _a.asEquatable) {
96
+ const options = control.options || [];
93
97
  if (!state.value) {
94
98
  return undefined;
95
99
  }
@@ -111,19 +115,21 @@ function FieldAutocomplete(props) {
111
115
  type: "hidden",
112
116
  value: valueToString(state.value)
113
117
  }) : jsxs(Field, {
114
- children: [props.control.label && jsx(Label, {
115
- children: label(props.control.label)
118
+ state: state,
119
+ children: [jsx(Label, {
120
+ htmlFor: uniqueName,
121
+ children: control.label && label(control.label)
116
122
  }), jsx(Autocomplete, {
117
- background: "var(--color-neutral-100)",
118
- overflow: "hidden",
119
123
  id: uniqueName,
120
124
  name: uniqueName,
121
- placeholder: label(props.control.placeholder || props.control.label || ''),
125
+ placeholder: label(control.placeholder || control.label || ''),
122
126
  initialValue: initialValue,
123
127
  source: source,
124
128
  onAutocomplete: onAutocomplete,
125
129
  onFocus: onFocus,
126
- onBlur: onBlur
130
+ onBlur: onBlur,
131
+ background: "var(--color-neutral-100)",
132
+ overflow: "hidden"
127
133
  }), jsx(FieldError, {
128
134
  state: state
129
135
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"field-autocomplete.js","sources":["../../../src/fields/field-autocomplete.tsx"],"sourcesContent":["import { __awaiter } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { stringToValue, useControl, valueToString } from '@websolutespa/bom-mixer-forms';\nimport { useLabel } from '@websolutespa/bom-mixer-hooks';\nimport { useMemo, useState } from 'react';\nimport { Autocomplete, Field, Label } from '../forms';\nimport { FieldError } from './field-error';\n// !!! todo\nexport function FieldAutocomplete(props) {\n const label = useLabel();\n const uniqueName = `${props.control.name}-${props.uid}`;\n const [state, setValue, setTouched] = useControl(props.control);\n const onChange = (value) => {\n const valueOrValues = stringToValue(value, props.control.options);\n setValue(valueOrValues);\n };\n const [focus, setFocus] = useState(false);\n const onBlur = (_) => {\n setTouched();\n setFocus(false);\n };\n const onFocus = (_) => {\n setFocus(true);\n };\n // fires when user select a google autocomplete result\n function onAutocomplete(item) {\n return __awaiter(this, void 0, void 0, function* () {\n console.log('onAutocomplete', item);\n if (!item) {\n return;\n }\n const id = item.id.toString();\n if (id) {\n onChange(id);\n }\n });\n }\n function source(query) {\n return new Promise((resolve, reject) => {\n const options = (props.control.options || []).filter(x => {\n const name = x.name.toString().toLowerCase();\n return name.indexOf(query.toLowerCase()) !== -1;\n }).map(x => {\n return {\n id: x.id,\n name: x.name.toString(),\n };\n });\n resolve(options);\n });\n }\n const initialValue = useMemo(() => {\n var _a;\n if ((_a = props.control.optionsExtra) === null || _a === void 0 ? void 0 : _a.asEquatable) {\n const options = props.control.options || [];\n if (!state.value) {\n return undefined;\n }\n const option = options.find(x => x.id === state.value);\n if (option) {\n return {\n id: option.id,\n name: option.name.toString(),\n };\n }\n else {\n return undefined;\n }\n }\n else {\n return state.value || undefined;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (state.flags.hidden ? (_jsx(\"input\", { type: \"hidden\", value: valueToString(state.value) })) : (_jsxs(Field, { children: [props.control.label &&\n _jsx(Label, { children: label(props.control.label) }), _jsx(Autocomplete, { background: \"var(--color-neutral-100)\", overflow: \"hidden\", id: uniqueName, name: uniqueName, placeholder: label(props.control.placeholder || props.control.label || ''), initialValue: initialValue, source: source, onAutocomplete: onAutocomplete, onFocus: onFocus, onBlur: onBlur }), _jsx(FieldError, { state: state })] })));\n}\n//# sourceMappingURL=field-autocomplete.js.map"],"names":["FieldAutocomplete","props","label","useLabel","uniqueName","control","name","uid","state","setValue","setTouched","useControl","onChange","value","valueOrValues","stringToValue","options","focus","setFocus","useState","onBlur","_","onFocus","onAutocomplete","item","__awaiter","console","log","id","toString","source","query","Promise","resolve","reject","filter","x","toLowerCase","indexOf","map","initialValue","useMemo","_a","optionsExtra","asEquatable","undefined","option","find","flags","hidden","_jsx","type","valueToString","_jsxs","Field","children","Label","Autocomplete","background","overflow","placeholder","FieldError"],"mappings":"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"}
1
+ {"version":3,"file":"field-autocomplete.js","sources":["../../../src/fields/field-autocomplete.tsx"],"sourcesContent":["import { __awaiter } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { stringToValue, useControl, valueToString } from '@websolutespa/bom-mixer-forms';\nimport { useLabel } from '@websolutespa/bom-mixer-hooks';\nimport { useMemo, useState } from 'react';\nimport { Autocomplete, Field, Label } from '../forms';\nimport { FieldError } from './field-error';\n// !!! todo\nexport function FieldAutocomplete({ control, uid = 0 }) {\n const label = useLabel();\n const uniqueName = `${control.name}-${uid}`;\n const [state, setValue, setTouched] = useControl(control);\n const onChange = (value) => {\n const valueOrValues = stringToValue(value, control.options);\n setValue(valueOrValues);\n };\n const [focus, setFocus] = useState(false);\n const onBlur = (_) => {\n setTouched();\n setFocus(false);\n };\n const onFocus = (_) => {\n setFocus(true);\n };\n // fires when user select a google autocomplete result\n function onAutocomplete(item) {\n return __awaiter(this, void 0, void 0, function* () {\n console.log('onAutocomplete', item);\n if (!item) {\n return;\n }\n const id = item.id.toString();\n if (id) {\n onChange(id);\n }\n });\n }\n function source(query) {\n return new Promise((resolve, reject) => {\n const options = (control.options || []).filter(x => {\n const name = x.name.toString().toLowerCase();\n return name.indexOf(query.toLowerCase()) !== -1;\n }).map(x => {\n return {\n id: x.id,\n name: x.name.toString(),\n };\n });\n resolve(options);\n });\n }\n const initialValue = useMemo(() => {\n var _a;\n if ((_a = control.optionsExtra) === null || _a === void 0 ? void 0 : _a.asEquatable) {\n const options = control.options || [];\n if (!state.value) {\n return undefined;\n }\n const option = options.find(x => x.id === state.value);\n if (option) {\n return {\n id: option.id,\n name: option.name.toString(),\n };\n }\n else {\n return undefined;\n }\n }\n else {\n return state.value || undefined;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (state.flags.hidden ? (_jsx(\"input\", { type: \"hidden\", value: valueToString(state.value) })) : (_jsxs(Field, { state: state, children: [_jsx(Label, { htmlFor: uniqueName, children: control.label && label(control.label) }), _jsx(Autocomplete, { id: uniqueName, name: uniqueName, placeholder: label(control.placeholder || control.label || ''), initialValue: initialValue, source: source, onAutocomplete: onAutocomplete, onFocus: onFocus, onBlur: onBlur, background: \"var(--color-neutral-100)\", overflow: \"hidden\" }), _jsx(FieldError, { state: state })] })));\n}\n//# sourceMappingURL=field-autocomplete.js.map"],"names":["FieldAutocomplete","_ref","control","uid","label","useLabel","uniqueName","name","state","setValue","setTouched","useControl","onChange","value","valueOrValues","stringToValue","options","focus","setFocus","useState","onBlur","_","onFocus","onAutocomplete","item","__awaiter","console","log","id","toString","source","query","Promise","resolve","reject","filter","x","toLowerCase","indexOf","map","initialValue","useMemo","_a","optionsExtra","asEquatable","undefined","option","find","flags","hidden","_jsx","type","valueToString","_jsxs","Field","children","Label","htmlFor","Autocomplete","placeholder","background","overflow","FieldError"],"mappings":"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"}
@@ -45,10 +45,10 @@ import { FieldError } from './field-error.js';
45
45
  function FieldCard(_a) {
46
46
  var _b, _c;
47
47
  var {
48
- uid,
49
- control
48
+ control,
49
+ uid = 0
50
50
  } = _a,
51
- props = __rest(_a, ["uid", "control"]);
51
+ props = __rest(_a, ["control", "uid"]);
52
52
  const label = useLabel();
53
53
  const uniqueName = `${control.name}-${uid}`;
54
54
  const [state, setValue, setTouched] = useControl(control);
@@ -69,8 +69,11 @@ function FieldCard(_a) {
69
69
  return state.flags.hidden ? jsx("input", {
70
70
  type: "hidden",
71
71
  value: state.value ? state.value.toString() : ''
72
- }) : jsxs(Field, Object.assign({}, props, {
72
+ }) : jsxs(Field, Object.assign({
73
+ state: state
74
+ }, props, {
73
75
  children: [jsx(Label, {
76
+ htmlFor: uniqueName,
74
77
  margin: "0",
75
78
  children: control.label && label(control.label)
76
79
  }), jsx(RadioCard.Group, {
@@ -1 +1 @@
1
- {"version":3,"file":"field-card.js","sources":["../../../src/fields/field-card.tsx"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useControl } from '@websolutespa/bom-mixer-forms';\nimport { useLabel } from '@websolutespa/bom-mixer-hooks';\nimport { useState } from 'react';\nimport { Field, Label, RadioCard } from '../forms';\nimport { FieldError } from './field-error';\nexport function FieldCard(_a) {\n var _b, _c;\n var { uid, control } = _a, props = __rest(_a, [\"uid\", \"control\"]);\n const label = useLabel();\n const uniqueName = `${control.name}-${uid}`;\n const [state, setValue, setTouched] = useControl(control);\n const onChange = (event) => {\n var _a;\n // console.log('onChange', event.target.value);\n const option = (_a = control.options) === null || _a === void 0 ? void 0 : _a.find(x => x.id.toString() === event.target.value);\n setValue(option || null);\n };\n const [focus, setFocus] = useState(false);\n const onBlur = (_) => {\n setTouched();\n setFocus(false);\n };\n const onFocus = (_) => {\n setFocus(true);\n };\n return (state.flags.hidden ? (_jsx(\"input\", { type: \"hidden\", value: state.value ? state.value.toString() : '' })) : (_jsxs(Field, Object.assign({}, props, { children: [_jsx(Label, { margin: \"0\", children: control.label && label(control.label) }), _jsx(RadioCard.Group, { id: uniqueName, name: uniqueName, initialValue: (_b = state.value) === null || _b === void 0 ? void 0 : _b.id.toString(), onChange: onChange, onBlur: onBlur, onFocus: onFocus, disabled: state.flags.disabled || state.flags.readonly, children: (_c = control.options) === null || _c === void 0 ? void 0 : _c.map(option => (_jsxs(RadioCard, { value: option.id.toString(), children: [_jsx(RadioCard.Title, { children: option.name }), option.abstract && _jsx(RadioCard.Abstract, { dangerouslySetInnerHTML: { __html: option.abstract } })] }, option.id))) }), _jsx(FieldError, { state: state })] }))));\n}\n//# sourceMappingURL=field-card.js.map"],"names":["FieldCard","_a","_b","_c","uid","control","props","__rest","label","useLabel","uniqueName","name","state","setValue","setTouched","useControl","onChange","event","option","options","find","x","id","toString","target","value","focus","setFocus","useState","onBlur","_","onFocus","flags","hidden","_jsx","type","_jsxs","Field","Object","assign","children","Label","margin","RadioCard","Group","initialValue","disabled","readonly","map","Title","abstract","Abstract","dangerouslySetInnerHTML","__html","FieldError"],"mappings":"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"}
1
+ {"version":3,"file":"field-card.js","sources":["../../../src/fields/field-card.tsx"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useControl } from '@websolutespa/bom-mixer-forms';\nimport { useLabel } from '@websolutespa/bom-mixer-hooks';\nimport { useState } from 'react';\nimport { Field, Label, RadioCard } from '../forms';\nimport { FieldError } from './field-error';\nexport function FieldCard(_a) {\n var _b, _c;\n var { control, uid = 0 } = _a, props = __rest(_a, [\"control\", \"uid\"]);\n const label = useLabel();\n const uniqueName = `${control.name}-${uid}`;\n const [state, setValue, setTouched] = useControl(control);\n const onChange = (event) => {\n var _a;\n // console.log('onChange', event.target.value);\n const option = (_a = control.options) === null || _a === void 0 ? void 0 : _a.find(x => x.id.toString() === event.target.value);\n setValue(option || null);\n };\n const [focus, setFocus] = useState(false);\n const onBlur = (_) => {\n setTouched();\n setFocus(false);\n };\n const onFocus = (_) => {\n setFocus(true);\n };\n return (state.flags.hidden ? (_jsx(\"input\", { type: \"hidden\", value: state.value ? state.value.toString() : '' })) : (_jsxs(Field, Object.assign({ state: state }, props, { children: [_jsx(Label, { htmlFor: uniqueName, margin: \"0\", children: control.label && label(control.label) }), _jsx(RadioCard.Group, { id: uniqueName, name: uniqueName, initialValue: (_b = state.value) === null || _b === void 0 ? void 0 : _b.id.toString(), onChange: onChange, onBlur: onBlur, onFocus: onFocus, disabled: state.flags.disabled || state.flags.readonly, children: (_c = control.options) === null || _c === void 0 ? void 0 : _c.map(option => (_jsxs(RadioCard, { value: option.id.toString(), children: [_jsx(RadioCard.Title, { children: option.name }), option.abstract && _jsx(RadioCard.Abstract, { dangerouslySetInnerHTML: { __html: option.abstract } })] }, option.id))) }), _jsx(FieldError, { state: state })] }))));\n}\n//# sourceMappingURL=field-card.js.map"],"names":["FieldCard","_a","_b","_c","control","uid","props","__rest","label","useLabel","uniqueName","name","state","setValue","setTouched","useControl","onChange","event","option","options","find","x","id","toString","target","value","focus","setFocus","useState","onBlur","_","onFocus","flags","hidden","_jsx","type","_jsxs","Field","Object","assign","children","Label","htmlFor","margin","RadioCard","Group","initialValue","disabled","readonly","map","Title","abstract","Abstract","dangerouslySetInnerHTML","__html","FieldError"],"mappings":"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"}
@@ -44,10 +44,10 @@ import { FieldError } from './field-error.js';
44
44
 
45
45
  function FieldCheckbox(_a) {
46
46
  var {
47
- uid,
48
- control
47
+ control,
48
+ uid = 0
49
49
  } = _a,
50
- props = __rest(_a, ["uid", "control"]);
50
+ props = __rest(_a, ["control", "uid"]);
51
51
  const label = useLabel();
52
52
  const uniqueName = `${control.name}-${uid}`;
53
53
  const [state, setValue, setTouched] = useControl(control);
@@ -66,8 +66,11 @@ function FieldCheckbox(_a) {
66
66
  return state.flags.hidden ? jsx("input", {
67
67
  type: "hidden",
68
68
  value: state.value ? state.value.toString() : ''
69
- }) : jsxs(Field, Object.assign({}, props, {
69
+ }) : jsxs(Field, Object.assign({
70
+ state: state
71
+ }, props, {
70
72
  children: [jsxs(Label, {
73
+ htmlFor: uniqueName,
71
74
  margin: "0",
72
75
  children: [jsx(Checkbox, {
73
76
  id: uniqueName,
@@ -1 +1 @@
1
- {"version":3,"file":"field-checkbox.js","sources":["../../../src/fields/field-checkbox.tsx"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useControl } from '@websolutespa/bom-mixer-forms';\nimport { useLabel } from '@websolutespa/bom-mixer-hooks';\nimport { useState } from 'react';\nimport { Checkbox, Field, Label } from '../forms';\nimport { FieldError } from './field-error';\nexport function FieldCheckbox(_a) {\n var { uid, control } = _a, props = __rest(_a, [\"uid\", \"control\"]);\n const label = useLabel();\n const uniqueName = `${control.name}-${uid}`;\n const [state, setValue, setTouched] = useControl(control);\n const onChange = (event) => {\n // console.log('onChange', event.target.checked);\n setValue(event.target.checked);\n };\n const [focus, setFocus] = useState(false);\n const onBlur = (_) => {\n setTouched();\n setFocus(false);\n };\n const onFocus = (_) => {\n setFocus(true);\n };\n return (state.flags.hidden ? (_jsx(\"input\", { type: \"hidden\", value: state.value ? state.value.toString() : '' })) : (_jsxs(Field, Object.assign({}, props, { children: [_jsxs(Label, { margin: \"0\", children: [_jsx(Checkbox, { id: uniqueName, name: uniqueName, onChange: onChange, onBlur: onBlur, onFocus: onFocus, disabled: state.flags.disabled || state.flags.readonly, checked: state.value === true }), control.label && label(control.label)] }), _jsx(FieldError, { state: state })] }))));\n}\n//# sourceMappingURL=field-checkbox.js.map"],"names":["FieldCheckbox","_a","uid","control","props","__rest","label","useLabel","uniqueName","name","state","setValue","setTouched","useControl","onChange","event","target","checked","focus","setFocus","useState","onBlur","_","onFocus","flags","hidden","_jsx","type","value","toString","_jsxs","Field","Object","assign","children","Label","margin","Checkbox","id","disabled","readonly","FieldError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,SAASA,aAAaA,CAACC,EAAE,EAAE;EAC9B,IAAI;MAAEC,GAAG;AAAEC,MAAAA,OAAAA;AAAQ,KAAC,GAAGF,EAAE;IAAEG,KAAK,GAAGC,MAAM,CAACJ,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAA;AACjE,EAAA,MAAMK,KAAK,GAAGC,QAAQ,EAAE,CAAA;EACxB,MAAMC,UAAU,GAAI,CAAEL,EAAAA,OAAO,CAACM,IAAK,CAAA,CAAA,EAAGP,GAAI,CAAC,CAAA,CAAA;EAC3C,MAAM,CAACQ,KAAK,EAAEC,QAAQ,EAAEC,UAAU,CAAC,GAAGC,UAAU,CAACV,OAAO,CAAC,CAAA;EACzD,MAAMW,QAAQ,GAAIC,KAAK,IAAK;AACxB;AACAJ,IAAAA,QAAQ,CAACI,KAAK,CAACC,MAAM,CAACC,OAAO,CAAC,CAAA;GACjC,CAAA;EACD,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EACzC,MAAMC,MAAM,GAAIC,CAAC,IAAK;AAClBV,IAAAA,UAAU,EAAE,CAAA;IACZO,QAAQ,CAAC,KAAK,CAAC,CAAA;GAClB,CAAA;EACD,MAAMI,OAAO,GAAID,CAAC,IAAK;IACnBH,QAAQ,CAAC,IAAI,CAAC,CAAA;GACjB,CAAA;EACD,OAAQT,KAAK,CAACc,KAAK,CAACC,MAAM,GAAIC,GAAI,CAAC,OAAO,EAAE;AAAEC,IAAAA,IAAI,EAAE,QAAQ;AAAEC,IAAAA,KAAK,EAAElB,KAAK,CAACkB,KAAK,GAAGlB,KAAK,CAACkB,KAAK,CAACC,QAAQ,EAAE,GAAG,EAAA;AAAG,GAAC,CAAC,GAAKC,IAAK,CAACC,KAAK,EAAEC,MAAM,CAACC,MAAM,CAAC,EAAE,EAAE7B,KAAK,EAAE;AAAE8B,IAAAA,QAAQ,EAAE,CAACJ,IAAK,CAACK,KAAK,EAAE;AAAEC,MAAAA,MAAM,EAAE,GAAG;AAAEF,MAAAA,QAAQ,EAAE,CAACR,GAAI,CAACW,QAAQ,EAAE;AAAEC,QAAAA,EAAE,EAAE9B,UAAU;AAAEC,QAAAA,IAAI,EAAED,UAAU;AAAEM,QAAAA,QAAQ,EAAEA,QAAQ;AAAEO,QAAAA,MAAM,EAAEA,MAAM;AAAEE,QAAAA,OAAO,EAAEA,OAAO;QAAEgB,QAAQ,EAAE7B,KAAK,CAACc,KAAK,CAACe,QAAQ,IAAI7B,KAAK,CAACc,KAAK,CAACgB,QAAQ;AAAEvB,QAAAA,OAAO,EAAEP,KAAK,CAACkB,KAAK,KAAK,IAAA;OAAM,CAAC,EAAEzB,OAAO,CAACG,KAAK,IAAIA,KAAK,CAACH,OAAO,CAACG,KAAK,CAAC,CAAA;AAAE,KAAC,CAAC,EAAEoB,GAAI,CAACe,UAAU,EAAE;AAAE/B,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAC,CAAC,CAAA;AAAE,GAAC,CAAC,CAAE,CAAA;AAC1e;;;;"}
1
+ {"version":3,"file":"field-checkbox.js","sources":["../../../src/fields/field-checkbox.tsx"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useControl } from '@websolutespa/bom-mixer-forms';\nimport { useLabel } from '@websolutespa/bom-mixer-hooks';\nimport { useState } from 'react';\nimport { Checkbox, Field, Label } from '../forms';\nimport { FieldError } from './field-error';\nexport function FieldCheckbox(_a) {\n var { control, uid = 0 } = _a, props = __rest(_a, [\"control\", \"uid\"]);\n const label = useLabel();\n const uniqueName = `${control.name}-${uid}`;\n const [state, setValue, setTouched] = useControl(control);\n const onChange = (event) => {\n // console.log('onChange', event.target.checked);\n setValue(event.target.checked);\n };\n const [focus, setFocus] = useState(false);\n const onBlur = (_) => {\n setTouched();\n setFocus(false);\n };\n const onFocus = (_) => {\n setFocus(true);\n };\n return (state.flags.hidden ? (_jsx(\"input\", { type: \"hidden\", value: state.value ? state.value.toString() : '' })) : (_jsxs(Field, Object.assign({ state: state }, props, { children: [_jsxs(Label, { htmlFor: uniqueName, margin: \"0\", children: [_jsx(Checkbox, { id: uniqueName, name: uniqueName, onChange: onChange, onBlur: onBlur, onFocus: onFocus, disabled: state.flags.disabled || state.flags.readonly, checked: state.value === true }), control.label && label(control.label)] }), _jsx(FieldError, { state: state })] }))));\n}\n//# sourceMappingURL=field-checkbox.js.map"],"names":["FieldCheckbox","_a","control","uid","props","__rest","label","useLabel","uniqueName","name","state","setValue","setTouched","useControl","onChange","event","target","checked","focus","setFocus","useState","onBlur","_","onFocus","flags","hidden","_jsx","type","value","toString","_jsxs","Field","Object","assign","children","Label","htmlFor","margin","Checkbox","id","disabled","readonly","FieldError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,SAASA,aAAaA,CAACC,EAAE,EAAE;EAC9B,IAAI;MAAEC,OAAO;AAAEC,MAAAA,GAAG,GAAG,CAAA;AAAE,KAAC,GAAGF,EAAE;IAAEG,KAAK,GAAGC,MAAM,CAACJ,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;AACrE,EAAA,MAAMK,KAAK,GAAGC,QAAQ,EAAE,CAAA;EACxB,MAAMC,UAAU,GAAI,CAAEN,EAAAA,OAAO,CAACO,IAAK,CAAA,CAAA,EAAGN,GAAI,CAAC,CAAA,CAAA;EAC3C,MAAM,CAACO,KAAK,EAAEC,QAAQ,EAAEC,UAAU,CAAC,GAAGC,UAAU,CAACX,OAAO,CAAC,CAAA;EACzD,MAAMY,QAAQ,GAAIC,KAAK,IAAK;AACxB;AACAJ,IAAAA,QAAQ,CAACI,KAAK,CAACC,MAAM,CAACC,OAAO,CAAC,CAAA;GACjC,CAAA;EACD,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EACzC,MAAMC,MAAM,GAAIC,CAAC,IAAK;AAClBV,IAAAA,UAAU,EAAE,CAAA;IACZO,QAAQ,CAAC,KAAK,CAAC,CAAA;GAClB,CAAA;EACD,MAAMI,OAAO,GAAID,CAAC,IAAK;IACnBH,QAAQ,CAAC,IAAI,CAAC,CAAA;GACjB,CAAA;EACD,OAAQT,KAAK,CAACc,KAAK,CAACC,MAAM,GAAIC,GAAI,CAAC,OAAO,EAAE;AAAEC,IAAAA,IAAI,EAAE,QAAQ;AAAEC,IAAAA,KAAK,EAAElB,KAAK,CAACkB,KAAK,GAAGlB,KAAK,CAACkB,KAAK,CAACC,QAAQ,EAAE,GAAG,EAAA;GAAI,CAAC,GAAKC,IAAK,CAACC,KAAK,EAAEC,MAAM,CAACC,MAAM,CAAC;AAAEvB,IAAAA,KAAK,EAAEA,KAAAA;GAAO,EAAEN,KAAK,EAAE;AAAE8B,IAAAA,QAAQ,EAAE,CAACJ,IAAK,CAACK,KAAK,EAAE;AAAEC,MAAAA,OAAO,EAAE5B,UAAU;AAAE6B,MAAAA,MAAM,EAAE,GAAG;AAAEH,MAAAA,QAAQ,EAAE,CAACR,GAAI,CAACY,QAAQ,EAAE;AAAEC,QAAAA,EAAE,EAAE/B,UAAU;AAAEC,QAAAA,IAAI,EAAED,UAAU;AAAEM,QAAAA,QAAQ,EAAEA,QAAQ;AAAEO,QAAAA,MAAM,EAAEA,MAAM;AAAEE,QAAAA,OAAO,EAAEA,OAAO;QAAEiB,QAAQ,EAAE9B,KAAK,CAACc,KAAK,CAACgB,QAAQ,IAAI9B,KAAK,CAACc,KAAK,CAACiB,QAAQ;AAAExB,QAAAA,OAAO,EAAEP,KAAK,CAACkB,KAAK,KAAK,IAAA;OAAM,CAAC,EAAE1B,OAAO,CAACI,KAAK,IAAIA,KAAK,CAACJ,OAAO,CAACI,KAAK,CAAC,CAAA;AAAE,KAAC,CAAC,EAAEoB,GAAI,CAACgB,UAAU,EAAE;AAAEhC,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAC,CAAC,CAAA;AAAE,GAAC,CAAC,CAAE,CAAA;AAC7gB;;;;"}