@dnb/eufemia 10.64.0 → 10.65.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 (408) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/cjs/components/date-picker/DatePicker.js +2 -6
  3. package/cjs/components/date-picker/DatePicker.js.map +1 -1
  4. package/cjs/components/date-picker/DatePickerInput.js +2 -2
  5. package/cjs/components/date-picker/DatePickerInput.js.map +1 -1
  6. package/cjs/components/input-masked/MultiInputMask.d.ts +2 -1
  7. package/cjs/components/input-masked/MultiInputMask.js.map +1 -1
  8. package/cjs/components/logo/style/themes/dnb-logo-theme-sbanken.css +1 -1
  9. package/cjs/components/logo/style/themes/dnb-logo-theme-sbanken.min.css +1 -1
  10. package/cjs/components/logo/style/themes/dnb-logo-theme-sbanken.scss +1 -1
  11. package/cjs/components/radio/RadioGroup.d.ts +1 -1
  12. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +4 -7
  13. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +1 -0
  14. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +5 -7
  15. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +4 -7
  16. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +1 -0
  17. package/cjs/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +5 -7
  18. package/cjs/components/toggle-button/ToggleButtonGroup.d.ts +2 -0
  19. package/cjs/components/toggle-button/ToggleButtonGroup.js +5 -1
  20. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  21. package/cjs/extensions/forms/Field/Address/AddressDocs.js +7 -7
  22. package/cjs/extensions/forms/Field/Address/AddressDocs.js.map +1 -1
  23. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +8 -1
  24. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js +9 -2
  25. package/cjs/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  26. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +5 -0
  27. package/cjs/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  28. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  29. package/cjs/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  30. package/cjs/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  31. package/cjs/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  32. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js +3 -1
  33. package/cjs/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  34. package/cjs/extensions/forms/Field/Date/Date.d.ts +5 -4
  35. package/cjs/extensions/forms/Field/Date/Date.js +123 -11
  36. package/cjs/extensions/forms/Field/Date/Date.js.map +1 -1
  37. package/cjs/extensions/forms/Field/Date/DateDocs.js +13 -4
  38. package/cjs/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  39. package/cjs/extensions/forms/Field/Email/EmailDocs.js +7 -7
  40. package/cjs/extensions/forms/Field/Email/EmailDocs.js.map +1 -1
  41. package/cjs/extensions/forms/Field/Expiry/Expiry.d.ts +7 -1
  42. package/cjs/extensions/forms/Field/Expiry/Expiry.js +2 -0
  43. package/cjs/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  44. package/cjs/extensions/forms/Field/Expiry/ExpiryDocs.d.ts +2 -0
  45. package/cjs/extensions/forms/Field/Expiry/ExpiryDocs.js +19 -0
  46. package/cjs/extensions/forms/Field/Expiry/ExpiryDocs.js.map +1 -0
  47. package/cjs/extensions/forms/Field/Name/NameDocs.js +7 -1
  48. package/cjs/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  49. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  50. package/cjs/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  51. package/cjs/extensions/forms/Field/Number/NumberDocs.js +8 -1
  52. package/cjs/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  53. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  54. package/cjs/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  55. package/cjs/extensions/forms/Field/Password/PasswordDocs.js +2 -2
  56. package/cjs/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  57. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  58. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -2
  59. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  60. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +2 -0
  61. package/cjs/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  62. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  63. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -2
  64. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  65. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -1
  66. package/cjs/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  67. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +5 -0
  68. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js +2 -0
  69. package/cjs/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  70. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +10 -1
  71. package/cjs/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  72. package/cjs/extensions/forms/Field/Selection/Selection.d.ts +9 -0
  73. package/cjs/extensions/forms/Field/Selection/Selection.js +20 -13
  74. package/cjs/extensions/forms/Field/Selection/Selection.js.map +1 -1
  75. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  76. package/cjs/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  77. package/cjs/extensions/forms/Field/String/StringDocs.js +8 -1
  78. package/cjs/extensions/forms/Field/String/StringDocs.js.map +1 -1
  79. package/cjs/extensions/forms/Field/Toggle/Toggle.d.ts +3 -0
  80. package/cjs/extensions/forms/Field/Toggle/Toggle.js +6 -1
  81. package/cjs/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  82. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  83. package/cjs/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  84. package/cjs/extensions/forms/Form/Visibility/Visibility.d.ts +1 -1
  85. package/cjs/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  86. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  87. package/cjs/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  88. package/cjs/extensions/forms/Value/Date/Date.d.ts +3 -2
  89. package/cjs/extensions/forms/Value/Date/Date.js.map +1 -1
  90. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js +20 -8
  91. package/cjs/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  92. package/cjs/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  93. package/cjs/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  94. package/cjs/extensions/forms/Wizard/Step/Step.d.ts +16 -1
  95. package/cjs/extensions/forms/Wizard/Step/Step.js +32 -10
  96. package/cjs/extensions/forms/Wizard/Step/Step.js.map +1 -1
  97. package/cjs/extensions/forms/Wizard/Step/StepDocs.js +18 -3
  98. package/cjs/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  99. package/cjs/extensions/forms/constants/locales/en-GB.d.ts +6 -0
  100. package/cjs/extensions/forms/constants/locales/en-GB.js +7 -1
  101. package/cjs/extensions/forms/constants/locales/en-GB.js.map +1 -1
  102. package/cjs/extensions/forms/constants/locales/en-US.d.ts +6 -0
  103. package/cjs/extensions/forms/constants/locales/index.d.ts +12 -0
  104. package/cjs/extensions/forms/constants/locales/nb-NO.d.ts +6 -0
  105. package/cjs/extensions/forms/constants/locales/nb-NO.js +7 -1
  106. package/cjs/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  107. package/cjs/extensions/forms/types.d.ts +1 -0
  108. package/cjs/extensions/forms/types.js.map +1 -1
  109. package/cjs/fragments/drawer-list/DrawerList.d.ts +6 -1
  110. package/cjs/shared/Eufemia.d.ts +1 -1
  111. package/cjs/shared/Eufemia.js +2 -2
  112. package/cjs/shared/Eufemia.js.map +1 -1
  113. package/cjs/style/core/scopes.scss +1 -1
  114. package/cjs/style/dnb-ui-basis.css +1 -1
  115. package/cjs/style/dnb-ui-basis.min.css +1 -1
  116. package/cjs/style/dnb-ui-body.css +1 -1
  117. package/cjs/style/dnb-ui-body.min.css +1 -1
  118. package/cjs/style/dnb-ui-core.css +1 -1
  119. package/cjs/style/dnb-ui-core.min.css +1 -1
  120. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +0 -2
  121. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  122. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +5 -7
  123. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  124. package/cjs/style/themes/theme-sbanken/globals.scss +0 -4
  125. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -2
  126. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  127. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +6 -8
  128. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  129. package/cjs/style/themes/theme-ui/globals.scss +0 -4
  130. package/cjs/style/themes/theme-ui/ui-theme-basis.css +0 -2
  131. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  132. package/cjs/style/themes/theme-ui/ui-theme-components.css +5 -7
  133. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  134. package/components/date-picker/DatePicker.js +2 -6
  135. package/components/date-picker/DatePicker.js.map +1 -1
  136. package/components/date-picker/DatePickerInput.js +2 -2
  137. package/components/date-picker/DatePickerInput.js.map +1 -1
  138. package/components/input-masked/MultiInputMask.d.ts +2 -1
  139. package/components/input-masked/MultiInputMask.js.map +1 -1
  140. package/components/logo/style/themes/dnb-logo-theme-sbanken.css +1 -1
  141. package/components/logo/style/themes/dnb-logo-theme-sbanken.min.css +1 -1
  142. package/components/logo/style/themes/dnb-logo-theme-sbanken.scss +1 -1
  143. package/components/radio/RadioGroup.d.ts +1 -1
  144. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +4 -7
  145. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +1 -0
  146. package/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +5 -7
  147. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +4 -7
  148. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +1 -0
  149. package/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +5 -7
  150. package/components/toggle-button/ToggleButtonGroup.d.ts +2 -0
  151. package/components/toggle-button/ToggleButtonGroup.js +5 -1
  152. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  153. package/es/components/date-picker/DatePicker.js +2 -6
  154. package/es/components/date-picker/DatePicker.js.map +1 -1
  155. package/es/components/date-picker/DatePickerInput.js +2 -2
  156. package/es/components/date-picker/DatePickerInput.js.map +1 -1
  157. package/es/components/input-masked/MultiInputMask.d.ts +2 -1
  158. package/es/components/input-masked/MultiInputMask.js.map +1 -1
  159. package/es/components/logo/style/themes/dnb-logo-theme-sbanken.css +1 -1
  160. package/es/components/logo/style/themes/dnb-logo-theme-sbanken.min.css +1 -1
  161. package/es/components/logo/style/themes/dnb-logo-theme-sbanken.scss +1 -1
  162. package/es/components/radio/RadioGroup.d.ts +1 -1
  163. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.css +4 -7
  164. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.min.css +1 -0
  165. package/es/components/skeleton/style/themes/dnb-skeleton-theme-sbanken.scss +5 -7
  166. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.css +4 -7
  167. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.min.css +1 -0
  168. package/es/components/skeleton/style/themes/dnb-skeleton-theme-ui.scss +5 -7
  169. package/es/components/toggle-button/ToggleButtonGroup.d.ts +2 -0
  170. package/es/components/toggle-button/ToggleButtonGroup.js +5 -1
  171. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  172. package/es/extensions/forms/Field/Address/AddressDocs.js +5 -7
  173. package/es/extensions/forms/Field/Address/AddressDocs.js.map +1 -1
  174. package/es/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +8 -1
  175. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js +9 -2
  176. package/es/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  177. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +5 -0
  178. package/es/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  179. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  180. package/es/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  181. package/es/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  182. package/es/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  183. package/es/extensions/forms/Field/Boolean/BooleanDocs.js +3 -1
  184. package/es/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  185. package/es/extensions/forms/Field/Date/Date.d.ts +5 -4
  186. package/es/extensions/forms/Field/Date/Date.js +124 -12
  187. package/es/extensions/forms/Field/Date/Date.js.map +1 -1
  188. package/es/extensions/forms/Field/Date/DateDocs.js +13 -4
  189. package/es/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  190. package/es/extensions/forms/Field/Email/EmailDocs.js +5 -7
  191. package/es/extensions/forms/Field/Email/EmailDocs.js.map +1 -1
  192. package/es/extensions/forms/Field/Expiry/Expiry.d.ts +7 -1
  193. package/es/extensions/forms/Field/Expiry/Expiry.js +2 -0
  194. package/es/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  195. package/es/extensions/forms/Field/Expiry/ExpiryDocs.d.ts +2 -0
  196. package/es/extensions/forms/Field/Expiry/ExpiryDocs.js +10 -0
  197. package/es/extensions/forms/Field/Expiry/ExpiryDocs.js.map +1 -0
  198. package/es/extensions/forms/Field/Name/NameDocs.js +6 -1
  199. package/es/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  200. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  201. package/es/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  202. package/es/extensions/forms/Field/Number/NumberDocs.js +6 -1
  203. package/es/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  204. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  205. package/es/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  206. package/es/extensions/forms/Field/Password/PasswordDocs.js +2 -2
  207. package/es/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  208. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  209. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -2
  210. package/es/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  211. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +2 -0
  212. package/es/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  213. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  214. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -2
  215. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  216. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -1
  217. package/es/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  218. package/es/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +5 -0
  219. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js +2 -0
  220. package/es/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  221. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  222. package/es/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  223. package/es/extensions/forms/Field/Selection/Selection.d.ts +9 -0
  224. package/es/extensions/forms/Field/Selection/Selection.js +18 -11
  225. package/es/extensions/forms/Field/Selection/Selection.js.map +1 -1
  226. package/es/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  227. package/es/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  228. package/es/extensions/forms/Field/String/StringDocs.js +6 -1
  229. package/es/extensions/forms/Field/String/StringDocs.js.map +1 -1
  230. package/es/extensions/forms/Field/Toggle/Toggle.d.ts +3 -0
  231. package/es/extensions/forms/Field/Toggle/Toggle.js +6 -1
  232. package/es/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  233. package/es/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  234. package/es/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  235. package/es/extensions/forms/Form/Visibility/Visibility.d.ts +1 -1
  236. package/es/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  237. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  238. package/es/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  239. package/es/extensions/forms/Value/Date/Date.d.ts +3 -2
  240. package/es/extensions/forms/Value/Date/Date.js.map +1 -1
  241. package/es/extensions/forms/Wizard/Container/WizardContainer.js +20 -8
  242. package/es/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  243. package/es/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  244. package/es/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  245. package/es/extensions/forms/Wizard/Step/Step.d.ts +16 -1
  246. package/es/extensions/forms/Wizard/Step/Step.js +29 -10
  247. package/es/extensions/forms/Wizard/Step/Step.js.map +1 -1
  248. package/es/extensions/forms/Wizard/Step/StepDocs.js +18 -3
  249. package/es/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  250. package/es/extensions/forms/constants/locales/en-GB.d.ts +6 -0
  251. package/es/extensions/forms/constants/locales/en-GB.js +7 -1
  252. package/es/extensions/forms/constants/locales/en-GB.js.map +1 -1
  253. package/es/extensions/forms/constants/locales/en-US.d.ts +6 -0
  254. package/es/extensions/forms/constants/locales/index.d.ts +12 -0
  255. package/es/extensions/forms/constants/locales/nb-NO.d.ts +6 -0
  256. package/es/extensions/forms/constants/locales/nb-NO.js +7 -1
  257. package/es/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  258. package/es/extensions/forms/types.d.ts +1 -0
  259. package/es/extensions/forms/types.js.map +1 -1
  260. package/es/fragments/drawer-list/DrawerList.d.ts +6 -1
  261. package/es/shared/Eufemia.d.ts +1 -1
  262. package/es/shared/Eufemia.js +2 -2
  263. package/es/shared/Eufemia.js.map +1 -1
  264. package/es/style/core/scopes.scss +1 -1
  265. package/es/style/dnb-ui-basis.css +1 -1
  266. package/es/style/dnb-ui-basis.min.css +1 -1
  267. package/es/style/dnb-ui-body.css +1 -1
  268. package/es/style/dnb-ui-body.min.css +1 -1
  269. package/es/style/dnb-ui-core.css +1 -1
  270. package/es/style/dnb-ui-core.min.css +1 -1
  271. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +0 -2
  272. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  273. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +5 -7
  274. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  275. package/es/style/themes/theme-sbanken/globals.scss +0 -4
  276. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -2
  277. package/es/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  278. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +6 -8
  279. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  280. package/es/style/themes/theme-ui/globals.scss +0 -4
  281. package/es/style/themes/theme-ui/ui-theme-basis.css +0 -2
  282. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  283. package/es/style/themes/theme-ui/ui-theme-components.css +5 -7
  284. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  285. package/esm/dnb-ui-basis.min.mjs +1 -1
  286. package/esm/dnb-ui-components.min.mjs +1 -1
  287. package/esm/dnb-ui-elements.min.mjs +1 -1
  288. package/esm/dnb-ui-extensions.min.mjs +3 -3
  289. package/esm/dnb-ui-lib.min.mjs +1 -1
  290. package/extensions/forms/Field/Address/AddressDocs.js +5 -7
  291. package/extensions/forms/Field/Address/AddressDocs.js.map +1 -1
  292. package/extensions/forms/Field/ArraySelection/ArraySelection.d.ts +8 -1
  293. package/extensions/forms/Field/ArraySelection/ArraySelection.js +9 -2
  294. package/extensions/forms/Field/ArraySelection/ArraySelection.js.map +1 -1
  295. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js +5 -0
  296. package/extensions/forms/Field/ArraySelection/ArraySelectionDocs.js.map +1 -1
  297. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.d.ts +2 -2
  298. package/extensions/forms/Field/BankAccountNumber/BankAccountNumber.js.map +1 -1
  299. package/extensions/forms/Field/Boolean/Boolean.d.ts +1 -0
  300. package/extensions/forms/Field/Boolean/Boolean.js.map +1 -1
  301. package/extensions/forms/Field/Boolean/BooleanDocs.js +3 -1
  302. package/extensions/forms/Field/Boolean/BooleanDocs.js.map +1 -1
  303. package/extensions/forms/Field/Date/Date.d.ts +5 -4
  304. package/extensions/forms/Field/Date/Date.js +124 -12
  305. package/extensions/forms/Field/Date/Date.js.map +1 -1
  306. package/extensions/forms/Field/Date/DateDocs.js +13 -4
  307. package/extensions/forms/Field/Date/DateDocs.js.map +1 -1
  308. package/extensions/forms/Field/Email/EmailDocs.js +5 -7
  309. package/extensions/forms/Field/Email/EmailDocs.js.map +1 -1
  310. package/extensions/forms/Field/Expiry/Expiry.d.ts +7 -1
  311. package/extensions/forms/Field/Expiry/Expiry.js +2 -0
  312. package/extensions/forms/Field/Expiry/Expiry.js.map +1 -1
  313. package/extensions/forms/Field/Expiry/ExpiryDocs.d.ts +2 -0
  314. package/extensions/forms/Field/Expiry/ExpiryDocs.js +10 -0
  315. package/extensions/forms/Field/Expiry/ExpiryDocs.js.map +1 -0
  316. package/extensions/forms/Field/Name/NameDocs.js +6 -1
  317. package/extensions/forms/Field/Name/NameDocs.js.map +1 -1
  318. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.d.ts +2 -2
  319. package/extensions/forms/Field/NationalIdentityNumber/NationalIdentityNumber.js.map +1 -1
  320. package/extensions/forms/Field/Number/NumberDocs.js +6 -1
  321. package/extensions/forms/Field/Number/NumberDocs.js.map +1 -1
  322. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.d.ts +2 -2
  323. package/extensions/forms/Field/OrganizationNumber/OrganizationNumber.js.map +1 -1
  324. package/extensions/forms/Field/Password/PasswordDocs.js +2 -2
  325. package/extensions/forms/Field/Password/PasswordDocs.js.map +1 -1
  326. package/extensions/forms/Field/PhoneNumber/PhoneNumber.d.ts +1 -1
  327. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js +5 -2
  328. package/extensions/forms/Field/PhoneNumber/PhoneNumber.js.map +1 -1
  329. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js +2 -0
  330. package/extensions/forms/Field/PhoneNumber/PhoneNumberDocs.js.map +1 -1
  331. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.d.ts +1 -1
  332. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js +6 -2
  333. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCity.js.map +1 -1
  334. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js +3 -1
  335. package/extensions/forms/Field/PostalCodeAndCity/PostalCodeAndCityDocs.js.map +1 -1
  336. package/extensions/forms/Field/SelectCountry/SelectCountry.d.ts +5 -0
  337. package/extensions/forms/Field/SelectCountry/SelectCountry.js +2 -0
  338. package/extensions/forms/Field/SelectCountry/SelectCountry.js.map +1 -1
  339. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js +8 -1
  340. package/extensions/forms/Field/SelectCountry/SelectCountryDocs.js.map +1 -1
  341. package/extensions/forms/Field/Selection/Selection.d.ts +9 -0
  342. package/extensions/forms/Field/Selection/Selection.js +20 -13
  343. package/extensions/forms/Field/Selection/Selection.js.map +1 -1
  344. package/extensions/forms/Field/Selection/SelectionDocs.js +5 -0
  345. package/extensions/forms/Field/Selection/SelectionDocs.js.map +1 -1
  346. package/extensions/forms/Field/String/StringDocs.js +6 -1
  347. package/extensions/forms/Field/String/StringDocs.js.map +1 -1
  348. package/extensions/forms/Field/Toggle/Toggle.d.ts +3 -0
  349. package/extensions/forms/Field/Toggle/Toggle.js +6 -1
  350. package/extensions/forms/Field/Toggle/Toggle.js.map +1 -1
  351. package/extensions/forms/Field/Toggle/ToggleDocs.js +5 -0
  352. package/extensions/forms/Field/Toggle/ToggleDocs.js.map +1 -1
  353. package/extensions/forms/Form/Visibility/Visibility.d.ts +1 -1
  354. package/extensions/forms/Form/Visibility/Visibility.js.map +1 -1
  355. package/extensions/forms/Form/Visibility/VisibilityDocs.js +1 -1
  356. package/extensions/forms/Form/Visibility/VisibilityDocs.js.map +1 -1
  357. package/extensions/forms/Value/Date/Date.d.ts +3 -2
  358. package/extensions/forms/Value/Date/Date.js.map +1 -1
  359. package/extensions/forms/Wizard/Container/WizardContainer.js +20 -8
  360. package/extensions/forms/Wizard/Container/WizardContainer.js.map +1 -1
  361. package/extensions/forms/Wizard/Context/WizardContext.d.ts +1 -0
  362. package/extensions/forms/Wizard/Context/WizardContext.js.map +1 -1
  363. package/extensions/forms/Wizard/Step/Step.d.ts +16 -1
  364. package/extensions/forms/Wizard/Step/Step.js +29 -10
  365. package/extensions/forms/Wizard/Step/Step.js.map +1 -1
  366. package/extensions/forms/Wizard/Step/StepDocs.js +18 -3
  367. package/extensions/forms/Wizard/Step/StepDocs.js.map +1 -1
  368. package/extensions/forms/constants/locales/en-GB.d.ts +6 -0
  369. package/extensions/forms/constants/locales/en-GB.js +7 -1
  370. package/extensions/forms/constants/locales/en-GB.js.map +1 -1
  371. package/extensions/forms/constants/locales/en-US.d.ts +6 -0
  372. package/extensions/forms/constants/locales/index.d.ts +12 -0
  373. package/extensions/forms/constants/locales/nb-NO.d.ts +6 -0
  374. package/extensions/forms/constants/locales/nb-NO.js +7 -1
  375. package/extensions/forms/constants/locales/nb-NO.js.map +1 -1
  376. package/extensions/forms/types.d.ts +1 -0
  377. package/extensions/forms/types.js.map +1 -1
  378. package/fragments/drawer-list/DrawerList.d.ts +6 -1
  379. package/package.json +1 -1
  380. package/shared/Eufemia.d.ts +1 -1
  381. package/shared/Eufemia.js +2 -2
  382. package/shared/Eufemia.js.map +1 -1
  383. package/style/core/scopes.scss +1 -1
  384. package/style/dnb-ui-basis.css +1 -1
  385. package/style/dnb-ui-basis.min.css +1 -1
  386. package/style/dnb-ui-body.css +1 -1
  387. package/style/dnb-ui-body.min.css +1 -1
  388. package/style/dnb-ui-core.css +1 -1
  389. package/style/dnb-ui-core.min.css +1 -1
  390. package/style/themes/theme-eiendom/eiendom-theme-basis.css +0 -2
  391. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  392. package/style/themes/theme-eiendom/eiendom-theme-components.css +5 -7
  393. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  394. package/style/themes/theme-sbanken/globals.scss +0 -4
  395. package/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -2
  396. package/style/themes/theme-sbanken/sbanken-theme-basis.min.css +1 -1
  397. package/style/themes/theme-sbanken/sbanken-theme-components.css +6 -8
  398. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +2 -2
  399. package/style/themes/theme-ui/globals.scss +0 -4
  400. package/style/themes/theme-ui/ui-theme-basis.css +0 -2
  401. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  402. package/style/themes/theme-ui/ui-theme-components.css +5 -7
  403. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  404. package/umd/dnb-ui-basis.min.js +1 -1
  405. package/umd/dnb-ui-components.min.js +1 -1
  406. package/umd/dnb-ui-elements.min.js +1 -1
  407. package/umd/dnb-ui-extensions.min.js +3 -3
  408. package/umd/dnb-ui-lib.min.js +1 -1
@@ -2,7 +2,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
4
  var _em, _em2;
5
- const _excluded = ["value", "title", "children", "error", "help"];
5
+ const _excluded = ["value", "title", "children", "error", "help", "size"];
6
6
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
  import React, { useMemo, useCallback } from 'react';
@@ -31,6 +31,7 @@ function Selection(props) {
31
31
  error,
32
32
  hasError,
33
33
  disabled,
34
+ size,
34
35
  emptyValue,
35
36
  width = 'large',
36
37
  htmlAttributes,
@@ -107,15 +108,19 @@ function Selection(props) {
107
108
  }
108
109
  }
109
110
  });
110
- return React.createElement(FieldBlock, _extends({}, fieldBlockProps, {
111
- labelHeight: "small",
111
+ const additionalFieldBlockProps = {
112
112
  asFieldset: React.Children.count(items) > 1
113
- }), React.createElement(Component.Group, {
113
+ };
114
+ if (!size) {
115
+ additionalFieldBlockProps.labelHeight = 'small';
116
+ }
117
+ return React.createElement(FieldBlock, _extends({}, fieldBlockProps, additionalFieldBlockProps), React.createElement(Component.Group, {
118
+ size: size,
114
119
  className: cn,
115
120
  layout_direction: optionsLayout === 'horizontal' ? 'row' : 'column',
116
121
  disabled: disabled,
117
122
  on_change: onChangeHandler,
118
- value: String(value !== null && value !== void 0 ? value : '')
123
+ value: String(value !== null && value !== void 0 ? value : '') || undefined
119
124
  }, items));
120
125
  }
121
126
  case 'autocomplete':
@@ -135,6 +140,7 @@ function Selection(props) {
135
140
  disabled
136
141
  }, htmlAttributes), {}, {
137
142
  data,
143
+ size,
138
144
  on_change: handleDropdownChange,
139
145
  on_show: handleShow,
140
146
  on_hide: handleHide,
@@ -166,13 +172,13 @@ function renderRadioItems(_ref6) {
166
172
  } = _ref6;
167
173
  const optionsCount = React.Children.count(children) + ((dataList === null || dataList === void 0 ? void 0 : dataList.length) || 0);
168
174
  const createOption = (props, i) => {
169
- var _ref7;
170
175
  const {
171
176
  value,
172
177
  title,
173
178
  children,
174
179
  error,
175
- help
180
+ help,
181
+ size
176
182
  } = props,
177
183
  rest = _objectWithoutProperties(props, _excluded);
178
184
  const label = title !== null && title !== void 0 ? title : children;
@@ -190,9 +196,10 @@ function renderRadioItems(_ref6) {
190
196
  key: `option-${i}-${id}`,
191
197
  label: variant === 'radio' ? label : undefined,
192
198
  text: variant === 'button' ? label : undefined,
193
- value: String((_ref7 = value !== null && value !== void 0 ? value : valueProp) !== null && _ref7 !== void 0 ? _ref7 : ''),
199
+ value: String(value !== null && value !== void 0 ? value : valueProp) || undefined,
194
200
  status: (hasError || checkForError([error, info, warning])) && 'error',
195
- suffix: suffix
201
+ suffix: suffix,
202
+ size: size
196
203
  }, htmlAttributes, rest));
197
204
  };
198
205
  return [...(dataList || []).map((props, i) => {
@@ -201,10 +208,10 @@ function renderRadioItems(_ref6) {
201
208
  createOption
202
209
  }) || [])].filter(Boolean);
203
210
  }
204
- export function mapOptions(children, _ref8) {
211
+ export function mapOptions(children, _ref7) {
205
212
  let {
206
213
  createOption
207
- } = _ref8;
214
+ } = _ref7;
208
215
  return React.Children.map(children, (child, i) => {
209
216
  if (React.isValidElement(child)) {
210
217
  if (child.type === OptionField) {
@@ -227,9 +234,9 @@ export function makeOptions(children, transformSelection) {
227
234
  child = child['props'].children;
228
235
  }
229
236
  if (React.isValidElement(child) && child.type === OptionField) {
230
- var _ref9, _props$title, _props$value;
237
+ var _ref8, _props$title, _props$value;
231
238
  const props = child.props;
232
- const title = (_ref9 = (_props$title = props.title) !== null && _props$title !== void 0 ? _props$title : props.children) !== null && _ref9 !== void 0 ? _ref9 : _em || (_em = React.createElement("em", null, "Untitled"));
239
+ const title = (_ref8 = (_props$title = props.title) !== null && _props$title !== void 0 ? _props$title : props.children) !== null && _ref8 !== void 0 ? _ref8 : _em || (_em = React.createElement("em", null, "Untitled"));
233
240
  const content = props.text ? [title, props.text] : title;
234
241
  const selected_value = transformSelection ? transformSelection(props) : undefined;
235
242
  const selectedKey = String((_props$value = props.value) !== null && _props$value !== void 0 ? _props$value : '');
@@ -1 +1 @@
1
- {"version":3,"file":"Selection.js","names":["React","useMemo","useCallback","classnames","convertJsxToString","makeUniqueId","ToggleButton","Dropdown","Radio","Autocomplete","HelpButton","OptionField","useFieldProps","checkForError","pickSpacingProps","FieldBlock","convertCamelCaseProps","useDataValue","Selection","props","clearValue","id","className","variant","layout","optionsLayout","placeholder","value","info","warning","error","hasError","disabled","emptyValue","width","htmlAttributes","setHasFocus","handleChange","setDisplayValue","transformSelection","data","dataPath","children","autocompleteProps","dropdownProps","getValueByPath","dataList","handleDropdownChange","_ref","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","fieldBlockProps","_objectSpread","forId","disableStatusSummary","Component","items","renderRadioItems","iterateOverItems","_ref5","v","label","createElement","_extends","labelHeight","asFieldset","Children","count","Group","layout_direction","on_change","String","_data$find","renderDropdownItems","concat","makeOptions","filter","Boolean","displayValue","find","item","content","sharedProps","list_class","portal_class","title","status","on_show","on_hide","stretch","specificFieldBlockProps","contentWidth","_ref6","valueProp","optionsCount","length","createOption","i","_ref7","help","rest","_objectWithoutProperties","_excluded","suffix","size","key","text","map","mapOptions","_ref8","child","isValidElement","type","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref9","_props$title","_props$value","_em","selected_value","style","_em2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport {\n convertJsxToString,\n makeUniqueId,\n} from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n Autocomplete,\n HelpButton,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { checkForError, ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport { FieldProps, Path } from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n convertCamelCaseProps,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\nimport { FormError } from '../../utils'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n disabled?: boolean\n style?: React.CSSProperties\n}>\n\nexport type Props = FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * Transform the displayed selection for Dropdown and Autocomplete variant.\n * Use it to display a different value than the one in the data set.\n */\n transformSelection?: (props: OptionFieldProps) => React.ReactNode\n\n /**\n * The path to the context data (Form.Handler).\n * The context data object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n}\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n setDisplayValue,\n transformSelection,\n data,\n dataPath,\n children,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection--layout-${layout}`,\n `dnb-forms-field-selection--options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disableStatusSummary: true,\n ...pickSpacingProps(props),\n }\n\n switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems: ({ value: v, label }) => {\n if (v === value) {\n setDisplayValue(label)\n }\n },\n })\n\n return (\n <FieldBlock\n {...fieldBlockProps}\n labelHeight=\"small\"\n asFieldset={React.Children.count(items) > 1}\n >\n <Component.Group\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '')}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const data = renderDropdownItems(dataList, transformSelection)\n .concat(makeOptions(children, transformSelection))\n .filter(Boolean)\n const displayValue = data.find((item) => item.selectedKey === value)\n ?.content\n setDisplayValue(displayValue)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status:\n (hasError || checkForError([error, info, warning])) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n on_change: handleDropdownChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n const specificFieldBlockProps: FieldBlockProps = {\n width,\n }\n if (layout === 'horizontal') {\n specificFieldBlockProps.width = undefined\n specificFieldBlockProps.contentWidth = width\n }\n\n return (\n <FieldBlock {...fieldBlockProps} {...specificFieldBlockProps}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: Props['value']\n error: Error | FormError | undefined\n help: HelpProps\n title: React.ReactNode\n children: React.ReactNode\n }>\n>\n\nfunction renderRadioItems({\n id,\n value: valueProp,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n iterateOverItems?: (item: {\n value: Props['value']\n label: Props['children']\n }) => void\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const createOption = (props: OptionProps, i: number) => {\n const { value, title, children, error, help, ...rest } = props\n\n const label = title ?? children\n const suffix = help ? (\n <HelpButton size=\"small\" title={convertJsxToString(help.title)}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n iterateOverItems?.({ value, label })\n\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${id}`}\n label={variant === 'radio' ? label : undefined}\n text={variant === 'button' ? label : undefined}\n value={String(value ?? valueProp ?? '')}\n status={\n (hasError || checkForError([error, info, warning])) && 'error'\n }\n suffix={suffix}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children, { createOption }) || []),\n ].filter(Boolean)\n}\n\nexport function mapOptions(\n children: React.ReactNode,\n {\n createOption,\n }: { createOption: (props: OptionProps, i: number) => React.ReactNode }\n) {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children, {\n createOption,\n })\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode,\n transformSelection?: Props['transformSelection']\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.title ?? props.children ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selected_value = transformSelection\n ? transformSelection(props)\n : undefined\n const selectedKey = String(props.value ?? '')\n const disabled = props.disabled\n const style = props.style\n\n return { selectedKey, selected_value, content, disabled, style }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(\n data: Data,\n transformSelection?: Props['transformSelection']\n) {\n return (\n data?.map((props) => {\n const { value, title, text, disabled, style } = props\n return {\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n selected_value: transformSelection\n ? transformSelection(props)\n : undefined,\n disabled,\n style,\n }\n }) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
1
+ {"version":3,"file":"Selection.js","names":["React","useMemo","useCallback","classnames","convertJsxToString","makeUniqueId","ToggleButton","Dropdown","Radio","Autocomplete","HelpButton","OptionField","useFieldProps","checkForError","pickSpacingProps","FieldBlock","convertCamelCaseProps","useDataValue","Selection","props","clearValue","id","className","variant","layout","optionsLayout","placeholder","value","info","warning","error","hasError","disabled","size","emptyValue","width","htmlAttributes","setHasFocus","handleChange","setDisplayValue","transformSelection","data","dataPath","children","autocompleteProps","dropdownProps","getValueByPath","dataList","handleDropdownChange","_ref","selectedKey","onChangeHandler","_ref2","undefined","handleShow","_ref3","handleHide","_ref4","cn","fieldBlockProps","_objectSpread","forId","disableStatusSummary","Component","items","renderRadioItems","iterateOverItems","_ref5","v","label","additionalFieldBlockProps","asFieldset","Children","count","labelHeight","createElement","_extends","Group","layout_direction","on_change","String","_data$find","renderDropdownItems","concat","makeOptions","filter","Boolean","displayValue","find","item","content","sharedProps","list_class","portal_class","title","status","on_show","on_hide","stretch","specificFieldBlockProps","contentWidth","_ref6","valueProp","optionsCount","length","createOption","i","help","rest","_objectWithoutProperties","_excluded","suffix","key","text","map","mapOptions","_ref7","child","isValidElement","type","nestedChildren","cloneElement","_child","_child$props","_child$props$children","_ref8","_props$title","_props$value","_em","selected_value","style","_em2","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Selection/Selection.tsx"],"sourcesContent":["import React, { useMemo, useCallback } from 'react'\nimport classnames from 'classnames'\nimport {\n convertJsxToString,\n makeUniqueId,\n} from '../../../../shared/component-helper'\nimport {\n ToggleButton,\n Dropdown,\n Radio,\n Autocomplete,\n HelpButton,\n} from '../../../../components'\nimport OptionField, { Props as OptionFieldProps } from '../Option'\nimport { useFieldProps } from '../../hooks'\nimport { checkForError, ReturnAdditional } from '../../hooks/useFieldProps'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport FieldBlock, {\n Props as FieldBlockProps,\n FieldBlockWidth,\n} from '../../FieldBlock'\nimport { FieldProps, Path } from '../../types'\nimport type { FormStatusText } from '../../../../components/FormStatus'\nimport type { AutocompleteAllProps } from '../../../../components/Autocomplete'\nimport type { DropdownAllProps } from '../../../../components/Dropdown'\nimport { HelpProps } from '../../../../components/help-button/HelpButtonInline'\nimport { DrawerListProps } from '../../../../fragments/DrawerList'\nimport {\n convertCamelCaseProps,\n ToCamelCase,\n} from '../../../../shared/helpers/withCamelCaseProps'\nimport useDataValue from '../../hooks/useDataValue'\nimport { FormError } from '../../utils'\nimport type { RadioProps } from '../../../../components/Radio'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\nimport type { RadioGroupProps } from '../../../../components/radio/RadioGroup'\nimport type { ToggleButtonGroupProps } from '../../../../components/toggle-button/ToggleButtonGroup'\n\ntype IOption = {\n title: string | React.ReactNode\n value: number | string\n status: FormStatusText\n}\nexport type Data = Array<{\n value: string\n title: React.ReactNode\n text?: React.ReactNode\n disabled?: boolean\n style?: React.CSSProperties\n}>\n\nexport type Props = FieldProps<IOption['value']> & {\n /**\n * Defines the variant of the component.\n * Default: dropdown\n */\n variant?: 'dropdown' | 'autocomplete' | 'radio' | 'button'\n\n /**\n * The width of the component.\n * Default: large\n */\n width?: FieldBlockWidth\n\n /**\n * Defines the layout of the options for radio and button variants.\n */\n optionsLayout?: 'horizontal' | 'vertical'\n\n /**\n * Transform the displayed selection for Dropdown and Autocomplete variant.\n * Use it to display a different value than the one in the data set.\n */\n transformSelection?: (props: OptionFieldProps) => React.ReactNode\n\n /**\n * The path to the context data (Form.Handler).\n * The context data object needs to have a `value` and a `title` property.\n */\n dataPath?: Path\n\n /**\n * Data to be used for the component. The object needs to have a `value` and a `title` property.\n * The generated options will be placed above given JSX based children.\n */\n data?: Data\n\n /**\n * Autocomplete specific props\n */\n autocompleteProps?: ToCamelCase<AutocompleteAllProps>\n\n /**\n * Dropdown specific props\n */\n dropdownProps?: ToCamelCase<DropdownAllProps>\n\n /**\n * The size of the component.\n */\n size?:\n | ToggleButtonGroupProps['size']\n | RadioGroupProps['size']\n | AutocompleteAllProps['size']\n | DropdownAllProps['size']\n\n /**\n * The content of the component.\n */\n children?: React.ReactNode\n}\n\nfunction Selection(props: Props) {\n const clearValue = useMemo(() => `clear-option-${makeUniqueId()}`, [])\n\n const {\n id,\n className,\n variant = 'dropdown',\n layout = 'vertical',\n optionsLayout = 'vertical',\n placeholder,\n value,\n info,\n warning,\n error,\n hasError,\n disabled,\n size,\n emptyValue,\n width = 'large',\n htmlAttributes,\n setHasFocus,\n handleChange,\n setDisplayValue,\n transformSelection,\n data,\n dataPath,\n children,\n\n // - Autocomplete and Dropdown specific props\n autocompleteProps,\n dropdownProps,\n } = useFieldProps(props)\n\n const { getValueByPath } = useDataValue()\n let dataList = data\n if (dataPath) {\n dataList = getValueByPath(dataPath)\n }\n\n const handleDropdownChange = useCallback(\n ({ data }) => {\n const selectedKey = data?.selectedKey\n handleChange?.(\n !selectedKey || selectedKey === clearValue\n ? emptyValue\n : selectedKey\n )\n },\n [handleChange, emptyValue, clearValue]\n )\n\n const onChangeHandler = useCallback(\n ({ value }) => {\n handleChange?.(value === undefined ? emptyValue : value)\n },\n [handleChange, emptyValue]\n )\n\n // Specific handleShow and handleHide because Dropdown preserve the initially received callbacks, so changes\n // due to `useCallback` usage will have no effect, leading to useFieldPropss handleFocus and handleBlur sending out old\n // copies of value as arguments.\n const handleShow = useCallback(\n ({ data }) => {\n setHasFocus(true, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const handleHide = useCallback(\n ({ data }) => {\n setHasFocus(false, data?.selectedKey)\n },\n [setHasFocus]\n )\n\n const cn = classnames(\n 'dnb-forms-field-selection',\n `dnb-forms-field-selection__variant--${variant}`,\n `dnb-forms-field-selection--layout-${layout}`,\n `dnb-forms-field-selection--options-layout--${optionsLayout}`,\n className\n )\n\n const fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disableStatusSummary: true,\n ...pickSpacingProps(props),\n }\n\n switch (variant) {\n case 'radio':\n case 'button': {\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n const items = renderRadioItems({\n id,\n value,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems: ({ value: v, label }) => {\n if (v === value) {\n setDisplayValue(label)\n }\n },\n })\n\n const additionalFieldBlockProps: FieldBlockProps = {\n asFieldset: React.Children.count(items) > 1,\n }\n if (!size) {\n additionalFieldBlockProps.labelHeight = 'small'\n }\n\n return (\n <FieldBlock {...fieldBlockProps} {...additionalFieldBlockProps}>\n <Component.Group\n size={size}\n className={cn}\n layout_direction={\n optionsLayout === 'horizontal' ? 'row' : 'column'\n }\n disabled={disabled}\n on_change={onChangeHandler}\n value={String(value ?? '') || undefined}\n >\n {items}\n </Component.Group>\n </FieldBlock>\n )\n }\n\n case 'autocomplete':\n case 'dropdown': {\n const data = renderDropdownItems(dataList, transformSelection)\n .concat(makeOptions(children, transformSelection))\n .filter(Boolean)\n const displayValue = data.find((item) => item.selectedKey === value)\n ?.content\n setDisplayValue(displayValue)\n\n const sharedProps: AutocompleteAllProps & DropdownAllProps = {\n id,\n list_class: 'dnb-forms-field-selection__list',\n portal_class: 'dnb-forms-field-selection__portal',\n title: placeholder,\n value: String(value ?? ''),\n status:\n (hasError || checkForError([error, info, warning])) && 'error',\n disabled,\n ...htmlAttributes,\n data,\n size,\n on_change: handleDropdownChange,\n on_show: handleShow,\n on_hide: handleHide,\n stretch: true,\n }\n\n const specificFieldBlockProps: FieldBlockProps = {\n width,\n }\n if (layout === 'horizontal') {\n specificFieldBlockProps.width = undefined\n specificFieldBlockProps.contentWidth = width\n }\n\n return (\n <FieldBlock {...fieldBlockProps} {...specificFieldBlockProps}>\n {variant === 'autocomplete' ? (\n <Autocomplete\n {...sharedProps}\n {...(autocompleteProps\n ? (convertCamelCaseProps(\n autocompleteProps\n ) as AutocompleteAllProps)\n : null)}\n />\n ) : (\n <Dropdown\n {...sharedProps}\n {...(dropdownProps\n ? (convertCamelCaseProps(\n dropdownProps\n ) as DropdownAllProps)\n : null)}\n />\n )}\n </FieldBlock>\n )\n }\n }\n}\n\ntype OptionProps = React.ComponentProps<\n React.FC<{\n value: Props['value']\n error: Error | FormError | undefined\n help: HelpProps\n title: React.ReactNode\n children: React.ReactNode\n size?: ToggleButtonProps['size'] | RadioProps['size']\n }>\n>\n\nfunction renderRadioItems({\n id,\n value: valueProp,\n variant,\n info,\n warning,\n htmlAttributes,\n children,\n dataList,\n hasError,\n iterateOverItems,\n}: {\n id: string\n value: Props['value']\n variant: Props['variant']\n info: Props['info']\n warning: Props['warning']\n htmlAttributes: Props['htmlAttributes']\n children: Props['children']\n dataList: Data\n hasError: ReturnAdditional<Props['value']>['hasError']\n iterateOverItems?: (item: {\n value: Props['value']\n label: Props['children']\n }) => void\n}) {\n const optionsCount =\n React.Children.count(children) + (dataList?.length || 0)\n\n const createOption = (props: OptionProps, i: number) => {\n const { value, title, children, error, help, size, ...rest } = props\n\n const label = title ?? children\n const suffix = help ? (\n <HelpButton size=\"small\" title={convertJsxToString(help.title)}>\n {help.content}\n </HelpButton>\n ) : undefined\n\n iterateOverItems?.({ value, label })\n\n const Component = (\n variant === 'radio' ? Radio : ToggleButton\n ) as typeof Radio & typeof ToggleButton\n\n return (\n <Component\n id={optionsCount === 1 ? id : undefined}\n key={`option-${i}-${id}`}\n label={variant === 'radio' ? label : undefined}\n text={variant === 'button' ? label : undefined}\n value={String(value ?? valueProp) || undefined}\n status={\n (hasError || checkForError([error, info, warning])) && 'error'\n }\n suffix={suffix}\n size={size}\n {...htmlAttributes}\n {...rest}\n />\n )\n }\n\n return [\n ...(dataList || []).map((props, i) => {\n return createOption(props as OptionProps, i)\n }),\n ...(mapOptions(children, { createOption }) || []),\n ].filter(Boolean)\n}\n\nexport function mapOptions(\n children: React.ReactNode,\n {\n createOption,\n }: { createOption: (props: OptionProps, i: number) => React.ReactNode }\n) {\n return React.Children.map(\n children,\n (child: React.ReactElement<OptionProps>, i) => {\n if (React.isValidElement(child)) {\n if (child.type === OptionField) {\n return createOption(child.props, i)\n }\n\n if (child.props.children) {\n const nestedChildren = mapOptions(child.props.children, {\n createOption,\n })\n return React.cloneElement(child, child.props, nestedChildren)\n }\n }\n\n return child\n }\n )\n}\n\nexport function makeOptions<T = DrawerListProps['data']>(\n children: React.ReactNode,\n transformSelection?: Props['transformSelection']\n): T {\n return React.Children.map(children, (child) => {\n if (child?.['props']?.children?.type === OptionField) {\n child = child['props'].children\n }\n\n if (React.isValidElement(child) && child.type === OptionField) {\n const props = child.props as OptionFieldProps\n const title = props.title ?? props.children ?? <em>Untitled</em>\n const content = props.text ? [title, props.text] : title\n const selected_value = transformSelection\n ? transformSelection(props)\n : undefined\n const selectedKey = String(props.value ?? '')\n const disabled = props.disabled\n const style = props.style\n\n return { selectedKey, selected_value, content, disabled, style }\n }\n\n // For other children, just show them as content\n if (child) {\n return {\n content: child,\n }\n }\n }) as T\n}\n\nfunction renderDropdownItems(\n data: Data,\n transformSelection?: Props['transformSelection']\n) {\n return (\n data?.map((props) => {\n const { value, title, text, disabled, style } = props\n return {\n selectedKey: value,\n content: (text ? [title, text] : title) || <em>Untitled</em>,\n selected_value: transformSelection\n ? transformSelection(props)\n : undefined,\n disabled,\n style,\n }\n }) || []\n )\n}\n\nSelection._supportsSpacingProps = true\nexport default Selection\n"],"mappings":"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"}
@@ -44,6 +44,11 @@ export const SelectionProperties = {
44
44
  type: 'object',
45
45
  status: 'optional'
46
46
  },
47
+ size: {
48
+ doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size="2" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',
49
+ type: 'string',
50
+ status: 'optional'
51
+ },
47
52
  children: {
48
53
  doc: 'For providing Option components, and other children.',
49
54
  type: 'React.Node',
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionDocs.js","names":["SelectionProperties","variant","doc","type","status","value","transformSelection","optionsLayout","width","data","dataPath","autocompleteProps","dropdownProps","children"],"sources":["../../../../../../src/extensions/forms/Field/Selection/SelectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const SelectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Choice of UI feature. Can be: `dropdown`, `autocomplete`, `radio` or `button`.',\n type: 'string',\n status: 'optional',\n },\n value: {\n doc: 'Defines the `value`. When using variant `radio` or `button`, value has to be a `string`.',\n type: ['number', 'string'],\n status: 'optional',\n },\n transformSelection: {\n doc: 'Transform the displayed selection for Dropdown and Autocomplete variant. Use it to display a different value than the one in the data set. The first parameter is the props of the Option component or data item. You can return a React.Node that will be displayed in the selection.',\n type: 'function',\n status: 'optional',\n },\n optionsLayout: {\n doc: 'Layout for the list of options. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n data: {\n doc: 'Data to be used for the component. The object needs to have a `value` and a `title` property. Provide the Dropdown or Autocomplete data in the format documented here: [Dropdown](/uilib/components/dropdown) and [Autocomplete](/uilib/components/autocomplete) documentation.',\n type: 'array',\n status: 'optional',\n },\n dataPath: {\n doc: 'The path to the context data (Form.Handler). The context data object needs to have a `value` and a `title` property. The generated options will be placed above given JSX based children.',\n type: 'string',\n status: 'optional',\n },\n autocompleteProps: {\n doc: 'Forward any additional props (camelCase) to the [Autocomplete](/uilib/components/autocomplete/) component.',\n type: 'object',\n status: 'optional',\n },\n dropdownProps: {\n doc: 'Forward any additional props (camelCase) to the [Dropdown](/uilib/components/dropdown/) component.',\n type: 'object',\n status: 'optional',\n },\n children: {\n doc: 'For providing Option components, and other children.',\n type: 'React.Node',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,mBAAyC,GAAG;EACvDC,OAAO,EAAE;IACPC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,KAAK,EAAE;IACLH,GAAG,EAAE,0FAA0F;IAC/FC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,kBAAkB,EAAE;IAClBJ,GAAG,EAAE,wRAAwR;IAC7RC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDK,IAAI,EAAE;IACJP,GAAG,EAAE,iRAAiR;IACtRC,IAAI,EAAE,OAAO;IACbC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,2LAA2L;IAChMC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,iBAAiB,EAAE;IACjBT,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,aAAa,EAAE;IACbV,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,QAAQ,EAAE;IACRX,GAAG,EAAE,sDAAsD;IAC3DC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"SelectionDocs.js","names":["SelectionProperties","variant","doc","type","status","value","transformSelection","optionsLayout","width","data","dataPath","autocompleteProps","dropdownProps","size","children"],"sources":["../../../../../../src/extensions/forms/Field/Selection/SelectionDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const SelectionProperties: PropertiesTableProps = {\n variant: {\n doc: 'Choice of UI feature. Can be: `dropdown`, `autocomplete`, `radio` or `button`.',\n type: 'string',\n status: 'optional',\n },\n value: {\n doc: 'Defines the `value`. When using variant `radio` or `button`, value has to be a `string`.',\n type: ['number', 'string'],\n status: 'optional',\n },\n transformSelection: {\n doc: 'Transform the displayed selection for Dropdown and Autocomplete variant. Use it to display a different value than the one in the data set. The first parameter is the props of the Option component or data item. You can return a React.Node that will be displayed in the selection.',\n type: 'function',\n status: 'optional',\n },\n optionsLayout: {\n doc: 'Layout for the list of options. Can be `horizontal` or `vertical`.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`small`, `medium` or `large` for predefined standard widths, `stretch` for fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n data: {\n doc: 'Data to be used for the component. The object needs to have a `value` and a `title` property. Provide the Dropdown or Autocomplete data in the format documented here: [Dropdown](/uilib/components/dropdown) and [Autocomplete](/uilib/components/autocomplete) documentation.',\n type: 'array',\n status: 'optional',\n },\n dataPath: {\n doc: 'The path to the context data (Form.Handler). The context data object needs to have a `value` and a `title` property. The generated options will be placed above given JSX based children.',\n type: 'string',\n status: 'optional',\n },\n autocompleteProps: {\n doc: 'Forward any additional props (camelCase) to the [Autocomplete](/uilib/components/autocomplete/) component.',\n type: 'object',\n status: 'optional',\n },\n dropdownProps: {\n doc: 'Forward any additional props (camelCase) to the [Dropdown](/uilib/components/dropdown/) component.',\n type: 'object',\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size=\"2\" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',\n type: 'string',\n status: 'optional',\n },\n children: {\n doc: 'For providing Option components, and other children.',\n type: 'React.Node',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,mBAAyC,GAAG;EACvDC,OAAO,EAAE;IACPC,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,KAAK,EAAE;IACLH,GAAG,EAAE,0FAA0F;IAC/FC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDE,kBAAkB,EAAE;IAClBJ,GAAG,EAAE,wRAAwR;IAC7RC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,oEAAoE;IACzEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,KAAK,EAAE;IACLN,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EACDK,IAAI,EAAE;IACJP,GAAG,EAAE,iRAAiR;IACtRC,IAAI,EAAE,OAAO;IACbC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,2LAA2L;IAChMC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,iBAAiB,EAAE;IACjBT,GAAG,EAAE,4GAA4G;IACjHC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,aAAa,EAAE;IACbV,GAAG,EAAE,oGAAoG;IACzGC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,IAAI,EAAE;IACJX,GAAG,EAAE,oWAAoW;IACzWC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,QAAQ,EAAE;IACRZ,GAAG,EAAE,sDAAsD;IAC3DC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -1,3 +1,6 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ 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; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1
4
  import { inputProperties } from '../../../../components/input/InputDocs';
2
5
  export const stringProperties = {
3
6
  multiline: {
@@ -55,7 +58,9 @@ export const stringProperties = {
55
58
  type: ['string', 'false'],
56
59
  status: 'optional'
57
60
  },
58
- size: inputProperties.size,
61
+ size: _objectSpread(_objectSpread({}, inputProperties.size), {}, {
62
+ doc: `${inputProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`
63
+ }),
59
64
  align: inputProperties.align,
60
65
  selectall: inputProperties.selectall,
61
66
  clear: inputProperties.clear,
@@ -1 +1 @@
1
- {"version":3,"file":"StringDocs.js","names":["inputProperties","stringProperties","multiline","doc","type","status","leftIcon","rightIcon","capitalize","trim","inputMode","autoComplete","minLength","maxLength","pattern","width","size","align","selectall","clear","keepPlaceholder","keep_placeholder","rows","autoresizeMaxRows","characterCounter","autoresize","inputClassName","innerRef","submitElement"],"sources":["../../../../../../src/extensions/forms/Field/String/StringDocs.ts"],"sourcesContent":["import { inputProperties } from '../../../../components/input/InputDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const stringProperties: PropertiesTableProps = {\n multiline: {\n doc: 'True to be able to write in multiple lines (switching from input-element to textarea-element).',\n type: 'boolean',\n status: 'optional',\n },\n leftIcon: {\n doc: 'For icon at the left side of the text input.',\n type: 'string',\n status: 'optional',\n },\n rightIcon: {\n doc: 'For icon at the right side of the text input.',\n type: 'string',\n status: 'optional',\n },\n capitalize: {\n doc: 'When set to true, it will capitalize the first letter of every word, transforming the rest to lowercase.',\n type: 'boolean',\n status: 'optional',\n },\n trim: {\n doc: 'When true, it will trim leading and trailing whitespaces on blur, triggering onChange if the value changes.',\n type: 'boolean',\n status: 'optional',\n },\n inputMode: {\n doc: 'Define an [inputmode](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode).',\n type: 'string',\n status: 'optional',\n },\n autoComplete: {\n doc: 'For HTML [autocomplete](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) attributes.',\n type: ['on', 'string'],\n status: 'optional',\n },\n minLength: {\n doc: 'Validation for minimum length of the text (number of characters).',\n type: 'number',\n status: 'optional',\n },\n maxLength: {\n doc: 'Validation for maximum length of the text (number of characters).',\n type: 'number',\n status: 'optional',\n },\n pattern: {\n doc: 'Validation based on regex pattern.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`false` for no width (use browser default), small, medium or large for predefined standard widths, stretch to fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n\n // - Input props\n size: inputProperties.size,\n align: inputProperties.align,\n selectall: inputProperties.selectall,\n clear: inputProperties.clear,\n keepPlaceholder: inputProperties.keep_placeholder,\n\n // - Textarea props\n rows: {\n doc: 'For multiline, set how many rows of text can be shown by default. Defaults to 2.',\n type: 'number',\n status: 'optional',\n },\n autoresizeMaxRows: {\n doc: 'For multiline, set how many rows of text can be shown at max. Defaults to 6',\n type: 'number',\n status: 'optional',\n },\n characterCounter: {\n doc: \"For multiline, use a number to define the displayed max length e.g. `40` or `{ max: 40, variant: 'down' }`.\",\n type: ['number', 'object'],\n status: 'optional',\n },\n autoresize: {\n doc: 'For multiline, set true to expand when writing longer texts. Defaults to true.',\n type: 'boolean',\n status: 'optional',\n },\n\n // - Additional props\n inputClassName: {\n doc: 'Class name set on the <input> DOM element.',\n type: 'string',\n status: 'optional',\n },\n innerRef: {\n doc: 'By providing a React.Ref we can get the internally used input element (DOM).',\n type: 'React.Ref',\n status: 'optional',\n },\n submitElement: {\n doc: 'Accepts a React element which will show up like the \"submit button\" would do on type=\"search\".',\n type: 'React.Element',\n status: 'optional',\n },\n}\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,wCAAwC;AAGxE,OAAO,MAAMC,gBAAsC,GAAG;EACpDC,SAAS,EAAE;IACTC,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,8CAA8C;IACnDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,SAAS,EAAE;IACTJ,GAAG,EAAE,+CAA+C;IACpDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,UAAU,EAAE;IACVL,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,6GAA6G;IAClHC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,uGAAuG;IAC5GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,YAAY,EAAE;IACZR,GAAG,EAAE,gHAAgH;IACrHC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtBC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,mEAAmE;IACxEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,mEAAmE;IACxEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,oCAAoC;IACzCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,KAAK,EAAE;IACLZ,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EAGDW,IAAI,EAAEhB,eAAe,CAACgB,IAAI;EAC1BC,KAAK,EAAEjB,eAAe,CAACiB,KAAK;EAC5BC,SAAS,EAAElB,eAAe,CAACkB,SAAS;EACpCC,KAAK,EAAEnB,eAAe,CAACmB,KAAK;EAC5BC,eAAe,EAAEpB,eAAe,CAACqB,gBAAgB;EAGjDC,IAAI,EAAE;IACJnB,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDkB,iBAAiB,EAAE;IACjBpB,GAAG,EAAE,6EAA6E;IAClFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDmB,gBAAgB,EAAE;IAChBrB,GAAG,EAAE,6GAA6G;IAClHC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDoB,UAAU,EAAE;IACVtB,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EAGDqB,cAAc,EAAE;IACdvB,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDsB,QAAQ,EAAE;IACRxB,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV,CAAC;EACDuB,aAAa,EAAE;IACbzB,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,eAAe;IACrBC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"StringDocs.js","names":["inputProperties","stringProperties","multiline","doc","type","status","leftIcon","rightIcon","capitalize","trim","inputMode","autoComplete","minLength","maxLength","pattern","width","size","_objectSpread","align","selectall","clear","keepPlaceholder","keep_placeholder","rows","autoresizeMaxRows","characterCounter","autoresize","inputClassName","innerRef","submitElement"],"sources":["../../../../../../src/extensions/forms/Field/String/StringDocs.ts"],"sourcesContent":["import { inputProperties } from '../../../../components/input/InputDocs'\nimport { PropertiesTableProps } from '../../../../shared/types'\n\nexport const stringProperties: PropertiesTableProps = {\n multiline: {\n doc: 'True to be able to write in multiple lines (switching from input-element to textarea-element).',\n type: 'boolean',\n status: 'optional',\n },\n leftIcon: {\n doc: 'For icon at the left side of the text input.',\n type: 'string',\n status: 'optional',\n },\n rightIcon: {\n doc: 'For icon at the right side of the text input.',\n type: 'string',\n status: 'optional',\n },\n capitalize: {\n doc: 'When set to true, it will capitalize the first letter of every word, transforming the rest to lowercase.',\n type: 'boolean',\n status: 'optional',\n },\n trim: {\n doc: 'When true, it will trim leading and trailing whitespaces on blur, triggering onChange if the value changes.',\n type: 'boolean',\n status: 'optional',\n },\n inputMode: {\n doc: 'Define an [inputmode](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode).',\n type: 'string',\n status: 'optional',\n },\n autoComplete: {\n doc: 'For HTML [autocomplete](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) attributes.',\n type: ['on', 'string'],\n status: 'optional',\n },\n minLength: {\n doc: 'Validation for minimum length of the text (number of characters).',\n type: 'number',\n status: 'optional',\n },\n maxLength: {\n doc: 'Validation for maximum length of the text (number of characters).',\n type: 'number',\n status: 'optional',\n },\n pattern: {\n doc: 'Validation based on regex pattern.',\n type: 'string',\n status: 'optional',\n },\n width: {\n doc: '`false` for no width (use browser default), small, medium or large for predefined standard widths, stretch to fill available width.',\n type: ['string', 'false'],\n status: 'optional',\n },\n\n // - Input props\n size: {\n ...inputProperties.size,\n doc: `${inputProperties.size.doc} Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).`,\n },\n align: inputProperties.align,\n selectall: inputProperties.selectall,\n clear: inputProperties.clear,\n keepPlaceholder: inputProperties.keep_placeholder,\n\n // - Textarea props\n rows: {\n doc: 'For multiline, set how many rows of text can be shown by default. Defaults to 2.',\n type: 'number',\n status: 'optional',\n },\n autoresizeMaxRows: {\n doc: 'For multiline, set how many rows of text can be shown at max. Defaults to 6',\n type: 'number',\n status: 'optional',\n },\n characterCounter: {\n doc: \"For multiline, use a number to define the displayed max length e.g. `40` or `{ max: 40, variant: 'down' }`.\",\n type: ['number', 'object'],\n status: 'optional',\n },\n autoresize: {\n doc: 'For multiline, set true to expand when writing longer texts. Defaults to true.',\n type: 'boolean',\n status: 'optional',\n },\n\n // - Additional props\n inputClassName: {\n doc: 'Class name set on the <input> DOM element.',\n type: 'string',\n status: 'optional',\n },\n innerRef: {\n doc: 'By providing a React.Ref we can get the internally used input element (DOM).',\n type: 'React.Ref',\n status: 'optional',\n },\n submitElement: {\n doc: 'Accepts a React element which will show up like the \"submit button\" would do on type=\"search\".',\n type: 'React.Element',\n status: 'optional',\n },\n}\n"],"mappings":";;;AAAA,SAASA,eAAe,QAAQ,wCAAwC;AAGxE,OAAO,MAAMC,gBAAsC,GAAG;EACpDC,SAAS,EAAE;IACTC,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,8CAA8C;IACnDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,SAAS,EAAE;IACTJ,GAAG,EAAE,+CAA+C;IACpDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,UAAU,EAAE;IACVL,GAAG,EAAE,0GAA0G;IAC/GC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,6GAA6G;IAClHC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,uGAAuG;IAC5GC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,YAAY,EAAE;IACZR,GAAG,EAAE,gHAAgH;IACrHC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;IACtBC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,mEAAmE;IACxEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,mEAAmE;IACxEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,oCAAoC;IACzCC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDU,KAAK,EAAE;IACLZ,GAAG,EAAE,qIAAqI;IAC1IC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzBC,MAAM,EAAE;EACV,CAAC;EAGDW,IAAI,EAAAC,aAAA,CAAAA,aAAA,KACCjB,eAAe,CAACgB,IAAI;IACvBb,GAAG,EAAG,GAAEH,eAAe,CAACgB,IAAI,CAACb,GAAI;EAAuG,EACzI;EACDe,KAAK,EAAElB,eAAe,CAACkB,KAAK;EAC5BC,SAAS,EAAEnB,eAAe,CAACmB,SAAS;EACpCC,KAAK,EAAEpB,eAAe,CAACoB,KAAK;EAC5BC,eAAe,EAAErB,eAAe,CAACsB,gBAAgB;EAGjDC,IAAI,EAAE;IACJpB,GAAG,EAAE,kFAAkF;IACvFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDmB,iBAAiB,EAAE;IACjBrB,GAAG,EAAE,6EAA6E;IAClFC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDoB,gBAAgB,EAAE;IAChBtB,GAAG,EAAE,6GAA6G;IAClHC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC1BC,MAAM,EAAE;EACV,CAAC;EACDqB,UAAU,EAAE;IACVvB,GAAG,EAAE,gFAAgF;IACrFC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EAGDsB,cAAc,EAAE;IACdxB,GAAG,EAAE,4CAA4C;IACjDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDuB,QAAQ,EAAE;IACRzB,GAAG,EAAE,8EAA8E;IACnFC,IAAI,EAAE,WAAW;IACjBC,MAAM,EAAE;EACV,CAAC;EACDwB,aAAa,EAAE;IACb1B,GAAG,EAAE,gGAAgG;IACrGC,IAAI,EAAE,eAAe;IACrBC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -1,10 +1,13 @@
1
1
  import { FieldProps } from '../../types';
2
+ import type { CheckboxProps } from '../../../../components/Checkbox';
3
+ import type { ToggleButtonProps } from '../../../../components/ToggleButton';
2
4
  export type ToggleProps = {
3
5
  valueOn: unknown;
4
6
  valueOff: unknown;
5
7
  variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons';
6
8
  textOn?: string;
7
9
  textOff?: string;
10
+ size?: ToggleButtonProps['size'] | CheckboxProps['size'];
8
11
  };
9
12
  export type Props = Omit<FieldProps<unknown>, 'layout' | 'layoutOptions'> & ToggleProps;
10
13
  declare function Toggle(props: Props): import("react/jsx-runtime").JSX.Element;
@@ -27,6 +27,7 @@ function Toggle(props) {
27
27
  textOn,
28
28
  textOff,
29
29
  value,
30
+ size,
30
31
  hasError,
31
32
  htmlAttributes,
32
33
  handleChange,
@@ -79,6 +80,7 @@ function Toggle(props) {
79
80
  label: labelWithItemNo !== null && labelWithItemNo !== void 0 ? labelWithItemNo : isOn ? textOn !== null && textOn !== void 0 ? textOn : translations.yes : textOff !== null && textOff !== void 0 ? textOff : translations.no,
80
81
  checked: isOn,
81
82
  disabled: disabled,
83
+ size: size !== 'small' ? size : undefined,
82
84
  status: hasError ? 'error' : undefined,
83
85
  onChange: handleCheckboxChange
84
86
  }, htmlAttributes)));
@@ -90,6 +92,7 @@ function Toggle(props) {
90
92
  disabled: disabled,
91
93
  status: hasError ? 'error' : undefined,
92
94
  value: value ? 'true' : 'false',
95
+ size: size,
93
96
  on_change: handleCheckboxChange
94
97
  }, htmlAttributes)));
95
98
  case 'buttons':
@@ -102,7 +105,8 @@ function Toggle(props) {
102
105
  value: isOn ? 'on' : isOff ? 'off' : null,
103
106
  onChange: handleToggleChange,
104
107
  status: hasError ? 'error' : undefined,
105
- disabled
108
+ disabled,
109
+ size
106
110
  }
107
111
  }, React.createElement(ToggleButton, _extends({
108
112
  text: textOn !== null && textOn !== void 0 ? textOn : translations.yes,
@@ -120,6 +124,7 @@ function Toggle(props) {
120
124
  disabled: disabled,
121
125
  status: hasError ? 'error' : undefined,
122
126
  value: value ? 'true' : 'false',
127
+ size: size,
123
128
  on_change: handleCheckboxChange
124
129
  }, htmlAttributes)));
125
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Toggle.js","names":["React","useCallback","useMemo","classnames","Checkbox","ToggleButton","ButtonRow","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","useTranslation","useIterateItemNo","Toggle","props","translations","ToggleField","preparedProps","_objectSpread","errorMessages","id","className","valueOn","valueOff","variant","disabled","textOn","textOff","value","hasError","htmlAttributes","handleChange","setDisplayValue","handleCheckboxChange","_ref","checked","handleToggleChange","_ref2","cn","fieldBlockProps","forId","isOn","isOff","text","label","labelSuffix","required","labelWithItemNo","createElement","_extends","undefined","yes","no","status","onChange","on_change","asFieldset","bottom","Provider","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport useTranslation from '../../hooks/useTranslation'\nimport { useIterateItemNo } from '../../Iterate/ItemNo/useIItemNo'\n\nexport type ToggleProps = {\n valueOn: unknown\n valueOff: unknown\n variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons'\n textOn?: string\n textOff?: string\n}\n\nexport type Props = Omit<FieldProps<unknown>, 'layout' | 'layoutOptions'> &\n ToggleProps\n\nfunction Toggle(props: Props) {\n const translations = useTranslation().ToggleField\n\n const preparedProps: Props = {\n ...props,\n errorMessages: props.errorMessages,\n }\n\n const {\n id,\n className,\n valueOn,\n valueOff,\n variant,\n disabled,\n textOn,\n textOff,\n value,\n hasError,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\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 fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disabled,\n ...pickSpacingProps(props),\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n useMemo(() => {\n const text = isOn ? textOn : textOff\n if (text) {\n setDisplayValue(text)\n }\n }, [isOn, setDisplayValue, textOff, textOn])\n\n const { label, labelSuffix, required } = props\n const labelWithItemNo = useIterateItemNo({\n label,\n labelSuffix,\n required,\n })\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps} label={undefined}>\n <Checkbox\n id={id}\n className={cn}\n label={\n labelWithItemNo ??\n (isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no)\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n onChange={handleCheckboxChange}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n on_change={handleCheckboxChange}\n {...htmlAttributes}\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' : null, // use \"null\" to reset the value\n onChange: handleToggleChange,\n status: hasError ? 'error' : undefined,\n disabled,\n }}\n >\n <ToggleButton\n text={textOn ?? translations.yes}\n value=\"on\"\n {...htmlAttributes}\n />\n <ToggleButton\n text={textOff ?? translations.no}\n value=\"off\"\n {...htmlAttributes}\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 ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n on_change={handleCheckboxChange}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,OAAO,QAAQ,OAAO;AACnD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,QAAQ,EAAEC,YAAY,QAAQ,wBAAwB;AAC/D,OAAOC,SAAS,MAAM,sBAAsB;AAC5C,OAAOC,UAAU,MAAoC,kBAAkB;AACvE,SAASC,aAAa,QAAQ,aAAa;AAE3C,SAASC,gBAAgB,QAAQ,mCAAmC;AACpE,OAAOC,wBAAwB,MAAM,+DAA+D;AACpG,OAAOC,cAAc,MAAM,4BAA4B;AACvD,SAASC,gBAAgB,QAAQ,iCAAiC;AAalE,SAASC,MAAMA,CAACC,KAAY,EAAE;EAC5B,MAAMC,YAAY,GAAGJ,cAAc,CAAC,CAAC,CAACK,WAAW;EAEjD,MAAMC,aAAoB,GAAAC,aAAA,CAAAA,aAAA,KACrBJ,KAAK;IACRK,aAAa,EAAEL,KAAK,CAACK;EAAa,EACnC;EAED,MAAM;IACJC,EAAE;IACFC,SAAS;IACTC,OAAO;IACPC,QAAQ;IACRC,OAAO;IACPC,QAAQ;IACRC,MAAM;IACNC,OAAO;IACPC,KAAK;IACLC,QAAQ;IACRC,cAAc;IACdC,YAAY;IACZC;EACF,CAAC,GAAGxB,aAAa,CAACS,aAAa,CAAC;EAEhC,MAAMgB,oBAAoB,GAAGhC,WAAW,CACtCiC,IAAA,IAAiB;IAAA,IAAhB;MAAEC;IAAQ,CAAC,GAAAD,IAAA;IACVH,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGI,OAAO,GAAGb,OAAO,GAAGC,QAAQ,CAAC;EAC9C,CAAC,EACD,CAACQ,YAAY,EAAET,OAAO,EAAEC,QAAQ,CAClC,CAAC;EACD,MAAMa,kBAAkB,GAAGnC,WAAW,CACpCoC,KAAA,IAAe;IAAA,IAAd;MAAET;IAAM,CAAC,GAAAS,KAAA;IACRN,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGH,KAAK,KAAK,IAAI,GAAGN,OAAO,GAAGC,QAAQ,CAAC;EACrD,CAAC,EACD,CAACQ,YAAY,EAAET,OAAO,EAAEC,QAAQ,CAClC,CAAC;EAED,MAAMe,EAAE,GAAGnC,UAAU,CAAC,wBAAwB,EAAEkB,SAAS,CAAC;EAE1D,MAAMkB,eAAgC,GAAArB,aAAA;IACpCsB,KAAK,EAAEpB,EAAE;IACTC,SAAS,EAAEiB,EAAE;IACbb;EAAQ,GACLhB,gBAAgB,CAACK,KAAK,CAAC,CAC3B;EAED,MAAM2B,IAAI,GAAGb,KAAK,KAAKN,OAAO;EAC9B,MAAMoB,KAAK,GAAGd,KAAK,KAAKL,QAAQ;EAEhCrB,OAAO,CAAC,MAAM;IACZ,MAAMyC,IAAI,GAAGF,IAAI,GAAGf,MAAM,GAAGC,OAAO;IACpC,IAAIgB,IAAI,EAAE;MACRX,eAAe,CAACW,IAAI,CAAC;IACvB;EACF,CAAC,EAAE,CAACF,IAAI,EAAET,eAAe,EAAEL,OAAO,EAAED,MAAM,CAAC,CAAC;EAE5C,MAAM;IAAEkB,KAAK;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAGhC,KAAK;EAC9C,MAAMiC,eAAe,GAAGnC,gBAAgB,CAAC;IACvCgC,KAAK;IACLC,WAAW;IACXC;EACF,CAAC,CAAC;EAEF,QAAQtB,OAAO;IACb;IACA,KAAK,UAAU;MACb,OACExB,KAAA,CAAAgD,aAAA,CAACzC,UAAU,EAAA0C,QAAA,KAAKV,eAAe;QAAEK,KAAK,EAAEM;MAAU,IAChDlD,KAAA,CAAAgD,aAAA,CAAC5C,QAAQ,EAAA6C,QAAA;QACP7B,EAAE,EAAEA,EAAG;QACPC,SAAS,EAAEiB,EAAG;QACdM,KAAK,EACHG,eAAe,aAAfA,eAAe,cAAfA,eAAe,GACdN,IAAI,GACDf,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIX,YAAY,CAACoC,GAAG,GAC1BxB,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIZ,YAAY,CAACqC,EAC7B;QACDjB,OAAO,EAAEM,IAAK;QACdhB,QAAQ,EAAEA,QAAS;QACnB4B,MAAM,EAAExB,QAAQ,GAAG,OAAO,GAAGqB,SAAU;QACvCI,QAAQ,EAAErB;MAAqB,GAC3BH,cAAc,CACnB,CACS,CAAC;IAEjB,KAAK,QAAQ;MACX,OACE9B,KAAA,CAAAgD,aAAA,CAACzC,UAAU,EAAKgC,eAAe,EAC7BvC,KAAA,CAAAgD,aAAA,CAAC3C,YAAY,EAAA4C,QAAA;QACX7B,EAAE,EAAEA,EAAG;QACPuB,IAAI,EACFF,IAAI,GACAf,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIX,YAAY,CAACoC,GAAG,GAC1BxB,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIZ,YAAY,CAACqC,EAC7B;QACDjB,OAAO,EAAEM,IAAK;QACdhB,QAAQ,EAAEA,QAAS;QACnB4B,MAAM,EAAExB,QAAQ,GAAG,OAAO,GAAGqB,SAAU;QACvCtB,KAAK,EAAEA,KAAK,GAAG,MAAM,GAAG,OAAQ;QAChC2B,SAAS,EAAEtB;MAAqB,GAC5BH,cAAc,CACnB,CACS,CAAC;IAEjB,KAAK,SAAS;MACZ,OACE9B,KAAA,CAAAgD,aAAA,CAACzC,UAAU,EAAA0C,QAAA,KAAKV,eAAe;QAAEiB,UAAU;MAAA,IACzCxD,KAAA,CAAAgD,aAAA,CAAC1C,SAAS;QAACmD,MAAM,EAAC;MAAS,GACzBzD,KAAA,CAAAgD,aAAA,CAACtC,wBAAwB,CAACgD,QAAQ;QAChC9B,KAAK,EAAE;UACLA,KAAK,EAAEa,IAAI,GAAG,IAAI,GAAGC,KAAK,GAAG,KAAK,GAAG,IAAI;UACzCY,QAAQ,EAAElB,kBAAkB;UAC5BiB,MAAM,EAAExB,QAAQ,GAAG,OAAO,GAAGqB,SAAS;UACtCzB;QACF;MAAE,GAEFzB,KAAA,CAAAgD,aAAA,CAAC3C,YAAY,EAAA4C,QAAA;QACXN,IAAI,EAAEjB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIX,YAAY,CAACoC,GAAI;QACjCvB,KAAK,EAAC;MAAI,GACNE,cAAc,CACnB,CAAC,EACF9B,KAAA,CAAAgD,aAAA,CAAC3C,YAAY,EAAA4C,QAAA;QACXN,IAAI,EAAEhB,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIZ,YAAY,CAACqC,EAAG;QACjCxB,KAAK,EAAC;MAAK,GACPE,cAAc,CACnB,CACgC,CAC1B,CACD,CAAC;IAEjB,KAAK,iBAAiB;MACpB,OACE9B,KAAA,CAAAgD,aAAA,CAACzC,UAAU,EAAKgC,eAAe,EAC7BvC,KAAA,CAAAgD,aAAA,CAAC3C,YAAY,EAAA4C,QAAA;QACX7B,EAAE,EAAEA,EAAG;QACPI,OAAO,EAAC,UAAU;QAClBmB,IAAI,EACFF,IAAI,GACAf,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIX,YAAY,CAACoC,GAAG,GAC1BxB,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAIZ,YAAY,CAACqC,EAC7B;QACDjB,OAAO,EAAEM,IAAK;QACdhB,QAAQ,EAAEA,QAAS;QACnB4B,MAAM,EAAExB,QAAQ,GAAG,OAAO,GAAGqB,SAAU;QACvCtB,KAAK,EAAEA,KAAK,GAAG,MAAM,GAAG,OAAQ;QAChC2B,SAAS,EAAEtB;MAAqB,GAC5BH,cAAc,CACnB,CACS,CAAC;EAEnB;AACF;AAEAjB,MAAM,CAAC8C,qBAAqB,GAAG,IAAI;AACnC,eAAe9C,MAAM"}
1
+ {"version":3,"file":"Toggle.js","names":["React","useCallback","useMemo","classnames","Checkbox","ToggleButton","ButtonRow","FieldBlock","useFieldProps","pickSpacingProps","ToggleButtonGroupContext","useTranslation","useIterateItemNo","Toggle","props","translations","ToggleField","preparedProps","_objectSpread","errorMessages","id","className","valueOn","valueOff","variant","disabled","textOn","textOff","value","size","hasError","htmlAttributes","handleChange","setDisplayValue","handleCheckboxChange","_ref","checked","handleToggleChange","_ref2","cn","fieldBlockProps","forId","isOn","isOff","text","label","labelSuffix","required","labelWithItemNo","createElement","_extends","undefined","yes","no","status","onChange","on_change","asFieldset","bottom","Provider","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/Toggle.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { Checkbox, ToggleButton } from '../../../../components'\nimport ButtonRow from '../../Form/ButtonRow'\nimport FieldBlock, { Props as FieldBlockProps } from '../../FieldBlock'\nimport { useFieldProps } from '../../hooks'\nimport { FieldProps } from '../../types'\nimport { pickSpacingProps } from '../../../../components/flex/utils'\nimport ToggleButtonGroupContext from '../../../../components/toggle-button/ToggleButtonGroupContext'\nimport useTranslation from '../../hooks/useTranslation'\nimport { useIterateItemNo } from '../../Iterate/ItemNo/useIItemNo'\nimport type { CheckboxProps } from '../../../../components/Checkbox'\nimport type { ToggleButtonProps } from '../../../../components/ToggleButton'\n\nexport type ToggleProps = {\n valueOn: unknown\n valueOff: unknown\n variant?: 'checkbox' | 'checkbox-button' | 'button' | 'buttons'\n textOn?: string\n textOff?: string\n size?: ToggleButtonProps['size'] | CheckboxProps['size']\n}\n\nexport type Props = Omit<FieldProps<unknown>, 'layout' | 'layoutOptions'> &\n ToggleProps\n\nfunction Toggle(props: Props) {\n const translations = useTranslation().ToggleField\n\n const preparedProps: Props = {\n ...props,\n errorMessages: props.errorMessages,\n }\n\n const {\n id,\n className,\n valueOn,\n valueOff,\n variant,\n disabled,\n textOn,\n textOff,\n value,\n size,\n hasError,\n htmlAttributes,\n handleChange,\n setDisplayValue,\n } = useFieldProps(preparedProps)\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 fieldBlockProps: FieldBlockProps = {\n forId: id,\n className: cn,\n disabled,\n ...pickSpacingProps(props),\n }\n\n const isOn = value === valueOn\n const isOff = value === valueOff\n\n useMemo(() => {\n const text = isOn ? textOn : textOff\n if (text) {\n setDisplayValue(text)\n }\n }, [isOn, setDisplayValue, textOff, textOn])\n\n const { label, labelSuffix, required } = props\n const labelWithItemNo = useIterateItemNo({\n label,\n labelSuffix,\n required,\n })\n\n switch (variant) {\n default:\n case 'checkbox':\n return (\n <FieldBlock {...fieldBlockProps} label={undefined}>\n <Checkbox\n id={id}\n className={cn}\n label={\n labelWithItemNo ??\n (isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no)\n }\n checked={isOn}\n disabled={disabled}\n size={size !== 'small' ? size : undefined}\n status={hasError ? 'error' : undefined}\n onChange={handleCheckboxChange}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n case 'button':\n return (\n <FieldBlock {...fieldBlockProps}>\n <ToggleButton\n id={id}\n text={\n isOn\n ? textOn ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n {...htmlAttributes}\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' : null, // use \"null\" to reset the value\n onChange: handleToggleChange,\n status: hasError ? 'error' : undefined,\n disabled,\n size,\n }}\n >\n <ToggleButton\n text={textOn ?? translations.yes}\n value=\"on\"\n {...htmlAttributes}\n />\n <ToggleButton\n text={textOff ?? translations.no}\n value=\"off\"\n {...htmlAttributes}\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 ?? translations.yes\n : textOff ?? translations.no\n }\n checked={isOn}\n disabled={disabled}\n status={hasError ? 'error' : undefined}\n value={value ? 'true' : 'false'}\n size={size}\n on_change={handleCheckboxChange}\n {...htmlAttributes}\n />\n </FieldBlock>\n )\n }\n}\n\nToggle._supportsSpacingProps = true\nexport default Toggle\n"],"mappings":"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"}
@@ -19,6 +19,11 @@ export const ToggleProperties = {
19
19
  type: 'string',
20
20
  status: 'optional'
21
21
  },
22
+ size: {
23
+ doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size="2" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',
24
+ type: 'string',
25
+ status: 'optional'
26
+ },
22
27
  variant: {
23
28
  doc: 'Choice of input feature. Can be: `checkbox`, `button`, `checkbox-button` or `buttons`.',
24
29
  type: 'string',
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleDocs.js","names":["ToggleProperties","valueOn","doc","type","status","valueOff","textOn","textOff","variant"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/ToggleDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ToggleProperties: PropertiesTableProps = {\n valueOn: {\n doc: 'Source data value when the toggle is in the \"on-state\" (varies based on UI variant).',\n type: ['string', 'number', 'boolean'],\n status: 'required',\n },\n valueOff: {\n doc: 'Source data value when the toggle is in the \"off-state\".',\n type: ['string', 'number', 'boolean'],\n status: 'required',\n },\n textOn: {\n doc: 'Text to show in the UI when in the \"on-state\".',\n type: 'string',\n status: 'optional',\n },\n textOff: {\n doc: 'Text to show in the UI when in the \"off-state\".',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Choice of input feature. Can be: `checkbox`, `button`, `checkbox-button` or `buttons`.',\n type: 'string',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAsC,GAAG;EACpDC,OAAO,EAAE;IACPC,GAAG,EAAE,sFAAsF;IAC3FC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrCC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrCC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,gDAAgD;IACrDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACPL,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,OAAO,EAAE;IACPN,GAAG,EAAE,wFAAwF;IAC7FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC"}
1
+ {"version":3,"file":"ToggleDocs.js","names":["ToggleProperties","valueOn","doc","type","status","valueOff","textOn","textOff","size","variant"],"sources":["../../../../../../src/extensions/forms/Field/Toggle/ToggleDocs.tsx"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\n\nexport const ToggleProperties: PropertiesTableProps = {\n valueOn: {\n doc: 'Source data value when the toggle is in the \"on-state\" (varies based on UI variant).',\n type: ['string', 'number', 'boolean'],\n status: 'required',\n },\n valueOff: {\n doc: 'Source data value when the toggle is in the \"off-state\".',\n type: ['string', 'number', 'boolean'],\n status: 'required',\n },\n textOn: {\n doc: 'Text to show in the UI when in the \"on-state\".',\n type: 'string',\n status: 'optional',\n },\n textOff: {\n doc: 'Text to show in the UI when in the \"off-state\".',\n type: 'string',\n status: 'optional',\n },\n size: {\n doc: 'The sizes you can choose is small (1.5rem), default (2rem), medium (2.5rem) and large (3rem) are supported component sizes. Defaults to default / null. Also, if you define a number like size=\"2\" then it will be forwarded as the input element attribute. Consider rather setting field sizes with [Form.Appearance](/uilib/extensions/forms/Form/Appearance/).',\n type: 'string',\n status: 'optional',\n },\n variant: {\n doc: 'Choice of input feature. Can be: `checkbox`, `button`, `checkbox-button` or `buttons`.',\n type: 'string',\n status: 'optional',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAsC,GAAG;EACpDC,OAAO,EAAE;IACPC,GAAG,EAAE,sFAAsF;IAC3FC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrCC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACRH,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrCC,MAAM,EAAE;EACV,CAAC;EACDE,MAAM,EAAE;IACNJ,GAAG,EAAE,gDAAgD;IACrDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,OAAO,EAAE;IACPL,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,IAAI,EAAE;IACJN,GAAG,EAAE,oWAAoW;IACzWC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,OAAO,EAAE;IACPP,GAAG,EAAE,wFAAwF;IAC7FC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV;AACF,CAAC"}
@@ -56,7 +56,7 @@ export type Props = {
56
56
  pathTrue?: Path;
57
57
  /** Given data context path must be false to show children */
58
58
  pathFalse?: Path;
59
- /** Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. */
59
+ /** Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the expected value in order to show children. The first parameter is the value of the path. */
60
60
  visibleWhen?: VisibleWhen;
61
61
  /** Same as `visibleWhen`, but with inverted logic. */
62
62
  visibleWhenNot?: VisibleWhen;
@@ -1 +1 @@
1
- {"version":3,"file":"Visibility.js","names":["React","useCallback","useContext","warn","useMountEffect","useMounted","HeightAnimation","FieldProvider","useVisibility","VisibilityContext","SummaryListContext","Visibility","props","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","onVisible","onAnimationEnd","animate","keepInDOM","compensateForGap","fieldPropsWhenHidden","withinIterate","children","rest","_objectWithoutProperties","_excluded","check","open","content","createElement","Provider","value","isVisible","mountedRef","onOpen","state","current","summaryListContext","providerProps","isNested","_extends","Boolean","className","hidden","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes, useCallback, useContext } from 'react'\n\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useMounted from '../../../../shared/helpers/useMounted'\nimport HeightAnimation, {\n HeightAnimationAllProps,\n} from '../../../../components/HeightAnimation'\nimport FieldProvider from '../../Field/Provider'\nimport useVisibility from './useVisibility'\nimport VisibilityContext from './VisibilityContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\n\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\n\nexport type VisibleWhen =\n | {\n path: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n itemPath: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n path: Path\n isValid: boolean\n /**\n * @deprecated – Replaced with validateContinuously, continuousValidation can be removed in v11.\n */\n continuousValidation?: boolean\n validateContinuously?: boolean\n }\n | {\n itemPath: Path\n isValid: boolean\n /**\n * @deprecated – Replaced with validateContinuously, continuousValidation can be removed in v11.\n */\n continuousValidation?: boolean\n validateContinuously?: boolean\n }\n\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n path: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n itemPath: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: Path\n /** Given data context path must be undefined to show children */\n pathUndefined?: Path\n /** Given data context path must be truthy to show children */\n pathTruthy?: Path\n /** Given data context path must be falsy to show children */\n pathFalsy?: Path\n /** Given data context path must be true to show children */\n pathTrue?: Path\n /** Given data context path must be false to show children */\n pathFalse?: Path\n /** Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. */\n visibleWhen?: VisibleWhen\n /** Same as `visibleWhen`, but with inverted logic. */\n visibleWhenNot?: VisibleWhen\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n /** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */\n filterData?: FilterData\n /** Animate the visibility change */\n animate?: boolean\n /** Keep the content in the DOM, even if it's not visible */\n keepInDOM?: boolean\n /** Callback for when the content gets visible. */\n onVisible?: HeightAnimationAllProps['onOpen']\n /** Callback for when animation has ended */\n onAnimationEnd?: HeightAnimationAllProps['onAnimationEnd']\n /** To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`. */\n compensateForGap?: HeightAnimationAllProps['compensateForGap']\n /** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */\n fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes\n element?: HeightAnimationAllProps['element']\n children: React.ReactNode\n\n /** For internal use only. Used by \"Iterate.Visibility\" */\n withinIterate?: boolean\n\n /** @deprecated Use `visibleWhen` instead */\n pathValue?: string\n /** @deprecated Use `visibleWhen` instead */\n whenValue?: unknown\n}\n\nfunction Visibility(props: Props) {\n const {\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n onVisible,\n onAnimationEnd,\n animate,\n keepInDOM,\n compensateForGap,\n fieldPropsWhenHidden,\n withinIterate,\n children,\n ...rest\n } = props\n\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const { check } = useVisibility({\n visible,\n withinIterate,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n })\n const open = check()\n const content = (\n <VisibilityContext.Provider\n value={{\n isVisible: open,\n props,\n }}\n >\n {children}\n </VisibilityContext.Provider>\n )\n const mountedRef = useMounted()\n\n const onOpen: HeightAnimationAllProps['onOpen'] = useCallback(\n (state) => {\n if (mountedRef.current) {\n onVisible?.(state)\n }\n },\n [mountedRef, onVisible]\n )\n\n const summaryListContext = useContext(SummaryListContext)\n const providerProps = !open ? fieldPropsWhenHidden : null\n\n if (\n (animate || keepInDOM) &&\n summaryListContext &&\n !summaryListContext.isNested\n ) {\n // Handle the animation inside the SummaryList\n return <FieldProvider {...providerProps}>{content}</FieldProvider>\n }\n\n if (animate) {\n return (\n <HeightAnimation\n open={open}\n onAnimationEnd={onAnimationEnd}\n onOpen={onOpen}\n keepInDOM={Boolean(keepInDOM)}\n className=\"dnb-forms-visibility\"\n compensateForGap={compensateForGap}\n {...rest}\n >\n <FieldProvider {...providerProps}>{content}</FieldProvider>\n </HeightAnimation>\n )\n }\n\n if (mountedRef.current) {\n onVisible?.(open)\n }\n\n if (keepInDOM) {\n return (\n <span className=\"dnb-forms-visibility\" hidden={!open}>\n <FieldProvider {...providerProps}>{content}</FieldProvider>\n </span>\n )\n }\n\n return <>{open ? content : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":"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"}
1
+ {"version":3,"file":"Visibility.js","names":["React","useCallback","useContext","warn","useMountEffect","useMounted","HeightAnimation","FieldProvider","useVisibility","VisibilityContext","SummaryListContext","Visibility","props","visible","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","pathValue","whenValue","visibleWhen","visibleWhenNot","inferData","filterData","onVisible","onAnimationEnd","animate","keepInDOM","compensateForGap","fieldPropsWhenHidden","withinIterate","children","rest","_objectWithoutProperties","_excluded","check","open","content","createElement","Provider","value","isVisible","mountedRef","onOpen","state","current","summaryListContext","providerProps","isNested","_extends","Boolean","className","hidden","Fragment","_supportsSpacingProps"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/Visibility.tsx"],"sourcesContent":["import React, { AriaAttributes, useCallback, useContext } from 'react'\n\nimport { warn } from '../../../../shared/helpers'\nimport useMountEffect from '../../../../shared/helpers/useMountEffect'\nimport useMounted from '../../../../shared/helpers/useMounted'\nimport HeightAnimation, {\n HeightAnimationAllProps,\n} from '../../../../components/HeightAnimation'\nimport FieldProvider from '../../Field/Provider'\nimport useVisibility from './useVisibility'\nimport VisibilityContext from './VisibilityContext'\nimport SummaryListContext from '../../Value/SummaryList/SummaryListContext'\n\nimport type { Path, UseFieldProps } from '../../types'\nimport type { DataAttributes } from '../../hooks/useFieldProps'\nimport { FilterData } from '../../DataContext'\n\nexport type VisibleWhen =\n | {\n path: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n itemPath: Path\n hasValue: unknown | ((value: unknown) => boolean)\n }\n | {\n path: Path\n isValid: boolean\n /**\n * @deprecated – Replaced with validateContinuously, continuousValidation can be removed in v11.\n */\n continuousValidation?: boolean\n validateContinuously?: boolean\n }\n | {\n itemPath: Path\n isValid: boolean\n /**\n * @deprecated – Replaced with validateContinuously, continuousValidation can be removed in v11.\n */\n continuousValidation?: boolean\n validateContinuously?: boolean\n }\n\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n path: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n /**\n * @deprecated Will be removed in v11!\n */\n | {\n itemPath: Path\n /** @deprecated Use `hasValue` instead */\n withValue: (value: unknown) => boolean\n }\n\nexport type Props = {\n visible?: boolean\n /** Given data context path must be defined to show children */\n pathDefined?: Path\n /** Given data context path must be undefined to show children */\n pathUndefined?: Path\n /** Given data context path must be truthy to show children */\n pathTruthy?: Path\n /** Given data context path must be falsy to show children */\n pathFalsy?: Path\n /** Given data context path must be true to show children */\n pathTrue?: Path\n /** Given data context path must be false to show children */\n pathFalse?: Path\n /** Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the expected value in order to show children. The first parameter is the value of the path. */\n visibleWhen?: VisibleWhen\n /** Same as `visibleWhen`, but with inverted logic. */\n visibleWhenNot?: VisibleWhen\n /** Infer visibility calling given derivative function with the whole data set. Should return true/false for visibility. */\n inferData?: (data: unknown) => boolean\n /** Filter data based on provided criteria. The first parameter is the path, the second is the value, and the third is the props, and the fourth is the internal. Return false to filter out the data. */\n filterData?: FilterData\n /** Animate the visibility change */\n animate?: boolean\n /** Keep the content in the DOM, even if it's not visible */\n keepInDOM?: boolean\n /** Callback for when the content gets visible. */\n onVisible?: HeightAnimationAllProps['onOpen']\n /** Callback for when animation has ended */\n onAnimationEnd?: HeightAnimationAllProps['onAnimationEnd']\n /** To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`. */\n compensateForGap?: HeightAnimationAllProps['compensateForGap']\n /** When visibility is hidden, and `keepInDOM` is true, pass these props to the children */\n fieldPropsWhenHidden?: UseFieldProps & DataAttributes & AriaAttributes\n element?: HeightAnimationAllProps['element']\n children: React.ReactNode\n\n /** For internal use only. Used by \"Iterate.Visibility\" */\n withinIterate?: boolean\n\n /** @deprecated Use `visibleWhen` instead */\n pathValue?: string\n /** @deprecated Use `visibleWhen` instead */\n whenValue?: unknown\n}\n\nfunction Visibility(props: Props) {\n const {\n visible,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n onVisible,\n onAnimationEnd,\n animate,\n keepInDOM,\n compensateForGap,\n fieldPropsWhenHidden,\n withinIterate,\n children,\n ...rest\n } = props\n\n useMountEffect(() => {\n if (fieldPropsWhenHidden && !keepInDOM) {\n warn('Using \"fieldPropsWhenHidden\" requires \"keepInDOM\" to be true.')\n }\n })\n\n const { check } = useVisibility({\n visible,\n withinIterate,\n pathDefined,\n pathUndefined,\n pathTruthy,\n pathFalsy,\n pathTrue,\n pathFalse,\n pathValue,\n whenValue,\n visibleWhen,\n visibleWhenNot,\n inferData,\n filterData,\n })\n const open = check()\n const content = (\n <VisibilityContext.Provider\n value={{\n isVisible: open,\n props,\n }}\n >\n {children}\n </VisibilityContext.Provider>\n )\n const mountedRef = useMounted()\n\n const onOpen: HeightAnimationAllProps['onOpen'] = useCallback(\n (state) => {\n if (mountedRef.current) {\n onVisible?.(state)\n }\n },\n [mountedRef, onVisible]\n )\n\n const summaryListContext = useContext(SummaryListContext)\n const providerProps = !open ? fieldPropsWhenHidden : null\n\n if (\n (animate || keepInDOM) &&\n summaryListContext &&\n !summaryListContext.isNested\n ) {\n // Handle the animation inside the SummaryList\n return <FieldProvider {...providerProps}>{content}</FieldProvider>\n }\n\n if (animate) {\n return (\n <HeightAnimation\n open={open}\n onAnimationEnd={onAnimationEnd}\n onOpen={onOpen}\n keepInDOM={Boolean(keepInDOM)}\n className=\"dnb-forms-visibility\"\n compensateForGap={compensateForGap}\n {...rest}\n >\n <FieldProvider {...providerProps}>{content}</FieldProvider>\n </HeightAnimation>\n )\n }\n\n if (mountedRef.current) {\n onVisible?.(open)\n }\n\n if (keepInDOM) {\n return (\n <span className=\"dnb-forms-visibility\" hidden={!open}>\n <FieldProvider {...providerProps}>{content}</FieldProvider>\n </span>\n )\n }\n\n return <>{open ? content : null}</>\n}\n\nVisibility._supportsSpacingProps = 'children'\nexport default Visibility\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { HeightAnimationEvents } from '../../../../components/height-animation/HeightAnimationDocs';
2
2
  export const VisibilityProperties = {
3
3
  visibleWhen: {
4
- doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. You can also use `isValid` instead of `hasValue` to only show the children when the field has no errors and has lost focus (blurred). You can change that behavior by using the `validateContinuously` property.',
4
+ doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the expected value in order to show children. The first parameter is the value of the path. You can also use `isValid` instead of `hasValue` to only show the children when the field has no errors and has lost focus (blurred). You can change that behavior by using the `validateContinuously` property.',
5
5
  type: 'object',
6
6
  status: 'optional'
7
7
  },
@@ -1 +1 @@
1
- {"version":3,"file":"VisibilityDocs.js","names":["HeightAnimationEvents","VisibilityProperties","visibleWhen","doc","type","status","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","inferData","visible","animate","keepInDOM","compensateForGap","filterData","fieldPropsWhenHidden","element","children","VisibilityEvents","onVisible","onOpen","onAnimationEnd"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { HeightAnimationEvents } from '../../../../components/height-animation/HeightAnimationDocs'\n\nexport const VisibilityProperties: PropertiesTableProps = {\n visibleWhen: {\n doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the excepted value in order to show children. The first parameter is the value of the path. You can also use `isValid` instead of `hasValue` to only show the children when the field has no errors and has lost focus (blurred). You can change that behavior by using the `validateContinuously` property.',\n type: 'object',\n status: 'optional',\n },\n visibleWhenNot: {\n doc: 'Same as `visibleWhen`, but with inverted logic.',\n type: 'object',\n status: 'optional',\n },\n pathDefined: {\n doc: 'Given data context path must be defined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathUndefined: {\n doc: 'Given data context path must be undefined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTruthy: {\n doc: 'Given data context path must be truthy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalsy: {\n doc: 'Given data context path must be falsy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTrue: {\n doc: 'Given data context path must be true to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalse: {\n doc: 'Given data context path must be false to show children.',\n type: 'string',\n status: 'optional',\n },\n inferData: {\n doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',\n type: 'function',\n status: 'optional',\n },\n visible: {\n doc: 'Control visibility directly using the `visible` prop. When used alongside other conditions, the `visible` prop takes precedence.',\n type: 'boolean',\n status: 'optional',\n },\n animate: {\n doc: 'Define if the content should animate during show/hide.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: \"Keep the content in the DOM, even if it's not visible. Can be used to let fields run validation.\",\n type: 'boolean',\n status: 'optional',\n },\n compensateForGap: {\n doc: 'To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n filterData: {\n doc: 'Filter data based on provided criteria. More info about `filterData` can be found in the [Getting Started](/uilib/extensions/forms/getting-started/#filter-data) documentation.',\n type: ['object', 'function'],\n status: 'optional',\n },\n fieldPropsWhenHidden: {\n doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',\n type: 'various',\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element. Defaults to `div`. Only for when `animate` is true.',\n type: 'string or React.Element',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const VisibilityEvents: PropertiesTableProps = {\n onVisible: {\n doc: 'Callback for when the content gets visible. Returns a boolean as the first parameter.',\n type: HeightAnimationEvents.onOpen.type,\n status: 'optional',\n },\n onAnimationEnd: HeightAnimationEvents.onAnimationEnd,\n}\n"],"mappings":"AACA,SAASA,qBAAqB,QAAQ,6DAA6D;AAEnG,OAAO,MAAMC,oBAA0C,GAAG;EACxDC,WAAW,EAAE;IACXC,GAAG,EAAE,+XAA+X;IACpYC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,cAAc,EAAE;IACdH,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,6DAA6D;IAClEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,UAAU,EAAE;IACVN,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,+FAA+F;IACpGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,kIAAkI;IACvIC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,SAAS,EAAE;IACTb,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,gBAAgB,EAAE;IAChBd,GAAG,EAAE,gJAAgJ;IACrJC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,UAAU,EAAE;IACVf,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDc,oBAAoB,EAAE;IACpBhB,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDe,OAAO,EAAE;IACPjB,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,yBAAyB;IAC/BC,MAAM,EAAE;EACV,CAAC;EACDgB,QAAQ,EAAE;IACRlB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMiB,gBAAsC,GAAG;EACpDC,SAAS,EAAE;IACTpB,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAEJ,qBAAqB,CAACwB,MAAM,CAACpB,IAAI;IACvCC,MAAM,EAAE;EACV,CAAC;EACDoB,cAAc,EAAEzB,qBAAqB,CAACyB;AACxC,CAAC"}
1
+ {"version":3,"file":"VisibilityDocs.js","names":["HeightAnimationEvents","VisibilityProperties","visibleWhen","doc","type","status","visibleWhenNot","pathDefined","pathUndefined","pathTruthy","pathFalsy","pathTrue","pathFalse","inferData","visible","animate","keepInDOM","compensateForGap","filterData","fieldPropsWhenHidden","element","children","VisibilityEvents","onVisible","onOpen","onAnimationEnd"],"sources":["../../../../../../src/extensions/forms/Form/Visibility/VisibilityDocs.ts"],"sourcesContent":["import { PropertiesTableProps } from '../../../../shared/types'\nimport { HeightAnimationEvents } from '../../../../components/height-animation/HeightAnimationDocs'\n\nexport const VisibilityProperties: PropertiesTableProps = {\n visibleWhen: {\n doc: 'Provide a `path` or `itemPath` and a `hasValue` method that returns a boolean or the expected value in order to show children. The first parameter is the value of the path. You can also use `isValid` instead of `hasValue` to only show the children when the field has no errors and has lost focus (blurred). You can change that behavior by using the `validateContinuously` property.',\n type: 'object',\n status: 'optional',\n },\n visibleWhenNot: {\n doc: 'Same as `visibleWhen`, but with inverted logic.',\n type: 'object',\n status: 'optional',\n },\n pathDefined: {\n doc: 'Given data context path must be defined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathUndefined: {\n doc: 'Given data context path must be undefined to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTruthy: {\n doc: 'Given data context path must be truthy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalsy: {\n doc: 'Given data context path must be falsy to show children.',\n type: 'string',\n status: 'optional',\n },\n pathTrue: {\n doc: 'Given data context path must be true to show children.',\n type: 'string',\n status: 'optional',\n },\n pathFalse: {\n doc: 'Given data context path must be false to show children.',\n type: 'string',\n status: 'optional',\n },\n inferData: {\n doc: 'Will be called to decide by external logic, and show/hide contents based on the return value.',\n type: 'function',\n status: 'optional',\n },\n visible: {\n doc: 'Control visibility directly using the `visible` prop. When used alongside other conditions, the `visible` prop takes precedence.',\n type: 'boolean',\n status: 'optional',\n },\n animate: {\n doc: 'Define if the content should animate during show/hide.',\n type: 'boolean',\n status: 'optional',\n },\n keepInDOM: {\n doc: \"Keep the content in the DOM, even if it's not visible. Can be used to let fields run validation.\",\n type: 'boolean',\n status: 'optional',\n },\n compensateForGap: {\n doc: 'To compensate for CSS gap between the rows, so animation does not jump during the animation. Provide a CSS unit or `auto`. Defaults to `null`.',\n type: 'string',\n status: 'optional',\n },\n filterData: {\n doc: 'Filter data based on provided criteria. More info about `filterData` can be found in the [Getting Started](/uilib/extensions/forms/getting-started/#filter-data) documentation.',\n type: ['object', 'function'],\n status: 'optional',\n },\n fieldPropsWhenHidden: {\n doc: 'When visibility is hidden, and `keepInDOM` is true, pass these props to the children.',\n type: 'various',\n status: 'optional',\n },\n element: {\n doc: 'Define the type of element. Defaults to `div`. Only for when `animate` is true.',\n type: 'string or React.Element',\n status: 'optional',\n },\n children: {\n doc: 'Contents.',\n type: 'React.Node',\n status: 'required',\n },\n}\n\nexport const VisibilityEvents: PropertiesTableProps = {\n onVisible: {\n doc: 'Callback for when the content gets visible. Returns a boolean as the first parameter.',\n type: HeightAnimationEvents.onOpen.type,\n status: 'optional',\n },\n onAnimationEnd: HeightAnimationEvents.onAnimationEnd,\n}\n"],"mappings":"AACA,SAASA,qBAAqB,QAAQ,6DAA6D;AAEnG,OAAO,MAAMC,oBAA0C,GAAG;EACxDC,WAAW,EAAE;IACXC,GAAG,EAAE,+XAA+X;IACpYC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDC,cAAc,EAAE;IACdH,GAAG,EAAE,iDAAiD;IACtDC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDE,WAAW,EAAE;IACXJ,GAAG,EAAE,2DAA2D;IAChEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDG,aAAa,EAAE;IACbL,GAAG,EAAE,6DAA6D;IAClEC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDI,UAAU,EAAE;IACVN,GAAG,EAAE,0DAA0D;IAC/DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDK,SAAS,EAAE;IACTP,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRR,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDO,SAAS,EAAE;IACTT,GAAG,EAAE,yDAAyD;IAC9DC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDQ,SAAS,EAAE;IACTV,GAAG,EAAE,+FAA+F;IACpGC,IAAI,EAAE,UAAU;IAChBC,MAAM,EAAE;EACV,CAAC;EACDS,OAAO,EAAE;IACPX,GAAG,EAAE,kIAAkI;IACvIC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDU,OAAO,EAAE;IACPZ,GAAG,EAAE,wDAAwD;IAC7DC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDW,SAAS,EAAE;IACTb,GAAG,EAAE,kGAAkG;IACvGC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDY,gBAAgB,EAAE;IAChBd,GAAG,EAAE,gJAAgJ;IACrJC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE;EACV,CAAC;EACDa,UAAU,EAAE;IACVf,GAAG,EAAE,iLAAiL;IACtLC,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC5BC,MAAM,EAAE;EACV,CAAC;EACDc,oBAAoB,EAAE;IACpBhB,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAE,SAAS;IACfC,MAAM,EAAE;EACV,CAAC;EACDe,OAAO,EAAE;IACPjB,GAAG,EAAE,iFAAiF;IACtFC,IAAI,EAAE,yBAAyB;IAC/BC,MAAM,EAAE;EACV,CAAC;EACDgB,QAAQ,EAAE;IACRlB,GAAG,EAAE,WAAW;IAChBC,IAAI,EAAE,YAAY;IAClBC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMiB,gBAAsC,GAAG;EACpDC,SAAS,EAAE;IACTpB,GAAG,EAAE,uFAAuF;IAC5FC,IAAI,EAAEJ,qBAAqB,CAACwB,MAAM,CAACpB,IAAI;IACvCC,MAAM,EAAE;EACV,CAAC;EACDoB,cAAc,EAAEzB,qBAAqB,CAACyB;AACxC,CAAC"}
@@ -8,9 +8,10 @@ declare function DateComponent(props: Props): import("react/jsx-runtime").JSX.El
8
8
  declare namespace DateComponent {
9
9
  var _supportsSpacingProps: boolean;
10
10
  }
11
- export declare function formatDate(value: string, { locale, variant, }?: {
11
+ export type FormatDateOptions = {
12
12
  locale?: string;
13
13
  variant?: Props['variant'];
14
- }): string;
14
+ };
15
+ export declare function formatDate(value: string, { locale, variant }?: FormatDateOptions): string;
15
16
  export declare function getOptions(variant: Props['variant']): Intl.DateTimeFormatOptions;
16
17
  export default DateComponent;