@dnb/eufemia 10.17.0 → 10.19.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 (828) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/cjs/components/AriaLive.d.ts +12 -0
  3. package/cjs/components/AriaLive.js +24 -0
  4. package/cjs/components/AriaLive.js.map +1 -0
  5. package/cjs/components/aria-live/AriaLive.d.ts +6 -0
  6. package/cjs/components/aria-live/AriaLive.js +23 -0
  7. package/cjs/components/aria-live/AriaLive.js.map +1 -0
  8. package/cjs/components/aria-live/index.d.ts +7 -0
  9. package/cjs/components/aria-live/index.js +24 -0
  10. package/cjs/components/aria-live/index.js.map +1 -0
  11. package/cjs/components/aria-live/types.d.ts +44 -0
  12. package/cjs/components/aria-live/types.js +1 -0
  13. package/cjs/components/aria-live/types.js.map +1 -0
  14. package/cjs/components/aria-live/useAriaLive.d.ts +273 -0
  15. package/cjs/components/aria-live/useAriaLive.js +84 -0
  16. package/cjs/components/aria-live/useAriaLive.js.map +1 -0
  17. package/cjs/components/autocomplete/Autocomplete.d.ts +0 -1
  18. package/cjs/components/autocomplete/Autocomplete.js +24 -46
  19. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  20. package/cjs/components/breadcrumb/Breadcrumb.js +13 -19
  21. package/cjs/components/breadcrumb/Breadcrumb.js.map +1 -1
  22. package/cjs/components/breadcrumb/BreadcrumbItem.js +11 -5
  23. package/cjs/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  24. package/cjs/components/breadcrumb/BreadcrumbMultiple.js +1 -1
  25. package/cjs/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
  26. package/cjs/components/breadcrumb/style/dnb-breadcrumb.css +13 -3
  27. package/cjs/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  28. package/cjs/components/breadcrumb/style/dnb-breadcrumb.scss +15 -3
  29. package/cjs/components/date-picker/DatePicker.d.ts +3 -0
  30. package/cjs/components/date-picker/DatePickerProvider.js +6 -2
  31. package/cjs/components/date-picker/DatePickerProvider.js.map +1 -1
  32. package/cjs/components/flex/Container.d.ts +4 -2
  33. package/cjs/components/flex/Container.js +32 -9
  34. package/cjs/components/flex/Container.js.map +1 -1
  35. package/cjs/components/flex/style/dnb-flex.css +3 -3
  36. package/cjs/components/flex/style/dnb-flex.min.css +1 -1
  37. package/cjs/components/flex/style/flex-container.scss +3 -7
  38. package/cjs/components/flex/utils.d.ts +1 -1
  39. package/cjs/components/flex/utils.js +11 -1
  40. package/cjs/components/flex/utils.js.map +1 -1
  41. package/cjs/components/index.d.ts +2 -1
  42. package/cjs/components/index.js +7 -0
  43. package/cjs/components/index.js.map +1 -1
  44. package/cjs/components/input/Input.js +0 -3
  45. package/cjs/components/input/Input.js.map +1 -1
  46. package/cjs/components/input-masked/MultiInputMask.d.ts +10 -2
  47. package/cjs/components/input-masked/MultiInputMask.js +77 -39
  48. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  49. package/cjs/components/input-masked/hooks/useMultiInputValues.d.ts +2 -2
  50. package/cjs/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  51. package/cjs/components/lib.d.ts +3 -1
  52. package/cjs/components/lib.js +8 -0
  53. package/cjs/components/lib.js.map +1 -1
  54. package/cjs/components/number-format/NumberFormat.js +1 -1
  55. package/cjs/components/number-format/NumberFormat.js.map +1 -1
  56. package/cjs/components/number-format/NumberUtils.d.ts +8 -2
  57. package/cjs/components/number-format/useNumberFormat.d.ts +1 -1
  58. package/cjs/components/section/Section.d.ts +6 -3
  59. package/cjs/components/section/Section.js.map +1 -1
  60. package/cjs/components/section/style/dnb-section.css +1 -0
  61. package/cjs/components/section/style/dnb-section.min.css +1 -1
  62. package/cjs/components/section/style/dnb-section.scss +1 -0
  63. package/cjs/components/space/SpacingUtils.js +5 -1
  64. package/cjs/components/space/SpacingUtils.js.map +1 -1
  65. package/cjs/components/table/TableAccordion.js +1 -1
  66. package/cjs/components/table/TableAccordion.js.map +1 -1
  67. package/cjs/components/textarea/Textarea.d.ts +5 -0
  68. package/cjs/components/textarea/Textarea.js +16 -3
  69. package/cjs/components/textarea/Textarea.js.map +1 -1
  70. package/cjs/components/textarea/style/dnb-textarea.css +10 -3
  71. package/cjs/components/textarea/style/dnb-textarea.min.css +1 -1
  72. package/cjs/components/textarea/style/dnb-textarea.scss +13 -3
  73. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.css +15 -2
  74. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  75. package/cjs/components/textarea/style/themes/dnb-textarea-theme-ui.scss +15 -2
  76. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.css +8 -1
  77. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.min.css +1 -1
  78. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.scss +6 -1
  79. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +4 -0
  80. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  81. package/cjs/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +5 -0
  82. package/cjs/components/visually-hidden/VisuallyHidden.js +1 -1
  83. package/cjs/components/visually-hidden/VisuallyHidden.js.map +1 -1
  84. package/cjs/extensions/forms/DataContext/Provider/Provider.d.ts +8 -4
  85. package/cjs/extensions/forms/DataContext/Provider/Provider.js +32 -4
  86. package/cjs/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  87. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +14 -12
  88. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  89. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -2
  90. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  91. package/cjs/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +12 -2
  92. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  93. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +2 -2
  94. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  95. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +2 -2
  96. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  97. package/cjs/extensions/forms/Field/Currency/Currency.d.ts +2 -2
  98. package/cjs/extensions/forms/Field/Currency/Currency.js.map +1 -1
  99. package/cjs/extensions/forms/Field/Date/Date.js +4 -5
  100. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  101. package/cjs/extensions/forms/Field/Email/Email.d.ts +2 -2
  102. package/cjs/extensions/forms/Field/Email/Email.js +2 -2
  103. package/cjs/extensions/forms/Field/Email/Email.js.map +1 -1
  104. package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  105. package/cjs/extensions/forms/Field/Expiry/Expiry.js +32 -21
  106. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  107. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  108. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +2 -2
  109. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  110. package/cjs/extensions/forms/Field/Number/Number.js +12 -15
  111. package/cjs/extensions/forms/Field/Number/Number.js.map +1 -1
  112. package/cjs/extensions/forms/Field/Number/style/dnb-number.css +0 -6
  113. package/cjs/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  114. package/cjs/extensions/forms/Field/Number/style/dnb-number.scss +0 -1
  115. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +4 -0
  116. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +1 -1
  117. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +7 -0
  118. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +4 -0
  119. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +1 -1
  120. package/cjs/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +9 -0
  121. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  122. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +2 -2
  123. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  124. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
  125. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +16 -10
  126. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  127. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  128. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  129. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -3
  130. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  131. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +7 -1
  132. package/cjs/extensions/forms/Field/Selection/Selection.js +9 -9
  133. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  134. package/cjs/extensions/forms/Field/String/String.d.ts +3 -2
  135. package/cjs/extensions/forms/Field/String/String.js +11 -11
  136. package/cjs/extensions/forms/Field/String/String.js.map +1 -1
  137. package/cjs/extensions/forms/Field/Toggle/Toggle.js +14 -14
  138. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  139. package/cjs/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  140. package/cjs/extensions/forms/FieldBlock/FieldBlock.js +5 -8
  141. package/cjs/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  142. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -6
  143. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  144. package/cjs/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -7
  145. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +4 -0
  146. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +1 -0
  147. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +6 -0
  148. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.css +4 -0
  149. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.min.css +1 -0
  150. package/cjs/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.scss +6 -0
  151. package/cjs/extensions/forms/Form/Handler/Handler.js +1 -0
  152. package/cjs/extensions/forms/Form/Handler/Handler.js.map +1 -1
  153. package/cjs/extensions/forms/Form/Visibility/Visibility.js +0 -1
  154. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  155. package/cjs/extensions/forms/Form/hooks/useData.d.ts +10 -0
  156. package/cjs/extensions/forms/Form/hooks/useData.js +39 -0
  157. package/cjs/extensions/forms/Form/hooks/useData.js.map +1 -0
  158. package/cjs/extensions/forms/Form/index.d.ts +1 -0
  159. package/cjs/extensions/forms/Form/index.js +7 -0
  160. package/cjs/extensions/forms/Form/index.js.map +1 -1
  161. package/cjs/extensions/forms/Iterate/Array/Array.js +1 -3
  162. package/cjs/extensions/forms/Iterate/Array/Array.js.map +1 -1
  163. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  164. package/cjs/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  165. package/cjs/extensions/forms/Value/Currency/Currency.d.ts +2 -2
  166. package/cjs/extensions/forms/Value/Currency/Currency.js.map +1 -1
  167. package/cjs/extensions/forms/Value/Date/Date.d.ts +2 -2
  168. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  169. package/cjs/extensions/forms/Value/Email/Email.d.ts +2 -2
  170. package/cjs/extensions/forms/Value/Email/Email.js.map +1 -1
  171. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  172. package/cjs/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  173. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.d.ts +2 -2
  174. package/cjs/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  175. package/cjs/extensions/forms/hooks/useDataValue.d.ts +4 -0
  176. package/cjs/extensions/forms/hooks/useDataValue.js +14 -10
  177. package/cjs/extensions/forms/hooks/useDataValue.js.map +1 -1
  178. package/cjs/extensions/forms/style/dnb-forms.css +12 -14
  179. package/cjs/extensions/forms/style/dnb-forms.min.css +1 -1
  180. package/cjs/extensions/forms/types.d.ts +7 -9
  181. package/cjs/extensions/forms/types.js.map +1 -1
  182. package/cjs/fragments/TextCounter.d.ts +12 -0
  183. package/cjs/fragments/TextCounter.js +24 -0
  184. package/cjs/fragments/TextCounter.js.map +1 -0
  185. package/cjs/fragments/drawer-list/DrawerListHelpers.js +1 -0
  186. package/cjs/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  187. package/cjs/fragments/index.d.ts +2 -1
  188. package/cjs/fragments/index.js +7 -0
  189. package/cjs/fragments/index.js.map +1 -1
  190. package/cjs/fragments/lib.d.ts +3 -1
  191. package/cjs/fragments/lib.js +9 -1
  192. package/cjs/fragments/lib.js.map +1 -1
  193. package/cjs/fragments/text-counter/TextCounter.d.ts +8 -0
  194. package/cjs/fragments/text-counter/TextCounter.js +61 -0
  195. package/cjs/fragments/text-counter/TextCounter.js.map +1 -0
  196. package/cjs/fragments/text-counter/index.d.ts +5 -0
  197. package/cjs/fragments/text-counter/index.js +17 -0
  198. package/cjs/fragments/text-counter/index.js.map +1 -0
  199. package/cjs/fragments/text-counter/style/dnb-text-counter.scss +15 -0
  200. package/cjs/fragments/text-counter/style/index.d.ts +1 -0
  201. package/cjs/fragments/text-counter/style/index.js +4 -0
  202. package/cjs/fragments/text-counter/style/index.js.map +1 -0
  203. package/cjs/fragments/text-counter/style/themes/dnb-text-counter-theme-sbanken.scss +8 -0
  204. package/cjs/fragments/text-counter/style/themes/dnb-text-counter-theme-ui.scss +8 -0
  205. package/cjs/fragments/text-counter/style/themes/ui.d.ts +1 -0
  206. package/cjs/fragments/text-counter/style/themes/ui.js +4 -0
  207. package/cjs/fragments/text-counter/style/themes/ui.js.map +1 -0
  208. package/cjs/fragments/text-counter/style.d.ts +5 -0
  209. package/cjs/fragments/text-counter/style.js +4 -0
  210. package/cjs/fragments/text-counter/style.js.map +1 -0
  211. package/cjs/index.d.ts +2 -1
  212. package/cjs/index.js +7 -0
  213. package/cjs/index.js.map +1 -1
  214. package/cjs/shared/Eufemia.d.ts +1 -1
  215. package/cjs/shared/Eufemia.js +2 -2
  216. package/cjs/shared/Eufemia.js.map +1 -1
  217. package/cjs/shared/helpers/EventEmitter.d.ts +5 -0
  218. package/cjs/shared/helpers/EventEmitter.js.map +1 -1
  219. package/cjs/shared/helpers/useEventEmitter.d.ts +2 -0
  220. package/cjs/shared/helpers/useEventEmitter.js.map +1 -1
  221. package/cjs/shared/helpers/useSharedState.d.ts +17 -0
  222. package/cjs/shared/helpers/useSharedState.js +90 -0
  223. package/cjs/shared/helpers/useSharedState.js.map +1 -0
  224. package/cjs/shared/locales/en-GB.d.ts +6 -0
  225. package/cjs/shared/locales/en-GB.js +8 -2
  226. package/cjs/shared/locales/en-GB.js.map +1 -1
  227. package/cjs/shared/locales/en-US.d.ts +6 -0
  228. package/cjs/shared/locales/index.d.ts +12 -0
  229. package/cjs/shared/locales/nb-NO.d.ts +6 -0
  230. package/cjs/shared/locales/nb-NO.js +6 -0
  231. package/cjs/shared/locales/nb-NO.js.map +1 -1
  232. package/cjs/style/dnb-ui-components.css +49 -23
  233. package/cjs/style/dnb-ui-components.min.css +3 -3
  234. package/cjs/style/dnb-ui-extensions.css +12 -14
  235. package/cjs/style/dnb-ui-extensions.min.css +1 -1
  236. package/cjs/style/dnb-ui-forms.css +12 -14
  237. package/cjs/style/dnb-ui-forms.min.css +1 -1
  238. package/cjs/style/dnb-ui-fragments.css +10 -0
  239. package/cjs/style/dnb-ui-fragments.min.css +1 -1
  240. package/cjs/style/dnb-ui-fragments.scss +1 -0
  241. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +96 -39
  242. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  243. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
  244. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -14
  245. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  246. package/cjs/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  247. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.css +21 -14
  248. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  249. package/cjs/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  250. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +85 -38
  251. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  252. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
  253. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -14
  254. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
  255. package/cjs/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  256. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.css +21 -14
  257. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
  258. package/cjs/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  259. package/cjs/style/themes/theme-ui/ui-theme-components.css +96 -39
  260. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  261. package/cjs/style/themes/theme-ui/ui-theme-components.scss +1 -0
  262. package/cjs/style/themes/theme-ui/ui-theme-extensions.css +21 -14
  263. package/cjs/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  264. package/cjs/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  265. package/cjs/style/themes/theme-ui/ui-theme-forms.css +21 -14
  266. package/cjs/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  267. package/cjs/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  268. package/components/AriaLive.d.ts +12 -0
  269. package/components/AriaLive.js +4 -0
  270. package/components/AriaLive.js.map +1 -0
  271. package/components/aria-live/AriaLive.d.ts +6 -0
  272. package/components/aria-live/AriaLive.js +15 -0
  273. package/components/aria-live/AriaLive.js.map +1 -0
  274. package/components/aria-live/index.d.ts +7 -0
  275. package/components/aria-live/index.js +4 -0
  276. package/components/aria-live/index.js.map +1 -0
  277. package/components/aria-live/types.d.ts +44 -0
  278. package/components/aria-live/types.js +1 -0
  279. package/components/aria-live/types.js.map +1 -0
  280. package/components/aria-live/useAriaLive.d.ts +273 -0
  281. package/components/aria-live/useAriaLive.js +75 -0
  282. package/components/aria-live/useAriaLive.js.map +1 -0
  283. package/components/autocomplete/Autocomplete.d.ts +0 -1
  284. package/components/autocomplete/Autocomplete.js +24 -46
  285. package/components/autocomplete/Autocomplete.js.map +1 -1
  286. package/components/breadcrumb/Breadcrumb.js +14 -20
  287. package/components/breadcrumb/Breadcrumb.js.map +1 -1
  288. package/components/breadcrumb/BreadcrumbItem.js +11 -5
  289. package/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  290. package/components/breadcrumb/BreadcrumbMultiple.js +1 -1
  291. package/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
  292. package/components/breadcrumb/style/dnb-breadcrumb.css +13 -3
  293. package/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  294. package/components/breadcrumb/style/dnb-breadcrumb.scss +15 -3
  295. package/components/date-picker/DatePicker.d.ts +3 -0
  296. package/components/date-picker/DatePickerProvider.js +6 -2
  297. package/components/date-picker/DatePickerProvider.js.map +1 -1
  298. package/components/flex/Container.d.ts +4 -2
  299. package/components/flex/Container.js +30 -9
  300. package/components/flex/Container.js.map +1 -1
  301. package/components/flex/style/dnb-flex.css +3 -3
  302. package/components/flex/style/dnb-flex.min.css +1 -1
  303. package/components/flex/style/flex-container.scss +3 -7
  304. package/components/flex/utils.d.ts +1 -1
  305. package/components/flex/utils.js +11 -1
  306. package/components/flex/utils.js.map +1 -1
  307. package/components/index.d.ts +2 -1
  308. package/components/index.js +2 -1
  309. package/components/index.js.map +1 -1
  310. package/components/input/Input.js +0 -3
  311. package/components/input/Input.js.map +1 -1
  312. package/components/input-masked/MultiInputMask.d.ts +10 -2
  313. package/components/input-masked/MultiInputMask.js +75 -39
  314. package/components/input-masked/MultiInputMask.js.map +1 -1
  315. package/components/input-masked/hooks/useMultiInputValues.d.ts +2 -2
  316. package/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  317. package/components/lib.d.ts +3 -1
  318. package/components/lib.js +3 -1
  319. package/components/lib.js.map +1 -1
  320. package/components/number-format/NumberFormat.js +1 -1
  321. package/components/number-format/NumberFormat.js.map +1 -1
  322. package/components/number-format/NumberUtils.d.ts +8 -2
  323. package/components/number-format/useNumberFormat.d.ts +1 -1
  324. package/components/section/Section.d.ts +6 -3
  325. package/components/section/Section.js.map +1 -1
  326. package/components/section/style/dnb-section.css +1 -0
  327. package/components/section/style/dnb-section.min.css +1 -1
  328. package/components/section/style/dnb-section.scss +1 -0
  329. package/components/space/SpacingUtils.js +5 -1
  330. package/components/space/SpacingUtils.js.map +1 -1
  331. package/components/table/TableAccordion.js +1 -1
  332. package/components/table/TableAccordion.js.map +1 -1
  333. package/components/textarea/Textarea.d.ts +5 -0
  334. package/components/textarea/Textarea.js +16 -3
  335. package/components/textarea/Textarea.js.map +1 -1
  336. package/components/textarea/style/dnb-textarea.css +10 -3
  337. package/components/textarea/style/dnb-textarea.min.css +1 -1
  338. package/components/textarea/style/dnb-textarea.scss +13 -3
  339. package/components/textarea/style/themes/dnb-textarea-theme-ui.css +15 -2
  340. package/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  341. package/components/textarea/style/themes/dnb-textarea-theme-ui.scss +15 -2
  342. package/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.css +8 -1
  343. package/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.min.css +1 -1
  344. package/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.scss +6 -1
  345. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +4 -0
  346. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  347. package/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +5 -0
  348. package/components/visually-hidden/VisuallyHidden.js +1 -1
  349. package/components/visually-hidden/VisuallyHidden.js.map +1 -1
  350. package/es/components/AriaLive.d.ts +12 -0
  351. package/es/components/AriaLive.js +4 -0
  352. package/es/components/AriaLive.js.map +1 -0
  353. package/es/components/aria-live/AriaLive.d.ts +6 -0
  354. package/es/components/aria-live/AriaLive.js +15 -0
  355. package/es/components/aria-live/AriaLive.js.map +1 -0
  356. package/es/components/aria-live/index.d.ts +7 -0
  357. package/es/components/aria-live/index.js +4 -0
  358. package/es/components/aria-live/index.js.map +1 -0
  359. package/es/components/aria-live/types.d.ts +44 -0
  360. package/es/components/aria-live/types.js +1 -0
  361. package/es/components/aria-live/types.js.map +1 -0
  362. package/es/components/aria-live/useAriaLive.d.ts +273 -0
  363. package/es/components/aria-live/useAriaLive.js +75 -0
  364. package/es/components/aria-live/useAriaLive.js.map +1 -0
  365. package/es/components/autocomplete/Autocomplete.d.ts +0 -1
  366. package/es/components/autocomplete/Autocomplete.js +24 -46
  367. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  368. package/es/components/breadcrumb/Breadcrumb.js +14 -20
  369. package/es/components/breadcrumb/Breadcrumb.js.map +1 -1
  370. package/es/components/breadcrumb/BreadcrumbItem.js +11 -5
  371. package/es/components/breadcrumb/BreadcrumbItem.js.map +1 -1
  372. package/es/components/breadcrumb/BreadcrumbMultiple.js +1 -1
  373. package/es/components/breadcrumb/BreadcrumbMultiple.js.map +1 -1
  374. package/es/components/breadcrumb/style/dnb-breadcrumb.css +13 -3
  375. package/es/components/breadcrumb/style/dnb-breadcrumb.min.css +1 -1
  376. package/es/components/breadcrumb/style/dnb-breadcrumb.scss +15 -3
  377. package/es/components/date-picker/DatePicker.d.ts +3 -0
  378. package/es/components/date-picker/DatePickerProvider.js +6 -2
  379. package/es/components/date-picker/DatePickerProvider.js.map +1 -1
  380. package/es/components/flex/Container.d.ts +4 -2
  381. package/es/components/flex/Container.js +30 -9
  382. package/es/components/flex/Container.js.map +1 -1
  383. package/es/components/flex/style/dnb-flex.css +3 -3
  384. package/es/components/flex/style/dnb-flex.min.css +1 -1
  385. package/es/components/flex/style/flex-container.scss +3 -7
  386. package/es/components/flex/utils.d.ts +1 -1
  387. package/es/components/flex/utils.js +11 -1
  388. package/es/components/flex/utils.js.map +1 -1
  389. package/es/components/index.d.ts +2 -1
  390. package/es/components/index.js +2 -1
  391. package/es/components/index.js.map +1 -1
  392. package/es/components/input/Input.js +0 -3
  393. package/es/components/input/Input.js.map +1 -1
  394. package/es/components/input-masked/MultiInputMask.d.ts +10 -2
  395. package/es/components/input-masked/MultiInputMask.js +73 -36
  396. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  397. package/es/components/input-masked/hooks/useMultiInputValues.d.ts +2 -2
  398. package/es/components/input-masked/hooks/useMultiInputValues.js.map +1 -1
  399. package/es/components/lib.d.ts +3 -1
  400. package/es/components/lib.js +3 -1
  401. package/es/components/lib.js.map +1 -1
  402. package/es/components/number-format/NumberFormat.js +1 -1
  403. package/es/components/number-format/NumberFormat.js.map +1 -1
  404. package/es/components/number-format/NumberUtils.d.ts +8 -2
  405. package/es/components/number-format/useNumberFormat.d.ts +1 -1
  406. package/es/components/section/Section.d.ts +6 -3
  407. package/es/components/section/Section.js.map +1 -1
  408. package/es/components/section/style/dnb-section.css +1 -0
  409. package/es/components/section/style/dnb-section.min.css +1 -1
  410. package/es/components/section/style/dnb-section.scss +1 -0
  411. package/es/components/space/SpacingUtils.js +5 -1
  412. package/es/components/space/SpacingUtils.js.map +1 -1
  413. package/es/components/table/TableAccordion.js +1 -1
  414. package/es/components/table/TableAccordion.js.map +1 -1
  415. package/es/components/textarea/Textarea.d.ts +5 -0
  416. package/es/components/textarea/Textarea.js +16 -3
  417. package/es/components/textarea/Textarea.js.map +1 -1
  418. package/es/components/textarea/style/dnb-textarea.css +10 -3
  419. package/es/components/textarea/style/dnb-textarea.min.css +1 -1
  420. package/es/components/textarea/style/dnb-textarea.scss +13 -3
  421. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.css +15 -2
  422. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.min.css +1 -1
  423. package/es/components/textarea/style/themes/dnb-textarea-theme-ui.scss +15 -2
  424. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.css +8 -1
  425. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.min.css +1 -1
  426. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-sbanken.scss +6 -1
  427. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.css +4 -0
  428. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.min.css +1 -1
  429. package/es/components/toggle-button/style/themes/dnb-toggle-button-theme-ui.scss +5 -0
  430. package/es/components/visually-hidden/VisuallyHidden.js +1 -1
  431. package/es/components/visually-hidden/VisuallyHidden.js.map +1 -1
  432. package/es/extensions/forms/DataContext/Provider/Provider.d.ts +8 -4
  433. package/es/extensions/forms/DataContext/Provider/Provider.js +32 -4
  434. package/es/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  435. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +17 -15
  436. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  437. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -2
  438. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  439. package/es/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +12 -2
  440. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  441. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +3 -3
  442. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  443. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +2 -2
  444. package/es/extensions/forms/Field/Boolean/Boolean.js +2 -2
  445. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  446. package/es/extensions/forms/Field/Currency/Currency.d.ts +2 -2
  447. package/es/extensions/forms/Field/Currency/Currency.js +2 -2
  448. package/es/extensions/forms/Field/Currency/Currency.js.map +1 -1
  449. package/es/extensions/forms/Field/Date/Date.js +4 -5
  450. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  451. package/es/extensions/forms/Field/Email/Email.d.ts +2 -2
  452. package/es/extensions/forms/Field/Email/Email.js +3 -3
  453. package/es/extensions/forms/Field/Email/Email.js.map +1 -1
  454. package/es/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  455. package/es/extensions/forms/Field/Expiry/Expiry.js +32 -22
  456. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  457. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  458. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +3 -3
  459. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  460. package/es/extensions/forms/Field/Number/Number.js +12 -15
  461. package/es/extensions/forms/Field/Number/Number.js.map +1 -1
  462. package/es/extensions/forms/Field/Number/style/dnb-number.css +0 -6
  463. package/es/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  464. package/es/extensions/forms/Field/Number/style/dnb-number.scss +0 -1
  465. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +4 -0
  466. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +1 -1
  467. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +7 -0
  468. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +4 -0
  469. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +1 -1
  470. package/es/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +9 -0
  471. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  472. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +3 -3
  473. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  474. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
  475. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +18 -12
  476. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  477. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  478. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -3
  479. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  480. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -3
  481. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  482. package/es/extensions/forms/Field/Selection/Selection.d.ts +7 -1
  483. package/es/extensions/forms/Field/Selection/Selection.js +12 -12
  484. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  485. package/es/extensions/forms/Field/String/String.d.ts +3 -2
  486. package/es/extensions/forms/Field/String/String.js +11 -11
  487. package/es/extensions/forms/Field/String/String.js.map +1 -1
  488. package/es/extensions/forms/Field/Toggle/Toggle.js +14 -14
  489. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  490. package/es/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  491. package/es/extensions/forms/FieldBlock/FieldBlock.js +5 -8
  492. package/es/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  493. package/es/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -6
  494. package/es/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  495. package/es/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -7
  496. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +4 -0
  497. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +1 -0
  498. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +6 -0
  499. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.css +4 -0
  500. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.min.css +1 -0
  501. package/es/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.scss +6 -0
  502. package/es/extensions/forms/Form/Handler/Handler.js +1 -0
  503. package/es/extensions/forms/Form/Handler/Handler.js.map +1 -1
  504. package/es/extensions/forms/Form/Visibility/Visibility.js +0 -1
  505. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  506. package/es/extensions/forms/Form/hooks/useData.d.ts +10 -0
  507. package/es/extensions/forms/Form/hooks/useData.js +32 -0
  508. package/es/extensions/forms/Form/hooks/useData.js.map +1 -0
  509. package/es/extensions/forms/Form/index.d.ts +1 -0
  510. package/es/extensions/forms/Form/index.js +1 -0
  511. package/es/extensions/forms/Form/index.js.map +1 -1
  512. package/es/extensions/forms/Iterate/Array/Array.js +1 -3
  513. package/es/extensions/forms/Iterate/Array/Array.js.map +1 -1
  514. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  515. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +2 -2
  516. package/es/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  517. package/es/extensions/forms/Value/Currency/Currency.d.ts +2 -2
  518. package/es/extensions/forms/Value/Currency/Currency.js +2 -2
  519. package/es/extensions/forms/Value/Currency/Currency.js.map +1 -1
  520. package/es/extensions/forms/Value/Date/Date.d.ts +2 -2
  521. package/es/extensions/forms/Value/Date/Date.js +2 -2
  522. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  523. package/es/extensions/forms/Value/Email/Email.d.ts +2 -2
  524. package/es/extensions/forms/Value/Email/Email.js +2 -2
  525. package/es/extensions/forms/Value/Email/Email.js.map +1 -1
  526. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  527. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +2 -2
  528. package/es/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  529. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.d.ts +2 -2
  530. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js +2 -2
  531. package/es/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  532. package/es/extensions/forms/hooks/useDataValue.d.ts +4 -0
  533. package/es/extensions/forms/hooks/useDataValue.js +13 -9
  534. package/es/extensions/forms/hooks/useDataValue.js.map +1 -1
  535. package/es/extensions/forms/style/dnb-forms.css +12 -14
  536. package/es/extensions/forms/style/dnb-forms.min.css +1 -1
  537. package/es/extensions/forms/types.d.ts +7 -9
  538. package/es/extensions/forms/types.js.map +1 -1
  539. package/es/fragments/TextCounter.d.ts +12 -0
  540. package/es/fragments/TextCounter.js +4 -0
  541. package/es/fragments/TextCounter.js.map +1 -0
  542. package/es/fragments/drawer-list/DrawerListHelpers.js +1 -0
  543. package/es/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  544. package/es/fragments/index.d.ts +2 -1
  545. package/es/fragments/index.js +2 -1
  546. package/es/fragments/index.js.map +1 -1
  547. package/es/fragments/lib.d.ts +3 -1
  548. package/es/fragments/lib.js +4 -2
  549. package/es/fragments/lib.js.map +1 -1
  550. package/es/fragments/text-counter/TextCounter.d.ts +8 -0
  551. package/es/fragments/text-counter/TextCounter.js +52 -0
  552. package/es/fragments/text-counter/TextCounter.js.map +1 -0
  553. package/es/fragments/text-counter/index.d.ts +5 -0
  554. package/es/fragments/text-counter/index.js +1 -0
  555. package/es/fragments/text-counter/index.js.map +1 -0
  556. package/es/fragments/text-counter/style/dnb-text-counter.scss +15 -0
  557. package/es/fragments/text-counter/style/index.d.ts +1 -0
  558. package/es/fragments/text-counter/style/index.js +1 -0
  559. package/es/fragments/text-counter/style/index.js.map +1 -0
  560. package/es/fragments/text-counter/style/themes/dnb-text-counter-theme-sbanken.scss +8 -0
  561. package/es/fragments/text-counter/style/themes/dnb-text-counter-theme-ui.scss +8 -0
  562. package/es/fragments/text-counter/style/themes/ui.d.ts +1 -0
  563. package/es/fragments/text-counter/style/themes/ui.js +1 -0
  564. package/es/fragments/text-counter/style/themes/ui.js.map +1 -0
  565. package/es/fragments/text-counter/style.d.ts +5 -0
  566. package/es/fragments/text-counter/style.js +1 -0
  567. package/es/fragments/text-counter/style.js.map +1 -0
  568. package/es/index.d.ts +2 -1
  569. package/es/index.js +2 -1
  570. package/es/index.js.map +1 -1
  571. package/es/shared/Eufemia.d.ts +1 -1
  572. package/es/shared/Eufemia.js +2 -2
  573. package/es/shared/Eufemia.js.map +1 -1
  574. package/es/shared/helpers/EventEmitter.d.ts +5 -0
  575. package/es/shared/helpers/EventEmitter.js.map +1 -1
  576. package/es/shared/helpers/useEventEmitter.d.ts +2 -0
  577. package/es/shared/helpers/useEventEmitter.js.map +1 -1
  578. package/es/shared/helpers/useSharedState.d.ts +17 -0
  579. package/es/shared/helpers/useSharedState.js +80 -0
  580. package/es/shared/helpers/useSharedState.js.map +1 -0
  581. package/es/shared/locales/en-GB.d.ts +6 -0
  582. package/es/shared/locales/en-GB.js +8 -2
  583. package/es/shared/locales/en-GB.js.map +1 -1
  584. package/es/shared/locales/en-US.d.ts +6 -0
  585. package/es/shared/locales/index.d.ts +12 -0
  586. package/es/shared/locales/nb-NO.d.ts +6 -0
  587. package/es/shared/locales/nb-NO.js +6 -0
  588. package/es/shared/locales/nb-NO.js.map +1 -1
  589. package/es/style/dnb-ui-components.css +49 -23
  590. package/es/style/dnb-ui-components.min.css +3 -3
  591. package/es/style/dnb-ui-extensions.css +12 -14
  592. package/es/style/dnb-ui-extensions.min.css +1 -1
  593. package/es/style/dnb-ui-forms.css +12 -14
  594. package/es/style/dnb-ui-forms.min.css +1 -1
  595. package/es/style/dnb-ui-fragments.css +10 -0
  596. package/es/style/dnb-ui-fragments.min.css +1 -1
  597. package/es/style/dnb-ui-fragments.scss +1 -0
  598. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +96 -39
  599. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  600. package/es/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
  601. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -14
  602. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  603. package/es/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  604. package/es/style/themes/theme-eiendom/eiendom-theme-forms.css +21 -14
  605. package/es/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  606. package/es/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  607. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +85 -38
  608. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  609. package/es/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
  610. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -14
  611. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
  612. package/es/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  613. package/es/style/themes/theme-sbanken/sbanken-theme-forms.css +21 -14
  614. package/es/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
  615. package/es/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  616. package/es/style/themes/theme-ui/ui-theme-components.css +96 -39
  617. package/es/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  618. package/es/style/themes/theme-ui/ui-theme-components.scss +1 -0
  619. package/es/style/themes/theme-ui/ui-theme-extensions.css +21 -14
  620. package/es/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  621. package/es/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  622. package/es/style/themes/theme-ui/ui-theme-forms.css +21 -14
  623. package/es/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  624. package/es/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  625. package/esm/dnb-ui-basis.min.mjs +1 -1
  626. package/esm/dnb-ui-components.min.mjs +1 -1
  627. package/esm/dnb-ui-elements.min.mjs +1 -1
  628. package/esm/dnb-ui-extensions.min.mjs +3 -3
  629. package/esm/dnb-ui-lib.min.mjs +1 -1
  630. package/extensions/forms/DataContext/Provider/Provider.d.ts +8 -4
  631. package/extensions/forms/DataContext/Provider/Provider.js +32 -4
  632. package/extensions/forms/DataContext/Provider/Provider.js.map +1 -1
  633. package/extensions/forms/Field/ArraySelection/ArraySelection.js +17 -15
  634. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  635. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.css +12 -2
  636. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.min.css +1 -1
  637. package/extensions/forms/Field/ArraySelection/style/dnb-array-selection.scss +12 -2
  638. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  639. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js +3 -3
  640. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  641. package/extensions/forms/Field/Boolean/Boolean.d.ts +2 -2
  642. package/extensions/forms/Field/Boolean/Boolean.js +2 -2
  643. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  644. package/extensions/forms/Field/Currency/Currency.d.ts +2 -2
  645. package/extensions/forms/Field/Currency/Currency.js +2 -2
  646. package/extensions/forms/Field/Currency/Currency.js.map +1 -1
  647. package/extensions/forms/Field/Date/Date.js +4 -5
  648. package/extensions/forms/Field/Date/Date.js.map +1 -1
  649. package/extensions/forms/Field/Email/Email.d.ts +2 -2
  650. package/extensions/forms/Field/Email/Email.js +3 -3
  651. package/extensions/forms/Field/Email/Email.js.map +1 -1
  652. package/extensions/forms/Field/Expiry/Expiry.d.ts +1 -1
  653. package/extensions/forms/Field/Expiry/Expiry.js +33 -22
  654. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  655. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  656. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js +3 -3
  657. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  658. package/extensions/forms/Field/Number/Number.js +12 -15
  659. package/extensions/forms/Field/Number/Number.js.map +1 -1
  660. package/extensions/forms/Field/Number/style/dnb-number.css +0 -6
  661. package/extensions/forms/Field/Number/style/dnb-number.min.css +1 -1
  662. package/extensions/forms/Field/Number/style/dnb-number.scss +0 -1
  663. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.css +4 -0
  664. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.min.css +1 -1
  665. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-sbanken.scss +7 -0
  666. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.css +4 -0
  667. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.min.css +1 -1
  668. package/extensions/forms/Field/Number/style/themes/dnb-number-theme-ui.scss +9 -0
  669. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  670. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js +3 -3
  671. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  672. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +2 -2
  673. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +18 -12
  674. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  675. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +2 -2
  676. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +3 -3
  677. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  678. package/extensions/forms/Field/SelectCountry/SelectCountry.js +6 -3
  679. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  680. package/extensions/forms/Field/Selection/Selection.d.ts +7 -1
  681. package/extensions/forms/Field/Selection/Selection.js +12 -12
  682. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  683. package/extensions/forms/Field/String/String.d.ts +3 -2
  684. package/extensions/forms/Field/String/String.js +11 -11
  685. package/extensions/forms/Field/String/String.js.map +1 -1
  686. package/extensions/forms/Field/Toggle/Toggle.js +14 -14
  687. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  688. package/extensions/forms/FieldBlock/FieldBlock.d.ts +2 -2
  689. package/extensions/forms/FieldBlock/FieldBlock.js +5 -8
  690. package/extensions/forms/FieldBlock/FieldBlock.js.map +1 -1
  691. package/extensions/forms/FieldBlock/style/dnb-field-block.css +0 -6
  692. package/extensions/forms/FieldBlock/style/dnb-field-block.min.css +1 -1
  693. package/extensions/forms/FieldBlock/style/dnb-field-block.scss +0 -7
  694. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.css +4 -0
  695. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.min.css +1 -0
  696. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-sbanken.scss +6 -0
  697. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.css +4 -0
  698. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.min.css +1 -0
  699. package/extensions/forms/FieldBlock/style/themes/dnb-field-block-theme-ui.scss +6 -0
  700. package/extensions/forms/Form/Handler/Handler.js +1 -0
  701. package/extensions/forms/Form/Handler/Handler.js.map +1 -1
  702. package/extensions/forms/Form/Visibility/Visibility.js +0 -1
  703. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  704. package/extensions/forms/Form/hooks/useData.d.ts +10 -0
  705. package/extensions/forms/Form/hooks/useData.js +33 -0
  706. package/extensions/forms/Form/hooks/useData.js.map +1 -0
  707. package/extensions/forms/Form/index.d.ts +1 -0
  708. package/extensions/forms/Form/index.js +1 -0
  709. package/extensions/forms/Form/index.js.map +1 -1
  710. package/extensions/forms/Iterate/Array/Array.js +1 -3
  711. package/extensions/forms/Iterate/Array/Array.js.map +1 -1
  712. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  713. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js +2 -2
  714. package/extensions/forms/Value/BankAccountNumber/BankAccountNumber.js.map +1 -1
  715. package/extensions/forms/Value/Currency/Currency.d.ts +2 -2
  716. package/extensions/forms/Value/Currency/Currency.js +2 -2
  717. package/extensions/forms/Value/Currency/Currency.js.map +1 -1
  718. package/extensions/forms/Value/Date/Date.d.ts +2 -2
  719. package/extensions/forms/Value/Date/Date.js +2 -2
  720. package/extensions/forms/Value/Date/Date.js.map +1 -1
  721. package/extensions/forms/Value/Email/Email.d.ts +2 -2
  722. package/extensions/forms/Value/Email/Email.js +2 -2
  723. package/extensions/forms/Value/Email/Email.js.map +1 -1
  724. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  725. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js +2 -2
  726. package/extensions/forms/Value/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  727. package/extensions/forms/Value/PhoneNumber/PhoneNumber.d.ts +2 -2
  728. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js +2 -2
  729. package/extensions/forms/Value/PhoneNumber/PhoneNumber.js.map +1 -1
  730. package/extensions/forms/hooks/useDataValue.d.ts +4 -0
  731. package/extensions/forms/hooks/useDataValue.js +14 -10
  732. package/extensions/forms/hooks/useDataValue.js.map +1 -1
  733. package/extensions/forms/style/dnb-forms.css +12 -14
  734. package/extensions/forms/style/dnb-forms.min.css +1 -1
  735. package/extensions/forms/types.d.ts +7 -9
  736. package/extensions/forms/types.js.map +1 -1
  737. package/fragments/TextCounter.d.ts +12 -0
  738. package/fragments/TextCounter.js +4 -0
  739. package/fragments/TextCounter.js.map +1 -0
  740. package/fragments/drawer-list/DrawerListHelpers.js +1 -0
  741. package/fragments/drawer-list/DrawerListHelpers.js.map +1 -1
  742. package/fragments/index.d.ts +2 -1
  743. package/fragments/index.js +2 -1
  744. package/fragments/index.js.map +1 -1
  745. package/fragments/lib.d.ts +3 -1
  746. package/fragments/lib.js +4 -2
  747. package/fragments/lib.js.map +1 -1
  748. package/fragments/text-counter/TextCounter.d.ts +8 -0
  749. package/fragments/text-counter/TextCounter.js +52 -0
  750. package/fragments/text-counter/TextCounter.js.map +1 -0
  751. package/fragments/text-counter/index.d.ts +5 -0
  752. package/fragments/text-counter/index.js +1 -0
  753. package/fragments/text-counter/index.js.map +1 -0
  754. package/fragments/text-counter/style/dnb-text-counter.scss +15 -0
  755. package/fragments/text-counter/style/index.d.ts +1 -0
  756. package/fragments/text-counter/style/index.js +1 -0
  757. package/fragments/text-counter/style/index.js.map +1 -0
  758. package/fragments/text-counter/style/themes/dnb-text-counter-theme-sbanken.scss +8 -0
  759. package/fragments/text-counter/style/themes/dnb-text-counter-theme-ui.scss +8 -0
  760. package/fragments/text-counter/style/themes/ui.d.ts +1 -0
  761. package/fragments/text-counter/style/themes/ui.js +1 -0
  762. package/fragments/text-counter/style/themes/ui.js.map +1 -0
  763. package/fragments/text-counter/style.d.ts +5 -0
  764. package/fragments/text-counter/style.js +1 -0
  765. package/fragments/text-counter/style.js.map +1 -0
  766. package/index.d.ts +2 -1
  767. package/index.js +2 -1
  768. package/index.js.map +1 -1
  769. package/package.json +1 -1
  770. package/shared/Eufemia.d.ts +1 -1
  771. package/shared/Eufemia.js +2 -2
  772. package/shared/Eufemia.js.map +1 -1
  773. package/shared/helpers/EventEmitter.d.ts +5 -0
  774. package/shared/helpers/EventEmitter.js.map +1 -1
  775. package/shared/helpers/useEventEmitter.d.ts +2 -0
  776. package/shared/helpers/useEventEmitter.js.map +1 -1
  777. package/shared/helpers/useSharedState.d.ts +17 -0
  778. package/shared/helpers/useSharedState.js +82 -0
  779. package/shared/helpers/useSharedState.js.map +1 -0
  780. package/shared/locales/en-GB.d.ts +6 -0
  781. package/shared/locales/en-GB.js +8 -2
  782. package/shared/locales/en-GB.js.map +1 -1
  783. package/shared/locales/en-US.d.ts +6 -0
  784. package/shared/locales/index.d.ts +12 -0
  785. package/shared/locales/nb-NO.d.ts +6 -0
  786. package/shared/locales/nb-NO.js +6 -0
  787. package/shared/locales/nb-NO.js.map +1 -1
  788. package/style/dnb-ui-components.css +49 -23
  789. package/style/dnb-ui-components.min.css +3 -3
  790. package/style/dnb-ui-extensions.css +12 -14
  791. package/style/dnb-ui-extensions.min.css +1 -1
  792. package/style/dnb-ui-forms.css +12 -14
  793. package/style/dnb-ui-forms.min.css +1 -1
  794. package/style/dnb-ui-fragments.css +10 -0
  795. package/style/dnb-ui-fragments.min.css +1 -1
  796. package/style/dnb-ui-fragments.scss +1 -0
  797. package/style/themes/theme-eiendom/eiendom-theme-components.css +96 -39
  798. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +6 -6
  799. package/style/themes/theme-eiendom/eiendom-theme-components.scss +1 -0
  800. package/style/themes/theme-eiendom/eiendom-theme-extensions.css +21 -14
  801. package/style/themes/theme-eiendom/eiendom-theme-extensions.min.css +2 -2
  802. package/style/themes/theme-eiendom/eiendom-theme-extensions.scss +1 -0
  803. package/style/themes/theme-eiendom/eiendom-theme-forms.css +21 -14
  804. package/style/themes/theme-eiendom/eiendom-theme-forms.min.css +2 -2
  805. package/style/themes/theme-eiendom/eiendom-theme-forms.scss +1 -0
  806. package/style/themes/theme-sbanken/sbanken-theme-components.css +85 -38
  807. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +6 -6
  808. package/style/themes/theme-sbanken/sbanken-theme-components.scss +1 -0
  809. package/style/themes/theme-sbanken/sbanken-theme-extensions.css +21 -14
  810. package/style/themes/theme-sbanken/sbanken-theme-extensions.min.css +2 -2
  811. package/style/themes/theme-sbanken/sbanken-theme-extensions.scss +1 -0
  812. package/style/themes/theme-sbanken/sbanken-theme-forms.css +21 -14
  813. package/style/themes/theme-sbanken/sbanken-theme-forms.min.css +2 -2
  814. package/style/themes/theme-sbanken/sbanken-theme-forms.scss +1 -0
  815. package/style/themes/theme-ui/ui-theme-components.css +96 -39
  816. package/style/themes/theme-ui/ui-theme-components.min.css +6 -6
  817. package/style/themes/theme-ui/ui-theme-components.scss +1 -0
  818. package/style/themes/theme-ui/ui-theme-extensions.css +21 -14
  819. package/style/themes/theme-ui/ui-theme-extensions.min.css +2 -2
  820. package/style/themes/theme-ui/ui-theme-extensions.scss +1 -0
  821. package/style/themes/theme-ui/ui-theme-forms.css +21 -14
  822. package/style/themes/theme-ui/ui-theme-forms.min.css +2 -2
  823. package/style/themes/theme-ui/ui-theme-forms.scss +1 -0
  824. package/umd/dnb-ui-basis.min.js +1 -1
  825. package/umd/dnb-ui-components.min.js +1 -1
  826. package/umd/dnb-ui-elements.min.js +1 -1
  827. package/umd/dnb-ui-extensions.min.js +3 -3
  828. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"String.js","names":["React","useContext","useMemo","useCallback","classnames","HelpButton","Input","Textarea","InputMasked","SharedContext","FieldBlock","useDataValue","pickSpacingProps","toCapitalized","StringComponent","props","_props$width","_value$length","_value$length2","_value$toString","sharedContext","tr","translation","Forms","errorMessages","_objectSpread","required","inputErrorRequired","minLength","stringInputErrorMinLength","maxLength","stringInputErrorMaxLength","pattern","inputErrorPattern","schema","_props$schema","type","fromInput","event","_event","_event$cleanedValue","_event2","_event3","value","emptyValue","cleanedValue","toEvent","trim","spaces","RegExp","test","replace","handleChange","transformValue","capitalize","String","preparedProps","width","id","name","className","autoComplete","inputMode","innerRef","inputClassName","layout","placeholder","label","labelDescription","labelSecondary","info","warning","error","hasError","disabled","help","multiline","leftIcon","rightIcon","clear","autoresize","autoresizeMaxRows","characterCounter","mask","handleFocus","handleBlur","transformInstantly","characterCounterElement","length","undefined","cn","sharedProps","suffix","createElement","title","contents","on_focus","on_blur","on_change","stretch","inner_ref","status","toString","_extends","forId","contentsWidth","autoresize_max_rows","icon","icon_position","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/String/String.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { JSONSchema7 } from 'json-schema'\nimport { HelpButton, Input, Textarea } from '../../../../components'\nimport { InputProps } from '../../../../components/input/Input'\nimport InputMasked, {\n InputMaskedProps,\n} from '../../../../components/InputMasked'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlock from '../../FieldBlock'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps, FieldHelpProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { toCapitalized } from '../../../../shared/component-helper'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minLength?: string\n maxLength?: string\n pattern?: string\n}\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string, ErrorMessages> & {\n type?: InputProps['type']\n multiline?: boolean\n leftIcon?: string\n rightIcon?: string\n inputClassName?: string\n innerRef?: React.RefObject<HTMLInputElement | HTMLTextAreaElement>\n clear?: boolean\n autoresize?: boolean\n autoComplete?: HTMLInputElement['autocomplete']\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode']\n autoresizeMaxRows?: number\n characterCounter?: boolean\n mask?: InputMaskedProps['mask']\n // Validation\n minLength?: number\n maxLength?: number\n pattern?: string\n // Styling\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n }\n\nfunction StringComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const tr = sharedContext?.translation.Forms\n\n const errorMessages = useMemo(\n () => ({\n required: tr.inputErrorRequired,\n minLength: tr.stringInputErrorMinLength,\n maxLength: tr.stringInputErrorMaxLength,\n pattern: tr.inputErrorPattern,\n ...props.errorMessages,\n }),\n [tr, props.errorMessages]\n )\n const schema = useMemo<JSONSchema7>(\n () =>\n props.schema ?? {\n type: 'string',\n minLength: props.minLength,\n maxLength: props.maxLength,\n pattern: props.pattern,\n },\n [props.schema, props.minLength, props.maxLength, props.pattern]\n )\n const fromInput = useCallback(\n (event: { value: string; cleanedValue?: string }) => {\n if (typeof event === 'string') {\n event = { value: event }\n }\n if (event?.value === '') {\n return props.emptyValue\n }\n // Cleaned value for masked\n return event?.cleanedValue ?? event?.value\n },\n [props.emptyValue]\n )\n const toEvent = useCallback(\n (value: string, type: string) => {\n if (props.trim && type === 'onBlur') {\n const spaces = '[\\\\s ]'\n if (new RegExp(`^${spaces}|${spaces}$`).test(value)) {\n value = value.replace(\n new RegExp(`^${spaces}+|${spaces}+$`, 'g'),\n ''\n )\n handleChange(value)\n }\n }\n return value\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.trim]\n )\n const transformValue = useCallback(\n (value: string) => {\n if (props.capitalize) {\n value = toCapitalized(String(value || ''))\n }\n return value\n },\n [props.capitalize]\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput,\n toEvent,\n transformValue,\n width: props.width ?? 'large',\n }\n\n const {\n id,\n name,\n className,\n autoComplete,\n inputMode,\n innerRef,\n inputClassName,\n layout,\n type,\n placeholder,\n label,\n labelDescription,\n labelSecondary,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n multiline,\n leftIcon,\n rightIcon,\n clear,\n autoresize = true,\n autoresizeMaxRows = 6,\n characterCounter,\n mask,\n width,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n const transformInstantly = useCallback(\n (value: string) => (props.capitalize ? toCapitalized(value) : value),\n [props.capitalize]\n )\n\n const characterCounterElement = characterCounter\n ? props.maxLength\n ? `${value?.length ?? '0'}/${props.maxLength}`\n : `${value?.length ?? '0'}`\n : undefined\n const cn = classnames('dnb-forms-field-string__input', inputClassName)\n\n const sharedProps = {\n id,\n name,\n autoComplete,\n inputMode,\n className: cn,\n placeholder: placeholder,\n suffix: help ? (\n <HelpButton title={help.title}>{help.contents}</HelpButton>\n ) : undefined,\n on_focus: handleFocus,\n on_blur: handleBlur,\n on_change: handleChange,\n disabled: disabled,\n stretch: width !== undefined,\n inner_ref: innerRef,\n status: error || hasError ? 'error' : undefined,\n value: transformInstantly(value?.toString() ?? ''),\n }\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-string', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n labelSecondary={labelSecondary ?? characterCounterElement}\n info={info}\n warning={warning}\n disabled={disabled}\n error={error}\n width={width === 'stretch' ? width : undefined}\n contentsWidth={width !== false ? width : undefined}\n {...pickSpacingProps(props)}\n >\n {multiline ? (\n <Textarea\n {...sharedProps}\n autoresize={autoresize}\n autoresize_max_rows={autoresizeMaxRows}\n />\n ) : mask ? (\n <InputMasked\n {...sharedProps}\n mask={mask}\n icon={leftIcon ?? rightIcon}\n icon_position={rightIcon && !leftIcon ? 'right' : undefined}\n />\n ) : (\n <Input\n {...sharedProps}\n type={type}\n icon={leftIcon ?? rightIcon}\n icon_position={rightIcon && !leftIcon ? 'right' : undefined}\n clear={clear}\n />\n )}\n </FieldBlock>\n )\n}\n\nStringComponent._supportsSpacingProps = true\nexport default StringComponent\n"],"mappings":"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"}
1
+ {"version":3,"file":"String.js","names":["React","useContext","useMemo","useCallback","classnames","HelpButton","Input","Textarea","InputMasked","SharedContext","FieldBlock","useDataValue","pickSpacingProps","toCapitalized","StringComponent","props","_props$width","_value$toString","sharedContext","tr","translation","Forms","errorMessages","_objectSpread","required","inputErrorRequired","minLength","stringInputErrorMinLength","maxLength","stringInputErrorMaxLength","pattern","inputErrorPattern","schema","_props$schema","type","fromInput","event","_event","_event$cleanedValue","_event2","_event3","value","emptyValue","cleanedValue","toEvent","trim","spaces","RegExp","test","replace","handleChange","transformValue","capitalize","String","preparedProps","width","id","name","className","autoComplete","inputMode","innerRef","inputClassName","layout","placeholder","label","labelDescription","info","warning","error","hasError","disabled","help","multiline","leftIcon","rightIcon","clear","autoresize","autoresizeMaxRows","characterCounter","mask","ariaAttributes","handleFocus","handleBlur","transformInstantly","cn","sharedProps","suffix","createElement","title","content","undefined","on_focus","on_blur","on_change","stretch","inner_ref","status","toString","_extends","forId","contentWidth","autoresize_max_rows","icon","icon_position","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/String/String.tsx"],"sourcesContent":["import React, { useContext, useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { HelpButton, Input, Textarea } from '../../../../components'\nimport { InputProps } from '../../../../components/input/Input'\nimport InputMasked, {\n InputMaskedProps,\n} from '../../../../components/InputMasked'\nimport SharedContext from '../../../../shared/Context'\nimport FieldBlock from '../../FieldBlock'\nimport { useDataValue } from '../../hooks'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport { toCapitalized } from '../../../../shared/component-helper'\nimport type { TextCounterProps } from '../../../../fragments/TextCounter'\nimport type { FieldProps, FieldHelpProps, JSONSchema } from '../../types'\n\ninterface ErrorMessages {\n required?: string\n schema?: string\n minLength?: string\n maxLength?: string\n pattern?: string\n}\nexport type Props = FieldHelpProps &\n FieldProps<string, undefined | string, ErrorMessages> & {\n type?: InputProps['type']\n multiline?: boolean\n leftIcon?: string\n rightIcon?: string\n inputClassName?: string\n innerRef?: React.RefObject<HTMLInputElement | HTMLTextAreaElement>\n clear?: boolean\n autoresize?: boolean\n autoComplete?: HTMLInputElement['autocomplete']\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode']\n autoresizeMaxRows?: number\n characterCounter?: Omit<TextCounterProps, 'text'> | number\n mask?: InputMaskedProps['mask']\n // Validation\n minLength?: number\n maxLength?: number\n pattern?: string\n // Styling\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n }\n\nfunction StringComponent(props: Props) {\n const sharedContext = useContext(SharedContext)\n const tr = sharedContext?.translation.Forms\n\n const errorMessages = useMemo(\n () => ({\n required: tr.inputErrorRequired,\n minLength: tr.stringInputErrorMinLength,\n maxLength: tr.stringInputErrorMaxLength,\n pattern: tr.inputErrorPattern,\n ...props.errorMessages,\n }),\n [tr, props.errorMessages]\n )\n const schema = useMemo<JSONSchema>(\n () =>\n props.schema ?? {\n type: 'string',\n minLength: props.minLength,\n maxLength: props.maxLength,\n pattern: props.pattern,\n },\n [props.schema, props.minLength, props.maxLength, props.pattern]\n )\n const fromInput = useCallback(\n (event: { value: string; cleanedValue?: string }) => {\n if (typeof event === 'string') {\n event = { value: event }\n }\n if (event?.value === '') {\n return props.emptyValue\n }\n // Cleaned value for masked\n return event?.cleanedValue ?? event?.value\n },\n [props.emptyValue]\n )\n const toEvent = useCallback(\n (value: string, type: string) => {\n if (props.trim && type === 'onBlur') {\n const spaces = '[\\\\s ]'\n if (new RegExp(`^${spaces}|${spaces}$`).test(value)) {\n value = value.replace(\n new RegExp(`^${spaces}+|${spaces}+$`, 'g'),\n ''\n )\n handleChange(value)\n }\n }\n return value\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.trim]\n )\n const transformValue = useCallback(\n (value: string) => {\n if (props.capitalize) {\n value = toCapitalized(String(value || ''))\n }\n return value\n },\n [props.capitalize]\n )\n\n const preparedProps: Props = {\n ...props,\n errorMessages,\n schema,\n fromInput,\n toEvent,\n transformValue,\n width: props.width ?? 'large',\n }\n\n const {\n id,\n name,\n className,\n autoComplete,\n inputMode,\n innerRef,\n inputClassName,\n layout,\n type,\n placeholder,\n label,\n labelDescription,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n help,\n multiline,\n leftIcon,\n rightIcon,\n clear,\n autoresize = true,\n autoresizeMaxRows = 6,\n characterCounter,\n mask,\n width,\n ariaAttributes,\n handleFocus,\n handleBlur,\n handleChange,\n } = useDataValue(preparedProps)\n\n const transformInstantly = useCallback(\n (value: string) => (props.capitalize ? toCapitalized(value) : value),\n [props.capitalize]\n )\n\n const cn = classnames('dnb-forms-field-string__input', inputClassName)\n\n const sharedProps = {\n id,\n name,\n autoComplete,\n inputMode,\n className: cn,\n placeholder: placeholder,\n suffix: help ? (\n <HelpButton title={help.title}>{help.content}</HelpButton>\n ) : undefined,\n on_focus: handleFocus,\n on_blur: handleBlur,\n on_change: handleChange,\n disabled,\n ...ariaAttributes,\n stretch: width !== undefined,\n inner_ref: innerRef,\n status: hasError ? 'error' : undefined,\n value: transformInstantly(value?.toString() ?? ''),\n }\n\n return (\n <FieldBlock\n className={classnames('dnb-forms-field-string', className)}\n forId={id}\n layout={layout}\n label={label}\n labelDescription={labelDescription}\n info={info}\n warning={warning}\n disabled={disabled}\n error={error}\n width={width === 'stretch' ? width : undefined}\n contentWidth={width !== false ? width : undefined}\n {...pickSpacingProps(props)}\n >\n {multiline ? (\n <Textarea\n {...sharedProps}\n autoresize={autoresize}\n autoresize_max_rows={autoresizeMaxRows}\n characterCounter={characterCounter}\n />\n ) : mask ? (\n <InputMasked\n {...sharedProps}\n mask={mask}\n icon={leftIcon ?? rightIcon}\n icon_position={rightIcon && !leftIcon ? 'right' : undefined}\n />\n ) : (\n <Input\n {...sharedProps}\n type={type}\n icon={leftIcon ?? rightIcon}\n icon_position={rightIcon && !leftIcon ? 'right' : undefined}\n clear={clear}\n />\n )}\n </FieldBlock>\n )\n}\n\nStringComponent._supportsSpacingProps = true\nexport default StringComponent\n"],"mappings":"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"}
@@ -25,13 +25,14 @@ function Toggle(props) {
25
25
  disabled,
26
26
  label,
27
27
  labelDescription,
28
- labelSecondary,
29
28
  textOn,
30
29
  textOff,
31
30
  value,
32
31
  info,
33
32
  warning,
34
33
  error,
34
+ hasError,
35
+ ariaAttributes,
35
36
  handleChange
36
37
  } = useDataValue(props);
37
38
  const handleCheckboxChange = useCallback(({
@@ -58,7 +59,6 @@ function Toggle(props) {
58
59
  layout,
59
60
  label,
60
61
  labelDescription,
61
- labelSecondary,
62
62
  disabled
63
63
  });
64
64
  const isOn = value === valueOn;
@@ -72,19 +72,19 @@ function Toggle(props) {
72
72
  label: label,
73
73
  checked: isOn,
74
74
  disabled: disabled,
75
- status: error ? 'error' : undefined,
75
+ status: hasError ? 'error' : undefined,
76
76
  on_change: handleCheckboxChange
77
- }, pickSpacingProps(props))));
77
+ }, ariaAttributes, pickSpacingProps(props))));
78
78
  case 'button':
79
- return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ToggleButton, {
79
+ return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ToggleButton, _extends({
80
80
  id: id,
81
81
  text: isOn ? textOn !== null && textOn !== void 0 ? textOn : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanYes : textOff !== null && textOff !== void 0 ? textOff : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanNo,
82
82
  checked: isOn,
83
83
  disabled: disabled,
84
- status: error ? 'error' : undefined,
84
+ status: hasError ? 'error' : undefined,
85
85
  value: value ? 'true' : 'false',
86
86
  on_change: handleCheckboxChange
87
- }));
87
+ }, ariaAttributes)));
88
88
  case 'buttons':
89
89
  return React.createElement(FieldBlock, _extends({}, fieldBlockProps, {
90
90
  asFieldset: true
@@ -94,27 +94,27 @@ function Toggle(props) {
94
94
  value: {
95
95
  value: isOn ? 'on' : isOff ? 'off' : undefined,
96
96
  onChange: handleToggleChange,
97
- status: error ? 'error' : undefined,
97
+ status: hasError ? 'error' : undefined,
98
98
  disabled
99
99
  }
100
- }, React.createElement(ToggleButton, {
100
+ }, React.createElement(ToggleButton, _extends({
101
101
  text: textOn !== null && textOn !== void 0 ? textOn : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanYes,
102
102
  value: "on"
103
- }), React.createElement(ToggleButton, {
103
+ }, ariaAttributes)), React.createElement(ToggleButton, _extends({
104
104
  text: textOff !== null && textOff !== void 0 ? textOff : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanNo,
105
105
  value: "off"
106
- }))));
106
+ }, ariaAttributes)))));
107
107
  case 'checkbox-button':
108
- return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ToggleButton, {
108
+ return React.createElement(FieldBlock, fieldBlockProps, React.createElement(ToggleButton, _extends({
109
109
  id: id,
110
110
  variant: "checkbox",
111
111
  text: isOn ? textOn !== null && textOn !== void 0 ? textOn : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanYes : textOff !== null && textOff !== void 0 ? textOff : sharedContext === null || sharedContext === void 0 ? void 0 : sharedContext.translation.Forms.booleanNo,
112
112
  checked: isOn,
113
113
  disabled: disabled,
114
- status: error ? 'error' : undefined,
114
+ status: hasError ? 'error' : undefined,
115
115
  value: value ? 'true' : 'false',
116
116
  on_change: handleCheckboxChange
117
- }));
117
+ }, ariaAttributes)));
118
118
  }
119
119
  }
120
120
  Toggle._supportsSpacingProps = true;
@@ -1 +1 @@
1
- {"version":3,"file":"Toggle.js","names":["React","useContext","useCallback","Checkbox","ToggleButton","classnames","ButtonRow","FieldBlock","useDataValue","pickSpacingProps","SharedContext","ToggleButtonGroupContext","Toggle","props","sharedContext","id","className","valueOn","valueOff","layout","variant","disabled","label","labelDescription","labelSecondary","textOn","textOff","value","info","warning","error","handleChange","handleCheckboxChange","checked","handleToggleChange","cn","fieldBlockPropsWithoutLabel","_objectSpread","forId","fieldBlockProps","isOn","isOff","createElement","_extends","status","undefined","on_change","text","translation","Forms","booleanYes","booleanNo","asFieldset","bottom","Provider","onChange","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useContext, useCallback } from 'react'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport classnames from 'classnames'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock from '../../FieldBlock'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\nexport type Props = FieldProps<unknown> & {\n valueOn: unknown\n valueOff: unknown\n variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons'\n textOn?: string\n textOff?: string\n}\n\nfunction Toggle(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n id,\n className,\n valueOn,\n valueOff,\n layout,\n variant,\n disabled,\n label,\n labelDescription,\n labelSecondary,\n textOn,\n textOff,\n value,\n info,\n warning,\n error,\n handleChange,\n } = useDataValue(props)\n\n const handleCheckboxChange = useCallback(\n ({ checked }) => {\n handleChange?.(checked ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleToggleChange = useCallback(\n ({ value }) => {\n handleChange?.(value === 'on' ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n\n const cn = classnames('dnb-forms-field-toggle', className)\n\n const fieldBlockPropsWithoutLabel = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n disabled,\n }\n\n const fieldBlockProps = {\n ...fieldBlockPropsWithoutLabel,\n layout,\n label,\n labelDescription,\n labelSecondary,\n disabled,\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockPropsWithoutLabel}>\n <Checkbox\n id={id}\n className={cn}\n label={label}\n checked={isOn}\n disabled={disabled}\n status={error ? 'error' : undefined}\n on_change={handleCheckboxChange}\n {...pickSpacingProps(props)}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? sharedContext?.translation.Forms.booleanYes\n : textOff ?? sharedContext?.translation.Forms.booleanNo\n }\n checked={isOn}\n disabled={disabled}\n status={error ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n on_change={handleCheckboxChange}\n />\n </FieldBlock>\n )\n case 'buttons':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <ButtonRow bottom=\"x-small\">\n <ToggleButtonGroupContext.Provider\n value={{\n value: isOn ? 'on' : isOff ? 'off' : undefined,\n onChange: handleToggleChange,\n status: error ? 'error' : undefined,\n disabled,\n }}\n >\n <ToggleButton\n text={\n textOn ?? sharedContext?.translation.Forms.booleanYes\n }\n value=\"on\"\n />\n <ToggleButton\n text={\n textOff ?? sharedContext?.translation.Forms.booleanNo\n }\n value=\"off\"\n />\n </ToggleButtonGroupContext.Provider>\n </ButtonRow>\n </FieldBlock>\n )\n case 'checkbox-button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n variant=\"checkbox\"\n text={\n isOn\n ? textOn ?? sharedContext?.translation.Forms.booleanYes\n : textOff ?? sharedContext?.translation.Forms.booleanNo\n }\n checked={isOn}\n disabled={disabled}\n status={error ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n on_change={handleCheckboxChange}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":"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"}
1
+ {"version":3,"file":"Toggle.js","names":["React","useContext","useCallback","Checkbox","ToggleButton","classnames","ButtonRow","FieldBlock","useDataValue","pickSpacingProps","SharedContext","ToggleButtonGroupContext","Toggle","props","sharedContext","id","className","valueOn","valueOff","layout","variant","disabled","label","labelDescription","textOn","textOff","value","info","warning","error","hasError","ariaAttributes","handleChange","handleCheckboxChange","checked","handleToggleChange","cn","fieldBlockPropsWithoutLabel","_objectSpread","forId","fieldBlockProps","isOn","isOff","createElement","_extends","status","undefined","on_change","text","translation","Forms","booleanYes","booleanNo","asFieldset","bottom","Provider","onChange","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useContext, useCallback } from 'react'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport classnames from 'classnames'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock from '../../FieldBlock'\nimport { useDataValue } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport SharedContext from '../../../../shared/Context'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\n\nexport type Props = FieldProps<unknown> & {\n valueOn: unknown\n valueOff: unknown\n variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons'\n textOn?: string\n textOff?: string\n}\n\nfunction Toggle(props: Props) {\n const sharedContext = useContext(SharedContext)\n const {\n id,\n className,\n valueOn,\n valueOff,\n layout,\n variant,\n disabled,\n label,\n labelDescription,\n textOn,\n textOff,\n value,\n info,\n warning,\n error,\n hasError,\n ariaAttributes,\n handleChange,\n } = useDataValue(props)\n\n const handleCheckboxChange = useCallback(\n ({ checked }) => {\n handleChange?.(checked ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n const handleToggleChange = useCallback(\n ({ value }) => {\n handleChange?.(value === 'on' ? valueOn : valueOff)\n },\n [handleChange, valueOn, valueOff]\n )\n\n const cn = classnames('dnb-forms-field-toggle', className)\n\n const fieldBlockPropsWithoutLabel = {\n forId: id,\n className: cn,\n ...pickSpacingProps(props),\n info,\n warning,\n error,\n disabled,\n }\n\n const fieldBlockProps = {\n ...fieldBlockPropsWithoutLabel,\n layout,\n label,\n labelDescription,\n disabled,\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockPropsWithoutLabel}>\n <Checkbox\n id={id}\n className={cn}\n label={label}\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n on_change={handleCheckboxChange}\n {...ariaAttributes}\n {...pickSpacingProps(props)}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? sharedContext?.translation.Forms.booleanYes\n : textOff ?? sharedContext?.translation.Forms.booleanNo\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n on_change={handleCheckboxChange}\n {...ariaAttributes}\n />\n </FieldBlock>\n )\n case 'buttons':\n return (\n <FieldBlock {...fieldBlockProps} asFieldset>\n <ButtonRow bottom=\"x-small\">\n <ToggleButtonGroupContext.Provider\n value={{\n value: isOn ? 'on' : isOff ? 'off' : undefined,\n onChange: handleToggleChange,\n status: hasError ? 'error' : undefined,\n disabled,\n }}\n >\n <ToggleButton\n text={\n textOn ?? sharedContext?.translation.Forms.booleanYes\n }\n value=\"on\"\n {...ariaAttributes}\n />\n <ToggleButton\n text={\n textOff ?? sharedContext?.translation.Forms.booleanNo\n }\n value=\"off\"\n {...ariaAttributes}\n />\n </ToggleButtonGroupContext.Provider>\n </ButtonRow>\n </FieldBlock>\n )\n case 'checkbox-button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n variant=\"checkbox\"\n text={\n isOn\n ? textOn ?? sharedContext?.translation.Forms.booleanYes\n : textOff ?? sharedContext?.translation.Forms.booleanNo\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n on_change={handleCheckboxChange}\n {...ariaAttributes}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":";;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,WAAW,QAAQ,OAAO;AACtD,SAASC,QAAQ,EAAEC,YAAY,QAAQ,wBAAwB;AAC/D,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,SAAS,MAAM,sBAAsB;AAC5C,OAAOC,UAAU,MAAM,kBAAkB;AACzC,SAASC,YAAY,QAAQ,aAAa;AAE1C,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,aAAa,MAAM,4BAA4B;AACtD,OAAOC,wBAAwB,MAAM,+DAA+D;AAUpG,SAASC,MAAMA,CAACC,KAAY,EAAE;EAC5B,MAAMC,aAAa,GAAGb,UAAU,CAACS,aAAa,CAAC;EAC/C,MAAM;IACJK,EAAE;IACFC,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,MAAM;IACNC,OAAO;IACPC,QAAQ;IACRC,KAAK;IACLC,gBAAgB;IAChBC,MAAM;IACNC,OAAO;IACPC,KAAK;IACLC,IAAI;IACJC,OAAO;IACPC,KAAK;IACLC,QAAQ;IACRC,cAAc;IACdC;EACF,CAAC,GAAGxB,YAAY,CAACK,KAAK,CAAC;EAEvB,MAAMoB,oBAAoB,GAAG/B,WAAW,CACtC,CAAC;IAAEgC;EAAQ,CAAC,KAAK;IACfF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGE,OAAO,GAAGjB,OAAO,GAAGC,QAAQ,CAAC;EAC9C,CAAC,EACD,CAACc,YAAY,EAAEf,OAAO,EAAEC,QAAQ,CAClC,CAAC;EACD,MAAMiB,kBAAkB,GAAGjC,WAAW,CACpC,CAAC;IAAEwB;EAAM,CAAC,KAAK;IACbM,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGN,KAAK,KAAK,IAAI,GAAGT,OAAO,GAAGC,QAAQ,CAAC;EACrD,CAAC,EACD,CAACc,YAAY,EAAEf,OAAO,EAAEC,QAAQ,CAClC,CAAC;EAED,MAAMkB,EAAE,GAAG/B,UAAU,CAAC,wBAAwB,EAAEW,SAAS,CAAC;EAE1D,MAAMqB,2BAA2B,GAAAC,aAAA,CAAAA,aAAA;IAC/BC,KAAK,EAAExB,EAAE;IACTC,SAAS,EAAEoB;EAAE,GACV3B,gBAAgB,CAACI,KAAK,CAAC;IAC1Bc,IAAI;IACJC,OAAO;IACPC,KAAK;IACLR;EAAQ,EACT;EAED,MAAMmB,eAAe,GAAAF,aAAA,CAAAA,aAAA,KAChBD,2BAA2B;IAC9BlB,MAAM;IACNG,KAAK;IACLC,gBAAgB;IAChBF;EAAQ,EACT;EAED,MAAMoB,IAAI,GAAGf,KAAK,KAAKT,OAAO;EAC9B,MAAMyB,KAAK,GAAGhB,KAAK,KAAKR,QAAQ;EAEhC,QAAQE,OAAO;IACb;IACA,KAAK,UAAU;MACb,OACEpB,KAAA,CAAA2C,aAAA,CAACpC,UAAU,EAAK8B,2BAA2B,EACzCrC,KAAA,CAAA2C,aAAA,CAACxC,QAAQ,EAAAyC,QAAA;QACP7B,EAAE,EAAEA,EAAG;QACPC,SAAS,EAAEoB,EAAG;QACdd,KAAK,EAAEA,KAAM;QACbY,OAAO,EAAEO,IAAK;QACdpB,QAAQ,EAAEA,QAAS;QACnBwB,MAAM,EAAEf,QAAQ,GAAG,OAAO,GAAGgB,SAAU;QACvCC,SAAS,EAAEd;MAAqB,GAC5BF,cAAc,EACdtB,gBAAgB,CAACI,KAAK,CAAC,CAC5B,CACS,CAAC;IAEjB,KAAK,QAAQ;MACX,OACEb,KAAA,CAAA2C,aAAA,CAACpC,UAAU,EAAKiC,eAAe,EAC7BxC,KAAA,CAAA2C,aAAA,CAACvC,YAAY,EAAAwC,QAAA;QACX7B,EAAE,EAAEA,EAAG;QACPiC,IAAI,EACFP,IAAI,GACAjB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIV,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEmC,WAAW,CAACC,KAAK,CAACC,UAAU,GACrD1B,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIX,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEmC,WAAW,CAACC,KAAK,CAACE,SACjD;QACDlB,OAAO,EAAEO,IAAK;QACdpB,QAAQ,EAAEA,QAAS;QACnBwB,MAAM,EAAEf,QAAQ,GAAG,OAAO,GAAGgB,SAAU;QACvCpB,KAAK,EAAEA,KAAK,GAAG,MAAM,GAAG,OAAQ;QAChCqB,SAAS,EAAEd;MAAqB,GAC5BF,cAAc,CACnB,CACS,CAAC;IAEjB,KAAK,SAAS;MACZ,OACE/B,KAAA,CAAA2C,aAAA,CAACpC,UAAU,EAAAqC,QAAA,KAAKJ,eAAe;QAAEa,UAAU;MAAA,IACzCrD,KAAA,CAAA2C,aAAA,CAACrC,SAAS;QAACgD,MAAM,EAAC;MAAS,GACzBtD,KAAA,CAAA2C,aAAA,CAAChC,wBAAwB,CAAC4C,QAAQ;QAChC7B,KAAK,EAAE;UACLA,KAAK,EAAEe,IAAI,GAAG,IAAI,GAAGC,KAAK,GAAG,KAAK,GAAGI,SAAS;UAC9CU,QAAQ,EAAErB,kBAAkB;UAC5BU,MAAM,EAAEf,QAAQ,GAAG,OAAO,GAAGgB,SAAS;UACtCzB;QACF;MAAE,GAEFrB,KAAA,CAAA2C,aAAA,CAACvC,YAAY,EAAAwC,QAAA;QACXI,IAAI,EACFxB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIV,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEmC,WAAW,CAACC,KAAK,CAACC,UAC5C;QACDzB,KAAK,EAAC;MAAI,GACNK,cAAc,CACnB,CAAC,EACF/B,KAAA,CAAA2C,aAAA,CAACvC,YAAY,EAAAwC,QAAA;QACXI,IAAI,EACFvB,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIX,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEmC,WAAW,CAACC,KAAK,CAACE,SAC7C;QACD1B,KAAK,EAAC;MAAK,GACPK,cAAc,CACnB,CACgC,CAC1B,CACD,CAAC;IAEjB,KAAK,iBAAiB;MACpB,OACE/B,KAAA,CAAA2C,aAAA,CAACpC,UAAU,EAAKiC,eAAe,EAC7BxC,KAAA,CAAA2C,aAAA,CAACvC,YAAY,EAAAwC,QAAA;QACX7B,EAAE,EAAEA,EAAG;QACPK,OAAO,EAAC,UAAU;QAClB4B,IAAI,EACFP,IAAI,GACAjB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIV,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEmC,WAAW,CAACC,KAAK,CAACC,UAAU,GACrD1B,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIX,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEmC,WAAW,CAACC,KAAK,CAACE,SACjD;QACDlB,OAAO,EAAEO,IAAK;QACdpB,QAAQ,EAAEA,QAAS;QACnBwB,MAAM,EAAEf,QAAQ,GAAG,OAAO,GAAGgB,SAAU;QACvCpB,KAAK,EAAEA,KAAK,GAAG,MAAM,GAAG,OAAQ;QAChCqB,SAAS,EAAEd;MAAqB,GAC5BF,cAAc,CACnB,CACS,CAAC;EAEnB;AACF;AAEAnB,MAAM,CAAC6C,qBAAqB,GAAG,IAAI;AACnC,eAAe7C,MAAM"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ComponentProps, FieldProps } from '../types';
3
- export type Props = Pick<FieldProps, keyof ComponentProps | 'layout' | 'label' | 'labelDescription' | 'labelSecondary' | 'info' | 'warning' | 'error' | 'disabled'> & {
3
+ export type Props = Pick<FieldProps, keyof ComponentProps | 'layout' | 'label' | 'labelDescription' | 'info' | 'warning' | 'error' | 'disabled'> & {
4
4
  forId?: string;
5
5
  contentClassName?: string;
6
6
  children: React.ReactNode;
@@ -9,7 +9,7 @@ export type Props = Pick<FieldProps, keyof ComponentProps | 'layout' | 'label' |
9
9
  /** Width of outer block element */
10
10
  width?: false | 'small' | 'medium' | 'large' | 'stretch';
11
11
  /** Width of contents block, while label etc can be wider if space is available */
12
- contentsWidth?: 'small' | 'medium' | 'large' | 'stretch';
12
+ contentWidth?: 'small' | 'medium' | 'large' | 'stretch';
13
13
  /** Typography size */
14
14
  size?: 'medium' | 'large';
15
15
  } & React.HTMLAttributes<HTMLDivElement>;
@@ -3,7 +3,7 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
- const _excluded = ["className", "forId", "layout", "label", "labelDescription", "labelSecondary", "asFieldset", "info", "warning", "error", "disabled", "width", "contentsWidth", "size", "contentClassName", "children"];
6
+ const _excluded = ["className", "forId", "layout", "label", "labelDescription", "asFieldset", "info", "warning", "error", "disabled", "width", "contentWidth", "size", "contentClassName", "children"];
7
7
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
8
8
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
9
9
  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; }
@@ -22,14 +22,13 @@ function FieldBlock(props) {
22
22
  layout = 'vertical',
23
23
  label,
24
24
  labelDescription,
25
- labelSecondary,
26
25
  asFieldset,
27
26
  info,
28
27
  warning,
29
28
  error: errorProp,
30
29
  disabled,
31
30
  width,
32
- contentsWidth,
31
+ contentWidth,
33
32
  size,
34
33
  contentClassName,
35
34
  children
@@ -112,14 +111,12 @@ function FieldBlock(props) {
112
111
  className: mainClasses
113
112
  }, rest), React.createElement("div", {
114
113
  className: gridClasses
115
- }, labelDescription || labelSecondary ? React.createElement("div", {
114
+ }, labelDescription ? React.createElement("div", {
116
115
  className: "dnb-forms-field-block__label"
117
116
  }, label || labelDescription ? React.createElement(FormLabel, labelProps, label, labelDescription && React.createElement("span", {
118
117
  className: "dnb-forms-field-block__label-description"
119
- }, labelDescription)) : React.createElement(React.Fragment, null, "\xA0"), labelSecondary && React.createElement("span", {
120
- className: "dnb-forms-field-block__label-secondary"
121
- }, labelSecondary)) : label && React.createElement(FormLabel, labelProps, label), React.createElement("div", {
122
- className: classnames('dnb-forms-field-block__contents', contentClassName, contentsWidth !== undefined && `dnb-forms-field-block__contents--width-${contentsWidth}`)
118
+ }, labelDescription)) : React.createElement(React.Fragment, null, "\xA0")) : label && React.createElement(FormLabel, labelProps, label), React.createElement("div", {
119
+ className: classnames('dnb-forms-field-block__contents', contentClassName, contentWidth !== undefined && `dnb-forms-field-block__contents--width-${contentWidth}`)
123
120
  }, children), stateStatus && React.createElement("div", {
124
121
  className: "dnb-forms-field-block__status"
125
122
  }, React.createElement(FormStatus, {
@@ -1 +1 @@
1
- {"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useState","useCallback","classnames","Space","FormLabel","FormStatus","FormError","FieldBlockContext","findElementInChildren","FieldBlock","props","nestedFieldBlockContext","className","forId","layout","label","labelDescription","labelSecondary","asFieldset","info","warning","error","errorProp","disabled","width","contentsWidth","size","contentClassName","children","rest","_objectWithoutProperties","_excluded","fieldErrorRecord","setFieldErrorRecord","showFieldErrorRecord","setShowFieldErrorRecord","setError","identifier","existing","_objectSpread","removed","newRecord","map","_toPropertyKey","setShowError","show","errors","Object","entries","filter","length","Error","message","join","undefined","mainClasses","gridClasses","enableFieldset","useEnableFieldset","state","stateStatus","labelProps","element","space","top","bottom","createElement","Provider","value","_extends","Fragment","id","text","toString","result","count","child","_child$props","_child$type","type","Boolean","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, { useMemo, useContext, useState, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { FormError, ComponentProps, FieldProps } from '../types'\nimport FieldBlockContext from './FieldBlockContext'\nimport { findElementInChildren } from '../../../shared/component-helper'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\n\nexport type Props = Pick<\n FieldProps,\n | keyof ComponentProps\n | 'layout'\n | 'label'\n | 'labelDescription'\n | 'labelSecondary'\n | 'info'\n | 'warning'\n | 'error'\n | 'disabled'\n> & {\n forId?: string\n contentClassName?: string\n children: React.ReactNode\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** Width of outer block element */\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n /** Width of contents block, while label etc can be wider if space is available */\n contentsWidth?: 'small' | 'medium' | 'large' | 'stretch'\n /** Typography size */\n size?: 'medium' | 'large'\n} & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const nestedFieldBlockContext = useContext(FieldBlockContext)\n\n const {\n className,\n forId,\n layout = 'vertical',\n label,\n labelDescription,\n labelSecondary,\n asFieldset,\n info,\n warning,\n error: errorProp,\n disabled,\n width,\n contentsWidth,\n size,\n contentClassName,\n children,\n ...rest\n } = props\n\n const [fieldErrorRecord, setFieldErrorRecord] = useState<\n Record<string, FormError>\n >({})\n const [showFieldErrorRecord, setShowFieldErrorRecord] = useState<\n Record<string, boolean>\n >({})\n\n const setError = useCallback(\n (identifier, error) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setError(identifier, error)\n return\n }\n\n setFieldErrorRecord((existing) => {\n if (error) {\n return {\n ...existing,\n [identifier]: error,\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [identifier]: removed, ...newRecord } = existing\n return newRecord\n }\n })\n },\n [nestedFieldBlockContext]\n )\n\n const setShowError = useCallback(\n (identifier, show) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setShowError(identifier, show)\n return\n }\n\n setShowFieldErrorRecord((existing) => {\n if (show) {\n return {\n ...existing,\n [identifier]: true,\n }\n } else {\n const { [identifier]: removed, ...newRecord } = existing\n return newRecord\n }\n })\n },\n [nestedFieldBlockContext]\n )\n\n const error = useMemo(() => {\n if (errorProp) {\n return errorProp\n }\n const errors = Object.entries(fieldErrorRecord)\n .filter(([identifier]) => showFieldErrorRecord[identifier] === true)\n .map(([, error]) => error)\n return errors.length > 0\n ? new Error(errors.map((error) => error.message).join(' | '))\n : undefined\n }, [errorProp, fieldErrorRecord, showFieldErrorRecord])\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width !== undefined && `dnb-forms-field-block--width-${width}`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const state = error || warning || info\n const stateStatus = error\n ? 'error'\n : warning\n ? 'warn'\n : info\n ? 'info'\n : null\n\n const labelProps: FormLabelAllProps = {\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n space: { top: 0, bottom: 'x-small' },\n size,\n disabled,\n }\n\n return (\n <FieldBlockContext.Provider\n value={{\n setError,\n setShowError,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {labelDescription || labelSecondary ? (\n <div className=\"dnb-forms-field-block__label\">\n {label || labelDescription ? (\n <FormLabel {...labelProps}>\n {label}\n {labelDescription && (\n <span className=\"dnb-forms-field-block__label-description\">\n {labelDescription}\n </span>\n )}\n </FormLabel>\n ) : (\n <>&nbsp;</>\n )}\n {labelSecondary && (\n <span className=\"dnb-forms-field-block__label-secondary\">\n {labelSecondary}\n </span>\n )}\n </div>\n ) : (\n label && <FormLabel {...labelProps}>{label}</FormLabel>\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentsWidth !== undefined &&\n `dnb-forms-field-block__contents--width-${contentsWidth}`,\n contentClassName\n )}\n >\n {children}\n </div>\n\n {stateStatus && (\n <div className=\"dnb-forms-field-block__status\">\n <FormStatus\n state={stateStatus}\n id={forId ? `${forId}-form-status` : undefined}\n text={\n error?.message ||\n (state instanceof Error && state.message) ||\n (state instanceof FormError && state.message) ||\n state?.toString()\n }\n label={label as string}\n space={{ top: 'x-small' }}\n />\n </div>\n )}\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nFieldBlock._supportsSpacingProps = true\nexport default FieldBlock\n"],"mappings":"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"}
1
+ {"version":3,"file":"FieldBlock.js","names":["React","useMemo","useContext","useState","useCallback","classnames","Space","FormLabel","FormStatus","FormError","FieldBlockContext","findElementInChildren","FieldBlock","props","nestedFieldBlockContext","className","forId","layout","label","labelDescription","asFieldset","info","warning","error","errorProp","disabled","width","contentWidth","size","contentClassName","children","rest","_objectWithoutProperties","_excluded","fieldErrorRecord","setFieldErrorRecord","showFieldErrorRecord","setShowFieldErrorRecord","setError","identifier","existing","_objectSpread","removed","newRecord","map","_toPropertyKey","setShowError","show","errors","Object","entries","filter","length","Error","message","join","undefined","mainClasses","gridClasses","enableFieldset","useEnableFieldset","state","stateStatus","labelProps","element","space","top","bottom","createElement","Provider","value","_extends","Fragment","id","text","toString","result","count","child","_child$props","_child$type","type","Boolean","_supportsSpacingProps"],"sources":["../../../../../src/extensions/forms/FieldBlock/FieldBlock.tsx"],"sourcesContent":["import React, { useMemo, useContext, useState, useCallback } from 'react'\nimport classnames from 'classnames'\nimport { Space, FormLabel, FormStatus } from '../../../components'\nimport { FormError, ComponentProps, FieldProps } from '../types'\nimport FieldBlockContext from './FieldBlockContext'\nimport { findElementInChildren } from '../../../shared/component-helper'\nimport type { FormLabelAllProps } from '../../../components/FormLabel'\n\nexport type Props = Pick<\n FieldProps,\n | keyof ComponentProps\n | 'layout'\n | 'label'\n | 'labelDescription'\n | 'info'\n | 'warning'\n | 'error'\n | 'disabled'\n> & {\n forId?: string\n contentClassName?: string\n children: React.ReactNode\n /** Use true if you have more than one form element */\n asFieldset?: boolean\n /** Width of outer block element */\n width?: false | 'small' | 'medium' | 'large' | 'stretch'\n /** Width of contents block, while label etc can be wider if space is available */\n contentWidth?: 'small' | 'medium' | 'large' | 'stretch'\n /** Typography size */\n size?: 'medium' | 'large'\n} & React.HTMLAttributes<HTMLDivElement>\n\nfunction FieldBlock(props: Props) {\n const nestedFieldBlockContext = useContext(FieldBlockContext)\n\n const {\n className,\n forId,\n layout = 'vertical',\n label,\n labelDescription,\n asFieldset,\n info,\n warning,\n error: errorProp,\n disabled,\n width,\n contentWidth,\n size,\n contentClassName,\n children,\n ...rest\n } = props\n\n const [fieldErrorRecord, setFieldErrorRecord] = useState<\n Record<string, FormError>\n >({})\n const [showFieldErrorRecord, setShowFieldErrorRecord] = useState<\n Record<string, boolean>\n >({})\n\n const setError = useCallback(\n (identifier, error) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setError(identifier, error)\n return\n }\n\n setFieldErrorRecord((existing) => {\n if (error) {\n return {\n ...existing,\n [identifier]: error,\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { [identifier]: removed, ...newRecord } = existing\n return newRecord\n }\n })\n },\n [nestedFieldBlockContext]\n )\n\n const setShowError = useCallback(\n (identifier, show) => {\n if (nestedFieldBlockContext) {\n // If this FieldBlock is inside another one, forward the call to the outer one\n nestedFieldBlockContext.setShowError(identifier, show)\n return\n }\n\n setShowFieldErrorRecord((existing) => {\n if (show) {\n return {\n ...existing,\n [identifier]: true,\n }\n } else {\n const { [identifier]: removed, ...newRecord } = existing\n return newRecord\n }\n })\n },\n [nestedFieldBlockContext]\n )\n\n const error = useMemo(() => {\n if (errorProp) {\n return errorProp\n }\n const errors = Object.entries(fieldErrorRecord)\n .filter(([identifier]) => showFieldErrorRecord[identifier] === true)\n .map(([, error]) => error)\n return errors.length > 0\n ? new Error(errors.map((error) => error.message).join(' | '))\n : undefined\n }, [errorProp, fieldErrorRecord, showFieldErrorRecord])\n\n const mainClasses = classnames(\n 'dnb-forms-field-block',\n width !== undefined && `dnb-forms-field-block--width-${width}`,\n className\n )\n const gridClasses = classnames(\n 'dnb-forms-field-block__grid',\n `dnb-forms-field-block--layout-${layout}`\n )\n\n // A child component with a label was found, use fieldset/legend instead of div/label\n const enableFieldset = useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n })\n\n const state = error || warning || info\n const stateStatus = error\n ? 'error'\n : warning\n ? 'warn'\n : info\n ? 'info'\n : null\n\n const labelProps: FormLabelAllProps = {\n element: enableFieldset ? 'legend' : 'label',\n forId: enableFieldset ? undefined : forId,\n space: { top: 0, bottom: 'x-small' },\n size,\n disabled,\n }\n\n return (\n <FieldBlockContext.Provider\n value={{\n setError,\n setShowError,\n }}\n >\n <Space\n element={enableFieldset ? 'fieldset' : 'div'} // use fieldset and legend to enhance a11y\n className={mainClasses}\n {...rest}\n >\n <div className={gridClasses}>\n {labelDescription ? (\n <div className=\"dnb-forms-field-block__label\">\n {label || labelDescription ? (\n <FormLabel {...labelProps}>\n {label}\n {labelDescription && (\n <span className=\"dnb-forms-field-block__label-description\">\n {labelDescription}\n </span>\n )}\n </FormLabel>\n ) : (\n <>&nbsp;</>\n )}\n </div>\n ) : (\n label && <FormLabel {...labelProps}>{label}</FormLabel>\n )}\n\n <div\n className={classnames(\n 'dnb-forms-field-block__contents',\n contentWidth !== undefined &&\n `dnb-forms-field-block__contents--width-${contentWidth}`,\n contentClassName\n )}\n >\n {children}\n </div>\n\n {stateStatus && (\n <div className=\"dnb-forms-field-block__status\">\n <FormStatus\n state={stateStatus}\n id={forId ? `${forId}-form-status` : undefined}\n text={\n error?.message ||\n (state instanceof Error && state.message) ||\n (state instanceof FormError && state.message) ||\n state?.toString()\n }\n label={label as string}\n space={{ top: 'x-small' }}\n />\n </div>\n )}\n </div>\n </Space>\n </FieldBlockContext.Provider>\n )\n}\n\nfunction useEnableFieldset({\n label,\n asFieldset,\n children,\n nestedFieldBlockContext,\n}) {\n return useMemo(() => {\n if (asFieldset === false) {\n return false\n }\n\n let result = asFieldset\n\n if (label && !result && !nestedFieldBlockContext) {\n let count = 0\n\n findElementInChildren(children, (child: React.ReactElement) => {\n if (\n child?.props?.label ||\n child?.type?.['_formElement'] === true\n ) {\n count++\n }\n if (count > 1) {\n return (result = true)\n }\n })\n }\n\n return Boolean(result)\n }, [asFieldset, children, label, nestedFieldBlockContext])\n}\n\nFieldBlock._supportsSpacingProps = true\nexport default FieldBlock\n"],"mappings":"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"}
@@ -67,12 +67,6 @@ fieldset.dnb-forms-field-block:not([class*=space__left]) {
67
67
  }
68
68
  .dnb-forms-field-block__label-description {
69
69
  margin-left: 0.3em;
70
- color: var(--color-black-55);
71
- font-size: var(--font-size-small);
72
- }
73
- .dnb-forms-field-block__label-secondary {
74
- color: var(--color-black-55);
75
- font-size: var(--font-size-small);
76
70
  }
77
71
  .dnb-forms-field-block__status {
78
72
  grid-area: status;
@@ -1 +1 @@
1
- :root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block__grid{flex-wrap:wrap}.dnb-forms-field-block__grid>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:30em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__label-description,.dnb-forms-field-block__label-secondary{color:var(--color-black-55);font-size:var(--font-size-small)}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__contents{grid-area:contents}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:30em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}
1
+ :root{--forms-field-width--small:5rem;--forms-field-width--medium:11rem;--forms-field-width--large:21rem}fieldset.dnb-forms-field-block{border:none;padding:0}fieldset.dnb-forms-field-block:not([class*=space__top]){margin-top:0}fieldset.dnb-forms-field-block:not([class*=space__right]){margin-right:0}fieldset.dnb-forms-field-block:not([class*=space__bottom]){margin-bottom:0}fieldset.dnb-forms-field-block:not([class*=space__left]){margin-left:0}.dnb-forms-field-block__grid{display:grid}@media screen and (max-width:40em){.dnb-forms-field-block__grid{flex-wrap:wrap}.dnb-forms-field-block__grid>.dnb-form-label{margin-bottom:.5rem;margin-top:.5rem}}.dnb-forms-field-block--layout-vertical{grid-template-areas:"label" "contents" "status";grid-template-columns:auto}.dnb-forms-field-block--layout-horizontal{grid-template-areas:"label contents" "status status";grid-template-columns:fit-content(100%) auto}.dnb-forms-field-block--width-stretch{flex-grow:1}@media screen and (min-width:30em){.dnb-forms-field-block--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block--width-large{width:var(--forms-field-width--large)}}.dnb-forms-field-block__label{align-items:center;display:flex;flex-flow:row;grid-area:label;justify-content:space-between}.dnb-forms-field-block__label-description{margin-left:.3em}.dnb-forms-field-block__status{grid-area:status}.dnb-forms-field-block__contents{grid-area:contents}.dnb-forms-field-block__contents--width-stretch{width:100%}@media screen and (min-width:30em){.dnb-forms-field-block__contents--width-small{width:var(--forms-field-width--small)}.dnb-forms-field-block__contents--width-medium{width:var(--forms-field-width--medium)}.dnb-forms-field-block__contents--width-large{width:var(--forms-field-width--large)}}
@@ -56,13 +56,6 @@ fieldset.dnb-forms-field-block {
56
56
 
57
57
  &__label-description {
58
58
  margin-left: 0.3em;
59
- color: var(--color-black-55);
60
- font-size: var(--font-size-small);
61
- }
62
-
63
- &__label-secondary {
64
- color: var(--color-black-55);
65
- font-size: var(--font-size-small);
66
59
  }
67
60
 
68
61
  &__status {
@@ -0,0 +1,4 @@
1
+ .dnb-forms-field-block__label-description {
2
+ color: var(--color-gray-dark);
3
+ font-size: var(--font-size-small);
4
+ }
@@ -0,0 +1 @@
1
+ .dnb-forms-field-block__label-description{color:var(--color-gray-dark);font-size:var(--font-size-small)}
@@ -0,0 +1,6 @@
1
+ .dnb-forms-field-block {
2
+ &__label-description {
3
+ color: var(--color-gray-dark);
4
+ font-size: var(--font-size-small);
5
+ }
6
+ }
@@ -0,0 +1,4 @@
1
+ .dnb-forms-field-block__label-description {
2
+ color: var(--color-black-55);
3
+ font-size: var(--font-size-small);
4
+ }
@@ -0,0 +1 @@
1
+ .dnb-forms-field-block__label-description{color:var(--color-black-55);font-size:var(--font-size-small)}
@@ -0,0 +1,6 @@
1
+ .dnb-forms-field-block {
2
+ &__label-description {
3
+ color: var(--color-black-55);
4
+ font-size: var(--font-size-small);
5
+ }
6
+ }
@@ -21,6 +21,7 @@ export default function FormHandler(_ref) {
21
21
  } = _ref,
22
22
  rest = _objectWithoutProperties(_ref, _excluded);
23
23
  const providerProps = {
24
+ id: rest.id,
24
25
  defaultData,
25
26
  data,
26
27
  schema,
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.js","names":["React","Provider","FormElement","FormHandler","_ref","children","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","sessionStorageId","autoComplete","rest","_objectWithoutProperties","_excluded","providerProps","args","createElement"],"sources":["../../../../../../src/extensions/forms/Form/Handler/Handler.tsx"],"sourcesContent":["import React from 'react'\nimport { JsonObject } from 'json-pointer'\nimport Provider, {\n Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport FormElement from '../Element'\nimport type { ElementAllProps } from '../../../../elements/Element'\n\nexport type Props = Omit<\n ElementAllProps,\n 'data' | 'as' | 'autoComplete'\n> & {\n /**\n * Will enable autoComplete for all nested Field.String fields\n */\n autoComplete?: boolean\n}\n\nexport default function FormHandler<Data extends JsonObject>({\n children,\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n ...rest\n}: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>) {\n const providerProps = {\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit: (...args) => {\n if (typeof onSubmit === 'function') {\n onSubmit(...args)\n }\n },\n onSubmitRequest,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n } as Omit<ProviderProps<Data>, 'children'>\n\n return (\n <Provider {...providerProps}>\n <FormElement {...rest}>{children}</FormElement>\n </Provider>\n )\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,QAAQ,MAER,4BAA4B;AACnC,OAAOC,WAAW,MAAM,YAAY;AAapC,eAAe,SAASC,WAAWA,CAAAC,IAAA,EAa8B;EAAA,IAbJ;MAC3DC,QAAQ;MACRC,WAAW;MACXC,IAAI;MACJC,MAAM;MACNC,QAAQ;MACRC,YAAY;MACZC,QAAQ;MACRC,eAAe;MACfC,iBAAiB;MACjBC,gBAAgB;MAChBC;IAE4D,CAAC,GAAAX,IAAA;IAD1DY,IAAI,GAAAC,wBAAA,CAAAb,IAAA,EAAAc,SAAA;EAEP,MAAMC,aAAa,GAAG;IACpBb,WAAW;IACXC,IAAI;IACJC,MAAM;IACNC,QAAQ;IACRC,YAAY;IACZC,QAAQ,EAAEA,CAAC,GAAGS,IAAI,KAAK;MACrB,IAAI,OAAOT,QAAQ,KAAK,UAAU,EAAE;QAClCA,QAAQ,CAAC,GAAGS,IAAI,CAAC;MACnB;IACF,CAAC;IACDR,eAAe;IACfC,iBAAiB;IACjBC,gBAAgB;IAChBC;EACF,CAA0C;EAE1C,OACEf,KAAA,CAAAqB,aAAA,CAACpB,QAAQ,EAAKkB,aAAa,EACzBnB,KAAA,CAAAqB,aAAA,CAACnB,WAAW,EAAKc,IAAI,EAAGX,QAAsB,CACtC,CAAC;AAEf"}
1
+ {"version":3,"file":"Handler.js","names":["React","Provider","FormElement","FormHandler","_ref","children","defaultData","data","schema","onChange","onPathChange","onSubmit","onSubmitRequest","scrollTopOnSubmit","sessionStorageId","autoComplete","rest","_objectWithoutProperties","_excluded","providerProps","id","args","createElement"],"sources":["../../../../../../src/extensions/forms/Form/Handler/Handler.tsx"],"sourcesContent":["import React from 'react'\nimport { JsonObject } from 'json-pointer'\nimport Provider, {\n Props as ProviderProps,\n} from '../../DataContext/Provider'\nimport FormElement from '../Element'\nimport type { ElementAllProps } from '../../../../elements/Element'\n\nexport type Props = Omit<\n ElementAllProps,\n 'data' | 'as' | 'autoComplete'\n> & {\n /**\n * Will enable autoComplete for all nested Field.String fields\n */\n autoComplete?: boolean\n}\n\nexport default function FormHandler<Data extends JsonObject>({\n children,\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit,\n onSubmitRequest,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n ...rest\n}: ProviderProps<Data> & Omit<Props, keyof ProviderProps<Data>>) {\n const providerProps = {\n id: rest.id,\n defaultData,\n data,\n schema,\n onChange,\n onPathChange,\n onSubmit: (...args) => {\n if (typeof onSubmit === 'function') {\n onSubmit(...args)\n }\n },\n onSubmitRequest,\n scrollTopOnSubmit,\n sessionStorageId,\n autoComplete,\n } as Omit<ProviderProps<Data>, 'children'>\n\n return (\n <Provider {...providerProps}>\n <FormElement {...rest}>{children}</FormElement>\n </Provider>\n )\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,QAAQ,MAER,4BAA4B;AACnC,OAAOC,WAAW,MAAM,YAAY;AAapC,eAAe,SAASC,WAAWA,CAAAC,IAAA,EAa8B;EAAA,IAbJ;MAC3DC,QAAQ;MACRC,WAAW;MACXC,IAAI;MACJC,MAAM;MACNC,QAAQ;MACRC,YAAY;MACZC,QAAQ;MACRC,eAAe;MACfC,iBAAiB;MACjBC,gBAAgB;MAChBC;IAE4D,CAAC,GAAAX,IAAA;IAD1DY,IAAI,GAAAC,wBAAA,CAAAb,IAAA,EAAAc,SAAA;EAEP,MAAMC,aAAa,GAAG;IACpBC,EAAE,EAAEJ,IAAI,CAACI,EAAE;IACXd,WAAW;IACXC,IAAI;IACJC,MAAM;IACNC,QAAQ;IACRC,YAAY;IACZC,QAAQ,EAAEA,CAAC,GAAGU,IAAI,KAAK;MACrB,IAAI,OAAOV,QAAQ,KAAK,UAAU,EAAE;QAClCA,QAAQ,CAAC,GAAGU,IAAI,CAAC;MACnB;IACF,CAAC;IACDT,eAAe;IACfC,iBAAiB;IACjBC,gBAAgB;IAChBC;EACF,CAA0C;EAE1C,OACEf,KAAA,CAAAsB,aAAA,CAACrB,QAAQ,EAAKkB,aAAa,EACzBnB,KAAA,CAAAsB,aAAA,CAACpB,WAAW,EAAKc,IAAI,EAAGX,QAAsB,CACtC,CAAC;AAEf"}
@@ -17,7 +17,6 @@ function Visibility({
17
17
  children
18
18
  }) {
19
19
  const dataContext = useContext(DataContext.Context);
20
- console.log('val', pointer.has(dataContext.data, pathValue) && pointer.get(dataContext.data, pathValue), whenValue);
21
20
  if (visible === false) {
22
21
  return null;
23
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","names":["React","useContext","pointer","DataContext","Visibility","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","children","dataContext","Context","console","log","has","data","get","Boolean","createElement","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport pointer from 'json-pointer'\nimport * as DataContext from '../../DataContext'\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: string\n /** Given data context path must be undefined to show children */\n pathUndefined?: string\n /** Given data context path must be truthy to show children */\n pathTruthy?: string\n /** Given data context path must be falsy to show children */\n pathFalsy?: string\n /** Given data context path must be true to show children */\n pathTrue?: string\n /** Given data context path must be false to show children */\n pathFalse?: string\n /** Given data context path must match, as well as the \"whenValue\" value */\n pathValue?: string\n whenValue?: unknown\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n children: React.ReactNode\n}\n\nfunction Visibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n inferData,\n children,\n}: Props) {\n const dataContext = useContext(DataContext.Context)\n\n console.log(\n 'val',\n pointer.has(dataContext.data, pathValue) &&\n pointer.get(dataContext.data, pathValue),\n whenValue\n )\n\n if (visible === false) {\n return null\n }\n\n if (pathDefined && !pointer.has(dataContext.data, pathDefined)) {\n return null\n }\n if (pathUndefined && pointer.has(dataContext.data, pathUndefined)) {\n return null\n }\n\n if (\n pathTruthy &&\n (!pointer.has(dataContext.data, pathTruthy) ||\n !pointer.get(dataContext.data, pathTruthy))\n ) {\n return null\n }\n if (\n pathFalsy &&\n pointer.has(dataContext.data, pathFalsy) &&\n Boolean(pointer.get(dataContext.data, pathFalsy))\n ) {\n return null\n }\n\n if (\n pathTrue &&\n (!pointer.has(dataContext.data, pathTrue) ||\n pointer.get(dataContext.data, pathTrue) !== true)\n ) {\n return null\n }\n if (\n pathFalse &&\n (!pointer.has(dataContext.data, pathFalse) ||\n pointer.get(dataContext.data, pathFalse) !== false)\n ) {\n return null\n }\n\n if (\n pathValue &&\n !(\n pointer.has(dataContext.data, pathValue) &&\n pointer.get(dataContext.data, pathValue) === whenValue\n )\n ) {\n return null\n }\n\n if (inferData && !inferData(dataContext.data)) {\n return null\n }\n\n return <>{children}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,OAAO,MAAM,cAAc;AAClC,OAAO,KAAKC,WAAW,MAAM,mBAAmB;AAwBhD,SAASC,UAAUA,CAAC;EAClBC,OAAO;EACPC,WAAW;EACXC,aAAa;EACbC,UAAU;EACVC,SAAS;EACTC,QAAQ;EACRC,SAAS;EACTC,SAAS;EACTC,SAAS;EACTC,SAAS;EACTC;AACK,CAAC,EAAE;EACR,MAAMC,WAAW,GAAGf,UAAU,CAACE,WAAW,CAACc,OAAO,CAAC;EAEnDC,OAAO,CAACC,GAAG,CACT,KAAK,EACLjB,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACK,IAAI,EAAET,SAAS,CAAC,IACtCV,OAAO,CAACoB,GAAG,CAACN,WAAW,CAACK,IAAI,EAAET,SAAS,CAAC,EAC1CC,SACF,CAAC;EAED,IAAIR,OAAO,KAAK,KAAK,EAAE;IACrB,OAAO,IAAI;EACb;EAEA,IAAIC,WAAW,IAAI,CAACJ,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACK,IAAI,EAAEf,WAAW,CAAC,EAAE;IAC9D,OAAO,IAAI;EACb;EACA,IAAIC,aAAa,IAAIL,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACK,IAAI,EAAEd,aAAa,CAAC,EAAE;IACjE,OAAO,IAAI;EACb;EAEA,IACEC,UAAU,KACT,CAACN,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACK,IAAI,EAAEb,UAAU,CAAC,IACzC,CAACN,OAAO,CAACoB,GAAG,CAACN,WAAW,CAACK,IAAI,EAAEb,UAAU,CAAC,CAAC,EAC7C;IACA,OAAO,IAAI;EACb;EACA,IACEC,SAAS,IACTP,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACK,IAAI,EAAEZ,SAAS,CAAC,IACxCc,OAAO,CAACrB,OAAO,CAACoB,GAAG,CAACN,WAAW,CAACK,IAAI,EAAEZ,SAAS,CAAC,CAAC,EACjD;IACA,OAAO,IAAI;EACb;EAEA,IACEC,QAAQ,KACP,CAACR,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACK,IAAI,EAAEX,QAAQ,CAAC,IACvCR,OAAO,CAACoB,GAAG,CAACN,WAAW,CAACK,IAAI,EAAEX,QAAQ,CAAC,KAAK,IAAI,CAAC,EACnD;IACA,OAAO,IAAI;EACb;EACA,IACEC,SAAS,KACR,CAACT,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACK,IAAI,EAAEV,SAAS,CAAC,IACxCT,OAAO,CAACoB,GAAG,CAACN,WAAW,CAACK,IAAI,EAAEV,SAAS,CAAC,KAAK,KAAK,CAAC,EACrD;IACA,OAAO,IAAI;EACb;EAEA,IACEC,SAAS,IACT,EACEV,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACK,IAAI,EAAET,SAAS,CAAC,IACxCV,OAAO,CAACoB,GAAG,CAACN,WAAW,CAACK,IAAI,EAAET,SAAS,CAAC,KAAKC,SAAS,CACvD,EACD;IACA,OAAO,IAAI;EACb;EAEA,IAAIC,SAAS,IAAI,CAACA,SAAS,CAACE,WAAW,CAACK,IAAI,CAAC,EAAE;IAC7C,OAAO,IAAI;EACb;EAEA,OAAOrB,KAAA,CAAAwB,aAAA,CAAAxB,KAAA,CAAAyB,QAAA,QAAGV,QAAW,CAAC;AACxB;AAEAX,UAAU,CAACsB,qBAAqB,GAAG,UAAU;AAC7C,eAAetB,UAAU"}
1
+ {"version":3,"file":"Visibility.js","names":["React","useContext","pointer","DataContext","Visibility","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","inferData","children","dataContext","Context","has","data","get","Boolean","createElement","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport pointer from 'json-pointer'\nimport * as DataContext from '../../DataContext'\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: string\n /** Given data context path must be undefined to show children */\n pathUndefined?: string\n /** Given data context path must be truthy to show children */\n pathTruthy?: string\n /** Given data context path must be falsy to show children */\n pathFalsy?: string\n /** Given data context path must be true to show children */\n pathTrue?: string\n /** Given data context path must be false to show children */\n pathFalse?: string\n /** Given data context path must match, as well as the \"whenValue\" value */\n pathValue?: string\n whenValue?: unknown\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n children: React.ReactNode\n}\n\nfunction Visibility({\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n inferData,\n children,\n}: Props) {\n const dataContext = useContext(DataContext.Context)\n\n if (visible === false) {\n return null\n }\n\n if (pathDefined && !pointer.has(dataContext.data, pathDefined)) {\n return null\n }\n if (pathUndefined && pointer.has(dataContext.data, pathUndefined)) {\n return null\n }\n\n if (\n pathTruthy &&\n (!pointer.has(dataContext.data, pathTruthy) ||\n !pointer.get(dataContext.data, pathTruthy))\n ) {\n return null\n }\n if (\n pathFalsy &&\n pointer.has(dataContext.data, pathFalsy) &&\n Boolean(pointer.get(dataContext.data, pathFalsy))\n ) {\n return null\n }\n\n if (\n pathTrue &&\n (!pointer.has(dataContext.data, pathTrue) ||\n pointer.get(dataContext.data, pathTrue) !== true)\n ) {\n return null\n }\n if (\n pathFalse &&\n (!pointer.has(dataContext.data, pathFalse) ||\n pointer.get(dataContext.data, pathFalse) !== false)\n ) {\n return null\n }\n\n if (\n pathValue &&\n !(\n pointer.has(dataContext.data, pathValue) &&\n pointer.get(dataContext.data, pathValue) === whenValue\n )\n ) {\n return null\n }\n\n if (inferData && !inferData(dataContext.data)) {\n return null\n }\n\n return <>{children}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,OAAO,MAAM,cAAc;AAClC,OAAO,KAAKC,WAAW,MAAM,mBAAmB;AAwBhD,SAASC,UAAUA,CAAC;EAClBC,OAAO;EACPC,WAAW;EACXC,aAAa;EACbC,UAAU;EACVC,SAAS;EACTC,QAAQ;EACRC,SAAS;EACTC,SAAS;EACTC,SAAS;EACTC,SAAS;EACTC;AACK,CAAC,EAAE;EACR,MAAMC,WAAW,GAAGf,UAAU,CAACE,WAAW,CAACc,OAAO,CAAC;EAEnD,IAAIZ,OAAO,KAAK,KAAK,EAAE;IACrB,OAAO,IAAI;EACb;EAEA,IAAIC,WAAW,IAAI,CAACJ,OAAO,CAACgB,GAAG,CAACF,WAAW,CAACG,IAAI,EAAEb,WAAW,CAAC,EAAE;IAC9D,OAAO,IAAI;EACb;EACA,IAAIC,aAAa,IAAIL,OAAO,CAACgB,GAAG,CAACF,WAAW,CAACG,IAAI,EAAEZ,aAAa,CAAC,EAAE;IACjE,OAAO,IAAI;EACb;EAEA,IACEC,UAAU,KACT,CAACN,OAAO,CAACgB,GAAG,CAACF,WAAW,CAACG,IAAI,EAAEX,UAAU,CAAC,IACzC,CAACN,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACG,IAAI,EAAEX,UAAU,CAAC,CAAC,EAC7C;IACA,OAAO,IAAI;EACb;EACA,IACEC,SAAS,IACTP,OAAO,CAACgB,GAAG,CAACF,WAAW,CAACG,IAAI,EAAEV,SAAS,CAAC,IACxCY,OAAO,CAACnB,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACG,IAAI,EAAEV,SAAS,CAAC,CAAC,EACjD;IACA,OAAO,IAAI;EACb;EAEA,IACEC,QAAQ,KACP,CAACR,OAAO,CAACgB,GAAG,CAACF,WAAW,CAACG,IAAI,EAAET,QAAQ,CAAC,IACvCR,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACG,IAAI,EAAET,QAAQ,CAAC,KAAK,IAAI,CAAC,EACnD;IACA,OAAO,IAAI;EACb;EACA,IACEC,SAAS,KACR,CAACT,OAAO,CAACgB,GAAG,CAACF,WAAW,CAACG,IAAI,EAAER,SAAS,CAAC,IACxCT,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACG,IAAI,EAAER,SAAS,CAAC,KAAK,KAAK,CAAC,EACrD;IACA,OAAO,IAAI;EACb;EAEA,IACEC,SAAS,IACT,EACEV,OAAO,CAACgB,GAAG,CAACF,WAAW,CAACG,IAAI,EAAEP,SAAS,CAAC,IACxCV,OAAO,CAACkB,GAAG,CAACJ,WAAW,CAACG,IAAI,EAAEP,SAAS,CAAC,KAAKC,SAAS,CACvD,EACD;IACA,OAAO,IAAI;EACb;EAEA,IAAIC,SAAS,IAAI,CAACA,SAAS,CAACE,WAAW,CAACG,IAAI,CAAC,EAAE;IAC7C,OAAO,IAAI;EACb;EAEA,OAAOnB,KAAA,CAAAsB,aAAA,CAAAtB,KAAA,CAAAuB,QAAA,QAAGR,QAAW,CAAC;AACxB;AAEAX,UAAU,CAACoB,qBAAqB,GAAG,UAAU;AAC7C,eAAepB,UAAU"}
@@ -0,0 +1,10 @@
1
+ import type { Path } from '../../DataContext/Provider';
2
+ type PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}` ? Key extends keyof T ? Rest extends '' ? T[Key] : PathImpl<T[Key], Rest> : never : T[P & keyof T];
3
+ type PathType<T, P extends string> = P extends `/${infer Rest}` ? PathImpl<T, Rest> : never;
4
+ type UseDataReturnUpdate<Data> = <P extends Path>(path: P, fn: (value: PathType<Data, P>) => unknown) => void;
5
+ type UseDataReturn<Data> = {
6
+ data: Data;
7
+ update: UseDataReturnUpdate<Data>;
8
+ };
9
+ export default function useData<Data>(id: string, data?: Data): UseDataReturn<Data>;
10
+ export {};
@@ -0,0 +1,32 @@
1
+ "use client";
2
+
3
+ import { useCallback, useEffect, useReducer, useRef } from 'react';
4
+ import pointer from 'json-pointer';
5
+ import { useSharedState } from '../../../../shared/helpers/useSharedState';
6
+ export default function useData(id, data = undefined) {
7
+ var _sharedStateRef$curre5;
8
+ const initialDataRef = useRef(data);
9
+ const sharedStateRef = useRef(null);
10
+ const [, forceUpdate] = useReducer(() => ({}), {});
11
+ sharedStateRef.current = useSharedState(id, data, forceUpdate);
12
+ const updatePath = useCallback((path, fn) => {
13
+ var _sharedStateRef$curre, _sharedStateRef$curre2;
14
+ const existingData = sharedStateRef.current.data || {};
15
+ const existingValue = pointer.has(existingData, path) ? pointer.get(existingData, path) : undefined;
16
+ const newValue = fn(existingValue);
17
+ pointer.set(existingData, path, newValue);
18
+ (_sharedStateRef$curre = sharedStateRef.current) === null || _sharedStateRef$curre === void 0 ? void 0 : (_sharedStateRef$curre2 = _sharedStateRef$curre.update) === null || _sharedStateRef$curre2 === void 0 ? void 0 : _sharedStateRef$curre2.call(_sharedStateRef$curre, existingData);
19
+ }, []);
20
+ useEffect(() => {
21
+ if (data && data !== initialDataRef.current) {
22
+ var _sharedStateRef$curre3, _sharedStateRef$curre4;
23
+ initialDataRef.current = data;
24
+ (_sharedStateRef$curre3 = sharedStateRef.current) === null || _sharedStateRef$curre3 === void 0 ? void 0 : (_sharedStateRef$curre4 = _sharedStateRef$curre3.update) === null || _sharedStateRef$curre4 === void 0 ? void 0 : _sharedStateRef$curre4.call(_sharedStateRef$curre3, data);
25
+ }
26
+ }, [data]);
27
+ return {
28
+ data: (_sharedStateRef$curre5 = sharedStateRef.current) === null || _sharedStateRef$curre5 === void 0 ? void 0 : _sharedStateRef$curre5.data,
29
+ update: updatePath
30
+ };
31
+ }
32
+ //# sourceMappingURL=useData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useData.js","names":["useCallback","useEffect","useReducer","useRef","pointer","useSharedState","useData","id","data","undefined","_sharedStateRef$curre5","initialDataRef","sharedStateRef","forceUpdate","current","updatePath","path","fn","_sharedStateRef$curre","_sharedStateRef$curre2","existingData","existingValue","has","get","newValue","set","update","call","_sharedStateRef$curre3","_sharedStateRef$curre4"],"sources":["../../../../../../src/extensions/forms/Form/hooks/useData.tsx"],"sourcesContent":["import { useCallback, useEffect, useReducer, useRef } from 'react'\nimport pointer from 'json-pointer'\nimport { useSharedState } from '../../../../shared/helpers/useSharedState'\nimport type { Path } from '../../DataContext/Provider'\n\ntype PathImpl<T, P extends string> = P extends `${infer Key}/${infer Rest}`\n ? Key extends keyof T\n ? Rest extends ''\n ? T[Key]\n : PathImpl<T[Key], Rest>\n : never\n : T[P & keyof T]\n\ntype PathType<T, P extends string> = P extends `/${infer Rest}`\n ? PathImpl<T, Rest>\n : never\n\ntype UseDataReturnUpdate<Data> = <P extends Path>(\n path: P,\n fn: (value: PathType<Data, P>) => unknown\n) => void\n\ntype UseDataReturn<Data> = {\n data: Data\n update: UseDataReturnUpdate<Data>\n}\n\nexport default function useData<Data>(\n id: string,\n data: Data = undefined\n): UseDataReturn<Data> {\n const initialDataRef = useRef(data)\n const sharedStateRef = useRef(null)\n const [, forceUpdate] = useReducer(() => ({}), {})\n sharedStateRef.current = useSharedState<Data>(id, data, forceUpdate)\n\n const updatePath = useCallback<UseDataReturnUpdate<Data>>((path, fn) => {\n const existingData = sharedStateRef.current.data || ({} as Data)\n const existingValue = pointer.has(existingData, path)\n ? pointer.get(existingData, path)\n : undefined\n\n // get new value\n const newValue = fn(existingValue)\n\n // update existing data\n pointer.set(existingData, path, newValue)\n\n // update provider\n sharedStateRef.current?.update?.(existingData)\n }, [])\n\n // when initial data changes, update the shared state\n useEffect(() => {\n if (data && data !== initialDataRef.current) {\n initialDataRef.current = data\n sharedStateRef.current?.update?.(data)\n }\n }, [data])\n\n return { data: sharedStateRef.current?.data, update: updatePath }\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAClE,OAAOC,OAAO,MAAM,cAAc;AAClC,SAASC,cAAc,QAAQ,2CAA2C;AAyB1E,eAAe,SAASC,OAAOA,CAC7BC,EAAU,EACVC,IAAU,GAAGC,SAAS,EACD;EAAA,IAAAC,sBAAA;EACrB,MAAMC,cAAc,GAAGR,MAAM,CAACK,IAAI,CAAC;EACnC,MAAMI,cAAc,GAAGT,MAAM,CAAC,IAAI,CAAC;EACnC,MAAM,GAAGU,WAAW,CAAC,GAAGX,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAClDU,cAAc,CAACE,OAAO,GAAGT,cAAc,CAAOE,EAAE,EAAEC,IAAI,EAAEK,WAAW,CAAC;EAEpE,MAAME,UAAU,GAAGf,WAAW,CAA4B,CAACgB,IAAI,EAAEC,EAAE,KAAK;IAAA,IAAAC,qBAAA,EAAAC,sBAAA;IACtE,MAAMC,YAAY,GAAGR,cAAc,CAACE,OAAO,CAACN,IAAI,IAAK,CAAC,CAAU;IAChE,MAAMa,aAAa,GAAGjB,OAAO,CAACkB,GAAG,CAACF,YAAY,EAAEJ,IAAI,CAAC,GACjDZ,OAAO,CAACmB,GAAG,CAACH,YAAY,EAAEJ,IAAI,CAAC,GAC/BP,SAAS;IAGb,MAAMe,QAAQ,GAAGP,EAAE,CAACI,aAAa,CAAC;IAGlCjB,OAAO,CAACqB,GAAG,CAACL,YAAY,EAAEJ,IAAI,EAAEQ,QAAQ,CAAC;IAGzC,CAAAN,qBAAA,GAAAN,cAAc,CAACE,OAAO,cAAAI,qBAAA,wBAAAC,sBAAA,GAAtBD,qBAAA,CAAwBQ,MAAM,cAAAP,sBAAA,uBAA9BA,sBAAA,CAAAQ,IAAA,CAAAT,qBAAA,EAAiCE,YAAY,CAAC;EAChD,CAAC,EAAE,EAAE,CAAC;EAGNnB,SAAS,CAAC,MAAM;IACd,IAAIO,IAAI,IAAIA,IAAI,KAAKG,cAAc,CAACG,OAAO,EAAE;MAAA,IAAAc,sBAAA,EAAAC,sBAAA;MAC3ClB,cAAc,CAACG,OAAO,GAAGN,IAAI;MAC7B,CAAAoB,sBAAA,GAAAhB,cAAc,CAACE,OAAO,cAAAc,sBAAA,wBAAAC,sBAAA,GAAtBD,sBAAA,CAAwBF,MAAM,cAAAG,sBAAA,uBAA9BA,sBAAA,CAAAF,IAAA,CAAAC,sBAAA,EAAiCpB,IAAI,CAAC;IACxC;EACF,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,OAAO;IAAEA,IAAI,GAAAE,sBAAA,GAAEE,cAAc,CAACE,OAAO,cAAAJ,sBAAA,uBAAtBA,sBAAA,CAAwBF,IAAI;IAAEkB,MAAM,EAAEX;EAAW,CAAC;AACnE"}
@@ -5,3 +5,4 @@ export { default as ButtonRow } from './ButtonRow';
5
5
  export { default as MainHeading } from './MainHeading';
6
6
  export { default as SubHeading } from './SubHeading';
7
7
  export { default as Visibility } from './Visibility';
8
+ export { default as useData } from './hooks/useData';
@@ -5,4 +5,5 @@ export { default as ButtonRow } from './ButtonRow';
5
5
  export { default as MainHeading } from './MainHeading';
6
6
  export { default as SubHeading } from './SubHeading';
7
7
  export { default as Visibility } from './Visibility';
8
+ export { default as useData } from './hooks/useData';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","Handler","Element","SubmitButton","ButtonRow","MainHeading","SubHeading","Visibility"],"sources":["../../../../../src/extensions/forms/Form/index.ts"],"sourcesContent":["export { default as Handler } from './Handler'\nexport { default as Element } from './Element'\nexport { default as SubmitButton } from './SubmitButton'\nexport { default as ButtonRow } from './ButtonRow'\nexport { default as MainHeading } from './MainHeading'\nexport { default as SubHeading } from './SubHeading'\nexport { default as Visibility } from './Visibility'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,OAAO,QAAQ,WAAW;AAC9C,SAASD,OAAO,IAAIE,OAAO,QAAQ,WAAW;AAC9C,SAASF,OAAO,IAAIG,YAAY,QAAQ,gBAAgB;AACxD,SAASH,OAAO,IAAII,SAAS,QAAQ,aAAa;AAClD,SAASJ,OAAO,IAAIK,WAAW,QAAQ,eAAe;AACtD,SAASL,OAAO,IAAIM,UAAU,QAAQ,cAAc;AACpD,SAASN,OAAO,IAAIO,UAAU,QAAQ,cAAc"}
1
+ {"version":3,"file":"index.js","names":["default","Handler","Element","SubmitButton","ButtonRow","MainHeading","SubHeading","Visibility","useData"],"sources":["../../../../../src/extensions/forms/Form/index.ts"],"sourcesContent":["export { default as Handler } from './Handler'\nexport { default as Element } from './Element'\nexport { default as SubmitButton } from './SubmitButton'\nexport { default as ButtonRow } from './ButtonRow'\nexport { default as MainHeading } from './MainHeading'\nexport { default as SubHeading } from './SubHeading'\nexport { default as Visibility } from './Visibility'\nexport { default as useData } from './hooks/useData'\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,OAAO,QAAQ,WAAW;AAC9C,SAASD,OAAO,IAAIE,OAAO,QAAQ,WAAW;AAC9C,SAASF,OAAO,IAAIG,YAAY,QAAQ,gBAAgB;AACxD,SAASH,OAAO,IAAII,SAAS,QAAQ,aAAa;AAClD,SAASJ,OAAO,IAAIK,WAAW,QAAQ,eAAe;AACtD,SAASL,OAAO,IAAIM,UAAU,QAAQ,cAAc;AACpD,SAASN,OAAO,IAAIO,UAAU,QAAQ,cAAc;AACpD,SAASP,OAAO,IAAIQ,OAAO,QAAQ,iBAAiB"}
@@ -15,7 +15,6 @@ function ArrayComponent(props) {
15
15
  placeholder,
16
16
  label,
17
17
  labelDescription,
18
- labelSecondary,
19
18
  path,
20
19
  value: arrayValue,
21
20
  info,
@@ -49,12 +48,11 @@ function ArrayComponent(props) {
49
48
  layout: layout,
50
49
  label: label,
51
50
  labelDescription: labelDescription,
52
- labelSecondary: labelSecondary,
53
51
  info: info,
54
52
  warning: warning,
55
53
  error: error,
56
54
  width: width,
57
- contentsWidth: width !== false ? width : undefined
55
+ contentWidth: width !== false ? width : undefined
58
56
  }, pickSpacingProps(props)), React.createElement(Flex.Container, pickFlexContainerProps(props, {
59
57
  spacing: 'small'
60
58
  }), arrayValue === emptyValue ? React.createElement("em", null, placeholder) : elementData.map(({