@dnb/eufemia 10.23.0 → 10.25.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 (498) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/cjs/components/accordion/style/dnb-accordion.css +6 -2
  3. package/cjs/components/accordion/style/dnb-accordion.min.css +2 -2
  4. package/cjs/components/accordion/style/dnb-accordion.scss +8 -2
  5. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +23 -4
  6. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  7. package/cjs/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +25 -5
  8. package/cjs/components/anchor/Anchor.d.ts +1 -1
  9. package/cjs/components/anchor/Anchor.js +2 -2
  10. package/cjs/components/anchor/Anchor.js.map +1 -1
  11. package/cjs/components/anchor/style/anchor-mixins.scss +46 -3
  12. package/cjs/components/anchor/style/dnb-anchor.css +73 -4
  13. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  14. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +2 -14
  15. package/cjs/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  16. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -46
  17. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  18. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -32
  19. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +2 -14
  20. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  21. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  22. package/cjs/components/autocomplete/Autocomplete.d.ts +0 -15
  23. package/cjs/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  24. package/cjs/components/autocomplete/AutocompleteDocs.js +293 -0
  25. package/cjs/components/autocomplete/AutocompleteDocs.js.map +1 -0
  26. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  27. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  28. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +1 -1
  29. package/cjs/components/button/Button.js +1 -1
  30. package/cjs/components/button/Button.js.map +1 -1
  31. package/cjs/components/dropdown/Dropdown.d.ts +0 -3
  32. package/cjs/components/flex/style/dnb-flex.css +1 -1
  33. package/cjs/components/flex/style/dnb-flex.min.css +1 -1
  34. package/cjs/components/flex/style/flex-stack.scss +1 -1
  35. package/cjs/components/icon/style/dnb-icon.css +2 -2
  36. package/cjs/components/icon/style/dnb-icon.min.css +1 -1
  37. package/cjs/components/icon/style/dnb-icon.scss +1 -1
  38. package/cjs/components/input/Input.js +1 -1
  39. package/cjs/components/input/Input.js.map +1 -1
  40. package/cjs/components/input/InputDocs.js +2 -2
  41. package/cjs/components/input/InputDocs.js.map +1 -1
  42. package/cjs/components/table/style/dnb-table.css +6 -0
  43. package/cjs/components/table/style/dnb-table.min.css +1 -1
  44. package/cjs/components/table/style/table-th.scss +9 -25
  45. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  46. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  47. package/cjs/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  48. package/cjs/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  49. package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  50. package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  51. package/cjs/components/textarea/Textarea.d.ts +9 -0
  52. package/cjs/components/textarea/Textarea.js +21 -5
  53. package/cjs/components/textarea/Textarea.js.map +1 -1
  54. package/cjs/components/textarea/TextareaDocs.js +10 -0
  55. package/cjs/components/textarea/TextareaDocs.js.map +1 -1
  56. package/cjs/components/textarea/style/dnb-textarea.css +69 -26
  57. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  58. package/cjs/components/textarea/style/dnb-textarea.scss +83 -31
  59. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  60. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  61. package/cjs/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  62. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  63. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  64. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  65. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  66. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  67. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  68. package/cjs/extensions/forms/DataContext/At/At.js +6 -6
  69. package/cjs/extensions/forms/DataContext/At/At.js.map +1 -1
  70. package/cjs/extensions/forms/DataContext/Context.d.ts +5 -2
  71. package/cjs/extensions/forms/DataContext/Context.js +1 -0
  72. package/cjs/extensions/forms/DataContext/Context.js.map +1 -1
  73. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  74. package/cjs/extensions/forms/DataContext/Provider/Provider.js +52 -26
  75. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  76. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js +5 -5
  77. package/cjs/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  78. package/cjs/extensions/forms/Field/String/String.d.ts +6 -6
  79. package/cjs/extensions/forms/Field/String/String.js +13 -11
  80. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  81. package/cjs/extensions/forms/Form/Appearance/Appearance.js +3 -0
  82. package/cjs/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  83. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  84. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  85. package/cjs/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  86. package/cjs/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  87. package/cjs/extensions/forms/Form/Handler/Handler.js +3 -3
  88. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  89. package/cjs/extensions/forms/StepsLayout/Step/Step.js +2 -3
  90. package/cjs/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  91. package/cjs/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  92. package/cjs/extensions/forms/StepsLayout/StepsContext.js +6 -1
  93. package/cjs/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  94. package/cjs/extensions/forms/StepsLayout/StepsLayout.d.ts +4 -2
  95. package/cjs/extensions/forms/StepsLayout/StepsLayout.js +86 -50
  96. package/cjs/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  97. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
  98. package/cjs/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
  99. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
  100. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  101. package/cjs/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
  102. package/cjs/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  103. package/cjs/extensions/forms/StepsLayout/useStep.js +19 -0
  104. package/cjs/extensions/forms/StepsLayout/useStep.js.map +1 -0
  105. package/cjs/extensions/forms/hooks/useFieldProps.js +82 -58
  106. package/cjs/extensions/forms/hooks/useFieldProps.js.map +1 -1
  107. package/cjs/extensions/forms/style/dnb-forms.css +3 -3
  108. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  109. package/cjs/extensions/forms/types.d.ts +2 -2
  110. package/cjs/extensions/forms/types.js.map +1 -1
  111. package/cjs/extensions/forms/utils/ajv.js +6 -2
  112. package/cjs/extensions/forms/utils/ajv.js.map +1 -1
  113. package/cjs/fragments/drawer-list/DrawerList.d.ts +95 -1
  114. package/cjs/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  115. package/cjs/fragments/drawer-list/DrawerListDocs.js +188 -0
  116. package/cjs/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  117. package/cjs/shared/Eufemia.d.ts +1 -1
  118. package/cjs/shared/Eufemia.js +2 -2
  119. package/cjs/shared/Eufemia.js.map +1 -1
  120. package/cjs/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  121. package/cjs/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  122. package/cjs/style/core/scopes.scss +1 -1
  123. package/cjs/style/dnb-ui-basis.css +1 -1
  124. package/cjs/style/dnb-ui-basis.min.css +1 -1
  125. package/cjs/style/dnb-ui-body.css +1 -1
  126. package/cjs/style/dnb-ui-body.min.css +1 -1
  127. package/cjs/style/dnb-ui-components.css +160 -39
  128. package/cjs/style/dnb-ui-components.min.css +3 -3
  129. package/cjs/style/dnb-ui-core.css +1 -1
  130. package/cjs/style/dnb-ui-core.min.css +1 -1
  131. package/cjs/style/dnb-ui-extensions.css +3 -3
  132. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  133. package/cjs/style/dnb-ui-forms.css +3 -3
  134. package/cjs/style/dnb-ui-forms.min.css +1 -1
  135. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +178 -83
  136. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  137. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -3
  138. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  139. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -3
  140. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  141. package/cjs/style/themes/theme-eiendom/properties.js +10 -10
  142. package/cjs/style/themes/theme-eiendom/properties.js.map +1 -1
  143. package/cjs/style/themes/theme-sbanken/properties.js +10 -10
  144. package/cjs/style/themes/theme-sbanken/properties.js.map +1 -1
  145. package/cjs/style/themes/theme-sbanken/properties.scss +10 -10
  146. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  147. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  148. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +204 -114
  149. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  150. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -3
  151. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  152. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -3
  153. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  154. package/cjs/style/themes/theme-ui/properties.js +10 -10
  155. package/cjs/style/themes/theme-ui/properties.js.map +1 -1
  156. package/cjs/style/themes/theme-ui/ui-theme-components.css +178 -81
  157. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  158. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +3 -3
  159. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  160. package/cjs/style/themes/theme-ui/ui-theme-forms.css +3 -3
  161. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  162. package/cjs/style/themes/theme-ui/ui-theme-tags.css +37 -9
  163. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  164. package/components/accordion/style/dnb-accordion.css +6 -2
  165. package/components/accordion/style/dnb-accordion.min.css +2 -2
  166. package/components/accordion/style/dnb-accordion.scss +8 -2
  167. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +23 -4
  168. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  169. package/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +25 -5
  170. package/components/anchor/Anchor.d.ts +1 -1
  171. package/components/anchor/Anchor.js +2 -2
  172. package/components/anchor/Anchor.js.map +1 -1
  173. package/components/anchor/style/anchor-mixins.scss +46 -3
  174. package/components/anchor/style/dnb-anchor.css +73 -4
  175. package/components/anchor/style/dnb-anchor.min.css +1 -1
  176. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +2 -14
  177. package/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  178. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -46
  179. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  180. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -32
  181. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +2 -14
  182. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  183. package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  184. package/components/autocomplete/Autocomplete.d.ts +0 -15
  185. package/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  186. package/components/autocomplete/AutocompleteDocs.js +285 -0
  187. package/components/autocomplete/AutocompleteDocs.js.map +1 -0
  188. package/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  189. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  190. package/components/breadcrumb/style/dnb-breadcrumb.scss +1 -1
  191. package/components/button/Button.js +1 -1
  192. package/components/button/Button.js.map +1 -1
  193. package/components/dropdown/Dropdown.d.ts +0 -3
  194. package/components/flex/style/dnb-flex.css +1 -1
  195. package/components/flex/style/dnb-flex.min.css +1 -1
  196. package/components/flex/style/flex-stack.scss +1 -1
  197. package/components/icon/style/dnb-icon.css +2 -2
  198. package/components/icon/style/dnb-icon.min.css +1 -1
  199. package/components/icon/style/dnb-icon.scss +1 -1
  200. package/components/input/Input.js +1 -1
  201. package/components/input/Input.js.map +1 -1
  202. package/components/input/InputDocs.js +2 -2
  203. package/components/input/InputDocs.js.map +1 -1
  204. package/components/table/style/dnb-table.css +6 -0
  205. package/components/table/style/dnb-table.min.css +1 -1
  206. package/components/table/style/table-th.scss +9 -25
  207. package/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  208. package/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  209. package/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  210. package/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  211. package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  212. package/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  213. package/components/textarea/Textarea.d.ts +9 -0
  214. package/components/textarea/Textarea.js +21 -5
  215. package/components/textarea/Textarea.js.map +1 -1
  216. package/components/textarea/TextareaDocs.js +10 -0
  217. package/components/textarea/TextareaDocs.js.map +1 -1
  218. package/components/textarea/style/dnb-textarea.css +69 -26
  219. package/components/textarea/style/dnb-textarea.min.css +1 -1
  220. package/components/textarea/style/dnb-textarea.scss +83 -31
  221. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  222. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  223. package/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  224. package/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  225. package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  226. package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  227. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  228. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  229. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  230. package/es/components/accordion/style/dnb-accordion.css +6 -2
  231. package/es/components/accordion/style/dnb-accordion.min.css +2 -2
  232. package/es/components/accordion/style/dnb-accordion.scss +8 -2
  233. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.css +23 -4
  234. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.min.css +1 -1
  235. package/es/components/accordion/style/themes/dnb-accordion-theme-sbanken.scss +25 -5
  236. package/es/components/anchor/Anchor.d.ts +1 -1
  237. package/es/components/anchor/Anchor.js +2 -2
  238. package/es/components/anchor/Anchor.js.map +1 -1
  239. package/es/components/anchor/style/anchor-mixins.scss +46 -3
  240. package/es/components/anchor/style/dnb-anchor.css +73 -4
  241. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  242. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.css +2 -14
  243. package/es/components/anchor/style/themes/dnb-anchor-theme-eiendom.min.css +1 -1
  244. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +2 -46
  245. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  246. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +1 -32
  247. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +2 -14
  248. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  249. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +1 -8
  250. package/es/components/autocomplete/Autocomplete.d.ts +0 -15
  251. package/es/components/autocomplete/AutocompleteDocs.d.ts +3 -0
  252. package/es/components/autocomplete/AutocompleteDocs.js +285 -0
  253. package/es/components/autocomplete/AutocompleteDocs.js.map +1 -0
  254. package/es/components/breadcrumb/style/dnb-breadcrumb.css +1 -1
  255. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  256. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +1 -1
  257. package/es/components/button/Button.js +1 -1
  258. package/es/components/button/Button.js.map +1 -1
  259. package/es/components/dropdown/Dropdown.d.ts +0 -3
  260. package/es/components/flex/style/dnb-flex.css +1 -1
  261. package/es/components/flex/style/dnb-flex.min.css +1 -1
  262. package/es/components/flex/style/flex-stack.scss +1 -1
  263. package/es/components/icon/style/dnb-icon.css +2 -2
  264. package/es/components/icon/style/dnb-icon.min.css +1 -1
  265. package/es/components/icon/style/dnb-icon.scss +1 -1
  266. package/es/components/input/Input.js +1 -1
  267. package/es/components/input/Input.js.map +1 -1
  268. package/es/components/input/InputDocs.js +2 -2
  269. package/es/components/input/InputDocs.js.map +1 -1
  270. package/es/components/table/style/dnb-table.css +6 -0
  271. package/es/components/table/style/dnb-table.min.css +1 -1
  272. package/es/components/table/style/table-th.scss +9 -25
  273. package/es/components/table/style/themes/dnb-table-theme-sbanken.css +1 -1
  274. package/es/components/table/style/themes/dnb-table-theme-sbanken.min.css +1 -1
  275. package/es/components/table/style/themes/dnb-table-theme-sbanken.scss +2 -1
  276. package/es/components/table/style/themes/dnb-table-theme-ui.css +1 -1
  277. package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  278. package/es/components/table/style/themes/dnb-table-theme-ui.scss +2 -2
  279. package/es/components/textarea/Textarea.d.ts +9 -0
  280. package/es/components/textarea/Textarea.js +21 -5
  281. package/es/components/textarea/Textarea.js.map +1 -1
  282. package/es/components/textarea/TextareaDocs.js +10 -0
  283. package/es/components/textarea/TextareaDocs.js.map +1 -1
  284. package/es/components/textarea/style/dnb-textarea.css +69 -26
  285. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  286. package/es/components/textarea/style/dnb-textarea.scss +83 -31
  287. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.css +15 -21
  288. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.min.css +1 -1
  289. package/es/components/textarea/style/themes/dnb-textarea-theme-sbanken.scss +17 -28
  290. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +12 -23
  291. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  292. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +11 -27
  293. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +1 -2
  294. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  295. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +1 -2
  296. package/es/extensions/forms/DataContext/At/At.js +7 -7
  297. package/es/extensions/forms/DataContext/At/At.js.map +1 -1
  298. package/es/extensions/forms/DataContext/Context.d.ts +5 -2
  299. package/es/extensions/forms/DataContext/Context.js +1 -0
  300. package/es/extensions/forms/DataContext/Context.js.map +1 -1
  301. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  302. package/es/extensions/forms/DataContext/Provider/Provider.js +51 -26
  303. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  304. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js +5 -5
  305. package/es/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  306. package/es/extensions/forms/Field/String/String.d.ts +6 -6
  307. package/es/extensions/forms/Field/String/String.js +13 -11
  308. package/es/extensions/forms/Field/String/String.js.map +1 -1
  309. package/es/extensions/forms/Form/Appearance/Appearance.js +3 -0
  310. package/es/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  311. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  312. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  313. package/es/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  314. package/es/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  315. package/es/extensions/forms/Form/Handler/Handler.js +3 -3
  316. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  317. package/es/extensions/forms/StepsLayout/Step/Step.js +2 -3
  318. package/es/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  319. package/es/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  320. package/es/extensions/forms/StepsLayout/StepsContext.js +6 -1
  321. package/es/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  322. package/es/extensions/forms/StepsLayout/StepsLayout.d.ts +4 -2
  323. package/es/extensions/forms/StepsLayout/StepsLayout.js +82 -49
  324. package/es/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  325. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
  326. package/es/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
  327. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
  328. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  329. package/es/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
  330. package/es/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  331. package/es/extensions/forms/StepsLayout/useStep.js +12 -0
  332. package/es/extensions/forms/StepsLayout/useStep.js.map +1 -0
  333. package/es/extensions/forms/hooks/useFieldProps.js +82 -58
  334. package/es/extensions/forms/hooks/useFieldProps.js.map +1 -1
  335. package/es/extensions/forms/style/dnb-forms.css +3 -3
  336. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  337. package/es/extensions/forms/types.d.ts +2 -2
  338. package/es/extensions/forms/types.js.map +1 -1
  339. package/es/extensions/forms/utils/ajv.js +6 -2
  340. package/es/extensions/forms/utils/ajv.js.map +1 -1
  341. package/es/fragments/drawer-list/DrawerList.d.ts +95 -1
  342. package/es/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  343. package/es/fragments/drawer-list/DrawerListDocs.js +180 -0
  344. package/es/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  345. package/es/shared/Eufemia.d.ts +1 -1
  346. package/es/shared/Eufemia.js +2 -2
  347. package/es/shared/Eufemia.js.map +1 -1
  348. package/es/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  349. package/es/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  350. package/es/style/core/scopes.scss +1 -1
  351. package/es/style/dnb-ui-basis.css +1 -1
  352. package/es/style/dnb-ui-basis.min.css +1 -1
  353. package/es/style/dnb-ui-body.css +1 -1
  354. package/es/style/dnb-ui-body.min.css +1 -1
  355. package/es/style/dnb-ui-components.css +160 -39
  356. package/es/style/dnb-ui-components.min.css +3 -3
  357. package/es/style/dnb-ui-core.css +1 -1
  358. package/es/style/dnb-ui-core.min.css +1 -1
  359. package/es/style/dnb-ui-extensions.css +3 -3
  360. package/es/style/dnb-ui-extensions.min.css +1 -1
  361. package/es/style/dnb-ui-forms.css +3 -3
  362. package/es/style/dnb-ui-forms.min.css +1 -1
  363. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +178 -83
  364. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  365. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -3
  366. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  367. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -3
  368. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  369. package/es/style/themes/theme-eiendom/properties.js +10 -10
  370. package/es/style/themes/theme-eiendom/properties.js.map +1 -1
  371. package/es/style/themes/theme-sbanken/properties.js +10 -10
  372. package/es/style/themes/theme-sbanken/properties.js.map +1 -1
  373. package/es/style/themes/theme-sbanken/properties.scss +10 -10
  374. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  375. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  376. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +204 -114
  377. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  378. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -3
  379. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  380. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -3
  381. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  382. package/es/style/themes/theme-ui/properties.js +10 -10
  383. package/es/style/themes/theme-ui/properties.js.map +1 -1
  384. package/es/style/themes/theme-ui/ui-theme-components.css +178 -81
  385. package/es/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  386. package/es/style/themes/theme-ui/ui-theme-extensions.css +3 -3
  387. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  388. package/es/style/themes/theme-ui/ui-theme-forms.css +3 -3
  389. package/es/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  390. package/es/style/themes/theme-ui/ui-theme-tags.css +37 -9
  391. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  392. package/esm/dnb-ui-basis.min.mjs +1 -1
  393. package/esm/dnb-ui-components.min.mjs +1 -1
  394. package/esm/dnb-ui-elements.min.mjs +1 -1
  395. package/esm/dnb-ui-extensions.min.mjs +2 -2
  396. package/esm/dnb-ui-lib.min.mjs +1 -1
  397. package/extensions/forms/DataContext/At/At.js +7 -7
  398. package/extensions/forms/DataContext/At/At.js.map +1 -1
  399. package/extensions/forms/DataContext/Context.d.ts +5 -2
  400. package/extensions/forms/DataContext/Context.js +1 -0
  401. package/extensions/forms/DataContext/Context.js.map +1 -1
  402. package/extensions/forms/DataContext/Provider/Provider.d.ts +1 -5
  403. package/extensions/forms/DataContext/Provider/Provider.js +52 -26
  404. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  405. package/extensions/forms/DataContext/Provider/ProviderDocs.js +5 -5
  406. package/extensions/forms/DataContext/Provider/ProviderDocs.js.map +1 -1
  407. package/extensions/forms/Field/String/String.d.ts +6 -6
  408. package/extensions/forms/Field/String/String.js +13 -11
  409. package/extensions/forms/Field/String/String.js.map +1 -1
  410. package/extensions/forms/Form/Appearance/Appearance.js +3 -0
  411. package/extensions/forms/Form/Appearance/Appearance.js.map +1 -1
  412. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.css +2 -2
  413. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.min.css +1 -1
  414. package/extensions/forms/Form/ButtonRow/style/dnb-form-button-row.scss +2 -1
  415. package/extensions/forms/Form/Handler/Handler.d.ts +1 -1
  416. package/extensions/forms/Form/Handler/Handler.js +3 -3
  417. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  418. package/extensions/forms/StepsLayout/Step/Step.js +2 -3
  419. package/extensions/forms/StepsLayout/Step/Step.js.map +1 -1
  420. package/extensions/forms/StepsLayout/StepsContext.d.ts +6 -4
  421. package/extensions/forms/StepsLayout/StepsContext.js +6 -1
  422. package/extensions/forms/StepsLayout/StepsContext.js.map +1 -1
  423. package/extensions/forms/StepsLayout/StepsLayout.d.ts +4 -2
  424. package/extensions/forms/StepsLayout/StepsLayout.js +85 -51
  425. package/extensions/forms/StepsLayout/StepsLayout.js.map +1 -1
  426. package/extensions/forms/StepsLayout/StepsLayoutDocs.js +1 -1
  427. package/extensions/forms/StepsLayout/StepsLayoutDocs.js.map +1 -1
  428. package/extensions/forms/StepsLayout/style/dnb-steps-layout.css +1 -1
  429. package/extensions/forms/StepsLayout/style/dnb-steps-layout.min.css +1 -1
  430. package/extensions/forms/StepsLayout/style/dnb-steps-layout.scss +1 -1
  431. package/extensions/forms/StepsLayout/useStep.d.ts +3 -0
  432. package/extensions/forms/StepsLayout/useStep.js +13 -0
  433. package/extensions/forms/StepsLayout/useStep.js.map +1 -0
  434. package/extensions/forms/hooks/useFieldProps.js +82 -58
  435. package/extensions/forms/hooks/useFieldProps.js.map +1 -1
  436. package/extensions/forms/style/dnb-forms.css +3 -3
  437. package/extensions/forms/style/dnb-forms.min.css +1 -1
  438. package/extensions/forms/types.d.ts +2 -2
  439. package/extensions/forms/types.js.map +1 -1
  440. package/extensions/forms/utils/ajv.js +6 -2
  441. package/extensions/forms/utils/ajv.js.map +1 -1
  442. package/fragments/drawer-list/DrawerList.d.ts +95 -1
  443. package/fragments/drawer-list/DrawerListDocs.d.ts +3 -0
  444. package/fragments/drawer-list/DrawerListDocs.js +180 -0
  445. package/fragments/drawer-list/DrawerListDocs.js.map +1 -0
  446. package/package.json +1 -1
  447. package/shared/Eufemia.d.ts +1 -1
  448. package/shared/Eufemia.js +2 -2
  449. package/shared/Eufemia.js.map +1 -1
  450. package/shared/helpers/runCssVersionMismatchWarning.js +2 -2
  451. package/shared/helpers/runCssVersionMismatchWarning.js.map +1 -1
  452. package/style/core/scopes.scss +1 -1
  453. package/style/dnb-ui-basis.css +1 -1
  454. package/style/dnb-ui-basis.min.css +1 -1
  455. package/style/dnb-ui-body.css +1 -1
  456. package/style/dnb-ui-body.min.css +1 -1
  457. package/style/dnb-ui-components.css +160 -39
  458. package/style/dnb-ui-components.min.css +3 -3
  459. package/style/dnb-ui-core.css +1 -1
  460. package/style/dnb-ui-core.min.css +1 -1
  461. package/style/dnb-ui-extensions.css +3 -3
  462. package/style/dnb-ui-extensions.min.css +1 -1
  463. package/style/dnb-ui-forms.css +3 -3
  464. package/style/dnb-ui-forms.min.css +1 -1
  465. package/style/themes/theme-eiendom/eiendom-theme-components.css +178 -83
  466. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +5 -5
  467. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +3 -3
  468. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +1 -1
  469. package/style/themes/theme-eiendom/eiendom-theme-forms.css +3 -3
  470. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +1 -1
  471. package/style/themes/theme-eiendom/properties.js +10 -10
  472. package/style/themes/theme-eiendom/properties.js.map +1 -1
  473. package/style/themes/theme-sbanken/properties.js +10 -10
  474. package/style/themes/theme-sbanken/properties.js.map +1 -1
  475. package/style/themes/theme-sbanken/properties.scss +10 -10
  476. package/style/themes/theme-sbanken/sbanken-theme-basis.css +10 -10
  477. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  478. package/style/themes/theme-sbanken/sbanken-theme-components.css +204 -114
  479. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  480. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +3 -3
  481. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +1 -1
  482. package/style/themes/theme-sbanken/sbanken-theme-forms.css +3 -3
  483. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +1 -1
  484. package/style/themes/theme-ui/properties.js +10 -10
  485. package/style/themes/theme-ui/properties.js.map +1 -1
  486. package/style/themes/theme-ui/ui-theme-components.css +178 -81
  487. package/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  488. package/style/themes/theme-ui/ui-theme-extensions.css +3 -3
  489. package/style/themes/theme-ui/ui-theme-extensions.min.css +1 -1
  490. package/style/themes/theme-ui/ui-theme-forms.css +3 -3
  491. package/style/themes/theme-ui/ui-theme-forms.min.css +1 -1
  492. package/style/themes/theme-ui/ui-theme-tags.css +37 -9
  493. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  494. package/umd/dnb-ui-basis.min.js +1 -1
  495. package/umd/dnb-ui-components.min.js +1 -1
  496. package/umd/dnb-ui-elements.min.js +1 -1
  497. package/umd/dnb-ui-extensions.min.js +3 -3
  498. package/umd/dnb-ui-lib.min.js +1 -1
@@ -11,28 +11,23 @@
11
11
  --textarea-border-color--disabled: var(--color-black-55);
12
12
  --textarea-border-width: 0.0625rem;
13
13
  --textarea-border-width--hover: 0.125rem;
14
+ --textarea-color: var(--color-black);
15
+ --textarea-background-color: var(--color-white);
16
+ --textarea-placeholder-color: var(--color-black-55);
17
+ --textarea-placeholder-color--focus: var(--color-black-20);
14
18
 
15
19
  &__textarea {
16
- color: var(--color-black);
17
- background-color: var(--textarea-background-color);
18
-
19
20
  ::selection {
20
21
  background-color: var(--color-mint-green);
21
- color: var(--color-black);
22
22
  text-shadow: none;
23
23
  }
24
24
  }
25
25
 
26
- &__placeholder {
27
- color: var(--color-black-55);
28
- }
29
-
30
26
  &__textarea:not([disabled]):not(#{&}--disabled):focus ~ &__state,
31
27
  &__textarea:not([disabled]):not(#{&}--disabled):hover ~ &__state {
32
- @include fakeBorder(
33
- var(--textarea-border-color--hover),
34
- var(--textarea-border-width--hover)
35
- );
28
+ --textarea-border-color: var(--textarea-border-color--hover);
29
+ --textarea-border-width: var(--textarea-border-width--hover);
30
+ --textarea-border-inset: ;
36
31
  }
37
32
 
38
33
  // We may enable this in future – right now it's unclear
@@ -41,21 +36,10 @@
41
36
  // color: var(--color-black);
42
37
  // }
43
38
 
44
- // disabled
45
- &--disabled &__textarea,
46
- &__textarea[disabled] {
47
- color: var(--color-black-55);
48
- background-color: var(--color-black-3);
49
- }
50
-
51
- &--disabled &__state,
52
- &__textarea[disabled] ~ &__state {
53
- @include fakeBorder(
54
- var(--textarea-border-color--disabled),
55
- var(--textarea-border-width),
56
- inset
57
- );
58
- background-color: var(--color-black-3);
39
+ &--disabled {
40
+ --textarea-color: var(--color-black-55);
41
+ --textarea-background-color: var(--color-black-3);
42
+ --textarea-border-color: var(--textarea-border-color--disabled);
59
43
  }
60
44
 
61
45
  // with status_state = "error"
@@ -22,8 +22,7 @@
22
22
  box-shadow: 0 0 0 0.0318rem var(--color-sea-green);
23
23
  }
24
24
  .dnb-toggle-button--checked .dnb-toggle-button__button[disabled], .dnb-toggle-button--checked .dnb-toggle-button__button:focus[disabled], .dnb-toggle-button--checked .dnb-toggle-button__button:hover[disabled] {
25
- background-color: var(--color-mint-green);
26
- color: var(--color-white);
25
+ background-color: var(--color-mint-green-25);
27
26
  }
28
27
  .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active), .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:active), .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:active) {
29
28
  background-color: var(--color-emerald-green);
@@ -1 +1 @@
1
- .dnb-toggle-button .dnb-checkbox__gfx path{stroke-width:.125rem}.dnb-toggle-button .dnb-radio__input:not([disabled])~.dnb-radio__button{box-shadow:0 0 0 .0318rem var(--color-sea-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus[disabled],.dnb-toggle-button--checked .dnb-toggle-button__button:hover[disabled],.dnb-toggle-button--checked .dnb-toggle-button__button[disabled]{background-color:var(--color-mint-green);color:var(--color-white)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:active),.dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:active),.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active){background-color:var(--color-emerald-green);color:var(--color-mint-green)}.dnb-toggle-button--checked .dnb-toggle-button__button .dnb-icon,.dnb-toggle-button--checked .dnb-toggle-button__button:focus .dnb-icon,.dnb-toggle-button--checked .dnb-toggle-button__button:hover .dnb-icon{color:inherit}.dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]) .dnb-radio__button,.dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]) .dnb-radio__button,.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-radio__button{background-color:transparent;border-color:var(--color-mint-green);box-shadow:0 0 0 .0318rem var(--color-mint-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]) .dnb-radio__dot,.dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]) .dnb-radio__dot,.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-radio__dot{background-color:var(--color-mint-green)}html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:hover):focus .dnb-radio__button,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:hover):focus .dnb-radio__button,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:hover):focus .dnb-radio__button{--border-color:var(--color-emerald-green);--border-width:0.09375rem;border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:hover):focus .dnb-radio__input:not([disabled]):not(:hover):not(:active):not(:hover)~.dnb-radio__dot,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:hover):focus .dnb-radio__input:not([disabled]):not(:hover):not(:active):not(:hover)~.dnb-radio__dot,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:hover):focus .dnb-radio__input:not([disabled]):not(:hover):not(:active):not(:hover)~.dnb-radio__dot{background-color:var(--color-emerald-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]) .dnb-checkbox__button,.dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]) .dnb-checkbox__button,.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-checkbox__button{background-color:var(--color-mint-green);border-color:var(--color-emerald-green);box-shadow:0 0 0 .0318rem var(--color-emerald-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]) .dnb-checkbox__gfx,.dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]) .dnb-checkbox__gfx,.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-checkbox__gfx{color:var(--color-emerald-green)}html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:hover):focus .dnb-checkbox__button,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:hover):focus .dnb-checkbox__button,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:hover):focus .dnb-checkbox__button{background-color:var(--color-emerald-green)}html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:hover):focus .dnb-checkbox__gfx,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:hover):focus .dnb-checkbox__gfx,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:hover):focus .dnb-checkbox__gfx{color:var(--color-mint-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus[disabled] .dnb-checkbox__button,.dnb-toggle-button--checked .dnb-toggle-button__button:focus[disabled] .dnb-radio__button,.dnb-toggle-button--checked .dnb-toggle-button__button:hover[disabled] .dnb-checkbox__button,.dnb-toggle-button--checked .dnb-toggle-button__button:hover[disabled] .dnb-radio__button,.dnb-toggle-button--checked .dnb-toggle-button__button[disabled] .dnb-checkbox__button,.dnb-toggle-button--checked .dnb-toggle-button__button[disabled] .dnb-radio__button{box-shadow:none}html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:active):not(:hover):focus,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:active):not(:hover):focus,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active):not(:hover):focus{background-color:var(--color-mint-green);color:var(--color-emerald-green);outline:none}html[data-whatinput=keyboard] html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:active):not(:hover):focus,html[data-whatinput=keyboard] html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:active):not(:hover):focus,html[data-whatinput=keyboard] html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active):not(:hover):focus{--border-color:var(--color-emerald-green);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):active .dnb-radio__button,.dnb-toggle-button__button:not([disabled]):active .dnb-radio__button{background-color:transparent;border-color:var(--color-sea-green);box-shadow:0 0 0 .0318rem var(--color-sea-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):active .dnb-radio__dot,.dnb-toggle-button__button:not([disabled]):active .dnb-radio__dot{background-color:var(--color-sea-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):active .dnb-checkbox__button,.dnb-toggle-button__button:not([disabled]):active .dnb-checkbox__button{background-color:transparent;border-color:var(--color-sea-green);box-shadow:0 0 0 .0318rem var(--color-sea-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):active .dnb-checkbox__gfx,.dnb-toggle-button__button:not([disabled]):active .dnb-checkbox__gfx{color:var(--color-sea-green)}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]):not(:hover):not(:focus):not(:active){--border-color:var(--color-fire-red);--border-width:0.0625rem;background-color:var(--color-white);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color);color:var(--color-fire-red)}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]) .dnb-radio__input:not([disabled])~.dnb-radio__button{--border-color:var(--color-fire-red);--border-width:0.09375rem;border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]) .dnb-radio__input:not([disabled])~.dnb-radio__focus{box-shadow:none}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]) .dnb-radio__input:not([disabled])~.dnb-radio__dot{background-color:transparent}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]) .dnb-checkbox__input~.dnb-checkbox__button{--border-color:var(--color-fire-red);--border-width:0.09375rem;border:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]) .dnb-checkbox__input:not(:hover)~.dnb-checkbox__button .dnb-checkbox__focus{box-shadow:none}.dnb-toggle-button__status--error.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:hover):not(:focus):not(:active){--border-color:var(--color-fire-red);--border-width:0.0625rem;background-color:var(--color-fire-red);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color);color:var(--color-white)}.dnb-toggle-button__status--error.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active):not(:focus) .dnb-radio__input:not([disabled])~.dnb-radio__button{--border-color:var(--color-white);--border-width:0.09375rem;border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-toggle-button__status--error.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-checkbox__input:not([disabled]):not(:hover):not(:active)~.dnb-checkbox__button .dnb-checkbox__focus,.dnb-toggle-button__status--error.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active):not(:focus) .dnb-radio__input:not([disabled]):not(:hover)~.dnb-radio__dot{background-color:var(--color-white)}.dnb-toggle-button__status--error.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-checkbox .dnb-checkbox__input:not([disabled]):not(:focus):not(:active):not(:hover)~.dnb-checkbox__gfx{color:var(--color-fire-red)}.dnb-toggle-button>.dnb-form-status{transform:translateY(.1875rem)}
1
+ .dnb-toggle-button .dnb-checkbox__gfx path{stroke-width:.125rem}.dnb-toggle-button .dnb-radio__input:not([disabled])~.dnb-radio__button{box-shadow:0 0 0 .0318rem var(--color-sea-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus[disabled],.dnb-toggle-button--checked .dnb-toggle-button__button:hover[disabled],.dnb-toggle-button--checked .dnb-toggle-button__button[disabled]{background-color:var(--color-mint-green-25)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:active),.dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:active),.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active){background-color:var(--color-emerald-green);color:var(--color-mint-green)}.dnb-toggle-button--checked .dnb-toggle-button__button .dnb-icon,.dnb-toggle-button--checked .dnb-toggle-button__button:focus .dnb-icon,.dnb-toggle-button--checked .dnb-toggle-button__button:hover .dnb-icon{color:inherit}.dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]) .dnb-radio__button,.dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]) .dnb-radio__button,.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-radio__button{background-color:transparent;border-color:var(--color-mint-green);box-shadow:0 0 0 .0318rem var(--color-mint-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]) .dnb-radio__dot,.dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]) .dnb-radio__dot,.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-radio__dot{background-color:var(--color-mint-green)}html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:hover):focus .dnb-radio__button,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:hover):focus .dnb-radio__button,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:hover):focus .dnb-radio__button{--border-color:var(--color-emerald-green);--border-width:0.09375rem;border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:hover):focus .dnb-radio__input:not([disabled]):not(:hover):not(:active):not(:hover)~.dnb-radio__dot,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:hover):focus .dnb-radio__input:not([disabled]):not(:hover):not(:active):not(:hover)~.dnb-radio__dot,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:hover):focus .dnb-radio__input:not([disabled]):not(:hover):not(:active):not(:hover)~.dnb-radio__dot{background-color:var(--color-emerald-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]) .dnb-checkbox__button,.dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]) .dnb-checkbox__button,.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-checkbox__button{background-color:var(--color-mint-green);border-color:var(--color-emerald-green);box-shadow:0 0 0 .0318rem var(--color-emerald-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]) .dnb-checkbox__gfx,.dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]) .dnb-checkbox__gfx,.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-checkbox__gfx{color:var(--color-emerald-green)}html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:hover):focus .dnb-checkbox__button,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:hover):focus .dnb-checkbox__button,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:hover):focus .dnb-checkbox__button{background-color:var(--color-emerald-green)}html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:hover):focus .dnb-checkbox__gfx,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:hover):focus .dnb-checkbox__gfx,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:hover):focus .dnb-checkbox__gfx{color:var(--color-mint-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:focus[disabled] .dnb-checkbox__button,.dnb-toggle-button--checked .dnb-toggle-button__button:focus[disabled] .dnb-radio__button,.dnb-toggle-button--checked .dnb-toggle-button__button:hover[disabled] .dnb-checkbox__button,.dnb-toggle-button--checked .dnb-toggle-button__button:hover[disabled] .dnb-radio__button,.dnb-toggle-button--checked .dnb-toggle-button__button[disabled] .dnb-checkbox__button,.dnb-toggle-button--checked .dnb-toggle-button__button[disabled] .dnb-radio__button{box-shadow:none}html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:active):not(:hover):focus,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:active):not(:hover):focus,html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active):not(:hover):focus{background-color:var(--color-mint-green);color:var(--color-emerald-green);outline:none}html[data-whatinput=keyboard] html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:focus:not([disabled]):not(:active):not(:hover):focus,html[data-whatinput=keyboard] html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:hover:not([disabled]):not(:active):not(:hover):focus,html[data-whatinput=keyboard] html[data-whatinput=keyboard] .dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active):not(:hover):focus{--border-color:var(--color-emerald-green);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):active .dnb-radio__button,.dnb-toggle-button__button:not([disabled]):active .dnb-radio__button{background-color:transparent;border-color:var(--color-sea-green);box-shadow:0 0 0 .0318rem var(--color-sea-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):active .dnb-radio__dot,.dnb-toggle-button__button:not([disabled]):active .dnb-radio__dot{background-color:var(--color-sea-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):active .dnb-checkbox__button,.dnb-toggle-button__button:not([disabled]):active .dnb-checkbox__button{background-color:transparent;border-color:var(--color-sea-green);box-shadow:0 0 0 .0318rem var(--color-sea-green)}.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):active .dnb-checkbox__gfx,.dnb-toggle-button__button:not([disabled]):active .dnb-checkbox__gfx{color:var(--color-sea-green)}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]):not(:hover):not(:focus):not(:active){--border-color:var(--color-fire-red);--border-width:0.0625rem;background-color:var(--color-white);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color);color:var(--color-fire-red)}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]) .dnb-radio__input:not([disabled])~.dnb-radio__button{--border-color:var(--color-fire-red);--border-width:0.09375rem;border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]) .dnb-radio__input:not([disabled])~.dnb-radio__focus{box-shadow:none}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]) .dnb-radio__input:not([disabled])~.dnb-radio__dot{background-color:transparent}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]) .dnb-checkbox__input~.dnb-checkbox__button{--border-color:var(--color-fire-red);--border-width:0.09375rem;border:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-toggle-button__status--error .dnb-toggle-button__button:not([disabled]) .dnb-checkbox__input:not(:hover)~.dnb-checkbox__button .dnb-checkbox__focus{box-shadow:none}.dnb-toggle-button__status--error.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:hover):not(:focus):not(:active){--border-color:var(--color-fire-red);--border-width:0.0625rem;background-color:var(--color-fire-red);border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color);color:var(--color-white)}.dnb-toggle-button__status--error.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active):not(:focus) .dnb-radio__input:not([disabled])~.dnb-radio__button{--border-color:var(--color-white);--border-width:0.09375rem;border-color:transparent;box-shadow:inset 0 0 0 var(--border-width) var(--border-color)}.dnb-toggle-button__status--error.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-checkbox__input:not([disabled]):not(:hover):not(:active)~.dnb-checkbox__button .dnb-checkbox__focus,.dnb-toggle-button__status--error.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]):not(:active):not(:focus) .dnb-radio__input:not([disabled]):not(:hover)~.dnb-radio__dot{background-color:var(--color-white)}.dnb-toggle-button__status--error.dnb-toggle-button--checked .dnb-toggle-button__button:not([disabled]) .dnb-checkbox .dnb-checkbox__input:not([disabled]):not(:focus):not(:active):not(:hover)~.dnb-checkbox__gfx{color:var(--color-fire-red)}.dnb-toggle-button>.dnb-form-status{transform:translateY(.1875rem)}
@@ -26,8 +26,7 @@
26
26
  &--checked &__button:focus,
27
27
  &--checked &__button:hover {
28
28
  &[disabled] {
29
- background-color: var(--color-mint-green);
30
- color: var(--color-white);
29
+ background-color: var(--color-mint-green-25);
31
30
  }
32
31
 
33
32
  &:not([disabled]):not(:active) {
@@ -3,7 +3,7 @@
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
- import React, { useContext, useMemo } from 'react';
6
+ import React, { useCallback, useContext } from 'react';
7
7
  import pointer from 'json-pointer';
8
8
  import Context from '../Context';
9
9
  function At(props) {
@@ -15,19 +15,19 @@ function At(props) {
15
15
  const dataContext = useContext(Context);
16
16
  const {
17
17
  data: contextData,
18
- handlePathChange: contextHandlePathChange
18
+ handlePathChange: handlePathChangeDataContext
19
19
  } = dataContext;
20
20
  const data = contextData && pointer.has(contextData, path) ? pointer.get(contextData, path) : undefined;
21
- const handlePathChange = useMemo(() => contextHandlePathChange ? (changePath, value) => {
22
- contextHandlePathChange(`${path}${changePath}`, value);
23
- } : undefined, [contextHandlePathChange, path]);
21
+ const handlePathChange = useCallback((changePath, value) => {
22
+ handlePathChangeDataContext(`${path}${changePath}`, value);
23
+ }, [handlePathChangeDataContext, path]);
24
24
  if (iterate) {
25
25
  if (!Array.isArray(data)) {
26
26
  return null;
27
27
  }
28
28
  return React.createElement(React.Fragment, null, data.map((element, i) => {
29
- const handlePathChange = contextHandlePathChange ? (changePath, value) => {
30
- contextHandlePathChange(`${path}/${i}${changePath}`, value);
29
+ const handlePathChange = handlePathChangeDataContext ? (changePath, value) => {
30
+ handlePathChangeDataContext(`${path}/${i}${changePath}`, value);
31
31
  } : undefined;
32
32
  return React.createElement(Context.Provider, {
33
33
  key: `element${i}`,
@@ -1 +1 @@
1
- {"version":3,"file":"At.js","names":["React","useContext","useMemo","pointer","Context","At","props","path","iterate","children","dataContext","data","contextData","handlePathChange","contextHandlePathChange","has","get","undefined","changePath","value","Array","isArray","createElement","Fragment","map","element","i","Provider","key","_objectSpread","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/DataContext/At/At.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react'\nimport pointer from 'json-pointer'\nimport type { ComponentProps } from '../../types'\nimport Context, { ContextState } from '../Context'\n\nexport type Props = ComponentProps & {\n /** JSON Pointer for where in the source dataset to point at in sub components */\n path?: string\n iterate?: boolean\n children?: React.ReactNode\n}\n\nfunction At(props: Props) {\n const { path = '/', iterate, children } = props\n const dataContext = useContext(Context)\n const { data: contextData, handlePathChange: contextHandlePathChange } =\n dataContext\n\n const data =\n contextData && pointer.has(contextData, path)\n ? pointer.get(contextData, path)\n : undefined\n\n const handlePathChange = useMemo(\n () =>\n (contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(`${path}${changePath}`, value)\n }\n : undefined) as ContextState['handlePathChange'],\n [contextHandlePathChange, path]\n )\n\n if (iterate) {\n if (!Array.isArray(data)) {\n return null\n }\n return (\n <>\n {data.map((element, i) => {\n const handlePathChange = (\n contextHandlePathChange\n ? (changePath, value) => {\n contextHandlePathChange(\n `${path}/${i}${changePath}`,\n value\n )\n }\n : undefined\n ) as ContextState['handlePathChange']\n\n return (\n <Context.Provider\n key={`element${i}`}\n value={{\n ...dataContext,\n data: element,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n })}\n </>\n )\n }\n\n return (\n <Context.Provider\n value={{\n ...dataContext,\n data,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nAt._supportsSpacingProps = true\nexport default At\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,OAAO,MAAM,cAAc;AAElC,OAAOC,OAAO,MAAwB,YAAY;AASlD,SAASC,EAAEA,CAACC,KAAY,EAAE;EACxB,MAAM;IAAEC,IAAI,GAAG,GAAG;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAC/C,MAAMI,WAAW,GAAGT,UAAU,CAACG,OAAO,CAAC;EACvC,MAAM;IAAEO,IAAI,EAAEC,WAAW;IAAEC,gBAAgB,EAAEC;EAAwB,CAAC,GACpEJ,WAAW;EAEb,MAAMC,IAAI,GACRC,WAAW,IAAIT,OAAO,CAACY,GAAG,CAACH,WAAW,EAAEL,IAAI,CAAC,GACzCJ,OAAO,CAACa,GAAG,CAACJ,WAAW,EAAEL,IAAI,CAAC,GAC9BU,SAAS;EAEf,MAAMJ,gBAAgB,GAAGX,OAAO,CAC9B,MACGY,uBAAuB,GACpB,CAACI,UAAU,EAAEC,KAAK,KAAK;IACrBL,uBAAuB,CAAE,GAAEP,IAAK,GAAEW,UAAW,EAAC,EAAEC,KAAK,CAAC;EACxD,CAAC,GACDF,SAA8C,EACpD,CAACH,uBAAuB,EAAEP,IAAI,CAChC,CAAC;EAED,IAAIC,OAAO,EAAE;IACX,IAAI,CAACY,KAAK,CAACC,OAAO,CAACV,IAAI,CAAC,EAAE;MACxB,OAAO,IAAI;IACb;IACA,OACEX,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,QACGZ,IAAI,CAACa,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC,KAAK;MACxB,MAAMb,gBAAgB,GACpBC,uBAAuB,GACnB,CAACI,UAAU,EAAEC,KAAK,KAAK;QACrBL,uBAAuB,CACpB,GAAEP,IAAK,IAAGmB,CAAE,GAAER,UAAW,EAAC,EAC3BC,KACF,CAAC;MACH,CAAC,GACDF,SAC+B;MAErC,OACEjB,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;QACfC,GAAG,EAAG,UAASF,CAAE,EAAE;QACnBP,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;UACdC,IAAI,EAAEc,OAAO;UACbZ;QAAgB;MAChB,GAEDJ,QACe,CAAC;IAEvB,CAAC,CACD,CAAC;EAEP;EAEA,OACET,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;IACfR,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;MACdC,IAAI;MACJE;IAAgB;EAChB,GAEDJ,QACe,CAAC;AAEvB;AAEAJ,EAAE,CAACyB,qBAAqB,GAAG,IAAI;AAC/B,eAAezB,EAAE"}
1
+ {"version":3,"file":"At.js","names":["React","useCallback","useContext","pointer","Context","At","props","path","iterate","children","dataContext","data","contextData","handlePathChange","handlePathChangeDataContext","has","get","undefined","changePath","value","Array","isArray","createElement","Fragment","map","element","i","Provider","key","_objectSpread","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/DataContext/At/At.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react'\nimport pointer from 'json-pointer'\nimport type { ComponentProps } from '../../types'\nimport Context, { ContextState } from '../Context'\n\nexport type Props = ComponentProps & {\n /** JSON Pointer for where in the source dataset to point at in sub components */\n path?: string\n iterate?: boolean\n children?: React.ReactNode\n}\n\nfunction At(props: Props) {\n const { path = '/', iterate, children } = props\n const dataContext = useContext(Context)\n const {\n data: contextData,\n handlePathChange: handlePathChangeDataContext,\n } = dataContext\n\n const data =\n contextData && pointer.has(contextData, path)\n ? pointer.get(contextData, path)\n : undefined\n\n const handlePathChange: ContextState['handlePathChange'] = useCallback(\n (changePath, value) => {\n handlePathChangeDataContext(`${path}${changePath}`, value)\n },\n [handlePathChangeDataContext, path]\n )\n\n if (iterate) {\n if (!Array.isArray(data)) {\n return null\n }\n return (\n <>\n {data.map((element, i) => {\n const handlePathChange = (\n handlePathChangeDataContext\n ? (changePath, value) => {\n handlePathChangeDataContext(\n `${path}/${i}${changePath}`,\n value\n )\n }\n : undefined\n ) as ContextState['handlePathChange']\n\n return (\n <Context.Provider\n key={`element${i}`}\n value={{\n ...dataContext,\n data: element,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n })}\n </>\n )\n }\n\n return (\n <Context.Provider\n value={{\n ...dataContext,\n data,\n handlePathChange,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nAt._supportsSpacingProps = true\nexport default At\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,QAAQ,OAAO;AACtD,OAAOC,OAAO,MAAM,cAAc;AAElC,OAAOC,OAAO,MAAwB,YAAY;AASlD,SAASC,EAAEA,CAACC,KAAY,EAAE;EACxB,MAAM;IAAEC,IAAI,GAAG,GAAG;IAAEC,OAAO;IAAEC;EAAS,CAAC,GAAGH,KAAK;EAC/C,MAAMI,WAAW,GAAGR,UAAU,CAACE,OAAO,CAAC;EACvC,MAAM;IACJO,IAAI,EAAEC,WAAW;IACjBC,gBAAgB,EAAEC;EACpB,CAAC,GAAGJ,WAAW;EAEf,MAAMC,IAAI,GACRC,WAAW,IAAIT,OAAO,CAACY,GAAG,CAACH,WAAW,EAAEL,IAAI,CAAC,GACzCJ,OAAO,CAACa,GAAG,CAACJ,WAAW,EAAEL,IAAI,CAAC,GAC9BU,SAAS;EAEf,MAAMJ,gBAAkD,GAAGZ,WAAW,CACpE,CAACiB,UAAU,EAAEC,KAAK,KAAK;IACrBL,2BAA2B,CAAE,GAAEP,IAAK,GAAEW,UAAW,EAAC,EAAEC,KAAK,CAAC;EAC5D,CAAC,EACD,CAACL,2BAA2B,EAAEP,IAAI,CACpC,CAAC;EAED,IAAIC,OAAO,EAAE;IACX,IAAI,CAACY,KAAK,CAACC,OAAO,CAACV,IAAI,CAAC,EAAE;MACxB,OAAO,IAAI;IACb;IACA,OACEX,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,QACGZ,IAAI,CAACa,GAAG,CAAC,CAACC,OAAO,EAAEC,CAAC,KAAK;MACxB,MAAMb,gBAAgB,GACpBC,2BAA2B,GACvB,CAACI,UAAU,EAAEC,KAAK,KAAK;QACrBL,2BAA2B,CACxB,GAAEP,IAAK,IAAGmB,CAAE,GAAER,UAAW,EAAC,EAC3BC,KACF,CAAC;MACH,CAAC,GACDF,SAC+B;MAErC,OACEjB,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;QACfC,GAAG,EAAG,UAASF,CAAE,EAAE;QACnBP,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;UACdC,IAAI,EAAEc,OAAO;UACbZ;QAAgB;MAChB,GAEDJ,QACe,CAAC;IAEvB,CAAC,CACD,CAAC;EAEP;EAEA,OACET,KAAA,CAAAsB,aAAA,CAAClB,OAAO,CAACuB,QAAQ;IACfR,KAAK,EAAAU,aAAA,CAAAA,aAAA,KACAnB,WAAW;MACdC,IAAI;MACJE;IAAgB;EAChB,GAEDJ,QACe,CAAC;AAEvB;AAEAJ,EAAE,CAACyB,qBAAqB,GAAG,IAAI;AAC/B,eAAezB,EAAE"}
@@ -11,7 +11,9 @@ export type EventListenerCall = {
11
11
  callback: () => any;
12
12
  };
13
13
  export type FilterDataHandler<Data> = (data: Data, filter: FilterData) => Partial<Data>;
14
- export type FilterData = (path: Path, value: any, props: FieldProps) => boolean | undefined;
14
+ export type FilterData = (path: Path, value: any, props: FieldProps, internal: {
15
+ error: Error | undefined;
16
+ }) => boolean | undefined;
15
17
  export interface ContextState {
16
18
  id?: Identifier;
17
19
  hasContext: boolean;
@@ -21,7 +23,8 @@ export interface ContextState {
21
23
  errors?: Record<string, Error>;
22
24
  /** Will set autoComplete="on" on each nested Field.String and Field.Number */
23
25
  autoComplete?: boolean;
24
- handlePathChange: (path: Path, value: any) => EventReturnWithStateObject | unknown | Promise<EventReturnWithStateObject | unknown>;
26
+ handlePathChange: (path: Path, value?: any) => EventReturnWithStateObject | unknown | Promise<EventReturnWithStateObject | unknown>;
27
+ handlePathChangeUnvalidated: (path: Path, value: any) => void;
25
28
  updateDataValue: (path: Path, value: any) => void;
26
29
  setData: (data: any) => void;
27
30
  filterDataHandler: (data: any, filter: FilterData) => any;
@@ -7,6 +7,7 @@ export const defaultContextState = {
7
7
  disabled: undefined,
8
8
  submitState: undefined,
9
9
  handlePathChange: () => null,
10
+ handlePathChangeUnvalidated: () => null,
10
11
  updateDataValue: () => null,
11
12
  setData: () => null,
12
13
  filterDataHandler: () => null,
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","disabled","submitState","handlePathChange","updateDataValue","setData","filterDataHandler","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setFieldEventListener","handleSubmitCall","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","contextErrorMessages","_isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps\n) => boolean | undefined\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n filterDataHandler: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n checkFieldStateFor: (path: Path, state: SubmitState) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n formState: SubmitState\n setFormState?: (state: SubmitState) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setProps: (path: Path, props: any) => void\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled: boolean\n submitState: Partial<EventStateObject>\n _isInsideFormElement?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n disabled: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n updateDataValue: () => null,\n setData: () => null,\n filterDataHandler: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n formState: undefined,\n setFormState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n checkFieldStateFor: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n setProps: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n _isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AAmGnD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,QAAQ,EAAEF,SAAS;EACnBG,WAAW,EAAEH,SAAS;EACtBI,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,iBAAiB,EAAEA,CAAA,KAAM,IAAI;EAC7BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,SAAS,EAAEZ,SAAS;EACpBa,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,kBAAkB,EAAEA,CAAA,KAAM,KAAK;EAC/BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,QAAQ,EAAEA,CAAA,KAAM,IAAI;EACpBC,WAAW,EAAE9B,eAAe,CAAC,CAAC;EAC9B+B,oBAAoB,EAAE3B,SAAS;EAC/B4B,oBAAoB,EAAE,KAAK;EAC3BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGnC,KAAK,CAACoC,aAAa,CAAelC,mBAAmB,CAAC;AAEtE,eAAeiC,OAAO"}
1
+ {"version":3,"file":"Context.js","names":["React","makeAjvInstance","defaultContextState","hasContext","data","undefined","schema","disabled","submitState","handlePathChange","handlePathChangeUnvalidated","updateDataValue","setData","filterDataHandler","validateData","handleSubmit","scrollToTop","showAllErrors","formState","setFormState","setFieldEventListener","handleSubmitCall","setShowAllErrors","mountedFieldPaths","handleMountField","handleUnMountField","hasErrors","hasFieldState","checkFieldStateFor","setFieldState","setFieldError","setProps","ajvInstance","contextErrorMessages","_isInsideFormElement","props","Context","createContext"],"sources":["../../../../../src/extensions/forms/DataContext/Context.ts"],"sourcesContent":["import React from 'react'\nimport { Ajv, makeAjvInstance } from '../utils/ajv'\nimport {\n AllJSONSchemaVersions,\n CustomErrorMessagesWithPaths,\n SubmitState,\n Path,\n EventStateObject,\n EventReturnWithStateObject,\n Identifier,\n FieldProps,\n FormError,\n} from '../types'\nimport { Props as ProviderProps } from './Provider'\n\ntype HandleSubmitProps = {\n formElement?: HTMLFormElement\n}\n\nexport type EventListenerCall = {\n path: Path\n type: 'onSubmit'\n callback: () => any\n}\n\nexport type FilterDataHandler<Data> = (\n data: Data,\n filter: FilterData\n) => Partial<Data>\nexport type FilterData = (\n path: Path,\n value: any,\n props: FieldProps,\n internal: {\n error: Error | undefined\n }\n) => boolean | undefined\n\nexport interface ContextState {\n id?: Identifier\n hasContext: boolean\n /** The dataset for the form / form steps */\n data: any\n /** Should the form validate data before submitting? */\n errors?: Record<string, Error>\n /** Will set autoComplete=\"on\" on each nested Field.String and Field.Number */\n autoComplete?: boolean\n handlePathChange: (\n path: Path,\n value?: any\n ) =>\n | EventReturnWithStateObject\n | unknown\n | Promise<EventReturnWithStateObject | unknown>\n handlePathChangeUnvalidated: (path: Path, value: any) => void\n updateDataValue: (path: Path, value: any) => void\n setData: (data: any) => void\n filterDataHandler: (data: any, filter: FilterData) => any\n validateData: () => void\n handleSubmit: (props?: HandleSubmitProps) => any\n scrollToTop: () => void\n // Error status\n showAllErrors: boolean\n setShowAllErrors: (showAllErrors: boolean) => void\n hasErrors: () => boolean\n hasFieldState: (state: SubmitState) => boolean\n checkFieldStateFor: (path: Path, state: SubmitState) => boolean\n setFieldState: (path: Path, fieldState: SubmitState) => void\n setFieldError: (path: Path, error: Error | FormError) => void\n // Mounted fields - Components telling the provider what fields is on screen at any time\n mountedFieldPaths: string[]\n handleMountField: (path: Path) => void\n handleUnMountField: (path: Path) => void\n formState: SubmitState\n setFormState?: (state: SubmitState) => void\n handleSubmitCall: ({\n onSubmit,\n enableAsyncBehaviour,\n skipFieldValidation,\n skipErrorCheck,\n }: {\n onSubmit: () =>\n | EventReturnWithStateObject\n | void\n | Promise<EventReturnWithStateObject | void>\n enableAsyncBehaviour: boolean\n skipFieldValidation?: boolean\n skipErrorCheck?: boolean\n }) => void\n setFieldEventListener: (\n path: EventListenerCall['path'],\n type: EventListenerCall['type'],\n callback: EventListenerCall['callback']\n ) => void\n setProps: (path: Path, props: any) => void\n ajvInstance: Ajv\n contextErrorMessages: CustomErrorMessagesWithPaths\n schema: AllJSONSchemaVersions\n disabled: boolean\n submitState: Partial<EventStateObject>\n _isInsideFormElement?: boolean\n props: ProviderProps<unknown>\n}\n\nexport const defaultContextState: ContextState = {\n hasContext: false,\n data: undefined,\n schema: undefined,\n disabled: undefined,\n submitState: undefined,\n handlePathChange: () => null,\n handlePathChangeUnvalidated: () => null,\n updateDataValue: () => null,\n setData: () => null,\n filterDataHandler: () => null,\n validateData: () => null,\n handleSubmit: () => null,\n scrollToTop: () => null,\n showAllErrors: false,\n formState: undefined,\n setFormState: () => null,\n setFieldEventListener: () => null,\n handleSubmitCall: () => null,\n setShowAllErrors: () => null,\n mountedFieldPaths: [],\n handleMountField: () => null,\n handleUnMountField: () => null,\n hasErrors: () => false,\n hasFieldState: () => false,\n checkFieldStateFor: () => false,\n setFieldState: () => null,\n setFieldError: () => null,\n setProps: () => null,\n ajvInstance: makeAjvInstance(),\n contextErrorMessages: undefined,\n _isInsideFormElement: false,\n props: null,\n}\n\nconst Context = React.createContext<ContextState>(defaultContextState)\n\nexport default Context\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAcC,eAAe,QAAQ,cAAc;AAuGnD,OAAO,MAAMC,mBAAiC,GAAG;EAC/CC,UAAU,EAAE,KAAK;EACjBC,IAAI,EAAEC,SAAS;EACfC,MAAM,EAAED,SAAS;EACjBE,QAAQ,EAAEF,SAAS;EACnBG,WAAW,EAAEH,SAAS;EACtBI,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,2BAA2B,EAAEA,CAAA,KAAM,IAAI;EACvCC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,OAAO,EAAEA,CAAA,KAAM,IAAI;EACnBC,iBAAiB,EAAEA,CAAA,KAAM,IAAI;EAC7BC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,WAAW,EAAEA,CAAA,KAAM,IAAI;EACvBC,aAAa,EAAE,KAAK;EACpBC,SAAS,EAAEb,SAAS;EACpBc,YAAY,EAAEA,CAAA,KAAM,IAAI;EACxBC,qBAAqB,EAAEA,CAAA,KAAM,IAAI;EACjCC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,iBAAiB,EAAE,EAAE;EACrBC,gBAAgB,EAAEA,CAAA,KAAM,IAAI;EAC5BC,kBAAkB,EAAEA,CAAA,KAAM,IAAI;EAC9BC,SAAS,EAAEA,CAAA,KAAM,KAAK;EACtBC,aAAa,EAAEA,CAAA,KAAM,KAAK;EAC1BC,kBAAkB,EAAEA,CAAA,KAAM,KAAK;EAC/BC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,aAAa,EAAEA,CAAA,KAAM,IAAI;EACzBC,QAAQ,EAAEA,CAAA,KAAM,IAAI;EACpBC,WAAW,EAAE/B,eAAe,CAAC,CAAC;EAC9BgC,oBAAoB,EAAE5B,SAAS;EAC/B6B,oBAAoB,EAAE,KAAK;EAC3BC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,OAAO,GAAGpC,KAAK,CAACqC,aAAa,CAAenC,mBAAmB,CAAC;AAEtE,eAAekC,OAAO"}
@@ -58,10 +58,6 @@ export interface Props<Data extends JsonObject> {
58
58
  * The result of the onSubmit function
59
59
  */
60
60
  result: unknown) => EventReturnWithStateObject | void | Promise<EventReturnWithStateObject | void>;
61
- /**
62
- * Shows an indicator on the current label during a field change.
63
- */
64
- enableAsyncChangeBehavior?: boolean;
65
61
  /**
66
62
  * Minimum time to display the submit indicator.
67
63
  */
@@ -69,7 +65,7 @@ export interface Props<Data extends JsonObject> {
69
65
  /**
70
66
  * The maximum time to display the submit indicator before it changes back to normal. In case something went wrong during submission.
71
67
  */
72
- asyncBehaviorTimeout?: number;
68
+ asyncSubmitTimeout?: number;
73
69
  /**
74
70
  * Scroll to top on submit
75
71
  */
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
5
- const _excluded = ["id", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncBehaviorTimeout", "sessionStorageId", "ajvInstance", "filterData", "errorMessages", "children"];
5
+ const _excluded = ["id", "defaultData", "data", "schema", "onChange", "onPathChange", "onSubmit", "onSubmitRequest", "onSubmitComplete", "scrollTopOnSubmit", "minimumAsyncBehaviorTime", "asyncSubmitTimeout", "sessionStorageId", "ajvInstance", "filterData", "errorMessages", "children"];
6
6
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
  import React, { useRef, useMemo, useCallback, useReducer, useEffect } from 'react';
@@ -32,7 +32,7 @@ export default function Provider(props) {
32
32
  onSubmitComplete,
33
33
  scrollTopOnSubmit,
34
34
  minimumAsyncBehaviorTime,
35
- asyncBehaviorTimeout,
35
+ asyncSubmitTimeout,
36
36
  sessionStorageId,
37
37
  ajvInstance,
38
38
  filterData,
@@ -95,7 +95,7 @@ export default function Provider(props) {
95
95
  }, [executeAjvValidator]);
96
96
  const checkFieldStateFor = useCallback((path, state) => {
97
97
  var _errorsRef$current;
98
- return Boolean(state === 'error' ? ((_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? void 0 : _errorsRef$current[path]) instanceof Error || fieldErrorRef.current[path] : fieldStateRef.current[path] === state);
98
+ return Boolean(state === 'error' ? ((_errorsRef$current = errorsRef.current) === null || _errorsRef$current === void 0 ? void 0 : _errorsRef$current[path]) instanceof Error || fieldErrorRef.current[path] instanceof Error : fieldStateRef.current[path] === state);
99
99
  }, []);
100
100
  const hasFieldState = useCallback(state => {
101
101
  return mountedFieldPathsRef.current.some(path => {
@@ -106,7 +106,7 @@ export default function Provider(props) {
106
106
  return hasFieldState('error');
107
107
  }, [hasFieldState]);
108
108
  const setFieldError = useCallback((path, error) => {
109
- fieldErrorRef.current[path] = Boolean(error);
109
+ fieldErrorRef.current[path] = error;
110
110
  }, []);
111
111
  const setFieldState = useCallback((path, fieldState) => {
112
112
  if (fieldState !== fieldStateRef.current[path]) {
@@ -118,8 +118,11 @@ export default function Provider(props) {
118
118
  if (filter) {
119
119
  const filtered = _objectSpread({}, data);
120
120
  Object.entries(fieldPropsRef.current).forEach(([path, props]) => {
121
+ var _fieldErrorRef$curren;
121
122
  const exists = pointer.has(data, path);
122
- const result = filter(path, exists ? pointer.get(data, path) : undefined, props);
123
+ const result = filter(path, exists ? pointer.get(data, path) : undefined, props, {
124
+ error: (_fieldErrorRef$curren = fieldErrorRef.current) === null || _fieldErrorRef$curren === void 0 ? void 0 : _fieldErrorRef$curren[path]
125
+ });
123
126
  if (result === false && exists) {
124
127
  pointer.remove(filtered, path);
125
128
  }
@@ -226,23 +229,31 @@ export default function Provider(props) {
226
229
  internalDataRef.current = newData;
227
230
  forceUpdate();
228
231
  }, []);
229
- const handlePathChange = useCallback(async (path, value) => {
232
+ const handlePathChangeUnvalidated = useCallback(async (path, value) => {
230
233
  if (!path) {
231
234
  return null;
232
235
  }
236
+ updateDataValue(path, value);
233
237
  if (isAsync(onPathChange)) {
234
238
  await (onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value));
235
239
  } else {
236
240
  onPathChange === null || onPathChange === void 0 ? void 0 : onPathChange(path, value);
237
241
  }
238
- const newData = updateDataValue(path, value);
242
+ }, [onPathChange, updateDataValue]);
243
+ const handlePathChange = useCallback(async (path, value = '_undefined_') => {
244
+ if (!path) {
245
+ return null;
246
+ }
247
+ if (value !== '_undefined_') {
248
+ handlePathChangeUnvalidated(path, value);
249
+ }
239
250
  showAllErrorsRef.current = false;
240
251
  validateData();
241
252
  if (isAsync(onChange)) {
242
- return await onChange(newData);
253
+ return await onChange(internalDataRef.current);
243
254
  }
244
- return onChange === null || onChange === void 0 ? void 0 : onChange(newData);
245
- }, [onChange, onPathChange, updateDataValue, validateData]);
255
+ return onChange === null || onChange === void 0 ? void 0 : onChange(internalDataRef.current);
256
+ }, [handlePathChangeUnvalidated, onChange, validateData]);
246
257
  const handleMountField = useCallback(path => {
247
258
  mountedFieldPathsRef.current = addListPath(mountedFieldPathsRef.current, path);
248
259
  }, []);
@@ -272,7 +283,7 @@ export default function Provider(props) {
272
283
  setSubmitState({
273
284
  error: undefined
274
285
  });
275
- const asyncBehaviorIsEnabled = !(skipErrorCheck ? false : hasErrors()) && (enableAsyncBehaviour || hasFieldWithAsyncValidator());
286
+ const asyncBehaviorIsEnabled = (skipErrorCheck ? true : !hasErrors() || hasFieldState('pending')) && (enableAsyncBehaviour || hasFieldWithAsyncValidator());
276
287
  if (asyncBehaviorIsEnabled) {
277
288
  setFormState('pending');
278
289
  }
@@ -318,15 +329,15 @@ export default function Provider(props) {
318
329
  window.requestAnimationFrame(() => {
319
330
  setFormState(undefined);
320
331
  });
321
- }
322
- if (!skipFieldValidation) {
323
- onSubmitContinueRef.current = () => {
324
- window.requestAnimationFrame(() => {
325
- handleSubmitCall(_objectSpread(_objectSpread({}, args), {}, {
326
- skipFieldValidation: true
327
- }));
328
- });
329
- };
332
+ if (!skipFieldValidation) {
333
+ onSubmitContinueRef.current = () => {
334
+ window.requestAnimationFrame(() => {
335
+ handleSubmitCall(_objectSpread(_objectSpread({}, args), {}, {
336
+ skipFieldValidation: true
337
+ }));
338
+ });
339
+ };
340
+ }
330
341
  }
331
342
  onSubmitRequest === null || onSubmitRequest === void 0 ? void 0 : onSubmitRequest();
332
343
  setShowAllErrors(true);
@@ -413,19 +424,29 @@ export default function Provider(props) {
413
424
  forceUpdate();
414
425
  }
415
426
  }, [schema, validateData, forceUpdate]);
427
+ const onTimeout = useCallback(() => {
428
+ setFormState(undefined);
429
+ setSubmitState({
430
+ info: undefined,
431
+ warning: undefined,
432
+ error: undefined
433
+ });
434
+ }, [setFormState, setSubmitState]);
416
435
  const {
417
436
  bufferedFormState: formState
418
437
  } = useFormStatusBuffer({
419
438
  formState: formStateRef.current,
420
439
  waitFor: hasFieldState('pending'),
421
440
  minimumAsyncBehaviorTime,
422
- asyncBehaviorTimeout
441
+ asyncSubmitTimeout,
442
+ onTimeout
423
443
  });
424
444
  const submitState = submitStateRef.current;
425
445
  const disabled = (_rest$disabled = rest === null || rest === void 0 ? void 0 : rest['disabled']) !== null && _rest$disabled !== void 0 ? _rest$disabled : formState === 'pending';
426
446
  return React.createElement(Context.Provider, {
427
447
  value: _objectSpread({
428
448
  handlePathChange,
449
+ handlePathChangeUnvalidated,
429
450
  handleSubmit,
430
451
  handleMountField,
431
452
  handleUnMountField,
@@ -475,7 +496,8 @@ function useFormStatusBuffer(props) {
475
496
  formState,
476
497
  waitFor,
477
498
  minimumAsyncBehaviorTime,
478
- asyncBehaviorTimeout
499
+ asyncSubmitTimeout,
500
+ onTimeout
479
501
  } = props || {};
480
502
  const [, forceUpdate] = useReducer(() => ({}), {});
481
503
  const stateRef = useRef();
@@ -511,7 +533,7 @@ function useFormStatusBuffer(props) {
511
533
  if (formState === 'complete') {
512
534
  hadCompleteRef.current = true;
513
535
  }
514
- if (formState === 'pending') {
536
+ if (formState === 'pending' && stateRef.current !== 'pending') {
515
537
  clear();
516
538
  nowRef.current = Date.now();
517
539
  hadCompleteRef.current = false;
@@ -531,13 +553,16 @@ function useFormStatusBuffer(props) {
531
553
  clear();
532
554
  }, delay + minimum);
533
555
  }
556
+ }
557
+ if (stateRef.current === 'pending') {
534
558
  timeoutRef.current.timeout = setTimeout(() => {
535
- nowRef.current = 0;
559
+ clear();
536
560
  setState(undefined);
537
- }, asyncBehaviorTimeout !== null && asyncBehaviorTimeout !== void 0 ? asyncBehaviorTimeout : 30000);
561
+ onTimeout === null || onTimeout === void 0 ? void 0 : onTimeout();
562
+ }, asyncSubmitTimeout !== null && asyncSubmitTimeout !== void 0 ? asyncSubmitTimeout : 30000);
538
563
  }
539
564
  return clear;
540
- }, [clear, minimumAsyncBehaviorTime, formState, setState, waitFor, asyncBehaviorTimeout]);
565
+ }, [clear, minimumAsyncBehaviorTime, formState, setState, waitFor, asyncSubmitTimeout, onTimeout]);
541
566
  return {
542
567
  bufferedFormState: stateRef.current
543
568
  };