@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
package/dist/cjs/index.js CHANGED
@@ -85,6 +85,14 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
85
85
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
86
86
  };
87
87
 
88
+ const accessibility = (App, config) => __awaiter(void 0, void 0, void 0, function* () {
89
+ if (bomCore.isDevelopment && bomCore.isBrowser) {
90
+ const axe = yield import('@axe-core/react');
91
+ const ReactDOM = yield import('react-dom');
92
+ axe.default(App, ReactDOM, 1000, config);
93
+ }
94
+ });
95
+
88
96
  const StyledExpand = styled__default.default.div`
89
97
  padding: 0;
90
98
  margin: 0;
@@ -1507,7 +1515,8 @@ const Breakpoint = props => {
1507
1515
  exit: {
1508
1516
  opacity: 0,
1509
1517
  y: '100%'
1510
- }
1518
+ },
1519
+ "aria-hidden": "true"
1511
1520
  }, props, {
1512
1521
  children: [breakpoint.key, " (", breakpoint.min, "/", breakpoint.max < 50000 ? breakpoint.max : '∞', ")"]
1513
1522
  }), "breakpoint")
@@ -2926,9 +2935,6 @@ var button = {
2926
2935
  };
2927
2936
  var form = {
2928
2937
  "default": {
2929
- fontSize: "1rem",
2930
- lineHeight: "1.625",
2931
- padding: "0.8em",
2932
2938
  backgroundColor: "transparent",
2933
2939
  backgroundColorDisabled: "var(--color-neutral-200)",
2934
2940
  backgroundColorInfo: "var(--color-warning-100)",
@@ -2951,10 +2957,34 @@ var form = {
2951
2957
  outlineColorActive: "var(--color-primary-500)",
2952
2958
  outlineColorError: "var(--color-warning-500)",
2953
2959
  outlineOffset: "2px",
2954
- transition: "border 150ms ease-in 0s, outline-color 150ms ease-in 0s, color 200ms ease-out 0s, box-shadow 200ms ease 0s"
2960
+ transition: "border 150ms ease-in 0s, outline-color 150ms ease-in 0s, color 200ms ease-out 0s, box-shadow 200ms ease 0s",
2961
+ field: {
2962
+ gap: "0.5rem"
2963
+ },
2964
+ control: {
2965
+ padding: "0.8em",
2966
+ fontSize: "1rem",
2967
+ fontWeight: "inherit",
2968
+ lineHeight: "1.625"
2969
+ },
2970
+ label: {
2971
+ padding: "0",
2972
+ fontSize: "0.9rem",
2973
+ fontWeight: "500",
2974
+ lineHeight: "1.2"
2975
+ },
2976
+ error: {
2977
+ margin: "0.5em 0",
2978
+ padding: "0.2em 0.4em",
2979
+ fontSize: "0.9rem",
2980
+ fontWeight: "500",
2981
+ lineHeight: "1.2",
2982
+ border: "1px solid var(--form-border-color-error)",
2983
+ backgroundColor: "var(--form-background-color-error)",
2984
+ color: "var(--form-color-error)"
2985
+ }
2955
2986
  },
2956
2987
  negative: {
2957
- padding: "0.8em",
2958
2988
  backgroundColorDisabled: "var(--color-neutral-800)",
2959
2989
  colorHover: "var(--color-neutral-200)",
2960
2990
  colorDisabled: "var(--color-neutral-600)",
@@ -3135,9 +3165,6 @@ const CssVars = styled.css`
3135
3165
  --button-size-lg: 1.25rem;
3136
3166
  --button-size-xl: 1.45rem;
3137
3167
  --button-border-radius: 0.2em;
3138
- --form-default-font-size: 1rem;
3139
- --form-default-line-height: 1.625;
3140
- --form-default-padding: 0.8em;
3141
3168
  --form-default-background-color: transparent;
3142
3169
  --form-default-background-color-disabled: var(--color-neutral-200);
3143
3170
  --form-default-background-color-info: var(--color-warning-100);
@@ -3161,7 +3188,23 @@ const CssVars = styled.css`
3161
3188
  --form-default-outline-color-error: var(--color-warning-500);
3162
3189
  --form-default-outline-offset: 2px;
3163
3190
  --form-default-transition: border 150ms ease-in 0s, outline-color 150ms ease-in 0s, color 200ms ease-out 0s, box-shadow 200ms ease 0s;
3164
- --form-negative-padding: 0.8em;
3191
+ --form-default-field-gap: 0.5rem;
3192
+ --form-default-control-padding: 0.8em;
3193
+ --form-default-control-font-size: 1rem;
3194
+ --form-default-control-font-weight: inherit;
3195
+ --form-default-control-line-height: 1.625;
3196
+ --form-default-label-padding: 0;
3197
+ --form-default-label-font-size: 0.9rem;
3198
+ --form-default-label-font-weight: 500;
3199
+ --form-default-label-line-height: 1.2;
3200
+ --form-default-error-margin: 0.5em 0;
3201
+ --form-default-error-padding: 0.2em 0.4em;
3202
+ --form-default-error-font-size: 0.9rem;
3203
+ --form-default-error-font-weight: 500;
3204
+ --form-default-error-line-height: 1.2;
3205
+ --form-default-error-border: 1px solid var(--form-border-color-error);
3206
+ --form-default-error-background-color: var(--form-background-color-error);
3207
+ --form-default-error-color: var(--form-color-error);
3165
3208
  --form-negative-background-color-disabled: var(--color-neutral-800);
3166
3209
  --form-negative-color-hover: var(--color-neutral-200);
3167
3210
  --form-negative-color-disabled: var(--color-neutral-600);
@@ -3253,9 +3296,6 @@ const CssVars = styled.css`
3253
3296
  --container-max-width-md: var(--container-default-max-width-md);
3254
3297
  --container-max-width-lg: var(--container-default-max-width-lg);
3255
3298
  --container-max-width-xl: var(--container-default-max-width-xl);
3256
- --form-font-size: var(--form-default-font-size);
3257
- --form-line-height: var(--form-default-line-height);
3258
- --form-padding: var(--form-default-padding);
3259
3299
  --form-background-color: var(--form-default-background-color);
3260
3300
  --form-background-color-disabled: var(--form-default-background-color-disabled);
3261
3301
  --form-background-color-info: var(--form-default-background-color-info);
@@ -3279,6 +3319,23 @@ const CssVars = styled.css`
3279
3319
  --form-outline-color-error: var(--form-default-outline-color-error);
3280
3320
  --form-outline-offset: var(--form-default-outline-offset);
3281
3321
  --form-transition: var(--form-default-transition);
3322
+ --form-field-gap: var(--form-default-field-gap);
3323
+ --form-control-padding: var(--form-default-control-padding);
3324
+ --form-control-font-size: var(--form-default-control-font-size);
3325
+ --form-control-font-weight: var(--form-default-control-font-weight);
3326
+ --form-control-line-height: var(--form-default-control-line-height);
3327
+ --form-label-padding: var(--form-default-label-padding);
3328
+ --form-label-font-size: var(--form-default-label-font-size);
3329
+ --form-label-font-weight: var(--form-default-label-font-weight);
3330
+ --form-label-line-height: var(--form-default-label-line-height);
3331
+ --form-error-margin: var(--form-default-error-margin);
3332
+ --form-error-padding: var(--form-default-error-padding);
3333
+ --form-error-font-size: var(--form-default-error-font-size);
3334
+ --form-error-font-weight: var(--form-default-error-font-weight);
3335
+ --form-error-line-height: var(--form-default-error-line-height);
3336
+ --form-error-border: var(--form-default-error-border);
3337
+ --form-error-background-color: var(--form-default-error-background-color);
3338
+ --form-error-color: var(--form-default-error-color);
3282
3339
 
3283
3340
  --font-base-size: var(--font-base-size-xs);
3284
3341
  --grid-column-gap: var(--grid-default-column-gap-xs);
@@ -3986,19 +4043,18 @@ const StyledMediaImage = styled__default.default.img`
3986
4043
  `;
3987
4044
  const MediaImage = _a => {
3988
4045
  var {
3989
- alt = '',
3990
4046
  className,
3991
- type
4047
+ type,
4048
+ loading = 'lazy'
3992
4049
  } = _a,
3993
- props = __rest(_a, ["alt", "className", "type"]);
4050
+ props = __rest(_a, ["className", "type", "loading"]);
3994
4051
  const classNames = bomCore.getClassNames(className, 'image', {
3995
4052
  'image-svg': isSVG(props.src)
3996
4053
  });
3997
4054
  const imageProps = getImageProps(props);
3998
4055
  return jsxRuntime.jsx(StyledMediaImage, Object.assign({
3999
4056
  className: classNames,
4000
- alt: alt,
4001
- loading: "lazy"
4057
+ loading: loading
4002
4058
  }, imageProps));
4003
4059
  };
4004
4060
  function getImageProps(_a) {
@@ -4007,9 +4063,9 @@ function getImageProps(_a) {
4007
4063
  } = _a,
4008
4064
  props = __rest(_a, ["src"]);
4009
4065
  if (IMAGE_STRATEGY === exports.ImageStrategy.None || isSVG(src)) {
4010
- return {
4066
+ return Object.assign({
4011
4067
  src
4012
- };
4068
+ }, props);
4013
4069
  }
4014
4070
  const ratio = props.width && props.height ? parseInt(props.width.toString()) / parseInt(props.height.toString()) : 0;
4015
4071
  const sizes = IMAGE_SIZES;
@@ -4155,9 +4211,13 @@ const MediaBase = /*#__PURE__*/React.forwardRef((_a, ref) => {
4155
4211
  item,
4156
4212
  onClick,
4157
4213
  className,
4214
+ aspectRatio,
4215
+ eager,
4216
+ alt,
4217
+ title,
4158
4218
  as = 'div'
4159
4219
  } = _a,
4160
- props = __rest(_a, ["children", "item", "onClick", "className", "as"]);
4220
+ props = __rest(_a, ["children", "item", "onClick", "className", "aspectRatio", "eager", "alt", "title", "as"]);
4161
4221
  const {
4162
4222
  id,
4163
4223
  open
@@ -4166,9 +4226,11 @@ const MediaBase = /*#__PURE__*/React.forwardRef((_a, ref) => {
4166
4226
  'media--gallery': id
4167
4227
  });
4168
4228
  const mediaChildren = item && !children ? getMediaItems(item, {
4169
- aspectRatio: props.aspectRatio,
4170
- eager: props.eager,
4229
+ aspectRatio,
4230
+ eager,
4171
4231
  galleryId: id,
4232
+ alt,
4233
+ title,
4172
4234
  open
4173
4235
  }) : children;
4174
4236
  return jsxRuntime.jsx(StyledMedia$1, Object.assign({
@@ -4199,7 +4261,12 @@ function getMediaItems(itemOrItems, options) {
4199
4261
  });
4200
4262
  const hasGallery = options.galleryId != null && typeof options.open === 'function';
4201
4263
  const getMediaItemProps = media => {
4202
- const props = {};
4264
+ const title = media.title || options.title || media.alt || options.alt;
4265
+ const alt = media.alt || options.alt || media.title || options.title;
4266
+ const props = {
4267
+ title,
4268
+ alt
4269
+ };
4203
4270
  if (hasGallery) {
4204
4271
  props['data-gallery'] = JSON.stringify({
4205
4272
  galleryId: options.galleryId,
@@ -4234,7 +4301,6 @@ function getMediaItems(itemOrItems, options) {
4234
4301
  type: "video/mp4"
4235
4302
  })
4236
4303
  }), m) : jsxRuntime.jsx(MediaImage, Object.assign({}, media, {
4237
- alt: media.alt,
4238
4304
  draggable: false
4239
4305
  }, getMediaItemProps(media)), m));
4240
4306
  }
@@ -6657,8 +6723,9 @@ const Tabs = bomCore.withSchema(TabsBase, {
6657
6723
  const CssFormControl = styled.css`
6658
6724
  appearance: none;
6659
6725
  font-family: inherit;
6660
- font-size: var(--form-font-size);
6661
- line-height: var(--form-line-height);
6726
+ font-size: var(--form-control-font-size);
6727
+ font-weight: var(--form-control-font-weight);
6728
+ line-height: var(--form-control-line-height);
6662
6729
  border: var(--form-border);
6663
6730
  border-width: var(--form-border-width);
6664
6731
  border-color: var(--form-border-color);
@@ -6798,9 +6865,10 @@ function autocompleteHighligth(text, query) {
6798
6865
  const StyledAutocompleteItem = styled__default.default.div`
6799
6866
  display: block;
6800
6867
  width: 100%;
6801
- padding: var(--form-padding);
6802
- font-size: var(--form-font-size);
6803
- line-height: var(--form-line-height);
6868
+ padding: var(--form-control-padding);
6869
+ font-size: var(--form-control-font-size);
6870
+ font-weight: var(--form-control-font-weight);
6871
+ line-height: var(--form-control-line-height);
6804
6872
  color: inherit;
6805
6873
  background-color: transparent;
6806
6874
  border-color: var(--color-neutral-200);
@@ -6845,8 +6913,8 @@ const StyledAutocompleteContainer = styled__default.default.div`
6845
6913
  &>.button {
6846
6914
  line-height: inherit;
6847
6915
  font-size: inherit;
6848
- padding-top: var(--form-padding);
6849
- padding-bottom: var(--form-padding);
6916
+ padding-top: var(--form-control-padding);
6917
+ padding-bottom: var(--form-control-padding);
6850
6918
  margin: -2px;
6851
6919
  }
6852
6920
 
@@ -6867,16 +6935,17 @@ const StyledAutocompleteContainer = styled__default.default.div`
6867
6935
  const StyledAutocomplete = styled__default.default.div`
6868
6936
  display: block;
6869
6937
  appearance: none;
6870
- padding: var(--form-padding);
6871
- font-size: var(--form-font-size);
6872
- line-height: var(--form-line-height);
6938
+ padding: var(--form-control-padding);
6939
+ font-size: var(--form-control-font-size);
6940
+ font-weight: var(--form-control-font-weight);
6941
+ line-height: var(--form-control-line-height);
6873
6942
  color: inherit;
6874
6943
  background-color: transparent;
6875
6944
  border: none;
6876
6945
  outline: none;
6877
6946
 
6878
6947
  &:not(:first-child) {
6879
- padding-left: calc(var(--form-padding) * 0.5);
6948
+ padding-left: calc(var(--form-control-padding) * 0.5);
6880
6949
  }
6881
6950
 
6882
6951
  ${props => getCssResponsive(props)}
@@ -6891,9 +6960,11 @@ const Autocomplete = /*#__PURE__*/React.forwardRef((_a, ref) => {
6891
6960
  onFocus,
6892
6961
  onBlur,
6893
6962
  onDropdownVisibleChange = () => {},
6894
- onAutocomplete
6963
+ onAutocomplete,
6964
+ id,
6965
+ name
6895
6966
  } = _a,
6896
- props = __rest(_a, ["className", "initialValue", "before", "after", "source", "onFocus", "onBlur", "onDropdownVisibleChange", "onAutocomplete"]);
6967
+ props = __rest(_a, ["className", "initialValue", "before", "after", "source", "onFocus", "onBlur", "onDropdownVisibleChange", "onAutocomplete", "id", "name"]);
6897
6968
  const innerRef = React.useRef(null);
6898
6969
  const dropdownRef = React.useRef(null);
6899
6970
  React.useImperativeHandle(ref, () => innerRef.current);
@@ -6977,6 +7048,8 @@ const Autocomplete = /*#__PURE__*/React.forwardRef((_a, ref) => {
6977
7048
  ref: innerRef,
6978
7049
  as: "input",
6979
7050
  type: "text",
7051
+ id: id,
7052
+ name: name,
6980
7053
  onFocus: onFocus_,
6981
7054
  onBlur: onBlur_,
6982
7055
  onChange: onChange_
@@ -7213,6 +7286,8 @@ const StyledInput$1 = styled__default.default.input`
7213
7286
  const CustomSelectInput = /*#__PURE__*/React__default.default.forwardRef((_ref, inputRef) => {
7214
7287
  let {
7215
7288
  visible,
7289
+ id,
7290
+ name,
7216
7291
  onBlur,
7217
7292
  onFocus
7218
7293
  } = _ref;
@@ -7224,18 +7299,18 @@ const CustomSelectInput = /*#__PURE__*/React__default.default.forwardRef((_ref,
7224
7299
  (_a = ref.current) === null || _a === void 0 ? void 0 : _a.focus();
7225
7300
  }
7226
7301
  }, [visible]);
7227
- return jsxRuntime.jsx(jsxRuntime.Fragment, {
7228
- children: jsxRuntime.jsx(StyledInput$1, {
7229
- ref: ref,
7230
- type: "search",
7231
- role: "combobox",
7232
- "aria-haspopup": "listbox",
7233
- readOnly: true,
7234
- unselectable: "on",
7235
- "aria-expanded": visible,
7236
- onBlur: onBlur,
7237
- onFocus: onFocus
7238
- })
7302
+ return jsxRuntime.jsx(StyledInput$1, {
7303
+ ref: ref,
7304
+ id: id,
7305
+ name: name,
7306
+ type: "search",
7307
+ role: "combobox",
7308
+ "aria-haspopup": "listbox",
7309
+ readOnly: true,
7310
+ unselectable: "on",
7311
+ "aria-expanded": visible,
7312
+ onBlur: onBlur,
7313
+ onFocus: onFocus
7239
7314
  });
7240
7315
  });
7241
7316
  CustomSelectInput.displayName = 'CustomSelectInput';
@@ -7402,7 +7477,7 @@ CustomSelectOption.displayName = 'CustomSelectOption';
7402
7477
  const StyledCustomSelect = styled__default.default.div`
7403
7478
  ${CssFormControl}
7404
7479
 
7405
- padding: var(--form-padding);
7480
+ padding: var(--form-control-padding);
7406
7481
  position: relative;
7407
7482
  display: inline-flex;
7408
7483
  justify-content: space-between;
@@ -7441,7 +7516,7 @@ const StyledCustomSelect = styled__default.default.div`
7441
7516
  }
7442
7517
 
7443
7518
  &.multiple {
7444
- padding: calc(var(--form-padding) * 0.675);
7519
+ padding: calc(var(--form-control-padding) * 0.675);
7445
7520
 
7446
7521
  .placeholder {
7447
7522
  padding: 0.563rem 0;
@@ -7476,9 +7551,11 @@ const CustomSelectBase = /*#__PURE__*/React.forwardRef((_a, selectRef) => {
7476
7551
  dropdownStyle,
7477
7552
  getPopupContainer,
7478
7553
  onBlur,
7479
- onFocus
7554
+ onFocus,
7555
+ id,
7556
+ name
7480
7557
  } = _a,
7481
- props = __rest(_a, ["disabled", "pure", "multiple", "clearable", "className", "disableMatchWidth", "onDropdownVisibleChange", "value", "initialValue", "icon", "children", "onChange", "placeholder", "dropdownClassName", "dropdownStyle", "getPopupContainer", "onBlur", "onFocus"]);
7558
+ props = __rest(_a, ["disabled", "pure", "multiple", "clearable", "className", "disableMatchWidth", "onDropdownVisibleChange", "value", "initialValue", "icon", "children", "onChange", "placeholder", "dropdownClassName", "dropdownStyle", "getPopupContainer", "onBlur", "onFocus", "id", "name"]);
7482
7559
  const Icon = icon || SelectIcon;
7483
7560
  const ref = React.useRef(null);
7484
7561
  const inputRef = React.useRef(null);
@@ -7612,7 +7689,8 @@ const CustomSelectBase = /*#__PURE__*/React.forwardRef((_a, selectRef) => {
7612
7689
  }, props, {
7613
7690
  children: [jsxRuntime.jsx(CustomSelectInput, {
7614
7691
  ref: inputRef,
7615
- name: props.name,
7692
+ id: id,
7693
+ name: name,
7616
7694
  visible: visible,
7617
7695
  onFocus: onFocus_,
7618
7696
  onBlur: onBlur_
@@ -7653,11 +7731,32 @@ const CustomSelect = bomCore.withSchema(CustomSelectBase, {
7653
7731
  const CssFieldDefault = styled.css`
7654
7732
  display: flex;
7655
7733
  flex-direction: column;
7656
- // margin-bottom: 0.5rem;
7734
+ gap: var(--form-field-gap);
7657
7735
 
7658
7736
  label {
7659
- font-weight: 500;
7660
- margin-bottom: 0.3rem;
7737
+ padding: var(--form-label-padding);
7738
+ font-size: var(--form-label-font-size);
7739
+ font-weight: var(--form-label-font-weight);
7740
+ line-height: var(--form-label-line-height);
7741
+ }
7742
+
7743
+ &.invalid {
7744
+
7745
+ label {
7746
+ &:after {
7747
+ content: '*';
7748
+ display: inline-block;
7749
+ padding-left: 0.3em;
7750
+ }
7751
+ }
7752
+
7753
+ &.touched {
7754
+ label {
7755
+ &:after {
7756
+ color: var(--form-error-color, transparent);
7757
+ }
7758
+ }
7759
+ }
7661
7760
  }
7662
7761
  `;
7663
7762
  const fieldVariants = {
@@ -7671,11 +7770,12 @@ const StyledField = styled__default.default.div`
7671
7770
  const Field = /*#__PURE__*/React.forwardRef((_a, ref) => {
7672
7771
  var {
7673
7772
  className,
7773
+ state,
7674
7774
  variant = 'default',
7675
7775
  variants
7676
7776
  } = _a,
7677
- props = __rest(_a, ["className", "variant", "variants"]);
7678
- const classNames = bomCore.getClassNames('input', className, variant);
7777
+ props = __rest(_a, ["className", "state", "variant", "variants"]);
7778
+ const classNames = bomCore.getClassNames('field', className, variant, state === null || state === void 0 ? void 0 : state.flags);
7679
7779
  const globalVariants = useVariants('field', fieldVariants);
7680
7780
  variants = variants || globalVariants;
7681
7781
  return jsxRuntime.jsx(StyledField, Object.assign({
@@ -7689,12 +7789,24 @@ const Field = /*#__PURE__*/React.forwardRef((_a, ref) => {
7689
7789
  Field.displayName = 'Field';
7690
7790
 
7691
7791
  const CssFormErrorDefault = styled.css`
7692
- padding: var(--form-padding);
7693
- font-weight: 700;
7792
+ font-size: var(--form-error-font-size, 0.9rem);
7793
+ font-weight: var(--form-error-font-weight, 500);
7794
+ line-height: var(--form-error-line-height, 1.2);
7795
+ border: var(--form-error-border, none);
7796
+ background: var(--form-error-background-color, transparent);
7797
+ color: var(--form-error-color, transparent);
7798
+
7799
+ padding: var(--form-control-padding);
7694
7800
  text-align: center;
7801
+
7802
+ /*
7803
+ font-weight: 700;
7804
+ */
7805
+ /*
7695
7806
  border: 1px solid var(--form-border-color-error);
7696
7807
  background: var(--form-background-color-error);
7697
7808
  color: var(--form-color-error);
7809
+ */
7698
7810
  `;
7699
7811
  const formErrorVariants = {
7700
7812
  default: CssFormErrorDefault
@@ -7724,7 +7836,7 @@ const FormError = /*#__PURE__*/React.forwardRef((_a, ref) => {
7724
7836
  FormError.displayName = 'FormError';
7725
7837
 
7726
7838
  const CssFormTesterDefault = styled.css`
7727
- padding: var(--form-padding);
7839
+ padding: var(--form-control-padding);
7728
7840
  border: 1px solid var(--form-border-color-info);
7729
7841
  background: var(--form-background-color-info);
7730
7842
  color: var(--form-color-info);
@@ -7860,28 +7972,6 @@ function getForm(props) {
7860
7972
  } else {
7861
7973
  return undefined;
7862
7974
  }
7863
- /*
7864
- return css`
7865
- --form-font-size: var(--form-${variant}-font-size, 1rem);
7866
- --form-line-height: var(--form-${variant}-line-height, 1.625);
7867
- --form-padding: var(--form-${variant}-padding, 0.8em);
7868
- --form-background-color: var(--form-${variant}-background-color, transparent);
7869
- --form-background-color-disabled: var(--form-${variant}-background-color-disabled, var(--color-neutral-200));
7870
- --form-color: var(--form-${variant}-color, inherit);
7871
- --form-color-hover: var(--form-${variant}-color-hover, var(--color-neutral-900));
7872
- --form-border: var(--form-${variant}-border, 0 solid transparent);
7873
- --form-border-width: var(--form-${variant}-border-width, 2px);
7874
- --form-border-color: var(--form-${variant}-border-color, var(--color-neutral-200));
7875
- --form-border-color-hover: var(--form-${variant}-border-color-hover, var(--color-neutral-300));
7876
- --form-border-color-disabled: var(--form-${variant}-border-color-disabled, var(--color-neutral-300));
7877
- --form-border-radius: var(--form-${variant}-border-radius, var(--border-radius));
7878
- --form-outline: var(--form-${variant}-outline, 2px solid transparent);
7879
- --form-outline-color-focus: var(--form-${variant}-outline-color-focus, var(--color-primary-200));
7880
- --form-outline-color-active: var(--form-${variant}-outline-color-active, var(--color-primary-500));
7881
- --form-outline-offset: var(--form-${variant}-outline-offset, 2px);
7882
- --form-transition: var(--form-${variant}-transition, border 150ms ease-in 0s, outline-color 150ms ease-in 0s, color 200ms ease-out 0s, box-shadow 200ms ease 0s);
7883
- `;
7884
- */
7885
7975
  }
7886
7976
 
7887
7977
  const CssInputContainerDefault = styled.css`
@@ -7933,9 +8023,10 @@ const CssInputReset = styled.css`
7933
8023
  const CssInputDefault = styled.css`
7934
8024
  ${CssInputReset}
7935
8025
 
7936
- padding: var(--form-padding);
7937
- font-size: var(--form-font-size);
7938
- line-height: var(--form-line-height);
8026
+ padding: var(--form-control-padding);
8027
+ font-size: var(--form-control-font-size);
8028
+ font-weight: var(--form-control-font-weight);
8029
+ line-height: var(--form-control-line-height);
7939
8030
  border-radius: var(--form-border-radius);
7940
8031
 
7941
8032
  &::placeholder {
@@ -7967,9 +8058,11 @@ const Input = /*#__PURE__*/React.forwardRef((_a, ref) => {
7967
8058
  onFocus,
7968
8059
  onBlur,
7969
8060
  variant = 'default',
7970
- variants
8061
+ variants,
8062
+ id,
8063
+ name
7971
8064
  } = _a,
7972
- props = __rest(_a, ["as", "className", "before", "after", "type", "onFocus", "onBlur", "variant", "variants"]);
8065
+ props = __rest(_a, ["as", "className", "before", "after", "type", "onFocus", "onBlur", "variant", "variants", "id", "name"]);
7973
8066
  const [focus, setFocus] = React.useState(false);
7974
8067
  const onFocus_ = event => {
7975
8068
  onFocus && onFocus(event);
@@ -7996,6 +8089,8 @@ const Input = /*#__PURE__*/React.forwardRef((_a, ref) => {
7996
8089
  ref: ref,
7997
8090
  as: as,
7998
8091
  type: type,
8092
+ id: id,
8093
+ name: name,
7999
8094
  onFocus: onFocus_,
8000
8095
  onBlur: onBlur_,
8001
8096
  variant: variant,
@@ -8008,10 +8103,11 @@ Input.displayName = 'Input';
8008
8103
  const StyledInputGroup = styled__default.default.div`
8009
8104
  display: block;
8010
8105
  width: 100%;
8011
- padding: var(--form-padding);
8106
+ padding: var(--form-control-padding);
8012
8107
  appearance: none;
8013
- font-size: var(--form-font-size);
8014
- line-height: var(--form-line-height);
8108
+ font-size: var(--form-control-font-size);
8109
+ font-weight: var(--form-control-font-weight);
8110
+ line-height: var(--form-control-line-height);
8015
8111
  border: 2px solid;
8016
8112
  border-radius: var(--border-radius);
8017
8113
  color: inherit;
@@ -8050,7 +8146,9 @@ const CssLabelDefault = styled.css`
8050
8146
  display: flex;
8051
8147
  align-items: center;
8052
8148
  width: 100%;
8053
- font-size: var(--font-paragraph30-size, --form-font-size, 1rem);
8149
+ font-size: var(--form-label-font-size, 0.9rem);
8150
+ font-weight: var(--form-label-font-weight, 500);
8151
+ line-height: var(--form-label-line-height, 1.2);
8054
8152
  cursor: pointer;
8055
8153
  `;
8056
8154
  const labelVariants = {
@@ -9018,7 +9116,7 @@ const StyledSelectSelect = styled__default.default.div`
9018
9116
 
9019
9117
  display: block;
9020
9118
  width: 100%;
9021
- padding: var(--form-padding);
9119
+ padding: var(--form-control-padding);
9022
9120
  appearance: none;
9023
9121
  cursor: pointer;
9024
9122
 
@@ -9067,7 +9165,7 @@ const CssTextareaDefault = styled.css`
9067
9165
  ${CssFormControl}
9068
9166
  display: block;
9069
9167
  width: 100%;
9070
- padding: var(--form-padding);
9168
+ padding: var(--form-control-padding);
9071
9169
  resize: vertical;
9072
9170
  min-height: 4em;
9073
9171
  cursor: pointer;
@@ -9085,17 +9183,35 @@ const TextArea = /*#__PURE__*/React.forwardRef((_a, ref) => {
9085
9183
  as = 'textarea',
9086
9184
  children,
9087
9185
  className,
9186
+ onFocus,
9187
+ onBlur,
9088
9188
  variant = 'default',
9089
9189
  variants
9090
9190
  } = _a,
9091
- props = __rest(_a, ["as", "children", "className", "variant", "variants"]);
9092
- const classNames = bomCore.getClassNames('textarea', className, variant);
9191
+ props = __rest(_a, ["as", "children", "className", "onFocus", "onBlur", "variant", "variants"]);
9192
+ const [focus, setFocus] = React.useState(false);
9193
+ const onFocus_ = event => {
9194
+ onFocus && onFocus(event);
9195
+ setFocus(true);
9196
+ };
9197
+ const onBlur_ = event => {
9198
+ onBlur && onBlur(event);
9199
+ setFocus(false);
9200
+ };
9201
+ const classNames = bomCore.getClassNames('textarea', {
9202
+ focus,
9203
+ disabled: props.disabled,
9204
+ readonly: props.readOnly,
9205
+ hidden: props.hidden
9206
+ }, className, variant);
9093
9207
  const globalVariants = useVariants('textarea', textareaVariants);
9094
9208
  variants = variants || globalVariants;
9095
9209
  return jsxRuntime.jsx(StyledTextArea, Object.assign({
9096
9210
  className: classNames,
9097
9211
  ref: ref,
9098
9212
  as: as,
9213
+ onFocus: onFocus_,
9214
+ onBlur: onBlur_,
9099
9215
  variant: variant,
9100
9216
  variants: variants
9101
9217
  }, props, {
@@ -9105,13 +9221,14 @@ const TextArea = /*#__PURE__*/React.forwardRef((_a, ref) => {
9105
9221
  TextArea.displayName = 'TextArea';
9106
9222
 
9107
9223
  const CssFieldErrorDefault = styled.css`
9108
- margin: 0.5em 0;
9109
- padding: 0.2em 0.5em;
9110
- font-size: var(--font-paragraph50-size, --form-font-size, 1rem);
9111
- font-weight: 500;
9112
- border: 1px solid var(--form-border-color-error);
9113
- background: var(--form-background-color-error);
9114
- color: var(--form-color-error);
9224
+ margin: var(--form-error-margin, 0.5em 0);
9225
+ padding: var(--form-error-padding, 0.2em 0.4em);
9226
+ font-size: var(--form-error-font-size, 0.9rem);
9227
+ font-weight: var(--form-error-font-weight, 500);
9228
+ line-height: var(--form-error-line-height, 1.2);
9229
+ border: var(--form-error-border, none);
9230
+ background: var(--form-error-background-color, transparent);
9231
+ color: var(--form-error-color, transparent);
9115
9232
  `;
9116
9233
  const fieldErrorVariants = {
9117
9234
  default: CssFieldErrorDefault
@@ -9144,9 +9261,16 @@ function FieldError(_a) {
9144
9261
  });
9145
9262
  }
9146
9263
 
9147
- function FieldAccept(props) {
9264
+ function FieldAccept(_ref) {
9265
+ let {
9266
+ control,
9267
+ uid = 0
9268
+ } = _ref;
9148
9269
  const label = bomMixerHooks.useLabel();
9149
- const [state, setValue, setTouched] = bomMixerForms.useControl(props.control);
9270
+ const uniqueName = `${control.name}-${uid}`;
9271
+ const uniqueNameTrue = `${uniqueName}-true`;
9272
+ const uniqueNameFalse = `${uniqueName}-false`;
9273
+ const [state, setValue, setTouched] = bomMixerForms.useControl(control);
9150
9274
  const onSelect = value => {
9151
9275
  // console.log('value', value);
9152
9276
  setValue(value);
@@ -9166,6 +9290,7 @@ function FieldAccept(props) {
9166
9290
  type: "hidden",
9167
9291
  value: state.value ? 'true' : 'false'
9168
9292
  }) : jsxRuntime.jsxs(Field, {
9293
+ state: state,
9169
9294
  padding: "1em 0",
9170
9295
  borderBottom: "1px solid var(--color-neutral-200)",
9171
9296
  children: [jsxRuntime.jsxs(Radio.Group, {
@@ -9175,18 +9300,24 @@ function FieldAccept(props) {
9175
9300
  onFocus: onFocus,
9176
9301
  disabled: state.flags.disabled || state.flags.readonly,
9177
9302
  children: [jsxRuntime.jsxs(Label, {
9303
+ htmlFor: uniqueNameTrue,
9178
9304
  width: "auto",
9179
9305
  children: [jsxRuntime.jsx(Radio, {
9180
- value: "true"
9181
- }), " ", label('form.accept.true')]
9306
+ value: "true",
9307
+ name: uniqueNameTrue,
9308
+ id: uniqueNameTrue
9309
+ }), label('form.accept.true')]
9182
9310
  }), jsxRuntime.jsxs(Label, {
9311
+ htmlFor: uniqueNameFalse,
9183
9312
  width: "auto",
9184
9313
  children: [jsxRuntime.jsx(Radio, {
9185
- value: "false"
9186
- }), " ", label('form.accept.false')]
9314
+ value: "false",
9315
+ name: uniqueNameFalse,
9316
+ id: uniqueNameFalse
9317
+ }), label('form.accept.false')]
9187
9318
  })]
9188
- }), props.control.label && jsxRuntime.jsx(Text, {
9189
- children: label(props.control.label)
9319
+ }), control.label && jsxRuntime.jsx(Text, {
9320
+ children: label(control.label)
9190
9321
  }), jsxRuntime.jsx(FieldError, {
9191
9322
  state: state
9192
9323
  })]
@@ -9194,12 +9325,16 @@ function FieldAccept(props) {
9194
9325
  }
9195
9326
 
9196
9327
  // !!! todo
9197
- function FieldAutocomplete(props) {
9328
+ function FieldAutocomplete(_ref) {
9329
+ let {
9330
+ control,
9331
+ uid = 0
9332
+ } = _ref;
9198
9333
  const label = bomMixerHooks.useLabel();
9199
- const uniqueName = `${props.control.name}-${props.uid}`;
9200
- const [state, setValue, setTouched] = bomMixerForms.useControl(props.control);
9334
+ const uniqueName = `${control.name}-${uid}`;
9335
+ const [state, setValue, setTouched] = bomMixerForms.useControl(control);
9201
9336
  const onChange = value => {
9202
- const valueOrValues = bomMixerForms.stringToValue(value, props.control.options);
9337
+ const valueOrValues = bomMixerForms.stringToValue(value, control.options);
9203
9338
  setValue(valueOrValues);
9204
9339
  };
9205
9340
  const [focus, setFocus] = React.useState(false);
@@ -9225,7 +9360,7 @@ function FieldAutocomplete(props) {
9225
9360
  }
9226
9361
  function source(query) {
9227
9362
  return new Promise((resolve, reject) => {
9228
- const options = (props.control.options || []).filter(x => {
9363
+ const options = (control.options || []).filter(x => {
9229
9364
  const name = x.name.toString().toLowerCase();
9230
9365
  return name.indexOf(query.toLowerCase()) !== -1;
9231
9366
  }).map(x => {
@@ -9239,8 +9374,8 @@ function FieldAutocomplete(props) {
9239
9374
  }
9240
9375
  const initialValue = React.useMemo(() => {
9241
9376
  var _a;
9242
- if ((_a = props.control.optionsExtra) === null || _a === void 0 ? void 0 : _a.asEquatable) {
9243
- const options = props.control.options || [];
9377
+ if ((_a = control.optionsExtra) === null || _a === void 0 ? void 0 : _a.asEquatable) {
9378
+ const options = control.options || [];
9244
9379
  if (!state.value) {
9245
9380
  return undefined;
9246
9381
  }
@@ -9262,19 +9397,21 @@ function FieldAutocomplete(props) {
9262
9397
  type: "hidden",
9263
9398
  value: bomMixerForms.valueToString(state.value)
9264
9399
  }) : jsxRuntime.jsxs(Field, {
9265
- children: [props.control.label && jsxRuntime.jsx(Label, {
9266
- children: label(props.control.label)
9400
+ state: state,
9401
+ children: [jsxRuntime.jsx(Label, {
9402
+ htmlFor: uniqueName,
9403
+ children: control.label && label(control.label)
9267
9404
  }), jsxRuntime.jsx(Autocomplete, {
9268
- background: "var(--color-neutral-100)",
9269
- overflow: "hidden",
9270
9405
  id: uniqueName,
9271
9406
  name: uniqueName,
9272
- placeholder: label(props.control.placeholder || props.control.label || ''),
9407
+ placeholder: label(control.placeholder || control.label || ''),
9273
9408
  initialValue: initialValue,
9274
9409
  source: source,
9275
9410
  onAutocomplete: onAutocomplete,
9276
9411
  onFocus: onFocus,
9277
- onBlur: onBlur
9412
+ onBlur: onBlur,
9413
+ background: "var(--color-neutral-100)",
9414
+ overflow: "hidden"
9278
9415
  }), jsxRuntime.jsx(FieldError, {
9279
9416
  state: state
9280
9417
  })]
@@ -9284,10 +9421,10 @@ function FieldAutocomplete(props) {
9284
9421
  function FieldCard(_a) {
9285
9422
  var _b, _c;
9286
9423
  var {
9287
- uid,
9288
- control
9424
+ control,
9425
+ uid = 0
9289
9426
  } = _a,
9290
- props = __rest(_a, ["uid", "control"]);
9427
+ props = __rest(_a, ["control", "uid"]);
9291
9428
  const label = bomMixerHooks.useLabel();
9292
9429
  const uniqueName = `${control.name}-${uid}`;
9293
9430
  const [state, setValue, setTouched] = bomMixerForms.useControl(control);
@@ -9308,8 +9445,11 @@ function FieldCard(_a) {
9308
9445
  return state.flags.hidden ? jsxRuntime.jsx("input", {
9309
9446
  type: "hidden",
9310
9447
  value: state.value ? state.value.toString() : ''
9311
- }) : jsxRuntime.jsxs(Field, Object.assign({}, props, {
9448
+ }) : jsxRuntime.jsxs(Field, Object.assign({
9449
+ state: state
9450
+ }, props, {
9312
9451
  children: [jsxRuntime.jsx(Label, {
9452
+ htmlFor: uniqueName,
9313
9453
  margin: "0",
9314
9454
  children: control.label && label(control.label)
9315
9455
  }), jsxRuntime.jsx(RadioCard.Group, {
@@ -9338,10 +9478,10 @@ function FieldCard(_a) {
9338
9478
 
9339
9479
  function FieldCheckbox(_a) {
9340
9480
  var {
9341
- uid,
9342
- control
9481
+ control,
9482
+ uid = 0
9343
9483
  } = _a,
9344
- props = __rest(_a, ["uid", "control"]);
9484
+ props = __rest(_a, ["control", "uid"]);
9345
9485
  const label = bomMixerHooks.useLabel();
9346
9486
  const uniqueName = `${control.name}-${uid}`;
9347
9487
  const [state, setValue, setTouched] = bomMixerForms.useControl(control);
@@ -9360,8 +9500,11 @@ function FieldCheckbox(_a) {
9360
9500
  return state.flags.hidden ? jsxRuntime.jsx("input", {
9361
9501
  type: "hidden",
9362
9502
  value: state.value ? state.value.toString() : ''
9363
- }) : jsxRuntime.jsxs(Field, Object.assign({}, props, {
9503
+ }) : jsxRuntime.jsxs(Field, Object.assign({
9504
+ state: state
9505
+ }, props, {
9364
9506
  children: [jsxRuntime.jsxs(Label, {
9507
+ htmlFor: uniqueName,
9365
9508
  margin: "0",
9366
9509
  children: [jsxRuntime.jsx(Checkbox, {
9367
9510
  id: uniqueName,
@@ -9378,14 +9521,18 @@ function FieldCheckbox(_a) {
9378
9521
  }));
9379
9522
  }
9380
9523
 
9381
- function FieldPassword(props) {
9524
+ function FieldPassword(_ref) {
9525
+ let {
9526
+ control,
9527
+ uid = 0
9528
+ } = _ref;
9382
9529
  const label = bomMixerHooks.useLabel();
9383
- const uniqueName = `${props.control.name}-${props.uid}`;
9384
- const [state, setValue, setTouched] = bomMixerForms.useControl(props.control);
9530
+ const uniqueName = `${control.name}-${uid}`;
9531
+ const [state, setValue, setTouched] = bomMixerForms.useControl(control);
9385
9532
  const onChange = event => {
9386
9533
  // console.log('FieldPassword', event.target.value);
9387
9534
  setValue(event.target.value);
9388
- // props.control.value = event.target.value;
9535
+ // control.value = event.target.value;
9389
9536
  };
9390
9537
 
9391
9538
  const [focus, setFocus] = React.useState(false);
@@ -9404,13 +9551,15 @@ function FieldPassword(props) {
9404
9551
  type: "hidden",
9405
9552
  value: state.value || ''
9406
9553
  }) : jsxRuntime.jsxs(Field, {
9554
+ state: state,
9407
9555
  children: [jsxRuntime.jsx(Label, {
9408
- children: props.control.label && label(props.control.label)
9556
+ htmlFor: uniqueName,
9557
+ children: control.label && label(control.label)
9409
9558
  }), jsxRuntime.jsx(Input, {
9410
9559
  id: uniqueName,
9411
9560
  name: uniqueName,
9412
9561
  type: type,
9413
- placeholder: label(props.control.placeholder || props.control.label || ''),
9562
+ placeholder: label(control.placeholder || control.label || ''),
9414
9563
  value: state.value || '',
9415
9564
  onChange: onChange,
9416
9565
  onBlur: onBlur,
@@ -9428,12 +9577,16 @@ function FieldPassword(props) {
9428
9577
  });
9429
9578
  }
9430
9579
 
9431
- function FieldSelect(props) {
9580
+ function FieldSelect(_ref) {
9581
+ let {
9582
+ control,
9583
+ uid = 0
9584
+ } = _ref;
9432
9585
  const label = bomMixerHooks.useLabel();
9433
- const uniqueName = `${props.control.name}-${props.uid}`;
9434
- const [state, setValue, setTouched] = bomMixerForms.useControl(props.control);
9586
+ const uniqueName = `${control.name}-${uid}`;
9587
+ const [state, setValue, setTouched] = bomMixerForms.useControl(control);
9435
9588
  const onChange = value => {
9436
- const valueOrValues = bomMixerForms.stringToValue(value, props.control.options, props.control.optionsExtra);
9589
+ const valueOrValues = bomMixerForms.stringToValue(value, control.options, control.optionsExtra);
9437
9590
  setValue(valueOrValues);
9438
9591
  };
9439
9592
  const [focus, setFocus] = React.useState(false);
@@ -9448,18 +9601,21 @@ function FieldSelect(props) {
9448
9601
  type: "hidden",
9449
9602
  value: bomMixerForms.valueToString(state.value)
9450
9603
  }) : jsxRuntime.jsxs(Field, {
9451
- children: [props.control.label && jsxRuntime.jsx(Label, {
9452
- children: label(props.control.label)
9604
+ state: state,
9605
+ children: [jsxRuntime.jsx(Label, {
9606
+ htmlFor: uniqueName,
9607
+ children: control.label && label(control.label)
9453
9608
  }), jsxRuntime.jsx(CustomSelect, {
9454
9609
  id: uniqueName,
9455
- placeholder: label(props.control.placeholder || props.control.label || ''),
9610
+ name: uniqueName,
9611
+ placeholder: label(control.placeholder || control.label || ''),
9456
9612
  value: bomMixerForms.valueToString(state.value),
9457
9613
  onChange: onChange,
9458
9614
  onBlur: onBlur,
9459
9615
  onFocus: onFocus,
9460
9616
  disabled: state.flags.disabled || state.flags.readonly,
9461
9617
  width: "100%",
9462
- children: props.control.options && props.control.options.map((option, i) => jsxRuntime.jsx(CustomSelect.Option, {
9618
+ children: control.options && control.options.map((option, i) => jsxRuntime.jsx(CustomSelect.Option, {
9463
9619
  value: option.id.toString(),
9464
9620
  children: option.name
9465
9621
  }, i))
@@ -9469,14 +9625,20 @@ function FieldSelect(props) {
9469
9625
  });
9470
9626
  }
9471
9627
 
9472
- function FieldText(props) {
9628
+ function FieldText(_ref) {
9629
+ let {
9630
+ control,
9631
+ uid = 0,
9632
+ before,
9633
+ after
9634
+ } = _ref;
9473
9635
  const label = bomMixerHooks.useLabel();
9474
- const uniqueName = `${props.control.name}-${props.uid}`;
9475
- const [state, setValue, setTouched] = bomMixerForms.useControl(props.control);
9636
+ const uniqueName = `${control.name}-${uid}`;
9637
+ const [state, setValue, setTouched] = bomMixerForms.useControl(control);
9476
9638
  const onChange = event => {
9477
9639
  // console.log('FieldText', event.target.value);
9478
9640
  setValue(event.target.value);
9479
- // props.control.value = event.target.value;
9641
+ // control.value = event.target.value;
9480
9642
  };
9481
9643
 
9482
9644
  const [focus, setFocus] = React.useState(false);
@@ -9491,20 +9653,69 @@ function FieldText(props) {
9491
9653
  type: "hidden",
9492
9654
  value: state.value || ''
9493
9655
  }) : jsxRuntime.jsxs(Field, {
9656
+ state: state,
9494
9657
  children: [jsxRuntime.jsx(Label, {
9495
- children: props.control.label && label(props.control.label)
9658
+ htmlFor: uniqueName,
9659
+ children: control.label && label(control.label)
9496
9660
  }), jsxRuntime.jsx(Input, {
9497
9661
  id: uniqueName,
9498
9662
  name: uniqueName,
9499
- placeholder: label(props.control.placeholder || props.control.label || ''),
9663
+ placeholder: label(control.placeholder || control.label || ''),
9664
+ value: state.value || '',
9665
+ onChange: onChange,
9666
+ onBlur: onBlur,
9667
+ onFocus: onFocus,
9668
+ disabled: state.flags.disabled,
9669
+ readOnly: state.flags.readonly,
9670
+ before: before,
9671
+ after: after,
9672
+ width: "100%"
9673
+ }), jsxRuntime.jsx(FieldError, {
9674
+ state: state
9675
+ })]
9676
+ });
9677
+ }
9678
+
9679
+ function FieldTextArea(_ref) {
9680
+ let {
9681
+ control,
9682
+ uid = 0
9683
+ } = _ref;
9684
+ const label = bomMixerHooks.useLabel();
9685
+ const uniqueName = `${control.name}-${uid}`;
9686
+ const [state, setValue, setTouched] = bomMixerForms.useControl(control);
9687
+ const onChange = event => {
9688
+ // console.log('FieldTextArea', event.target.value);
9689
+ setValue(event.target.value);
9690
+ // control.value = event.target.value;
9691
+ };
9692
+
9693
+ const [focus, setFocus] = React.useState(false);
9694
+ const onBlur = _ => {
9695
+ setTouched();
9696
+ setFocus(false);
9697
+ };
9698
+ const onFocus = _ => {
9699
+ setFocus(true);
9700
+ };
9701
+ return state.flags.hidden ? jsxRuntime.jsx("input", {
9702
+ type: "hidden",
9703
+ value: state.value || ''
9704
+ }) : jsxRuntime.jsxs(Field, {
9705
+ state: state,
9706
+ children: [jsxRuntime.jsx(Label, {
9707
+ htmlFor: uniqueName,
9708
+ children: control.label && label(control.label)
9709
+ }), jsxRuntime.jsx(TextArea, {
9710
+ id: uniqueName,
9711
+ name: uniqueName,
9712
+ placeholder: label(control.placeholder || control.label || ''),
9500
9713
  value: state.value || '',
9501
9714
  onChange: onChange,
9502
9715
  onBlur: onBlur,
9503
9716
  onFocus: onFocus,
9504
9717
  disabled: state.flags.disabled,
9505
9718
  readOnly: state.flags.readonly,
9506
- before: props.before,
9507
- after: props.after,
9508
9719
  width: "100%"
9509
9720
  }), jsxRuntime.jsx(FieldError, {
9510
9721
  state: state
@@ -9520,6 +9731,10 @@ const FIELDS = {
9520
9731
  control: control,
9521
9732
  uid: uid
9522
9733
  }, uid),
9734
+ textarea: (control, uid) => jsxRuntime.jsx(FieldTextArea, {
9735
+ control: control,
9736
+ uid: uid
9737
+ }, uid),
9523
9738
  password: (control, uid) => jsxRuntime.jsx(FieldPassword, {
9524
9739
  control: control,
9525
9740
  uid: uid
@@ -9550,66 +9765,75 @@ const FIELDS = {
9550
9765
  }, uid)
9551
9766
  };
9552
9767
 
9553
- function FieldCollection(props) {
9768
+ const StyledGrid = styled__default.default(Grid)`
9769
+ flex-direction: column;
9770
+ align-items: flex-start;
9771
+ `;
9772
+ function FieldCollection(_ref) {
9773
+ let {
9774
+ collection,
9775
+ fields,
9776
+ uid
9777
+ } = _ref;
9554
9778
  const label = bomMixerHooks.useLabel();
9555
- let uid = props.uid || 0;
9556
- const controls = props.collection instanceof bomMixerForms.FormGroup ? Object.keys(props.collection.controls).map(key => {
9557
- return {
9558
- key,
9559
- control: props.collection.controls[key]
9560
- };
9561
- }) : props.collection.controls.map((control, i) => {
9562
- return {
9563
- key: i,
9564
- control
9565
- };
9566
- });
9779
+ const controls = React.useMemo(() => {
9780
+ return collection instanceof bomMixerForms.FormGroup ? Object.keys(collection.controls).map(key => {
9781
+ return {
9782
+ key,
9783
+ control: collection.controls[key]
9784
+ };
9785
+ }) : collection.controls.map((control, i) => {
9786
+ return {
9787
+ key: i,
9788
+ control
9789
+ };
9790
+ });
9791
+ }, [collection]);
9792
+ const customFields = React.useMemo(() => {
9793
+ return Object.assign(Object.assign({}, FIELDS), fields);
9794
+ }, [fields]);
9795
+ let uniqueId = uid || 0;
9567
9796
  function resolveField(item) {
9568
9797
  const {
9569
9798
  control,
9570
9799
  key
9571
9800
  } = item;
9572
- ++uid;
9801
+ ++uniqueId;
9573
9802
  if (control instanceof bomMixerForms.FormGroup || control instanceof bomMixerForms.FormArray) {
9574
9803
  return jsxRuntime.jsx(FieldCollection, {
9575
9804
  collection: control,
9576
- uid: uid
9577
- }, getFieldUID(uid, control.name));
9805
+ fields: fields,
9806
+ uid: uniqueId
9807
+ }, getFieldUID(uniqueId, control.name));
9578
9808
  } else {
9579
- if (control.schema in FIELDS) {
9580
- return FIELDS[control.schema](control, uid);
9809
+ if (control.schema in customFields) {
9810
+ return customFields[control.schema](control, uniqueId);
9581
9811
  } else {
9582
- return FIELDS.text(control, uid);
9812
+ return customFields.text(control, uniqueId);
9583
9813
  }
9584
9814
  }
9585
9815
  }
9586
9816
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
9587
- children: [props.collection.label && jsxRuntime.jsx(Grid, {
9817
+ children: [collection.label && jsxRuntime.jsx(Grid, {
9588
9818
  xs: 12,
9589
9819
  children: jsxRuntime.jsx(Divider, {
9590
- children: label(props.collection.label)
9820
+ children: label(collection.label)
9591
9821
  })
9592
- }, getFieldUID(++uid, props.collection.name)), controls.length > 0 && controls.map(item => {
9822
+ }, getFieldUID(++uniqueId, collection.name)), controls.length > 0 && controls.map(item => {
9593
9823
  const control = item.control;
9594
9824
  if (!control) {
9595
9825
  return;
9596
9826
  }
9597
- if (control instanceof bomMixerForms.FormGroup || control instanceof bomMixerForms.FormArray || control.state.hidden) {
9598
- // console.log(control);
9599
- if (control.state.hidden) {
9600
- return;
9601
- }
9827
+ if (control.state.hidden) {
9828
+ return;
9829
+ } else if (control instanceof bomMixerForms.FormGroup || control instanceof bomMixerForms.FormArray) {
9602
9830
  return resolveField(item);
9603
9831
  } else {
9604
- return jsxRuntime.jsx(Grid, {
9832
+ return jsxRuntime.jsx(StyledGrid, {
9605
9833
  xs: 12,
9606
9834
  sm: ['checkbox', 'accept'].includes(control.schema) ? 12 : 6,
9607
- style: {
9608
- flexDirection: 'column',
9609
- alignItems: 'flex-start'
9610
- },
9611
9835
  children: resolveField(item)
9612
- }, getFieldUID(++uid, item.key));
9836
+ }, getFieldUID(++uniqueId, item.key));
9613
9837
  }
9614
9838
  })]
9615
9839
  });
@@ -14276,6 +14500,7 @@ const Footer = props => {
14276
14500
  children: jsxRuntime.jsx(Button, {
14277
14501
  as: "a",
14278
14502
  target: "_blank",
14503
+ title: "Digital Marketing",
14279
14504
  children: jsxRuntime.jsx(bomMixerIcons.IconWebsolute, {})
14280
14505
  })
14281
14506
  })]
@@ -15143,7 +15368,7 @@ const MagazineRelated = _a => {
15143
15368
  return null;
15144
15369
  }
15145
15370
  const items = item.items;
15146
- const classNames = bomCore.getClassNames(item.schema);
15371
+ const classNames = bomCore.getClassNames('magazine-related');
15147
15372
  return jsxRuntime.jsxs(StyledSection$1, {
15148
15373
  className: classNames,
15149
15374
  padding: "7rem 0",
@@ -15804,7 +16029,7 @@ const ProductsDetailDownload = _ref => {
15804
16029
  id,
15805
16030
  item
15806
16031
  } = _ref;
15807
- const classNames = bomCore.getClassNames(item.schema);
16032
+ const classNames = bomCore.getClassNames('products-detail-download');
15808
16033
  if (!item) {
15809
16034
  return null;
15810
16035
  }
@@ -15911,7 +16136,7 @@ const ProductsDetailRelated = _ref => {
15911
16136
  id,
15912
16137
  item
15913
16138
  } = _ref;
15914
- const classNames = bomCore.getClassNames(item.schema);
16139
+ const classNames = bomCore.getClassNames('products-detail-related');
15915
16140
  if (!item) {
15916
16141
  return null;
15917
16142
  }
@@ -15955,7 +16180,7 @@ const ProductsDetailSizeColor = _ref => {
15955
16180
  id,
15956
16181
  item
15957
16182
  } = _ref;
15958
- const classNames = bomCore.getClassNames(item.schema);
16183
+ const classNames = bomCore.getClassNames('products-detail-size-color');
15959
16184
  if (!item) {
15960
16185
  return null;
15961
16186
  }
@@ -16958,7 +17183,7 @@ const ShopDetailRelated = _ref => {
16958
17183
  id,
16959
17184
  item
16960
17185
  } = _ref;
16961
- const classNames = bomCore.getClassNames(item.schema);
17186
+ const classNames = bomCore.getClassNames('shop-detail-related');
16962
17187
  return jsxRuntime.jsx(Section, {
16963
17188
  id: id,
16964
17189
  className: classNames,
@@ -19025,7 +19250,7 @@ const Carousel1 = _a => {
19025
19250
  } = _a,
19026
19251
  props = __rest(_a, ["item"]);
19027
19252
  const items = item.items;
19028
- const classNames = bomCore.getClassNames(item.schema);
19253
+ const classNames = bomCore.getClassNames('carousel-1');
19029
19254
  return jsxRuntime.jsxs(StyledSection, {
19030
19255
  className: classNames,
19031
19256
  padding: "7rem 0",
@@ -19089,7 +19314,7 @@ const Download1 = _ref => {
19089
19314
  let {
19090
19315
  item
19091
19316
  } = _ref;
19092
- const classNames = bomCore.getClassNames(item.schema);
19317
+ const classNames = bomCore.getClassNames('download-1');
19093
19318
  return jsxRuntime.jsx(Section, {
19094
19319
  className: classNames,
19095
19320
  padding: "6rem 0",
@@ -19135,7 +19360,7 @@ const MediaFull1 = _ref => {
19135
19360
  let {
19136
19361
  item
19137
19362
  } = _ref;
19138
- const classNames = bomCore.getClassNames('media', item.schema);
19363
+ const classNames = bomCore.getClassNames('media-full-1');
19139
19364
  return jsxRuntime.jsx(Media, {
19140
19365
  className: classNames,
19141
19366
  aspectRatio: 16 / 10,
@@ -19156,7 +19381,7 @@ const MediaFull2 = _ref => {
19156
19381
  let {
19157
19382
  item
19158
19383
  } = _ref;
19159
- const classNames = bomCore.getClassNames(item.schema);
19384
+ const classNames = bomCore.getClassNames('media-full-2');
19160
19385
  return jsxRuntime.jsx(Section, {
19161
19386
  className: classNames,
19162
19387
  padding: "6rem 0",
@@ -19186,7 +19411,7 @@ const MediaMedia1 = _ref => {
19186
19411
  let {
19187
19412
  item
19188
19413
  } = _ref;
19189
- const classNames = bomCore.getClassNames(item.schema);
19414
+ const classNames = bomCore.getClassNames('media-media-1');
19190
19415
  return jsxRuntime.jsx(Section, {
19191
19416
  className: classNames,
19192
19417
  padding: "6rem 0",
@@ -19310,7 +19535,7 @@ const Related1 = _ref => {
19310
19535
  let {
19311
19536
  item
19312
19537
  } = _ref;
19313
- const classNames = bomCore.getClassNames(item.schema);
19538
+ const classNames = bomCore.getClassNames('related-1');
19314
19539
  return jsxRuntime.jsx(Section, {
19315
19540
  className: classNames,
19316
19541
  padding: "6rem 0",
@@ -19349,7 +19574,7 @@ const SizesColors1 = _ref => {
19349
19574
  let {
19350
19575
  item
19351
19576
  } = _ref;
19352
- const classNames = bomCore.getClassNames(item.schema);
19577
+ const classNames = bomCore.getClassNames('sizes-colors-1');
19353
19578
  return jsxRuntime.jsx(Section, {
19354
19579
  className: classNames,
19355
19580
  padding: "6rem 0",
@@ -19415,7 +19640,7 @@ const Text1 = _ref => {
19415
19640
  item
19416
19641
  } = _ref;
19417
19642
  // !!! Container.Small
19418
- const classNames = bomCore.getClassNames(item.schema);
19643
+ const classNames = bomCore.getClassNames('text-1');
19419
19644
  return jsxRuntime.jsx(Section, {
19420
19645
  className: classNames,
19421
19646
  padding: "6rem 0",
@@ -19448,7 +19673,7 @@ const TextAside1 = _ref => {
19448
19673
  let {
19449
19674
  item
19450
19675
  } = _ref;
19451
- const classNames = bomCore.getClassNames(item.schema);
19676
+ const classNames = bomCore.getClassNames('text-aside-1');
19452
19677
  return jsxRuntime.jsx(Section, {
19453
19678
  className: classNames,
19454
19679
  padding: "6rem 0",
@@ -19501,7 +19726,7 @@ const TextMedia1 = _ref => {
19501
19726
  let {
19502
19727
  item
19503
19728
  } = _ref;
19504
- const classNames = bomCore.getClassNames(item.schema);
19729
+ const classNames = bomCore.getClassNames('text-media-1');
19505
19730
  return jsxRuntime.jsx(Section, {
19506
19731
  className: classNames,
19507
19732
  padding: "6rem 0",
@@ -19560,7 +19785,7 @@ const TextText1 = _ref => {
19560
19785
  let {
19561
19786
  item
19562
19787
  } = _ref;
19563
- const classNames = bomCore.getClassNames(item.schema);
19788
+ const classNames = bomCore.getClassNames('text-text-1');
19564
19789
  return jsxRuntime.jsx(Section, {
19565
19790
  className: classNames,
19566
19791
  padding: "6rem 0",
@@ -19592,31 +19817,36 @@ var textText1 = /*#__PURE__*/Object.freeze({
19592
19817
 
19593
19818
  const LAZY_MODULES = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, Carousel1Export), Download1Export), MediaFull1Export), MediaFull2Export), MediaMedia1Export), NotFoundExport), Related1Export), SizesColors1Export), Text1Export), TextAside1Export), TextMedia1Export), TextText1Export);
19594
19819
 
19595
- const lazyLoadComponent = function (component, modules) {
19820
+ const lazyLoadComponent = function (component, modules, index) {
19596
19821
  if (modules === void 0) {
19597
19822
  modules = LAZY_MODULES;
19598
19823
  }
19824
+ if (index === void 0) {
19825
+ index = 0;
19826
+ }
19599
19827
  const key = component.schema || component.blockType;
19600
19828
  const Component = modules[key] || LAZY_MODULES['not-found'];
19601
19829
  return jsxRuntime.jsx(Component, {
19602
- item: component
19830
+ item: component,
19831
+ index: index
19603
19832
  });
19604
19833
  };
19605
19834
  const LazyLoader = _ref => {
19606
19835
  let {
19607
19836
  components,
19608
- modules = LAZY_MODULES
19837
+ modules = LAZY_MODULES,
19838
+ initialIndex = 0
19609
19839
  } = _ref;
19610
19840
  if (!components) {
19611
19841
  return null;
19612
19842
  }
19613
19843
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
19614
- children: components.map((component, i) => jsxRuntime.jsx(React__default.default.Suspense, {
19844
+ children: components.map((component, index) => jsxRuntime.jsx(React__default.default.Suspense, {
19615
19845
  fallback: jsxRuntime.jsx(Skeleton, {
19616
19846
  minHeight: "50vh"
19617
19847
  }),
19618
- children: lazyLoadComponent(component, modules)
19619
- }, i))
19848
+ children: lazyLoadComponent(component, modules, initialIndex + index)
19849
+ }, index))
19620
19850
  });
19621
19851
  };
19622
19852
 
@@ -19723,6 +19953,7 @@ exports.FieldError = FieldError;
19723
19953
  exports.FieldPassword = FieldPassword;
19724
19954
  exports.FieldSelect = FieldSelect;
19725
19955
  exports.FieldText = FieldText;
19956
+ exports.FieldTextArea = FieldTextArea;
19726
19957
  exports.Flex = Flex;
19727
19958
  exports.FlexRow = FlexRow;
19728
19959
  exports.Footer = Footer;
@@ -19834,6 +20065,7 @@ exports.Tooltip = Tooltip;
19834
20065
  exports.Transition = Transition;
19835
20066
  exports.Typography = Typography;
19836
20067
  exports.VariantsProvider = VariantsProvider;
20068
+ exports.accessibility = accessibility;
19837
20069
  exports.autocompleteVariants = autocompleteVariants;
19838
20070
  exports.buttonVariants = buttonVariants;
19839
20071
  exports.checkboxVariants = checkboxVariants;