@dnb/eufemia 10.4.1 → 10.5.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 (282) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/cjs/components/anchor/style/anchor-mixins.scss +17 -23
  3. package/cjs/components/anchor/style/dnb-anchor.css +26 -15
  4. package/cjs/components/anchor/style/dnb-anchor.min.css +1 -1
  5. package/cjs/components/anchor/style/dnb-anchor.scss +1 -1
  6. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +40 -21
  7. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  8. package/cjs/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +2 -7
  9. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
  10. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  11. package/cjs/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
  12. package/cjs/components/autocomplete/Autocomplete.js +2 -2
  13. package/cjs/components/autocomplete/Autocomplete.js.map +1 -1
  14. package/cjs/components/date-picker/DatePickerCalendar.js.map +1 -1
  15. package/cjs/components/dialog/Dialog.d.ts +1 -1
  16. package/cjs/components/dialog/DialogContent.d.ts +1 -1
  17. package/cjs/components/dialog/DialogContent.js +4 -2
  18. package/cjs/components/dialog/DialogContent.js.map +1 -1
  19. package/cjs/components/dialog/parts/DialogAction.d.ts +5 -1
  20. package/cjs/components/dialog/parts/DialogAction.js +3 -2
  21. package/cjs/components/dialog/parts/DialogAction.js.map +1 -1
  22. package/cjs/components/form-row/FormRow.js.map +1 -1
  23. package/cjs/components/form-row/style/dnb-form-row.scss +2 -2
  24. package/cjs/components/form-set/FormSet.js.map +1 -1
  25. package/cjs/components/height-animation/HeightAnimation.d.ts +1 -1
  26. package/cjs/components/height-animation/HeightAnimation.js.map +1 -1
  27. package/cjs/components/height-animation/HeightAnimationInstance.js +14 -10
  28. package/cjs/components/height-animation/HeightAnimationInstance.js.map +1 -1
  29. package/cjs/components/height-animation/useHeightAnimation.js.map +1 -1
  30. package/cjs/components/icon/lib/SvgComparison.js.map +1 -1
  31. package/cjs/components/input/style/dnb-input.scss +1 -1
  32. package/cjs/components/input-masked/InputMaskedUtils.js.map +1 -1
  33. package/cjs/components/input-masked/TextMask.js.map +1 -1
  34. package/cjs/components/modal/Modal.js +0 -2
  35. package/cjs/components/modal/Modal.js.map +1 -1
  36. package/cjs/components/modal/bodyScrollLock.js.map +1 -1
  37. package/cjs/components/number-format/NumberUtils.js.map +1 -1
  38. package/cjs/components/number-format/style/dnb-number-format.css +0 -7
  39. package/cjs/components/number-format/style/dnb-number-format.scss +0 -1
  40. package/cjs/components/pagination/PaginationInfinity.js.map +1 -1
  41. package/cjs/components/radio/Radio.js.map +1 -1
  42. package/cjs/components/section/style/themes/dnb-section-theme-ui.css +14 -7
  43. package/cjs/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  44. package/cjs/components/slider/hooks/useSliderEvents.js.map +1 -1
  45. package/cjs/components/slider/types.d.ts +1 -1
  46. package/cjs/components/slider/types.js.map +1 -1
  47. package/cjs/components/space/SpacingHelper.js.map +1 -1
  48. package/cjs/components/table/TableAccordion.js.map +1 -1
  49. package/cjs/components/table/TableTr.js.map +1 -1
  50. package/cjs/components/tabs/Tabs.js +29 -23
  51. package/cjs/components/tabs/Tabs.js.map +1 -1
  52. package/cjs/components/textarea/Textarea.js.map +1 -1
  53. package/cjs/components/toggle-button/ToggleButton.js.map +1 -1
  54. package/cjs/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  55. package/cjs/components/tooltip/TooltipContainer.js.map +1 -1
  56. package/cjs/components/upload/Upload.js +2 -2
  57. package/cjs/components/upload/Upload.js.map +1 -1
  58. package/cjs/components/upload/useUpload.d.ts +1 -1
  59. package/cjs/components/upload/useUpload.js +2 -2
  60. package/cjs/components/upload/useUpload.js.map +1 -1
  61. package/cjs/elements/blockquote/Blockquote.d.ts +1 -1
  62. package/cjs/elements/blockquote/Blockquote.js.map +1 -1
  63. package/cjs/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
  64. package/cjs/extensions/payment-card/utils/Types.js.map +1 -1
  65. package/cjs/fragments/drawer-list/DrawerList.js.map +1 -1
  66. package/cjs/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  67. package/cjs/shared/Eufemia.d.ts +1 -1
  68. package/cjs/shared/Eufemia.js +2 -2
  69. package/cjs/shared/Eufemia.js.map +1 -1
  70. package/cjs/shared/VisibilityByTheme.d.ts +1 -1
  71. package/cjs/shared/VisibilityByTheme.js.map +1 -1
  72. package/cjs/shared/helpers.d.ts +2 -2
  73. package/cjs/shared/helpers.js.map +1 -1
  74. package/cjs/style/dnb-ui-components.css +26 -22
  75. package/cjs/style/dnb-ui-components.min.css +1 -1
  76. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
  77. package/cjs/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  78. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.css +60 -39
  79. package/cjs/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  80. package/cjs/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -7
  81. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.css +80 -50
  82. package/cjs/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  83. package/cjs/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
  84. package/cjs/style/themes/theme-ui/ui-theme-basis.css +17 -11
  85. package/cjs/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  86. package/cjs/style/themes/theme-ui/ui-theme-components.css +60 -39
  87. package/cjs/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  88. package/cjs/style/themes/theme-ui/ui-theme-elements.css +17 -11
  89. package/cjs/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  90. package/cjs/style/themes/theme-ui/ui-theme-tags.css +23 -11
  91. package/cjs/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  92. package/components/anchor/style/anchor-mixins.scss +17 -23
  93. package/components/anchor/style/dnb-anchor.css +26 -15
  94. package/components/anchor/style/dnb-anchor.min.css +1 -1
  95. package/components/anchor/style/dnb-anchor.scss +1 -1
  96. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +40 -21
  97. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  98. package/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +2 -7
  99. package/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
  100. package/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  101. package/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
  102. package/components/autocomplete/Autocomplete.js +2 -2
  103. package/components/autocomplete/Autocomplete.js.map +1 -1
  104. package/components/date-picker/DatePickerCalendar.js.map +1 -1
  105. package/components/dialog/Dialog.d.ts +1 -1
  106. package/components/dialog/DialogContent.d.ts +1 -1
  107. package/components/dialog/DialogContent.js +4 -2
  108. package/components/dialog/DialogContent.js.map +1 -1
  109. package/components/dialog/parts/DialogAction.d.ts +5 -1
  110. package/components/dialog/parts/DialogAction.js +3 -2
  111. package/components/dialog/parts/DialogAction.js.map +1 -1
  112. package/components/form-row/FormRow.js.map +1 -1
  113. package/components/form-row/style/dnb-form-row.scss +2 -2
  114. package/components/form-set/FormSet.js.map +1 -1
  115. package/components/height-animation/HeightAnimation.d.ts +1 -1
  116. package/components/height-animation/HeightAnimation.js.map +1 -1
  117. package/components/height-animation/HeightAnimationInstance.js +14 -10
  118. package/components/height-animation/HeightAnimationInstance.js.map +1 -1
  119. package/components/height-animation/useHeightAnimation.js.map +1 -1
  120. package/components/icon/lib/SvgComparison.js.map +1 -1
  121. package/components/input/style/dnb-input.scss +1 -1
  122. package/components/input-masked/InputMaskedUtils.js.map +1 -1
  123. package/components/input-masked/TextMask.js.map +1 -1
  124. package/components/modal/Modal.js +0 -2
  125. package/components/modal/Modal.js.map +1 -1
  126. package/components/modal/bodyScrollLock.js.map +1 -1
  127. package/components/number-format/NumberUtils.js.map +1 -1
  128. package/components/number-format/style/dnb-number-format.css +0 -7
  129. package/components/number-format/style/dnb-number-format.scss +0 -1
  130. package/components/pagination/PaginationInfinity.js.map +1 -1
  131. package/components/radio/Radio.js.map +1 -1
  132. package/components/section/style/themes/dnb-section-theme-ui.css +14 -7
  133. package/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  134. package/components/slider/hooks/useSliderEvents.js.map +1 -1
  135. package/components/slider/types.d.ts +1 -1
  136. package/components/slider/types.js.map +1 -1
  137. package/components/space/SpacingHelper.js.map +1 -1
  138. package/components/table/TableAccordion.js.map +1 -1
  139. package/components/table/TableTr.js.map +1 -1
  140. package/components/tabs/Tabs.js +29 -23
  141. package/components/tabs/Tabs.js.map +1 -1
  142. package/components/textarea/Textarea.js.map +1 -1
  143. package/components/toggle-button/ToggleButton.js.map +1 -1
  144. package/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  145. package/components/tooltip/TooltipContainer.js.map +1 -1
  146. package/components/upload/Upload.js +2 -2
  147. package/components/upload/Upload.js.map +1 -1
  148. package/components/upload/useUpload.d.ts +1 -1
  149. package/components/upload/useUpload.js +2 -2
  150. package/components/upload/useUpload.js.map +1 -1
  151. package/elements/blockquote/Blockquote.d.ts +1 -1
  152. package/elements/blockquote/Blockquote.js.map +1 -1
  153. package/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
  154. package/es/components/anchor/style/anchor-mixins.scss +17 -23
  155. package/es/components/anchor/style/dnb-anchor.css +26 -15
  156. package/es/components/anchor/style/dnb-anchor.min.css +1 -1
  157. package/es/components/anchor/style/dnb-anchor.scss +1 -1
  158. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.css +40 -21
  159. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.min.css +1 -1
  160. package/es/components/anchor/style/themes/dnb-anchor-theme-sbanken.scss +2 -7
  161. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.css +20 -10
  162. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.min.css +1 -1
  163. package/es/components/anchor/style/themes/dnb-anchor-theme-ui.scss +4 -9
  164. package/es/components/autocomplete/Autocomplete.js +2 -2
  165. package/es/components/autocomplete/Autocomplete.js.map +1 -1
  166. package/es/components/date-picker/DatePickerCalendar.js.map +1 -1
  167. package/es/components/dialog/Dialog.d.ts +1 -1
  168. package/es/components/dialog/DialogContent.d.ts +1 -1
  169. package/es/components/dialog/DialogContent.js +4 -2
  170. package/es/components/dialog/DialogContent.js.map +1 -1
  171. package/es/components/dialog/parts/DialogAction.d.ts +5 -1
  172. package/es/components/dialog/parts/DialogAction.js +3 -2
  173. package/es/components/dialog/parts/DialogAction.js.map +1 -1
  174. package/es/components/form-row/FormRow.js.map +1 -1
  175. package/es/components/form-row/style/dnb-form-row.scss +2 -2
  176. package/es/components/form-set/FormSet.js.map +1 -1
  177. package/es/components/height-animation/HeightAnimation.d.ts +1 -1
  178. package/es/components/height-animation/HeightAnimation.js.map +1 -1
  179. package/es/components/height-animation/HeightAnimationInstance.js +14 -10
  180. package/es/components/height-animation/HeightAnimationInstance.js.map +1 -1
  181. package/es/components/height-animation/useHeightAnimation.js.map +1 -1
  182. package/es/components/icon/lib/SvgComparison.js.map +1 -1
  183. package/es/components/input/style/dnb-input.scss +1 -1
  184. package/es/components/input-masked/InputMaskedUtils.js.map +1 -1
  185. package/es/components/input-masked/TextMask.js.map +1 -1
  186. package/es/components/modal/Modal.js +0 -2
  187. package/es/components/modal/Modal.js.map +1 -1
  188. package/es/components/modal/bodyScrollLock.js.map +1 -1
  189. package/es/components/number-format/NumberUtils.js.map +1 -1
  190. package/es/components/number-format/style/dnb-number-format.css +0 -7
  191. package/es/components/number-format/style/dnb-number-format.scss +0 -1
  192. package/es/components/pagination/PaginationInfinity.js.map +1 -1
  193. package/es/components/radio/Radio.js.map +1 -1
  194. package/es/components/section/style/themes/dnb-section-theme-ui.css +14 -7
  195. package/es/components/section/style/themes/dnb-section-theme-ui.min.css +1 -1
  196. package/es/components/slider/hooks/useSliderEvents.js.map +1 -1
  197. package/es/components/slider/types.d.ts +1 -1
  198. package/es/components/slider/types.js.map +1 -1
  199. package/es/components/space/SpacingHelper.js.map +1 -1
  200. package/es/components/table/TableAccordion.js.map +1 -1
  201. package/es/components/table/TableTr.js.map +1 -1
  202. package/es/components/tabs/Tabs.js +29 -23
  203. package/es/components/tabs/Tabs.js.map +1 -1
  204. package/es/components/textarea/Textarea.js.map +1 -1
  205. package/es/components/toggle-button/ToggleButton.js.map +1 -1
  206. package/es/components/toggle-button/ToggleButtonGroup.js.map +1 -1
  207. package/es/components/tooltip/TooltipContainer.js.map +1 -1
  208. package/es/components/upload/Upload.js +2 -2
  209. package/es/components/upload/Upload.js.map +1 -1
  210. package/es/components/upload/useUpload.d.ts +1 -1
  211. package/es/components/upload/useUpload.js +2 -2
  212. package/es/components/upload/useUpload.js.map +1 -1
  213. package/es/elements/blockquote/Blockquote.d.ts +1 -1
  214. package/es/elements/blockquote/Blockquote.js.map +1 -1
  215. package/es/elements/blockquote/style/themes/dnb-blockquote-theme-sbanken.scss +0 -2
  216. package/es/extensions/payment-card/utils/Types.js.map +1 -1
  217. package/es/fragments/drawer-list/DrawerList.js.map +1 -1
  218. package/es/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  219. package/es/shared/Eufemia.d.ts +1 -1
  220. package/es/shared/Eufemia.js +2 -2
  221. package/es/shared/Eufemia.js.map +1 -1
  222. package/es/shared/VisibilityByTheme.d.ts +1 -1
  223. package/es/shared/VisibilityByTheme.js.map +1 -1
  224. package/es/shared/helpers.d.ts +2 -2
  225. package/es/shared/helpers.js.map +1 -1
  226. package/es/style/dnb-ui-components.css +26 -22
  227. package/es/style/dnb-ui-components.min.css +1 -1
  228. package/es/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
  229. package/es/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  230. package/es/style/themes/theme-eiendom/eiendom-theme-components.css +60 -39
  231. package/es/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  232. package/es/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -7
  233. package/es/style/themes/theme-sbanken/sbanken-theme-components.css +80 -50
  234. package/es/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  235. package/es/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
  236. package/es/style/themes/theme-ui/ui-theme-basis.css +17 -11
  237. package/es/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  238. package/es/style/themes/theme-ui/ui-theme-components.css +60 -39
  239. package/es/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  240. package/es/style/themes/theme-ui/ui-theme-elements.css +17 -11
  241. package/es/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  242. package/es/style/themes/theme-ui/ui-theme-tags.css +23 -11
  243. package/es/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  244. package/esm/dnb-ui-basis.min.mjs +1 -1
  245. package/esm/dnb-ui-components.min.mjs +1 -1
  246. package/esm/dnb-ui-elements.min.mjs +1 -1
  247. package/esm/dnb-ui-extensions.min.mjs +1 -1
  248. package/esm/dnb-ui-lib.min.mjs +1 -1
  249. package/extensions/payment-card/utils/Types.js.map +1 -1
  250. package/fragments/drawer-list/DrawerList.js.map +1 -1
  251. package/fragments/drawer-list/DrawerListProvider.js.map +1 -1
  252. package/package.json +1 -1
  253. package/shared/Eufemia.d.ts +1 -1
  254. package/shared/Eufemia.js +2 -2
  255. package/shared/Eufemia.js.map +1 -1
  256. package/shared/VisibilityByTheme.d.ts +1 -1
  257. package/shared/VisibilityByTheme.js.map +1 -1
  258. package/shared/helpers.d.ts +2 -2
  259. package/shared/helpers.js.map +1 -1
  260. package/style/dnb-ui-components.css +26 -22
  261. package/style/dnb-ui-components.min.css +1 -1
  262. package/style/themes/theme-eiendom/eiendom-theme-basis.css +17 -11
  263. package/style/themes/theme-eiendom/eiendom-theme-basis.min.css +1 -1
  264. package/style/themes/theme-eiendom/eiendom-theme-components.css +60 -39
  265. package/style/themes/theme-eiendom/eiendom-theme-components.min.css +1 -1
  266. package/style/themes/theme-sbanken/sbanken-theme-basis.css +0 -7
  267. package/style/themes/theme-sbanken/sbanken-theme-components.css +80 -50
  268. package/style/themes/theme-sbanken/sbanken-theme-components.min.css +1 -1
  269. package/style/themes/theme-sbanken/sbanken-theme-elements.css +0 -7
  270. package/style/themes/theme-ui/ui-theme-basis.css +17 -11
  271. package/style/themes/theme-ui/ui-theme-basis.min.css +1 -1
  272. package/style/themes/theme-ui/ui-theme-components.css +60 -39
  273. package/style/themes/theme-ui/ui-theme-components.min.css +1 -1
  274. package/style/themes/theme-ui/ui-theme-elements.css +17 -11
  275. package/style/themes/theme-ui/ui-theme-elements.min.css +1 -1
  276. package/style/themes/theme-ui/ui-theme-tags.css +23 -11
  277. package/style/themes/theme-ui/ui-theme-tags.min.css +1 -1
  278. package/umd/dnb-ui-basis.min.js +1 -1
  279. package/umd/dnb-ui-components.min.js +1 -1
  280. package/umd/dnb-ui-elements.min.js +1 -1
  281. package/umd/dnb-ui-extensions.min.js +1 -1
  282. package/umd/dnb-ui-lib.min.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","names":["React","PropTypes","classnames","keycode","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","validateDOMAttributes","getStatusState","combineDescribedBy","dispatchCustomElementEvent","AlignmentHelper","spacingPropTypes","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","FormLabel","FormStatus","RadioGroup","RadioGroupContext","Context","Suffix","includeValidProps","Radio","PureComponent","getDerivedStateFromProps","props","state","_listenForPropChanges","checked","_checked","parseChecked","__checked","constructor","_defineProperty","event","key","isInNoGroup","onChangeHandler","isContextGroupOrSingle","value","context","preventDefault","setState","_event","readOnly","target","isPlainGroup","setTimeout","callOnChange","group","onChange","_refInput","current","focus","createRef","_id","id","render","createElement","Consumer","contextProps","defaultProps","skeleton","FormRow","status","status_state","status_props","status_no_animation","globalStatus","suffix","element","label","label_sr_only","label_position","size","className","class","_className","_group","_value","disabled","_disabled","children","on_change","on_state_update","rest","_objectWithoutProperties","_excluded","hasContext","name","showStatus","mainParams","inputParams","role","type","Object","assign","labelComp","for_id","text","sr_only","Element","_AlignmentHelper","_extends","show","text_id","width_selector","no_animation","undefined","ref","onClick","onClickHandler","onKeyDown","onKeyDownHandler","_span","_span2","attributes","test","String","process","env","NODE_ENV","propTypes","_objectSpread","oneOfType","string","func","node","bool","oneOf","object","shape","message"],"sources":["../../../../src/components/radio/Radio.js"],"sourcesContent":["/**\n * Web Radio Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport keycode from 'keycode'\nimport {\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n validateDOMAttributes,\n getStatusState,\n combineDescribedBy,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\nimport RadioGroup from './RadioGroup'\nimport RadioGroupContext from './RadioGroupContext'\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport { includeValidProps } from '../form-row/FormRowHelpers'\n\n/**\n * The radio component is our enhancement of the classic radio button.\n */\nexport default class Radio extends React.PureComponent {\n static contextType = RadioGroupContext\n\n static propTypes = {\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n label_sr_only: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n label_position: PropTypes.oneOf(['left', 'right']),\n checked: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n id: PropTypes.string,\n element: PropTypes.node,\n group: PropTypes.string,\n size: PropTypes.oneOf(['default', 'medium', 'large']),\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n status_no_animation: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n suffix: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n value: PropTypes.string,\n attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n readOnly: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n\n ...spacingPropTypes,\n\n class: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n\n on_change: PropTypes.func,\n on_state_update: PropTypes.func,\n }\n\n static defaultProps = {\n label: null,\n label_sr_only: null,\n label_position: null,\n checked: null,\n disabled: null,\n id: null,\n size: null,\n element: 'input',\n group: null,\n status: null,\n status_state: 'error',\n status_props: null,\n status_no_animation: null,\n globalStatus: null,\n suffix: null,\n value: '',\n attributes: null,\n readOnly: false,\n skeleton: null,\n class: null,\n\n className: null,\n children: null,\n\n on_change: null,\n on_state_update: null,\n }\n\n static Group = RadioGroup\n\n static parseChecked = (state) => /true|on/.test(String(state))\n\n static getDerivedStateFromProps(props, state) {\n if (state._listenForPropChanges) {\n if (props.checked !== state._checked) {\n state.checked = Radio.parseChecked(props.checked)\n }\n }\n state._listenForPropChanges = true\n\n if (state.checked !== state.__checked) {\n dispatchCustomElementEvent({ props }, 'on_state_update', {\n checked: state.checked,\n })\n }\n\n state._checked = props.checked\n state.__checked = state.checked\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._refInput = React.createRef()\n this._id = props.id || makeUniqueId() // cause we need an id anyway\n this.state = {\n _listenForPropChanges: true,\n }\n }\n\n onKeyDownHandler = (event) => {\n const key = keycode(event)\n // only have key support if there is only a single radio\n if (this.isInNoGroup()) {\n switch (key) {\n case 'enter':\n this.onChangeHandler(event)\n break\n }\n } else if (this.isContextGroupOrSingle()) {\n switch (key) {\n case 'space':\n case 'enter': {\n const { value } = this.context\n if (value !== null && typeof value !== 'undefined') {\n event.preventDefault()\n }\n if (key === 'enter') {\n const checked = !this.state.checked\n this.setState({ checked, _listenForPropChanges: false })\n }\n break\n }\n }\n } else {\n // else we only use the native support, and don't want space support\n // because only arrow keys has to be used\n switch (key) {\n case 'space': {\n event.preventDefault()\n break\n }\n }\n }\n dispatchCustomElementEvent(this, 'on_key_down', { event })\n }\n\n onChangeHandler = (_event) => {\n const event = _event\n if (isTrue(this.props.readOnly)) {\n return event.preventDefault()\n }\n const value = event.target.value\n const checked = !this.state.checked\n\n // delay in case we have a props group only\n if (this.isPlainGroup()) {\n // in case we have a false \"hasContext\" but a \"group\"\n // then we have to use a delay, to overwrite the uncrontrolled state\n setTimeout(() => {\n this.setState({ checked, _listenForPropChanges: false }, () =>\n this.callOnChange({ value, checked, event })\n )\n }, 1)\n } else {\n this.setState({ checked, _listenForPropChanges: false })\n this.callOnChange({ value, checked, event })\n }\n }\n\n // only support on change if there is either:\n // 1. context group usage\n // 2. or a single, no group usage\n isContextGroupOrSingle = () =>\n typeof this.context.value !== 'undefined' && !this.props.group\n isPlainGroup = () =>\n typeof this.context.value === 'undefined' && this.props.group\n isInNoGroup = () =>\n typeof this.context.value === 'undefined' && !this.props.group\n\n onClickHandler = (event) => {\n if (isTrue(this.props.readOnly)) {\n return event.preventDefault()\n }\n // only have click support if there are more plain radio\n if (!this.isPlainGroup()) {\n return\n }\n const value = event.target.value\n const checked = event.target.checked\n this.callOnChange({ value, checked, event })\n }\n\n callOnChange = ({ value, checked, event }) => {\n const { group } = this.props\n if (this.context.onChange) {\n this.context.onChange({\n value,\n })\n }\n dispatchCustomElementEvent(this, 'on_change', {\n group,\n checked,\n value,\n event,\n })\n\n // help firefox and safari to have an correct state after a click\n if (this._refInput.current) {\n this._refInput.current.focus()\n }\n }\n\n render() {\n return (\n <Context.Consumer>\n {(context) => {\n // from internal context\n const contextProps = extendPropsWithContextInClassComponent(\n this.props,\n Radio.defaultProps,\n this.context\n )\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Radio.defaultProps,\n contextProps,\n { skeleton: context?.skeleton },\n includeValidProps(context.FormRow),\n context.Radio\n )\n\n const {\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n suffix,\n element,\n label,\n label_sr_only,\n label_position,\n size,\n readOnly,\n skeleton,\n className,\n class: _className,\n id: _id, // eslint-disable-line\n group: _group, // eslint-disable-line\n value: _value, // eslint-disable-line\n checked: _checked, // eslint-disable-line\n disabled: _disabled, // eslint-disable-line\n children, // eslint-disable-line\n on_change, // eslint-disable-line\n on_state_update, // eslint-disable-line\n\n ...rest\n } = props\n\n let { checked } = this.state\n let { value, group, disabled } = props // get it from context also\n\n const hasContext = typeof this.context.name !== 'undefined'\n\n if (hasContext) {\n if (typeof this.context.value !== 'undefined') {\n checked = this.context.value === value\n }\n group = this.context.name\n if (isTrue(this.context.disabled) && disabled !== false) {\n disabled = true\n }\n } else if (typeof rest.name !== 'undefined') {\n group = rest.name\n }\n\n const id = this._id\n const showStatus = getStatusState(status)\n\n const mainParams = {\n className: classnames(\n 'dnb-radio',\n status && `dnb-radio__status--${status_state}`,\n size && `dnb-radio--${size}`,\n label &&\n `dnb-radio--label-position-${label_position || 'right'}`,\n createSpacingClasses(props),\n className,\n _className\n ),\n }\n\n let inputParams = {\n role: hasContext || group ? 'radio' : null,\n type: hasContext || group ? 'radio' : 'checkbox', // overwriting the type\n }\n\n if (!group) {\n inputParams.type = 'checkbox'\n inputParams.role = 'radio' // breaks axe test\n }\n\n if (showStatus || suffix) {\n inputParams['aria-describedby'] = combineDescribedBy(\n inputParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (readOnly) {\n inputParams['aria-readonly'] = inputParams.readOnly = true\n }\n\n inputParams = Object.assign(inputParams, rest)\n\n skeletonDOMAttributes(inputParams, skeleton, this.context)\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, inputParams)\n\n const labelComp = label && (\n <FormLabel\n id={id + '-label'}\n for_id={id}\n text={label}\n disabled={disabled}\n skeleton={skeleton}\n sr_only={label_sr_only}\n />\n )\n\n const Element = element || 'input'\n\n return (\n <span {...mainParams}>\n <span className=\"dnb-radio__order\">\n {label_position === 'left' && labelComp}\n\n <span className=\"dnb-radio__inner\">\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + ', ' + id + '-label'}\n text={status}\n state={status_state}\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n\n <span className=\"dnb-radio__row\">\n <span className=\"dnb-radio__shell\">\n <Element\n type=\"radio\"\n value={value}\n id={id}\n name={group}\n className=\"dnb-radio__input\"\n checked={checked}\n aria-checked={\n this.isPlainGroup() ? undefined : checked\n }\n disabled={isTrue(disabled)}\n ref={this._refInput}\n {...inputParams}\n onChange={this.onChangeHandler}\n onClick={this.onClickHandler}\n onKeyDown={this.onKeyDownHandler}\n />\n\n <span\n className={classnames(\n 'dnb-radio__button',\n createSkeletonClass(\n 'shape',\n skeleton,\n this.context\n )\n )}\n aria-hidden\n />\n <span className=\"dnb-radio__focus\" aria-hidden />\n <span className=\"dnb-radio__dot\" aria-hidden />\n </span>\n\n {label_position !== 'left' && labelComp}\n\n {suffix && (\n <Suffix\n className=\"dnb-radio__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n </span>\n </span>\n </span>\n )\n }}\n </Context.Consumer>\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Radio.js","names":["React","PropTypes","classnames","keycode","isTrue","makeUniqueId","extendPropsWithContextInClassComponent","validateDOMAttributes","getStatusState","combineDescribedBy","dispatchCustomElementEvent","AlignmentHelper","spacingPropTypes","createSpacingClasses","skeletonDOMAttributes","createSkeletonClass","FormLabel","FormStatus","RadioGroup","RadioGroupContext","Context","Suffix","includeValidProps","Radio","PureComponent","getDerivedStateFromProps","props","state","_listenForPropChanges","checked","_checked","parseChecked","__checked","constructor","_defineProperty","event","key","isInNoGroup","onChangeHandler","isContextGroupOrSingle","value","context","preventDefault","setState","_event","readOnly","target","isPlainGroup","setTimeout","callOnChange","group","onChange","_refInput","current","focus","createRef","_id","id","render","createElement","Consumer","contextProps","defaultProps","skeleton","FormRow","status","status_state","status_props","status_no_animation","globalStatus","suffix","element","label","label_sr_only","label_position","size","className","class","_className","_group","_value","disabled","_disabled","children","on_change","on_state_update","rest","_objectWithoutProperties","_excluded","hasContext","name","showStatus","mainParams","inputParams","role","type","Object","assign","labelComp","for_id","text","sr_only","Element","_AlignmentHelper","_extends","show","text_id","width_selector","no_animation","undefined","ref","onClick","onClickHandler","onKeyDown","onKeyDownHandler","_span","_span2","attributes","test","String","process","env","NODE_ENV","propTypes","_objectSpread","oneOfType","string","func","node","bool","oneOf","object","shape","message"],"sources":["../../../../src/components/radio/Radio.js"],"sourcesContent":["/**\n * Web Radio Component\n *\n */\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\nimport keycode from 'keycode'\nimport {\n isTrue,\n makeUniqueId,\n extendPropsWithContextInClassComponent,\n validateDOMAttributes,\n getStatusState,\n combineDescribedBy,\n dispatchCustomElementEvent,\n} from '../../shared/component-helper'\nimport AlignmentHelper from '../../shared/AlignmentHelper'\nimport {\n spacingPropTypes,\n createSpacingClasses,\n} from '../space/SpacingHelper'\nimport {\n skeletonDOMAttributes,\n createSkeletonClass,\n} from '../skeleton/SkeletonHelper'\n\nimport FormLabel from '../form-label/FormLabel'\nimport FormStatus from '../form-status/FormStatus'\nimport RadioGroup from './RadioGroup'\nimport RadioGroupContext from './RadioGroupContext'\nimport Context from '../../shared/Context'\nimport Suffix from '../../shared/helpers/Suffix'\nimport { includeValidProps } from '../form-row/FormRowHelpers'\n\n/**\n * The radio component is our enhancement of the classic radio button.\n */\nexport default class Radio extends React.PureComponent {\n static contextType = RadioGroupContext\n\n static propTypes = {\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n label_sr_only: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n label_position: PropTypes.oneOf(['left', 'right']),\n checked: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n disabled: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n id: PropTypes.string,\n element: PropTypes.node,\n group: PropTypes.string,\n size: PropTypes.oneOf(['default', 'medium', 'large']),\n status: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n PropTypes.func,\n PropTypes.node,\n ]),\n status_state: PropTypes.string,\n status_props: PropTypes.object,\n status_no_animation: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n globalStatus: PropTypes.shape({\n id: PropTypes.string,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n }),\n suffix: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.node,\n ]),\n value: PropTypes.string,\n attributes: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n skeleton: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n readOnly: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n\n ...spacingPropTypes,\n\n class: PropTypes.string,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n\n on_change: PropTypes.func,\n on_state_update: PropTypes.func,\n }\n\n static defaultProps = {\n label: null,\n label_sr_only: null,\n label_position: null,\n checked: null,\n disabled: null,\n id: null,\n size: null,\n element: 'input',\n group: null,\n status: null,\n status_state: 'error',\n status_props: null,\n status_no_animation: null,\n globalStatus: null,\n suffix: null,\n value: '',\n attributes: null,\n readOnly: false,\n skeleton: null,\n class: null,\n\n className: null,\n children: null,\n\n on_change: null,\n on_state_update: null,\n }\n\n static Group = RadioGroup\n\n static parseChecked = (state) => /true|on/.test(String(state))\n\n static getDerivedStateFromProps(props, state) {\n if (state._listenForPropChanges) {\n if (props.checked !== state._checked) {\n state.checked = Radio.parseChecked(props.checked)\n }\n }\n state._listenForPropChanges = true\n\n if (state.checked !== state.__checked) {\n dispatchCustomElementEvent({ props }, 'on_state_update', {\n checked: state.checked,\n })\n }\n\n state._checked = props.checked\n state.__checked = state.checked\n\n return state\n }\n\n constructor(props) {\n super(props)\n this._refInput = React.createRef()\n this._id = props.id || makeUniqueId() // cause we need an id anyway\n this.state = {\n _listenForPropChanges: true,\n }\n }\n\n onKeyDownHandler = (event) => {\n const key = keycode(event)\n // only have key support if there is only a single radio\n if (this.isInNoGroup()) {\n switch (key) {\n case 'enter':\n this.onChangeHandler(event)\n break\n }\n } else if (this.isContextGroupOrSingle()) {\n switch (key) {\n case 'space':\n case 'enter': {\n const { value } = this.context\n if (value !== null && typeof value !== 'undefined') {\n event.preventDefault()\n }\n if (key === 'enter') {\n const checked = !this.state.checked\n this.setState({ checked, _listenForPropChanges: false })\n }\n break\n }\n }\n } else {\n // else we only use the native support, and don't want space support\n // because only arrow keys has to be used\n switch (key) {\n case 'space': {\n event.preventDefault()\n break\n }\n }\n }\n dispatchCustomElementEvent(this, 'on_key_down', { event })\n }\n\n onChangeHandler = (_event) => {\n const event = _event\n if (isTrue(this.props.readOnly)) {\n return event.preventDefault()\n }\n const value = event.target.value\n const checked = !this.state.checked\n\n // delay in case we have a props group only\n if (this.isPlainGroup()) {\n // in case we have a false \"hasContext\" but a \"group\"\n // then we have to use a delay, to overwrite the uncontrolled state\n setTimeout(() => {\n this.setState({ checked, _listenForPropChanges: false }, () =>\n this.callOnChange({ value, checked, event })\n )\n }, 1)\n } else {\n this.setState({ checked, _listenForPropChanges: false })\n this.callOnChange({ value, checked, event })\n }\n }\n\n // only support on change if there is either:\n // 1. context group usage\n // 2. or a single, no group usage\n isContextGroupOrSingle = () =>\n typeof this.context.value !== 'undefined' && !this.props.group\n isPlainGroup = () =>\n typeof this.context.value === 'undefined' && this.props.group\n isInNoGroup = () =>\n typeof this.context.value === 'undefined' && !this.props.group\n\n onClickHandler = (event) => {\n if (isTrue(this.props.readOnly)) {\n return event.preventDefault()\n }\n // only have click support if there are more plain radio\n if (!this.isPlainGroup()) {\n return\n }\n const value = event.target.value\n const checked = event.target.checked\n this.callOnChange({ value, checked, event })\n }\n\n callOnChange = ({ value, checked, event }) => {\n const { group } = this.props\n if (this.context.onChange) {\n this.context.onChange({\n value,\n })\n }\n dispatchCustomElementEvent(this, 'on_change', {\n group,\n checked,\n value,\n event,\n })\n\n // help firefox and safari to have an correct state after a click\n if (this._refInput.current) {\n this._refInput.current.focus()\n }\n }\n\n render() {\n return (\n <Context.Consumer>\n {(context) => {\n // from internal context\n const contextProps = extendPropsWithContextInClassComponent(\n this.props,\n Radio.defaultProps,\n this.context\n )\n\n // use only the props from context, who are available here anyway\n const props = extendPropsWithContextInClassComponent(\n this.props,\n Radio.defaultProps,\n contextProps,\n { skeleton: context?.skeleton },\n includeValidProps(context.FormRow),\n context.Radio\n )\n\n const {\n status,\n status_state,\n status_props,\n status_no_animation,\n globalStatus,\n suffix,\n element,\n label,\n label_sr_only,\n label_position,\n size,\n readOnly,\n skeleton,\n className,\n class: _className,\n id: _id, // eslint-disable-line\n group: _group, // eslint-disable-line\n value: _value, // eslint-disable-line\n checked: _checked, // eslint-disable-line\n disabled: _disabled, // eslint-disable-line\n children, // eslint-disable-line\n on_change, // eslint-disable-line\n on_state_update, // eslint-disable-line\n\n ...rest\n } = props\n\n let { checked } = this.state\n let { value, group, disabled } = props // get it from context also\n\n const hasContext = typeof this.context.name !== 'undefined'\n\n if (hasContext) {\n if (typeof this.context.value !== 'undefined') {\n checked = this.context.value === value\n }\n group = this.context.name\n if (isTrue(this.context.disabled) && disabled !== false) {\n disabled = true\n }\n } else if (typeof rest.name !== 'undefined') {\n group = rest.name\n }\n\n const id = this._id\n const showStatus = getStatusState(status)\n\n const mainParams = {\n className: classnames(\n 'dnb-radio',\n status && `dnb-radio__status--${status_state}`,\n size && `dnb-radio--${size}`,\n label &&\n `dnb-radio--label-position-${label_position || 'right'}`,\n createSpacingClasses(props),\n className,\n _className\n ),\n }\n\n let inputParams = {\n role: hasContext || group ? 'radio' : null,\n type: hasContext || group ? 'radio' : 'checkbox', // overwriting the type\n }\n\n if (!group) {\n inputParams.type = 'checkbox'\n inputParams.role = 'radio' // breaks axe test\n }\n\n if (showStatus || suffix) {\n inputParams['aria-describedby'] = combineDescribedBy(\n inputParams,\n showStatus ? id + '-status' : null,\n suffix ? id + '-suffix' : null\n )\n }\n if (readOnly) {\n inputParams['aria-readonly'] = inputParams.readOnly = true\n }\n\n inputParams = Object.assign(inputParams, rest)\n\n skeletonDOMAttributes(inputParams, skeleton, this.context)\n\n // also used for code markup simulation\n validateDOMAttributes(this.props, inputParams)\n\n const labelComp = label && (\n <FormLabel\n id={id + '-label'}\n for_id={id}\n text={label}\n disabled={disabled}\n skeleton={skeleton}\n sr_only={label_sr_only}\n />\n )\n\n const Element = element || 'input'\n\n return (\n <span {...mainParams}>\n <span className=\"dnb-radio__order\">\n {label_position === 'left' && labelComp}\n\n <span className=\"dnb-radio__inner\">\n <AlignmentHelper />\n\n <FormStatus\n show={showStatus}\n id={id + '-form-status'}\n globalStatus={globalStatus}\n label={label}\n text_id={id + '-status'} // used for \"aria-describedby\"\n width_selector={id + ', ' + id + '-label'}\n text={status}\n state={status_state}\n no_animation={status_no_animation}\n skeleton={skeleton}\n {...status_props}\n />\n\n <span className=\"dnb-radio__row\">\n <span className=\"dnb-radio__shell\">\n <Element\n type=\"radio\"\n value={value}\n id={id}\n name={group}\n className=\"dnb-radio__input\"\n checked={checked}\n aria-checked={\n this.isPlainGroup() ? undefined : checked\n }\n disabled={isTrue(disabled)}\n ref={this._refInput}\n {...inputParams}\n onChange={this.onChangeHandler}\n onClick={this.onClickHandler}\n onKeyDown={this.onKeyDownHandler}\n />\n\n <span\n className={classnames(\n 'dnb-radio__button',\n createSkeletonClass(\n 'shape',\n skeleton,\n this.context\n )\n )}\n aria-hidden\n />\n <span className=\"dnb-radio__focus\" aria-hidden />\n <span className=\"dnb-radio__dot\" aria-hidden />\n </span>\n\n {label_position !== 'left' && labelComp}\n\n {suffix && (\n <Suffix\n className=\"dnb-radio__suffix\"\n id={id + '-suffix'} // used for \"aria-describedby\"\n context={props}\n >\n {suffix}\n </Suffix>\n )}\n </span>\n </span>\n </span>\n </span>\n )\n }}\n </Context.Consumer>\n )\n }\n}\n"],"mappings":"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"}
@@ -88,21 +88,28 @@
88
88
  .dnb-section--fire-red .dnb-anchor, .dnb-section--emerald-green .dnb-anchor, .dnb-section--sea-green .dnb-anchor {
89
89
  color: var(--color-white);
90
90
  }
91
- .dnb-section--fire-red .dnb-anchor:hover, .dnb-section--fire-red .dnb-anchor:active, .dnb-section--emerald-green .dnb-anchor:hover, .dnb-section--emerald-green .dnb-anchor:active, .dnb-section--sea-green .dnb-anchor:hover, .dnb-section--sea-green .dnb-anchor:active {
91
+ .dnb-section--fire-red .dnb-anchor:hover, .dnb-section--emerald-green .dnb-anchor:hover, .dnb-section--sea-green .dnb-anchor:hover {
92
92
  color: var(--color-emerald-green);
93
- background-color: var(--color-white);
94
- text-decoration: none;
93
+ box-shadow: inset 100vw 100vw 0 0 var(--color-white), -0.125em 0 0 0 var(--color-white), 0.125em 0 0 0 var(--color-white);
95
94
  }
96
95
  .dnb-section--fire-red .dnb-anchor:active, .dnb-section--emerald-green .dnb-anchor:active, .dnb-section--sea-green .dnb-anchor:active {
97
- color: var(--color-emerald-green);
98
- background-color: var(--color-white);
96
+ color: var(--color-white);
97
+ background-color: transparent;
98
+ box-shadow: inset 100vw 100vw 0 0 transparent, -0.125em 0 0 0 transparent, 0.125em 0 0 0 transparent;
99
99
  }
100
- .dnb-section--fire-red .dnb-anchor:not(:disabled):focus, .dnb-section--emerald-green .dnb-anchor:not(:disabled):focus, .dnb-section--sea-green .dnb-anchor:not(:disabled):focus {
100
+ .dnb-section--fire-red .dnb-anchor.focus-visible, .dnb-section--emerald-green .dnb-anchor.focus-visible, .dnb-section--sea-green .dnb-anchor.focus-visible {
101
101
  color: var(--color-white);
102
102
  background-color: transparent;
103
103
  outline: none;
104
+ --border-color: var(--color-white);
105
+ --border-width: var(--focus-ring-width);
106
+ box-shadow: 0 0 0 var(--border-width) var(--border-color);
107
+ border-color: transparent;
104
108
  }
105
- html[data-whatinput=keyboard] .dnb-section--fire-red .dnb-anchor:not(:disabled):focus, html[data-whatinput=keyboard] .dnb-section--emerald-green .dnb-anchor:not(:disabled):focus, html[data-whatinput=keyboard] .dnb-section--sea-green .dnb-anchor:not(:disabled):focus {
109
+ .dnb-section--fire-red .dnb-anchor:focus-visible, .dnb-section--emerald-green .dnb-anchor:focus-visible, .dnb-section--sea-green .dnb-anchor:focus-visible {
110
+ color: var(--color-white);
111
+ background-color: transparent;
112
+ outline: none;
106
113
  --border-color: var(--color-white);
107
114
  --border-width: var(--focus-ring-width);
108
115
  box-shadow: 0 0 0 var(--border-width) var(--border-color);
@@ -1 +1 @@
1
- .dnb-section--divider{color:var(--color-black-80)}.dnb-section--divider:after{box-shadow:99vw 0 0 0 currentcolor,198vw 0 0 0 currentcolor,297vw 0 0 0 currentcolor,396vw 0 0 0 currentcolor,0 .0625rem 0 0 var(--color-mint-green-50),99vw .0625rem 0 0 var(--color-mint-green-50),0 -.0625rem 0 0 var(--color-mint-green-50),99vw -.0625rem 0 0 var(--color-mint-green-50),198vw .0625rem 0 0 var(--color-mint-green-50),198vw -.0625rem 0 0 var(--color-mint-green-50);color:var(--color-white)}.dnb-section--transparent:after{color:transparent}.dnb-section--mint-green-12{color:var(--color-black-80)}.dnb-section--mint-green-12:after{color:var(--color-mint-green-12)}.dnb-section--white{color:var(--color-black-80)}.dnb-section--white:after{color:var(--color-white)}.dnb-section--mint-green{color:var(--color-black-80)}.dnb-section--mint-green:after{color:var(--color-mint-green)}.dnb-section--lavender{color:var(--color-black-80)}.dnb-section--lavender:after{color:var(--color-lavender)}.dnb-section--sand-yellow{color:var(--color-black-80)}.dnb-section--sand-yellow:after{color:var(--color-sand-yellow)}.dnb-section--pistachio{color:var(--color-black-80)}.dnb-section--pistachio:after{color:var(--color-pistachio)}.dnb-section--black-3{color:var(--color-black-80)}.dnb-section--black-3:after{color:var(--color-black-3)}.dnb-section--emerald-green{color:var(--color-mint-green)}.dnb-section--emerald-green:after{color:var(--color-emerald-green)}.dnb-section--sea-green{color:var(--color-white)}.dnb-section--sea-green:after{color:var(--color-sea-green)}.dnb-section--fire-red{color:var(--color-white)}.dnb-section--fire-red:after{color:var(--color-fire-red)}.dnb-section--fire-red-8{color:var(--color-black-80)}.dnb-section--fire-red-8:after{color:var(--color-fire-red-8)}.dnb-section--emerald-green .dnb-anchor,.dnb-section--fire-red .dnb-anchor,.dnb-section--sea-green .dnb-anchor{color:var(--color-white)}.dnb-section--emerald-green .dnb-anchor:active,.dnb-section--emerald-green .dnb-anchor:hover,.dnb-section--fire-red .dnb-anchor:active,.dnb-section--fire-red .dnb-anchor:hover,.dnb-section--sea-green .dnb-anchor:active,.dnb-section--sea-green .dnb-anchor:hover{background-color:var(--color-white);color:var(--color-emerald-green);text-decoration:none}.dnb-section--emerald-green .dnb-anchor:active,.dnb-section--fire-red .dnb-anchor:active,.dnb-section--sea-green .dnb-anchor:active{background-color:var(--color-white);color:var(--color-emerald-green)}.dnb-section--emerald-green .dnb-anchor:not(:disabled):focus,.dnb-section--fire-red .dnb-anchor:not(:disabled):focus,.dnb-section--sea-green .dnb-anchor:not(:disabled):focus{background-color:transparent;color:var(--color-white);outline:none}html[data-whatinput=keyboard] .dnb-section--emerald-green .dnb-anchor:not(:disabled):focus,html[data-whatinput=keyboard] .dnb-section--fire-red .dnb-anchor:not(:disabled):focus,html[data-whatinput=keyboard] .dnb-section--sea-green .dnb-anchor:not(:disabled):focus{--border-color:var(--color-white);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-section--emerald-green .dnb-button--tertiary,.dnb-section--emerald-green .dnb-button--tertiary:hover,.dnb-section--fire-red .dnb-button--tertiary,.dnb-section--fire-red .dnb-button--tertiary:hover,.dnb-section--sea-green .dnb-button--tertiary,.dnb-section--sea-green .dnb-button--tertiary:hover{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--fire-red .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--sea-green .dnb-button--tertiary:hover .dnb-button__text:after{color:var(--color-white)!important}.dnb-section--emerald-green .dnb-button--tertiary:focus,.dnb-section--fire-red .dnb-button--tertiary:focus,.dnb-section--sea-green .dnb-button--tertiary:focus{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:focus:before,.dnb-section--fire-red .dnb-button--tertiary:focus:before,.dnb-section--sea-green .dnb-button--tertiary:focus:before{outline:none}html[data-whatinput=keyboard] .dnb-section--emerald-green .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--fire-red .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--sea-green .dnb-button--tertiary:focus:before{--border-color:var(--color-white);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-section--fire-red ::selection,.dnb-section--mint-green ::selection{background-color:var(--color-white)}
1
+ .dnb-section--divider{color:var(--color-black-80)}.dnb-section--divider:after{box-shadow:99vw 0 0 0 currentcolor,198vw 0 0 0 currentcolor,297vw 0 0 0 currentcolor,396vw 0 0 0 currentcolor,0 .0625rem 0 0 var(--color-mint-green-50),99vw .0625rem 0 0 var(--color-mint-green-50),0 -.0625rem 0 0 var(--color-mint-green-50),99vw -.0625rem 0 0 var(--color-mint-green-50),198vw .0625rem 0 0 var(--color-mint-green-50),198vw -.0625rem 0 0 var(--color-mint-green-50);color:var(--color-white)}.dnb-section--transparent:after{color:transparent}.dnb-section--mint-green-12{color:var(--color-black-80)}.dnb-section--mint-green-12:after{color:var(--color-mint-green-12)}.dnb-section--white{color:var(--color-black-80)}.dnb-section--white:after{color:var(--color-white)}.dnb-section--mint-green{color:var(--color-black-80)}.dnb-section--mint-green:after{color:var(--color-mint-green)}.dnb-section--lavender{color:var(--color-black-80)}.dnb-section--lavender:after{color:var(--color-lavender)}.dnb-section--sand-yellow{color:var(--color-black-80)}.dnb-section--sand-yellow:after{color:var(--color-sand-yellow)}.dnb-section--pistachio{color:var(--color-black-80)}.dnb-section--pistachio:after{color:var(--color-pistachio)}.dnb-section--black-3{color:var(--color-black-80)}.dnb-section--black-3:after{color:var(--color-black-3)}.dnb-section--emerald-green{color:var(--color-mint-green)}.dnb-section--emerald-green:after{color:var(--color-emerald-green)}.dnb-section--sea-green{color:var(--color-white)}.dnb-section--sea-green:after{color:var(--color-sea-green)}.dnb-section--fire-red{color:var(--color-white)}.dnb-section--fire-red:after{color:var(--color-fire-red)}.dnb-section--fire-red-8{color:var(--color-black-80)}.dnb-section--fire-red-8:after{color:var(--color-fire-red-8)}.dnb-section--emerald-green .dnb-anchor,.dnb-section--fire-red .dnb-anchor,.dnb-section--sea-green .dnb-anchor{color:var(--color-white)}.dnb-section--emerald-green .dnb-anchor:hover,.dnb-section--fire-red .dnb-anchor:hover,.dnb-section--sea-green .dnb-anchor:hover{box-shadow:inset 100vw 100vw 0 0 var(--color-white),-.125em 0 0 0 var(--color-white),.125em 0 0 0 var(--color-white);color:var(--color-emerald-green)}.dnb-section--emerald-green .dnb-anchor:active,.dnb-section--fire-red .dnb-anchor:active,.dnb-section--sea-green .dnb-anchor:active{background-color:transparent;box-shadow:inset 100vw 100vw 0 0 transparent,-.125em 0 0 0 transparent,.125em 0 0 0 transparent;color:var(--color-white)}.dnb-section--emerald-green .dnb-anchor.focus-visible,.dnb-section--fire-red .dnb-anchor.focus-visible,.dnb-section--sea-green .dnb-anchor.focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}.dnb-section--emerald-green .dnb-anchor:focus-visible,.dnb-section--fire-red .dnb-anchor:focus-visible,.dnb-section--sea-green .dnb-anchor:focus-visible{--border-color:var(--color-white);--border-width:var(--focus-ring-width);background-color:transparent;border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color);color:var(--color-white);outline:none}.dnb-section--emerald-green .dnb-button--tertiary,.dnb-section--emerald-green .dnb-button--tertiary:hover,.dnb-section--fire-red .dnb-button--tertiary,.dnb-section--fire-red .dnb-button--tertiary:hover,.dnb-section--sea-green .dnb-button--tertiary,.dnb-section--sea-green .dnb-button--tertiary:hover{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--fire-red .dnb-button--tertiary:hover .dnb-button__text:after,.dnb-section--sea-green .dnb-button--tertiary:hover .dnb-button__text:after{color:var(--color-white)!important}.dnb-section--emerald-green .dnb-button--tertiary:focus,.dnb-section--fire-red .dnb-button--tertiary:focus,.dnb-section--sea-green .dnb-button--tertiary:focus{color:var(--color-white)}.dnb-section--emerald-green .dnb-button--tertiary:focus:before,.dnb-section--fire-red .dnb-button--tertiary:focus:before,.dnb-section--sea-green .dnb-button--tertiary:focus:before{outline:none}html[data-whatinput=keyboard] .dnb-section--emerald-green .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--fire-red .dnb-button--tertiary:focus:before,html[data-whatinput=keyboard] .dnb-section--sea-green .dnb-button--tertiary:focus:before{--border-color:var(--color-white);--border-width:var(--focus-ring-width);border-color:transparent;box-shadow:0 0 0 var(--border-width) var(--border-color)}.dnb-section--fire-red ::selection,.dnb-section--mint-green ::selection{background-color:var(--color-white)}
@@ -1 +1 @@
1
- {"version":3,"file":"useSliderEvents.js","names":["React","dispatchCustomElementEvent","warn","calculatePercent","createMockDiv","percentToValue","SliderContext","useSliderEvents","isReverse","emitChange","trackRef","isVertical","setShouldAnimate","setThumbState","setThumbIndex","allProps","useContext","min","max","onDragStart","onDragEnd","onTrackMouseDownHandler","event","onThumbMouseDownHandler","percent","current","target","parseFloat","dataset","index","document","body","addEventListener","onBodyMouseMoveHandler","onBodyMouseUpHandler","e","onThumbMouseUpHandler","removeEvents","removeEventListener","preventDefault","elem","process","env","NODE_ENV","detail","onHelperChangeHandler","emitEvent","currentTarget","value","onHelperFocusHandler"],"sources":["../../../../../src/components/slider/hooks/useSliderEvents.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport React from 'react'\nimport {\n dispatchCustomElementEvent,\n warn,\n} from '../../../shared/component-helper'\nimport {\n calculatePercent,\n createMockDiv,\n percentToValue,\n} from '../SliderHelpers'\nimport { SliderContext } from '../SliderProvider'\n\nexport function useSliderEvents() {\n const {\n isReverse,\n emitChange,\n trackRef,\n isVertical,\n setShouldAnimate,\n setThumbState,\n setThumbIndex,\n allProps,\n } = React.useContext(SliderContext)\n const { min, max, onDragStart, onDragEnd } = allProps\n\n const onTrackMouseDownHandler = (event: MouseEvent | TouchEvent) => {\n onThumbMouseDownHandler(event)\n\n const percent = calculatePercent(trackRef.current, event, isVertical)\n\n emitChange(event, percentToValue(percent, min, max, isReverse))\n setShouldAnimate(true)\n }\n\n const onThumbMouseDownHandler = (\n event: MouseEvent | TouchEvent | React.SyntheticEvent\n ) => {\n const target = event.target as HTMLButtonElement\n\n setThumbIndex(parseFloat(target.dataset.index))\n setThumbState('activated')\n\n if (typeof onDragStart === 'function') {\n dispatchCustomElementEvent(allProps, 'onDragStart', {\n event,\n })\n }\n\n if (typeof document !== 'undefined') {\n try {\n document.body.addEventListener('touchmove', onBodyMouseMoveHandler)\n document.body.addEventListener('touchend', onBodyMouseUpHandler)\n document.body.addEventListener('mousemove', onBodyMouseMoveHandler)\n document.body.addEventListener('mouseup', onBodyMouseUpHandler)\n } catch (e) {\n warn(e)\n }\n }\n }\n\n const onThumbMouseUpHandler = () => {\n setThumbState('released')\n }\n\n const removeEvents = () => {\n if (typeof document !== 'undefined') {\n try {\n document.body.removeEventListener(\n 'touchmove',\n onBodyMouseMoveHandler\n )\n document.body.removeEventListener('touchend', onBodyMouseUpHandler)\n document.body.removeEventListener(\n 'mousemove',\n onBodyMouseMoveHandler\n )\n document.body.removeEventListener('mouseup', onBodyMouseUpHandler)\n } catch (e) {\n warn(e)\n }\n }\n }\n\n const onBodyMouseUpHandler = (event: MouseEvent | TouchEvent) => {\n removeEvents()\n\n setThumbIndex(-1)\n setThumbState('normal')\n\n if (typeof onDragEnd === 'function') {\n dispatchCustomElementEvent(allProps, 'onDragEnd', {\n event,\n })\n }\n }\n\n const onBodyMouseMoveHandler = (event: MouseEvent) => {\n event.preventDefault() // ensures correct cursor in Safari (dekstop)\n\n let elem = trackRef.current\n\n // we have to mock this for jsdom.\n if (process.env.NODE_ENV === 'test') {\n // @ts-ignore\n elem = createMockDiv(event.detail)\n // @ts-ignore\n event = event.detail\n }\n\n if (elem) {\n const percent = calculatePercent(elem, event, isVertical)\n emitChange(event, percentToValue(percent, min, max, isReverse))\n }\n\n setShouldAnimate(false)\n }\n\n const onHelperChangeHandler = (\n event: React.FormEvent<HTMLInputElement>\n ) => {\n const emitEvent = event as unknown\n emitChange(\n emitEvent as MouseEvent,\n parseFloat(event.currentTarget.value)\n )\n }\n\n const onHelperFocusHandler = (\n event: React.FormEvent<HTMLInputElement>\n ) => {\n const target = event.target as HTMLInputElement\n setThumbIndex(parseFloat(target.dataset.index))\n }\n\n return {\n onThumbMouseDownHandler,\n onThumbMouseUpHandler,\n onTrackMouseDownHandler,\n onHelperChangeHandler,\n onHelperFocusHandler,\n removeEvents,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSliderEvents.js","names":["React","dispatchCustomElementEvent","warn","calculatePercent","createMockDiv","percentToValue","SliderContext","useSliderEvents","isReverse","emitChange","trackRef","isVertical","setShouldAnimate","setThumbState","setThumbIndex","allProps","useContext","min","max","onDragStart","onDragEnd","onTrackMouseDownHandler","event","onThumbMouseDownHandler","percent","current","target","parseFloat","dataset","index","document","body","addEventListener","onBodyMouseMoveHandler","onBodyMouseUpHandler","e","onThumbMouseUpHandler","removeEvents","removeEventListener","preventDefault","elem","process","env","NODE_ENV","detail","onHelperChangeHandler","emitEvent","currentTarget","value","onHelperFocusHandler"],"sources":["../../../../../src/components/slider/hooks/useSliderEvents.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport React from 'react'\nimport {\n dispatchCustomElementEvent,\n warn,\n} from '../../../shared/component-helper'\nimport {\n calculatePercent,\n createMockDiv,\n percentToValue,\n} from '../SliderHelpers'\nimport { SliderContext } from '../SliderProvider'\n\nexport function useSliderEvents() {\n const {\n isReverse,\n emitChange,\n trackRef,\n isVertical,\n setShouldAnimate,\n setThumbState,\n setThumbIndex,\n allProps,\n } = React.useContext(SliderContext)\n const { min, max, onDragStart, onDragEnd } = allProps\n\n const onTrackMouseDownHandler = (event: MouseEvent | TouchEvent) => {\n onThumbMouseDownHandler(event)\n\n const percent = calculatePercent(trackRef.current, event, isVertical)\n\n emitChange(event, percentToValue(percent, min, max, isReverse))\n setShouldAnimate(true)\n }\n\n const onThumbMouseDownHandler = (\n event: MouseEvent | TouchEvent | React.SyntheticEvent\n ) => {\n const target = event.target as HTMLButtonElement\n\n setThumbIndex(parseFloat(target.dataset.index))\n setThumbState('activated')\n\n if (typeof onDragStart === 'function') {\n dispatchCustomElementEvent(allProps, 'onDragStart', {\n event,\n })\n }\n\n if (typeof document !== 'undefined') {\n try {\n document.body.addEventListener('touchmove', onBodyMouseMoveHandler)\n document.body.addEventListener('touchend', onBodyMouseUpHandler)\n document.body.addEventListener('mousemove', onBodyMouseMoveHandler)\n document.body.addEventListener('mouseup', onBodyMouseUpHandler)\n } catch (e) {\n warn(e)\n }\n }\n }\n\n const onThumbMouseUpHandler = () => {\n setThumbState('released')\n }\n\n const removeEvents = () => {\n if (typeof document !== 'undefined') {\n try {\n document.body.removeEventListener(\n 'touchmove',\n onBodyMouseMoveHandler\n )\n document.body.removeEventListener('touchend', onBodyMouseUpHandler)\n document.body.removeEventListener(\n 'mousemove',\n onBodyMouseMoveHandler\n )\n document.body.removeEventListener('mouseup', onBodyMouseUpHandler)\n } catch (e) {\n warn(e)\n }\n }\n }\n\n const onBodyMouseUpHandler = (event: MouseEvent | TouchEvent) => {\n removeEvents()\n\n setThumbIndex(-1)\n setThumbState('normal')\n\n if (typeof onDragEnd === 'function') {\n dispatchCustomElementEvent(allProps, 'onDragEnd', {\n event,\n })\n }\n }\n\n const onBodyMouseMoveHandler = (event: MouseEvent) => {\n event.preventDefault() // ensures correct cursor in Safari (desktop)\n\n let elem = trackRef.current\n\n // we have to mock this for jsdom.\n if (process.env.NODE_ENV === 'test') {\n // @ts-ignore\n elem = createMockDiv(event.detail)\n // @ts-ignore\n event = event.detail\n }\n\n if (elem) {\n const percent = calculatePercent(elem, event, isVertical)\n emitChange(event, percentToValue(percent, min, max, isReverse))\n }\n\n setShouldAnimate(false)\n }\n\n const onHelperChangeHandler = (\n event: React.FormEvent<HTMLInputElement>\n ) => {\n const emitEvent = event as unknown\n emitChange(\n emitEvent as MouseEvent,\n parseFloat(event.currentTarget.value)\n )\n }\n\n const onHelperFocusHandler = (\n event: React.FormEvent<HTMLInputElement>\n ) => {\n const target = event.target as HTMLInputElement\n setThumbIndex(parseFloat(target.dataset.index))\n }\n\n return {\n onThumbMouseDownHandler,\n onThumbMouseUpHandler,\n onTrackMouseDownHandler,\n onHelperChangeHandler,\n onHelperFocusHandler,\n removeEvents,\n }\n}\n"],"mappings":"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"}
@@ -42,7 +42,7 @@ export type SliderProps = IncludeSnakeCase<{
42
42
  min?: number;
43
43
  /** the maximum value. Defaults to `100`. */
44
44
  max?: number;
45
- /** the `value` of the slider as a number. If an array with numbers is provided, each number will represent a thumb button (the `+` and `-` button will be hidden on multible thumbs). */
45
+ /** the `value` of the slider as a number. If an array with numbers is provided, each number will represent a thumb button (the `+` and `-` button will be hidden on multiple thumbs). */
46
46
  value?: ValueTypes;
47
47
  /** the steps the slider takes on changing the value. Defaults to `null`. */
48
48
  step?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/slider/types.ts"],"sourcesContent":["import React from 'react'\n\nimport type { SuffixChildren } from '../../shared/helpers/Suffix'\nimport type {\n formatReturnType,\n formatOptionParams,\n} from '../number-format/NumberUtils'\nimport { IncludeSnakeCase } from '../../shared/helpers/withSnakeCaseProps'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { GlobalStatusConfigObject } from '../GlobalStatus'\n\nexport type ValueTypes = number | Array<number>\nexport type NumberFormatTypes =\n | formatOptionParams\n | ((value: number) => unknown)\nexport type onChangeEventProps = {\n value: ValueTypes\n rawValue: number\n number?: formatReturnType | null\n event?: Event\n}\n\nexport type SliderProps = IncludeSnakeCase<{\n /** prepends the Form Label component. If no ID is provided, a random ID is created. */\n label?: React.ReactNode\n\n /** use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`. */\n labelDirection?: 'vertical' | 'horizontal'\n\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n\n /** text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message. */\n status?: string | boolean\n\n /** defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`. */\n statusState?: 'error' | 'info'\n\n /** use an object to define additional FormStatus properties. */\n statusProps?: Record<string, unknown>\n statusNoAnimation?: boolean\n\n /** the `status_id` used for the target [GlobalStatus](/uilib/components/global-status). */\n globalStatus?: GlobalStatusConfigObject\n\n /** text describing the content of the Slider more than the label. You can also send in a React component, so it gets wrapped inside the Slider component. */\n suffix?: SuffixChildren\n\n /** give the slider thumb button a title for accessibility reasons. Defaults to `null`. */\n thumbTitle?: string\n\n /** give the add button a title for accessibility reasons. Defaults to `+`. */\n addTitle?: string\n\n /** give the subtract button a title for accessibility reasons. Defaults to `−`. */\n subtractTitle?: string\n\n /** the minimum value. Defaults to `0`. */\n min?: number\n\n /** the maximum value. Defaults to `100`. */\n max?: number\n\n /** the `value` of the slider as a number. If an array with numbers is provided, each number will represent a thumb button (the `+` and `-` button will be hidden on multible thumbs). */\n value?: ValueTypes\n\n /** the steps the slider takes on changing the value. Defaults to `null`. */\n step?: number\n\n /** show the slider vertically. Defaults to `false`. */\n vertical?: boolean\n\n /** show the slider reversed. Defaults to `false`. */\n reverse?: boolean\n\n /** if set to `true`, then the slider will be 100% in `width`. */\n stretch?: boolean\n\n /** provide a function callback or use the options from the [NumberFormat](/uilib/components/number-format/properties) component. It will show a formatted number in the Tooltip (`tooltip={true}`) and enhance the screen reader UX. It will also extend the `onChange` event return object with a formatted `number` property. */\n numberFormat?: NumberFormatTypes\n\n /** use `true` to show a tooltip on `mouseOver`, `touchStart` and `focus`, showing the current number (if `numberFormat` is given) or the raw value. Defaults to `null`. */\n tooltip: boolean\n\n /** use `true` to always show the tooltip, in addition to the `tooltip` property. */\n alwaysShowTooltip: boolean\n\n /** removes the helper buttons. Defaults to `false`. */\n hideButtons?: boolean\n\n /** use either `omit`, `push` or `swap`. This property only works for two (range) or more thumb buttons, while `omit` will stop the thumb from swapping, `push` will push its nearest thumb along. Defaults to `swap`. */\n multiThumbBehavior?: 'swap' | 'omit' | 'push'\n\n /** if set to `true`, an overlaying skeleton with animation will be shown. */\n skeleton?: SkeletonShow\n\n id?: string\n disabled?: boolean\n className?: string\n\n /** will be called on state changes made by the user. The callback `value` and `rawValue` is a number `{ value, rawValue, event }`. But if the prop `numberFormat` is given, then it will return an additional `number` with the given format `{ value, number, rawValue, event }`. */\n onChange?: (props: onChangeEventProps) => void\n\n /** will be called once the user stops dragging. Returns `{ event }`. */\n onDragStart?: (props: { event: MouseEvent | TouchEvent }) => void\n\n /** will be called once the user starts dragging. Returns `{ event }`. */\n onDragEnd?: (props: { event: MouseEvent | TouchEvent }) => void\n\n children?: React.ReactChild\n}>\n\nexport type SliderAllProps = SliderProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, keyof SliderProps>\n\nexport type ThumbStateEnums =\n | 'initial'\n | 'normal'\n | 'activated'\n | 'released'\n\nexport type SliderContextTypes = {\n isMulti: boolean\n isReverse: boolean\n isVertical: boolean\n shouldAnimate: boolean\n thumbState: ThumbStateEnums\n thumbIndex: React.RefObject<number>\n showStatus: boolean\n showButtons: boolean\n attributes: unknown\n allProps: SliderProps\n value: ValueTypes\n values: Array<number>\n setValue: (value: ValueTypes) => void\n setThumbState: (thumbState: ThumbStateEnums) => void\n setThumbIndex: (thumbIndex: number) => void\n emitChange: (emitEvent: MouseEvent | TouchEvent, value: number) => void\n trackRef: React.RefObject<HTMLElement>\n setShouldAnimate: (state: boolean) => void\n animationTimeout: React.RefObject<NodeJS.Timeout>\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/slider/types.ts"],"sourcesContent":["import React from 'react'\n\nimport type { SuffixChildren } from '../../shared/helpers/Suffix'\nimport type {\n formatReturnType,\n formatOptionParams,\n} from '../number-format/NumberUtils'\nimport { IncludeSnakeCase } from '../../shared/helpers/withSnakeCaseProps'\nimport type { SpacingProps } from '../../shared/types'\nimport type { SkeletonShow } from '../Skeleton'\nimport type { GlobalStatusConfigObject } from '../GlobalStatus'\n\nexport type ValueTypes = number | Array<number>\nexport type NumberFormatTypes =\n | formatOptionParams\n | ((value: number) => unknown)\nexport type onChangeEventProps = {\n value: ValueTypes\n rawValue: number\n number?: formatReturnType | null\n event?: Event\n}\n\nexport type SliderProps = IncludeSnakeCase<{\n /** prepends the Form Label component. If no ID is provided, a random ID is created. */\n label?: React.ReactNode\n\n /** use `labelDirection=\"vertical\"` to change the label layout direction. Defaults to `horizontal`. */\n labelDirection?: 'vertical' | 'horizontal'\n\n /** use `true` to make the label only readable by screen readers. */\n labelSrOnly?: boolean\n\n /** text with a status message. The style defaults to an error message. You can use `true` to only get the status color, without a message. */\n status?: string | boolean\n\n /** defines the state of the status. Currently, there are two statuses `[error, info]`. Defaults to `error`. */\n statusState?: 'error' | 'info'\n\n /** use an object to define additional FormStatus properties. */\n statusProps?: Record<string, unknown>\n statusNoAnimation?: boolean\n\n /** the `status_id` used for the target [GlobalStatus](/uilib/components/global-status). */\n globalStatus?: GlobalStatusConfigObject\n\n /** text describing the content of the Slider more than the label. You can also send in a React component, so it gets wrapped inside the Slider component. */\n suffix?: SuffixChildren\n\n /** give the slider thumb button a title for accessibility reasons. Defaults to `null`. */\n thumbTitle?: string\n\n /** give the add button a title for accessibility reasons. Defaults to `+`. */\n addTitle?: string\n\n /** give the subtract button a title for accessibility reasons. Defaults to `−`. */\n subtractTitle?: string\n\n /** the minimum value. Defaults to `0`. */\n min?: number\n\n /** the maximum value. Defaults to `100`. */\n max?: number\n\n /** the `value` of the slider as a number. If an array with numbers is provided, each number will represent a thumb button (the `+` and `-` button will be hidden on multiple thumbs). */\n value?: ValueTypes\n\n /** the steps the slider takes on changing the value. Defaults to `null`. */\n step?: number\n\n /** show the slider vertically. Defaults to `false`. */\n vertical?: boolean\n\n /** show the slider reversed. Defaults to `false`. */\n reverse?: boolean\n\n /** if set to `true`, then the slider will be 100% in `width`. */\n stretch?: boolean\n\n /** provide a function callback or use the options from the [NumberFormat](/uilib/components/number-format/properties) component. It will show a formatted number in the Tooltip (`tooltip={true}`) and enhance the screen reader UX. It will also extend the `onChange` event return object with a formatted `number` property. */\n numberFormat?: NumberFormatTypes\n\n /** use `true` to show a tooltip on `mouseOver`, `touchStart` and `focus`, showing the current number (if `numberFormat` is given) or the raw value. Defaults to `null`. */\n tooltip: boolean\n\n /** use `true` to always show the tooltip, in addition to the `tooltip` property. */\n alwaysShowTooltip: boolean\n\n /** removes the helper buttons. Defaults to `false`. */\n hideButtons?: boolean\n\n /** use either `omit`, `push` or `swap`. This property only works for two (range) or more thumb buttons, while `omit` will stop the thumb from swapping, `push` will push its nearest thumb along. Defaults to `swap`. */\n multiThumbBehavior?: 'swap' | 'omit' | 'push'\n\n /** if set to `true`, an overlaying skeleton with animation will be shown. */\n skeleton?: SkeletonShow\n\n id?: string\n disabled?: boolean\n className?: string\n\n /** will be called on state changes made by the user. The callback `value` and `rawValue` is a number `{ value, rawValue, event }`. But if the prop `numberFormat` is given, then it will return an additional `number` with the given format `{ value, number, rawValue, event }`. */\n onChange?: (props: onChangeEventProps) => void\n\n /** will be called once the user stops dragging. Returns `{ event }`. */\n onDragStart?: (props: { event: MouseEvent | TouchEvent }) => void\n\n /** will be called once the user starts dragging. Returns `{ event }`. */\n onDragEnd?: (props: { event: MouseEvent | TouchEvent }) => void\n\n children?: React.ReactChild\n}>\n\nexport type SliderAllProps = SliderProps &\n SpacingProps &\n Omit<React.HTMLProps<HTMLElement>, keyof SliderProps>\n\nexport type ThumbStateEnums =\n | 'initial'\n | 'normal'\n | 'activated'\n | 'released'\n\nexport type SliderContextTypes = {\n isMulti: boolean\n isReverse: boolean\n isVertical: boolean\n shouldAnimate: boolean\n thumbState: ThumbStateEnums\n thumbIndex: React.RefObject<number>\n showStatus: boolean\n showButtons: boolean\n attributes: unknown\n allProps: SliderProps\n value: ValueTypes\n values: Array<number>\n setValue: (value: ValueTypes) => void\n setThumbState: (thumbState: ThumbStateEnums) => void\n setThumbIndex: (thumbIndex: number) => void\n emitChange: (emitEvent: MouseEvent | TouchEvent, value: number) => void\n trackRef: React.RefObject<HTMLElement>\n setShouldAnimate: (state: boolean) => void\n animationTimeout: React.RefObject<NodeJS.Timeout>\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"SpacingHelper.js","names":["PropTypes","createSpacingClasses","removeSpaceProps","spacingPropTypes","space","oneOfType","string","number","bool","shape","top","right","bottom","left"],"sources":["../../../../src/components/space/SpacingHelper.js"],"sourcesContent":["/**\n * Space helper\n * NB: Because it contains \"PropTypes\" we keep this file as a JavaScirpt file.\n */\n\nimport PropTypes from 'prop-types'\nimport { createSpacingClasses, removeSpaceProps } from './SpacingUtils'\n\nexport { createSpacingClasses, removeSpaceProps } // because of ESLint import plugin\n\nexport const spacingPropTypes = {\n space: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.shape({\n top: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n bottom: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n }),\n ]),\n top: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n bottom: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n}\n"],"mappings":"AAKA,OAAOA,SAAS,MAAM,YAAY;AAClC,SAASC,oBAAoB,EAAEC,gBAAgB,QAAQ,gBAAgB;AAEvE,SAASD,oBAAoB,EAAEC,gBAAgB;AAE/C,OAAO,MAAMC,gBAAgB,GAAG;EAC9BC,KAAK,EAAEJ,SAAS,CAACK,SAAS,CAAC,CACzBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,EACdR,SAAS,CAACS,KAAK,CAAC;IACdC,GAAG,EAAEV,SAAS,CAACK,SAAS,CAAC,CACvBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;IACFG,KAAK,EAAEX,SAAS,CAACK,SAAS,CAAC,CACzBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;IACFI,MAAM,EAAEZ,SAAS,CAACK,SAAS,CAAC,CAC1BL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;IACFK,IAAI,EAAEb,SAAS,CAACK,SAAS,CAAC,CACxBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf;EACH,CAAC,CAAC,CACH,CAAC;EACFE,GAAG,EAAEV,SAAS,CAACK,SAAS,CAAC,CACvBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;EACFG,KAAK,EAAEX,SAAS,CAACK,SAAS,CAAC,CACzBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;EACFI,MAAM,EAAEZ,SAAS,CAACK,SAAS,CAAC,CAC1BL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;EACFK,IAAI,EAAEb,SAAS,CAACK,SAAS,CAAC,CACxBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf;AACH,CAAC"}
1
+ {"version":3,"file":"SpacingHelper.js","names":["PropTypes","createSpacingClasses","removeSpaceProps","spacingPropTypes","space","oneOfType","string","number","bool","shape","top","right","bottom","left"],"sources":["../../../../src/components/space/SpacingHelper.js"],"sourcesContent":["/**\n * Space helper\n * NB: Because it contains \"PropTypes\" we keep this file as a JavaScript file.\n */\n\nimport PropTypes from 'prop-types'\nimport { createSpacingClasses, removeSpaceProps } from './SpacingUtils'\n\nexport { createSpacingClasses, removeSpaceProps } // because of ESLint import plugin\n\nexport const spacingPropTypes = {\n space: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n PropTypes.shape({\n top: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n bottom: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n }),\n ]),\n top: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n right: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n bottom: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n left: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.bool,\n ]),\n}\n"],"mappings":"AAKA,OAAOA,SAAS,MAAM,YAAY;AAClC,SAASC,oBAAoB,EAAEC,gBAAgB,QAAQ,gBAAgB;AAEvE,SAASD,oBAAoB,EAAEC,gBAAgB;AAE/C,OAAO,MAAMC,gBAAgB,GAAG;EAC9BC,KAAK,EAAEJ,SAAS,CAACK,SAAS,CAAC,CACzBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,EACdR,SAAS,CAACS,KAAK,CAAC;IACdC,GAAG,EAAEV,SAAS,CAACK,SAAS,CAAC,CACvBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;IACFG,KAAK,EAAEX,SAAS,CAACK,SAAS,CAAC,CACzBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;IACFI,MAAM,EAAEZ,SAAS,CAACK,SAAS,CAAC,CAC1BL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;IACFK,IAAI,EAAEb,SAAS,CAACK,SAAS,CAAC,CACxBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf;EACH,CAAC,CAAC,CACH,CAAC;EACFE,GAAG,EAAEV,SAAS,CAACK,SAAS,CAAC,CACvBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;EACFG,KAAK,EAAEX,SAAS,CAACK,SAAS,CAAC,CACzBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;EACFI,MAAM,EAAEZ,SAAS,CAACK,SAAS,CAAC,CAC1BL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf,CAAC;EACFK,IAAI,EAAEb,SAAS,CAACK,SAAS,CAAC,CACxBL,SAAS,CAACM,MAAM,EAChBN,SAAS,CAACO,MAAM,EAChBP,SAAS,CAACQ,IAAI,CACf;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableAccordion.js","names":["React","classnames","Button","IconPrimary","Th","Td","TableContext","keycode","hasSelectedText","TableAccordionContent","TrContext","useTableAccordion","children","className","props","expanded","disabled","noAnimation","onClick","onOpened","onClosed","_tableContext$allProp","_tableContext$allProp2","tableContext","useContext","trIsOpen","setOpen","useState","location","id","hash","trIsHover","setHover","trHadClick","setHadClick","content","Children","toArray","allProps","accordion","accordionContent","find","element","type","hasAccordionContent","isValidElement","countTds","filter","length","trParams","toggleOpenTr","onMouseEnter","onMouseEnterHandler","onMouseLeave","onMouseLeaveHandler","onKeyDown","onKeydownHandler","hasContent","tdElem","_TableTdAccordionIcon","createElement","TableTdAccordionIcon","key","accordionChevronPlacement","push","unshift","isTh","some","thElem","_TableThAccordionIcon","TableThAccordionIcon","Provider","value","_extends","tabIndex","undefined","event","target","document","activeElement","tagName","preventDefault","TableAccordionToggleButton","_React$useContext","trContext","iconSize","size","icon","accordionToggleButtonSR","Boolean","on_click","_tableContext$allProp3","_Td"],"sources":["../../../../src/components/table/TableAccordion.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Button from '../button/Button'\nimport IconPrimary from '../icon/IconPrimary'\nimport Th from './TableTh'\nimport Td from './TableTd'\nimport TableContext from './TableContext'\nimport keycode from 'keycode'\nimport { hasSelectedText } from '../../shared/helpers'\nimport { TableTrProps } from './TableTr'\n\nimport TableAccordionContent, { TrContext } from './TableAccordionContent'\nimport type { TableAccordionContentProps } from './TableAccordionContent'\n\nexport function useTableAccordion({\n children,\n className,\n props,\n expanded,\n disabled,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n}) {\n const tableContext = React.useContext(TableContext)\n\n const [trIsOpen, setOpen] = React.useState(() => {\n if (typeof expanded === 'boolean') {\n return expanded\n } else if (typeof location !== 'undefined') {\n const id = props?.id\n if (id && '#' + id === location.hash) {\n return true\n }\n }\n\n return false\n })\n const [trIsHover, setHover] = React.useState(false)\n const [trHadClick, setHadClick] = React.useState(false)\n\n let content = React.Children.toArray(children)\n\n if (!tableContext?.allProps?.accordion) {\n return null\n }\n\n /**\n * Handle Accordion Content\n */\n const accordionContent = content.find((element: React.ReactElement) => {\n return element.type === TableAccordionContent\n }) as React.ReactElement<TableAccordionContentProps>\n const hasAccordionContent = React.isValidElement(accordionContent)\n const countTds = hasAccordionContent\n ? children.filter((element: React.ReactElement) => {\n return element.type === Td // TODO: We may need to include this in future --> || component.type === Td.MainCell\n }).length + 1 // +1 because we push the TableAccordionToggleButton\n : null\n\n const trParams =\n !disabled && hasAccordionContent\n ? {\n onClick: toggleOpenTr,\n onMouseEnter: onMouseEnterHandler,\n onMouseLeave: onMouseLeaveHandler,\n onKeyDown: onKeydownHandler,\n }\n : {}\n\n if (hasAccordionContent) {\n // Remove the AccordionContent, and use it outside of the tr\n content = content.filter((element) => {\n const hasContent =\n (element as React.ReactElement<TableTrProps>).type ===\n TableAccordionContent\n return !hasContent\n })\n\n const tdElem = <TableTdAccordionIcon key=\"td-icon\" />\n\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n content.push(tdElem)\n } else {\n content.unshift(tdElem)\n }\n } else if (tableContext?.allProps?.accordion) {\n const isTh = content.some((element) => {\n return (element as React.ReactElement<TableTrProps>).type === Th\n })\n\n if (isTh) {\n const thElem = <TableThAccordionIcon key=\"th-icon\" />\n\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n content.push(thElem)\n } else {\n content.unshift(thElem)\n }\n }\n }\n\n return (\n <TrContext.Provider\n value={{\n toggleOpenTr,\n trIsOpen,\n noAnimation,\n countTds,\n hasAccordionContent,\n onOpened,\n onClosed,\n }}\n >\n <tr\n tabIndex={accordionContent && !disabled ? 0 : undefined}\n className={classnames(\n className,\n hasAccordionContent && 'dnb-table__tr--has-accordion-content',\n trIsOpen && 'dnb-table__tr--expanded',\n disabled && 'dnb-table__tr--disabled',\n noAnimation && 'dnb-table__tr--no-animation',\n trIsHover && trHadClick && 'dnb-table__tr--hover'\n )}\n {...trParams}\n {...props}\n >\n {content}\n </tr>\n {accordionContent}\n </TrContext.Provider>\n )\n\n function onKeydownHandler(event: KeyboardEvent) {\n switch (keycode(event)) {\n case 'space':\n case 'enter':\n {\n const target = event.target as HTMLElement\n if (\n document.activeElement !== target ||\n target.tagName === 'TR'\n ) {\n setOpen(!trIsOpen)\n event.preventDefault()\n }\n }\n break\n }\n }\n function onMouseEnterHandler() {\n setHover(true)\n }\n function onMouseLeaveHandler() {\n setHover(false)\n setHadClick(false)\n }\n function toggleOpenTr(event: MouseEvent) {\n const target = event.target as HTMLElement\n if (\n /**\n * Interactive elements to set activeElement on mouseDown,\n * we we can check agains it.\n */\n document.activeElement !== target &&\n /**\n * Safari on macOS needs this extra check:\n *\n * > For example, on macOS systems, elements that aren't text input elements are not typically focusable by default.\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement\n */\n target.tagName !== 'INPUT' &&\n /**\n * Let the user select text,\n * without triggering the accrodion.\n */\n !hasSelectedText()\n ) {\n setOpen(!trIsOpen)\n setHadClick(true)\n\n onClick?.(event)\n }\n }\n}\n\nexport function TableAccordionToggleButton() {\n const trContext = React.useContext(TrContext)\n const allProps = React.useContext(TableContext)?.allProps\n const iconSize =\n allProps.size === 'medium' || allProps.size === 'small'\n ? 'basis'\n : 'medium'\n\n return (\n <span className=\"dnb-table__toggle-button\">\n <IconPrimary icon=\"chevron_down\" size={iconSize} />\n <Button\n className=\"dnb-sr-only\"\n tabIndex={-1}\n aria-label={allProps?.accordionToggleButtonSR}\n aria-expanded={Boolean(trContext?.trIsOpen)}\n on_click={trContext?.toggleOpenTr}\n />\n </span>\n )\n}\n\nfunction TableThAccordionIcon() {\n const tableContext = React.useContext(TableContext)\n return (\n <Th aria-hidden className=\"dnb-table__th__accordion-icon\">\n <div>{tableContext?.allProps?.accordionToggleButtonSR}</div>\n </Th>\n )\n}\n\nfunction TableTdAccordionIcon() {\n return (\n <Td className=\"dnb-table__td__accordion-icon\">\n <TableAccordionToggleButton />\n </Td>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TableAccordion.js","names":["React","classnames","Button","IconPrimary","Th","Td","TableContext","keycode","hasSelectedText","TableAccordionContent","TrContext","useTableAccordion","children","className","props","expanded","disabled","noAnimation","onClick","onOpened","onClosed","_tableContext$allProp","_tableContext$allProp2","tableContext","useContext","trIsOpen","setOpen","useState","location","id","hash","trIsHover","setHover","trHadClick","setHadClick","content","Children","toArray","allProps","accordion","accordionContent","find","element","type","hasAccordionContent","isValidElement","countTds","filter","length","trParams","toggleOpenTr","onMouseEnter","onMouseEnterHandler","onMouseLeave","onMouseLeaveHandler","onKeyDown","onKeydownHandler","hasContent","tdElem","_TableTdAccordionIcon","createElement","TableTdAccordionIcon","key","accordionChevronPlacement","push","unshift","isTh","some","thElem","_TableThAccordionIcon","TableThAccordionIcon","Provider","value","_extends","tabIndex","undefined","event","target","document","activeElement","tagName","preventDefault","TableAccordionToggleButton","_React$useContext","trContext","iconSize","size","icon","accordionToggleButtonSR","Boolean","on_click","_tableContext$allProp3","_Td"],"sources":["../../../../src/components/table/TableAccordion.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport Button from '../button/Button'\nimport IconPrimary from '../icon/IconPrimary'\nimport Th from './TableTh'\nimport Td from './TableTd'\nimport TableContext from './TableContext'\nimport keycode from 'keycode'\nimport { hasSelectedText } from '../../shared/helpers'\nimport { TableTrProps } from './TableTr'\n\nimport TableAccordionContent, { TrContext } from './TableAccordionContent'\nimport type { TableAccordionContentProps } from './TableAccordionContent'\n\nexport function useTableAccordion({\n children,\n className,\n props,\n expanded,\n disabled,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n}) {\n const tableContext = React.useContext(TableContext)\n\n const [trIsOpen, setOpen] = React.useState(() => {\n if (typeof expanded === 'boolean') {\n return expanded\n } else if (typeof location !== 'undefined') {\n const id = props?.id\n if (id && '#' + id === location.hash) {\n return true\n }\n }\n\n return false\n })\n const [trIsHover, setHover] = React.useState(false)\n const [trHadClick, setHadClick] = React.useState(false)\n\n let content = React.Children.toArray(children)\n\n if (!tableContext?.allProps?.accordion) {\n return null\n }\n\n /**\n * Handle Accordion Content\n */\n const accordionContent = content.find((element: React.ReactElement) => {\n return element.type === TableAccordionContent\n }) as React.ReactElement<TableAccordionContentProps>\n const hasAccordionContent = React.isValidElement(accordionContent)\n const countTds = hasAccordionContent\n ? children.filter((element: React.ReactElement) => {\n return element.type === Td // TODO: We may need to include this in future --> || component.type === Td.MainCell\n }).length + 1 // +1 because we push the TableAccordionToggleButton\n : null\n\n const trParams =\n !disabled && hasAccordionContent\n ? {\n onClick: toggleOpenTr,\n onMouseEnter: onMouseEnterHandler,\n onMouseLeave: onMouseLeaveHandler,\n onKeyDown: onKeydownHandler,\n }\n : {}\n\n if (hasAccordionContent) {\n // Remove the AccordionContent, and use it outside of the tr\n content = content.filter((element) => {\n const hasContent =\n (element as React.ReactElement<TableTrProps>).type ===\n TableAccordionContent\n return !hasContent\n })\n\n const tdElem = <TableTdAccordionIcon key=\"td-icon\" />\n\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n content.push(tdElem)\n } else {\n content.unshift(tdElem)\n }\n } else if (tableContext?.allProps?.accordion) {\n const isTh = content.some((element) => {\n return (element as React.ReactElement<TableTrProps>).type === Th\n })\n\n if (isTh) {\n const thElem = <TableThAccordionIcon key=\"th-icon\" />\n\n if (tableContext.allProps.accordionChevronPlacement === 'end') {\n content.push(thElem)\n } else {\n content.unshift(thElem)\n }\n }\n }\n\n return (\n <TrContext.Provider\n value={{\n toggleOpenTr,\n trIsOpen,\n noAnimation,\n countTds,\n hasAccordionContent,\n onOpened,\n onClosed,\n }}\n >\n <tr\n tabIndex={accordionContent && !disabled ? 0 : undefined}\n className={classnames(\n className,\n hasAccordionContent && 'dnb-table__tr--has-accordion-content',\n trIsOpen && 'dnb-table__tr--expanded',\n disabled && 'dnb-table__tr--disabled',\n noAnimation && 'dnb-table__tr--no-animation',\n trIsHover && trHadClick && 'dnb-table__tr--hover'\n )}\n {...trParams}\n {...props}\n >\n {content}\n </tr>\n {accordionContent}\n </TrContext.Provider>\n )\n\n function onKeydownHandler(event: KeyboardEvent) {\n switch (keycode(event)) {\n case 'space':\n case 'enter':\n {\n const target = event.target as HTMLElement\n if (\n document.activeElement !== target ||\n target.tagName === 'TR'\n ) {\n setOpen(!trIsOpen)\n event.preventDefault()\n }\n }\n break\n }\n }\n function onMouseEnterHandler() {\n setHover(true)\n }\n function onMouseLeaveHandler() {\n setHover(false)\n setHadClick(false)\n }\n function toggleOpenTr(event: MouseEvent) {\n const target = event.target as HTMLElement\n if (\n /**\n * Interactive elements to set activeElement on mouseDown,\n * we we can check against it.\n */\n document.activeElement !== target &&\n /**\n * Safari on macOS needs this extra check:\n *\n * > For example, on macOS systems, elements that aren't text input elements are not typically focusable by default.\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement\n */\n target.tagName !== 'INPUT' &&\n /**\n * Let the user select text,\n * without triggering the accordion.\n */\n !hasSelectedText()\n ) {\n setOpen(!trIsOpen)\n setHadClick(true)\n\n onClick?.(event)\n }\n }\n}\n\nexport function TableAccordionToggleButton() {\n const trContext = React.useContext(TrContext)\n const allProps = React.useContext(TableContext)?.allProps\n const iconSize =\n allProps.size === 'medium' || allProps.size === 'small'\n ? 'basis'\n : 'medium'\n\n return (\n <span className=\"dnb-table__toggle-button\">\n <IconPrimary icon=\"chevron_down\" size={iconSize} />\n <Button\n className=\"dnb-sr-only\"\n tabIndex={-1}\n aria-label={allProps?.accordionToggleButtonSR}\n aria-expanded={Boolean(trContext?.trIsOpen)}\n on_click={trContext?.toggleOpenTr}\n />\n </span>\n )\n}\n\nfunction TableThAccordionIcon() {\n const tableContext = React.useContext(TableContext)\n return (\n <Th aria-hidden className=\"dnb-table__th__accordion-icon\">\n <div>{tableContext?.allProps?.accordionToggleButtonSR}</div>\n </Th>\n )\n}\n\nfunction TableTdAccordionIcon() {\n return (\n <Td className=\"dnb-table__td__accordion-icon\">\n <TableAccordionToggleButton />\n </Td>\n )\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableTr.js","names":["React","classnames","useTableAccordion","TableContext","Tr","componentProps","variant","noWrap","expanded","disabled","noAnimation","onClick","onOpened","onClosed","children","className","_className","props","_objectWithoutProperties","_excluded","currentVariant","useHandleTrVariant","accordionTr","createElement","_extends","role","tableContext","useContext","countRef","trCountRef","current","increment","count","setCount","useState","window","useEffect","rerenderAlias","useHandleOddEven","useRef","setRerenderAlias","isMounted","forceRerender"],"sources":["../../../../src/components/table/TableTr.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { useTableAccordion } from './TableAccordion'\nimport { TableTdProps } from './TableTd'\nimport TableContext from './TableContext'\n\nexport type TableTrProps = {\n /**\n * The variant of the tr\n */\n variant?: 'even' | 'odd'\n\n /**\n * If set to true, the inherited header text will not wrap to new lines\n * Default: false\n */\n noWrap?: boolean\n\n /**\n * Set true to render the tr initially as expanded\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n * Default: false\n */\n expanded?: boolean\n\n /**\n * Set true to disable the tr to be accessible as an interactive element\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n * Default: false\n */\n disabled?: boolean\n\n /**\n * Set to true to skip animation\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n * Default: false\n */\n noAnimation?: boolean\n\n /**\n * Will emit when user clicks/expands the table row\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n */\n onClick?: (event?: React.SyntheticEvent) => void\n\n /**\n * Will emit when table row is expanded\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n */\n onOpened?: (event?: React.SyntheticEvent) => void\n\n /**\n * Will emit when table row is closed (after it was open)\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n */\n onClosed?: (event?: React.SyntheticEvent) => void\n\n /**\n * The content of the component.\n */\n children:\n | React.ReactElement<TableTdProps>\n | Array<React.ReactElement<TableTdProps>>\n}\n\nexport default function Tr(\n componentProps: TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n) {\n const {\n variant,\n noWrap,\n expanded,\n disabled,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n children,\n className: _className,\n ...props\n } = componentProps\n\n const { currentVariant } = useHandleTrVariant({ variant })\n\n const className = classnames(\n 'dnb-table__tr',\n currentVariant && `dnb-table__tr--${currentVariant}`,\n noWrap && 'dnb-table--no-wrap',\n _className\n )\n\n const accordionTr = useTableAccordion({\n className,\n children,\n props,\n expanded,\n disabled,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n })\n\n if (accordionTr) {\n return accordionTr\n }\n\n return (\n <tr role=\"row\" className={className} {...props}>\n {children}\n </tr>\n )\n}\n\nfunction useHandleTrVariant({ variant }) {\n const tableContext = React.useContext(TableContext)\n\n /**\n * Handle odd/even\n */\n const countRef = tableContext?.trCountRef.current\n const increment = () => {\n if (typeof countRef === 'undefined') {\n return 0\n }\n if (\n !variant ||\n (variant === 'even' && countRef.count % 2 === 1) ||\n (variant === 'odd' && countRef.count % 2 === 0)\n ) {\n countRef.count++\n }\n\n return countRef.count\n }\n\n const [count, setCount] = React.useState(() => {\n // SSR Support\n if (typeof window === 'undefined') {\n return increment()\n }\n })\n\n // StrictMode support\n React.useEffect(() => {\n // SSR will not execute useEffect\n setCount(increment())\n }, [tableContext?.rerenderAlias]) // eslint-disable-line react-hooks/exhaustive-deps\n\n /**\n * Find out the current odd/even when \"accordionContent\" is used.\n * Because we have now an additional \"tr\" element.\n * Then the CSS can't figure out the correct nth element (nth-of-type)\n * and we need to set it manually (nth-child and nth-of-type do not respect classes, so we can't ignore this one).\n */\n let currentVariant = variant\n if (!currentVariant) {\n currentVariant = count % 2 ? 'odd' : 'even'\n }\n\n return {\n currentVariant,\n }\n}\n\n/**\n * Handle odd/even on re-render and React.StrictMode\n */\nexport function useHandleOddEven({ children }) {\n // Create this ref in order to \"auto\" set even/odd class in tr elements\n const trCountRef = React.useRef({ count: 0 })\n\n // When the alias changes, all tr's will rerender and get a new even/odd color\n // This is usefull, when one tr gets removed\n const [rerenderAlias, setRerenderAlias] = React.useState({}) // eslint-disable-line no-unused-vars\n\n const isMounted = React.useRef(false)\n React.useEffect(() => {\n if (isMounted.current) {\n forceRerender()\n }\n isMounted.current = true\n }, [children]) // eslint-disable-line react-hooks/exhaustive-deps\n\n return { trCountRef, rerenderAlias, setRerenderAlias }\n\n function forceRerender() {\n trCountRef.current.count = 0\n setRerenderAlias({})\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TableTr.js","names":["React","classnames","useTableAccordion","TableContext","Tr","componentProps","variant","noWrap","expanded","disabled","noAnimation","onClick","onOpened","onClosed","children","className","_className","props","_objectWithoutProperties","_excluded","currentVariant","useHandleTrVariant","accordionTr","createElement","_extends","role","tableContext","useContext","countRef","trCountRef","current","increment","count","setCount","useState","window","useEffect","rerenderAlias","useHandleOddEven","useRef","setRerenderAlias","isMounted","forceRerender"],"sources":["../../../../src/components/table/TableTr.tsx"],"sourcesContent":["import React from 'react'\nimport classnames from 'classnames'\nimport { useTableAccordion } from './TableAccordion'\nimport { TableTdProps } from './TableTd'\nimport TableContext from './TableContext'\n\nexport type TableTrProps = {\n /**\n * The variant of the tr\n */\n variant?: 'even' | 'odd'\n\n /**\n * If set to true, the inherited header text will not wrap to new lines\n * Default: false\n */\n noWrap?: boolean\n\n /**\n * Set true to render the tr initially as expanded\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n * Default: false\n */\n expanded?: boolean\n\n /**\n * Set true to disable the tr to be accessible as an interactive element\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n * Default: false\n */\n disabled?: boolean\n\n /**\n * Set to true to skip animation\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n * Default: false\n */\n noAnimation?: boolean\n\n /**\n * Will emit when user clicks/expands the table row\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n */\n onClick?: (event?: React.SyntheticEvent) => void\n\n /**\n * Will emit when table row is expanded\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n */\n onOpened?: (event?: React.SyntheticEvent) => void\n\n /**\n * Will emit when table row is closed (after it was open)\n * Is part of the accordion feature and needs to be enabled with `accordion` prop in main Table\n */\n onClosed?: (event?: React.SyntheticEvent) => void\n\n /**\n * The content of the component.\n */\n children:\n | React.ReactElement<TableTdProps>\n | Array<React.ReactElement<TableTdProps>>\n}\n\nexport default function Tr(\n componentProps: TableTrProps &\n React.TableHTMLAttributes<HTMLTableRowElement>\n) {\n const {\n variant,\n noWrap,\n expanded,\n disabled,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n children,\n className: _className,\n ...props\n } = componentProps\n\n const { currentVariant } = useHandleTrVariant({ variant })\n\n const className = classnames(\n 'dnb-table__tr',\n currentVariant && `dnb-table__tr--${currentVariant}`,\n noWrap && 'dnb-table--no-wrap',\n _className\n )\n\n const accordionTr = useTableAccordion({\n className,\n children,\n props,\n expanded,\n disabled,\n noAnimation,\n onClick,\n onOpened,\n onClosed,\n })\n\n if (accordionTr) {\n return accordionTr\n }\n\n return (\n <tr role=\"row\" className={className} {...props}>\n {children}\n </tr>\n )\n}\n\nfunction useHandleTrVariant({ variant }) {\n const tableContext = React.useContext(TableContext)\n\n /**\n * Handle odd/even\n */\n const countRef = tableContext?.trCountRef.current\n const increment = () => {\n if (typeof countRef === 'undefined') {\n return 0\n }\n if (\n !variant ||\n (variant === 'even' && countRef.count % 2 === 1) ||\n (variant === 'odd' && countRef.count % 2 === 0)\n ) {\n countRef.count++\n }\n\n return countRef.count\n }\n\n const [count, setCount] = React.useState(() => {\n // SSR Support\n if (typeof window === 'undefined') {\n return increment()\n }\n })\n\n // StrictMode support\n React.useEffect(() => {\n // SSR will not execute useEffect\n setCount(increment())\n }, [tableContext?.rerenderAlias]) // eslint-disable-line react-hooks/exhaustive-deps\n\n /**\n * Find out the current odd/even when \"accordionContent\" is used.\n * Because we have now an additional \"tr\" element.\n * Then the CSS can't figure out the correct nth element (nth-of-type)\n * and we need to set it manually (nth-child and nth-of-type do not respect classes, so we can't ignore this one).\n */\n let currentVariant = variant\n if (!currentVariant) {\n currentVariant = count % 2 ? 'odd' : 'even'\n }\n\n return {\n currentVariant,\n }\n}\n\n/**\n * Handle odd/even on re-render and React.StrictMode\n */\nexport function useHandleOddEven({ children }) {\n // Create this ref in order to \"auto\" set even/odd class in tr elements\n const trCountRef = React.useRef({ count: 0 })\n\n // When the alias changes, all tr's will rerender and get a new even/odd color\n // This is useful, when one tr gets removed\n const [rerenderAlias, setRerenderAlias] = React.useState({}) // eslint-disable-line no-unused-vars\n\n const isMounted = React.useRef(false)\n React.useEffect(() => {\n if (isMounted.current) {\n forceRerender()\n }\n isMounted.current = true\n }, [children]) // eslint-disable-line react-hooks/exhaustive-deps\n\n return { trCountRef, rerenderAlias, setRerenderAlias }\n\n function forceRerender() {\n trCountRef.current.count = 0\n setRerenderAlias({})\n }\n}\n"],"mappings":"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"}
@@ -59,34 +59,40 @@ export default class Tabs extends React.PureComponent {
59
59
  return state;
60
60
  }
61
61
  static getData(props) {
62
+ const addReactElement = (list, reactElem, reactElemIndex) => {
63
+ if (reactElem.props && reactElem.props.displayName === 'CustomContent') {
64
+ const dataProps = props.tabs && Array.isArray(props.tabs) && props.tabs[reactElemIndex] || {};
65
+ const componentProps = _objectSpread({}, reactElem.props);
66
+ if (componentProps.title === null) {
67
+ delete componentProps.title;
68
+ }
69
+ const _dataProps$componentP = _objectSpread(_objectSpread(_objectSpread({}, dataProps), componentProps), {
70
+ children: null
71
+ }),
72
+ {
73
+ title,
74
+ key: _key,
75
+ hash
76
+ } = _dataProps$componentP,
77
+ rest = _objectWithoutProperties(_dataProps$componentP, _excluded);
78
+ list.push(_objectSpread({
79
+ title,
80
+ key: (!_key && hash ? hash : _key) || slugify(title),
81
+ content: reactElem
82
+ }, rest));
83
+ }
84
+ };
62
85
  let res = [];
63
86
  const data = !props.data && props.children ? props.children : props.data;
64
87
  if (Array.isArray(props.children) && (typeof props.children[0] === 'function' || React.isValidElement(props.children[0]))) {
65
- res = props.children.reduce((acc, content, i) => {
66
- if (content.props && content.props.displayName === 'CustomContent') {
67
- const dataProps = props.tabs && Array.isArray(props.tabs) && props.tabs[i] || {};
68
- const componentProps = _objectSpread({}, content.props);
69
- if (componentProps.title === null) {
70
- delete componentProps.title;
71
- }
72
- const _dataProps$componentP = _objectSpread(_objectSpread(_objectSpread({}, dataProps), componentProps), {
73
- children: null
74
- }),
75
- {
76
- title,
77
- key: _key,
78
- hash
79
- } = _dataProps$componentP,
80
- rest = _objectWithoutProperties(_dataProps$componentP, _excluded);
81
- acc.push(_objectSpread({
82
- title,
83
- key: (!_key && hash ? hash : _key) || slugify(title),
84
- content
85
- }, rest));
86
- }
87
- return acc;
88
+ res = props.children.reduce((list, reactElem, i) => {
89
+ addReactElement(list, reactElem, i);
90
+ return list;
88
91
  }, []);
89
92
  }
93
+ if (!Array.isArray(props.children) && (typeof props.children === 'function' || React.isValidElement(props.children))) {
94
+ addReactElement(res, props.children);
95
+ }
90
96
  if (!(res && res.length > 0)) {
91
97
  if (props.data && Array.isArray(data)) {
92
98
  res = data;