@zohodesk/components 1.0.0-temp-71 → 1.0.0-temp-72

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 (631) hide show
  1. package/README.md +1071 -1071
  2. package/assets/Appearance/dark/mode/contrast/darkContrast.module.css +343 -0
  3. package/assets/Appearance/dark/themes/blue/contrast/blueDarkCTAThemeContrast.module.css +34 -0
  4. package/assets/Appearance/dark/themes/green/contrast/greenDarkCTAThemeContrast.module.css +34 -0
  5. package/assets/Appearance/dark/themes/orange/contrast/orangeDarkCTAThemeContrast.module.css +34 -0
  6. package/assets/Appearance/dark/themes/red/contrast/redDarkCTAThemeContrast.module.css +34 -0
  7. package/assets/Appearance/dark/themes/yellow/contrast/yellowDarkCTAThemeContrast.module.css +34 -0
  8. package/assets/Appearance/default/mode/contrast/defaultContrast.module.css +343 -0
  9. package/assets/Appearance/default/themes/blue/blueDefaultCTATheme.module.css +1 -1
  10. package/assets/Appearance/default/themes/blue/contrast/blueDefaultCTAThemeContrast.module.css +34 -0
  11. package/assets/Appearance/default/themes/green/contrast/greenDefaultCTAThemeContrast.module.css +34 -0
  12. package/assets/Appearance/default/themes/green/greenDefaultCTATheme.module.css +1 -1
  13. package/assets/Appearance/default/themes/orange/contrast/orangeDefaultCTAThemeContrast.module.css +34 -0
  14. package/assets/Appearance/default/themes/orange/orangeDefaultCTATheme.module.css +1 -1
  15. package/assets/Appearance/default/themes/red/contrast/redDefaultCTAThemeContrast.module.css +34 -0
  16. package/assets/Appearance/default/themes/red/redDefaultCTATheme.module.css +1 -1
  17. package/assets/Appearance/default/themes/yellow/contrast/yellowDefaultCTAThemeContrast.module.css +34 -0
  18. package/assets/Appearance/default/themes/yellow/yellowDefaultCTATheme.module.css +1 -1
  19. package/assets/Appearance/pureDark/mode/contrast/pureDarkContrast.module.css +343 -0
  20. package/assets/Appearance/pureDark/themes/blue/contrast/bluePureDarkCTAThemeContrast.module.css +34 -0
  21. package/assets/Appearance/pureDark/themes/green/contrast/greenPureDarkCTAThemeContrast.module.css +34 -0
  22. package/assets/Appearance/pureDark/themes/orange/contrast/orangePureDarkCTAThemeContrast.module.css +34 -0
  23. package/assets/Appearance/pureDark/themes/red/contrast/redPureDarkCTAThemeContrast.module.css +34 -0
  24. package/assets/Appearance/pureDark/themes/yellow/contrast/yellowPureDarkCTAThemeContrast.module.css +34 -0
  25. package/docs/external/active-line.js +72 -72
  26. package/docs/external/autorefresh.js +47 -47
  27. package/docs/external/codemirror.js +9681 -9681
  28. package/docs/external/css/hopscotch.css +576 -576
  29. package/docs/external/css/styleGuide.css +1100 -1100
  30. package/docs/external/css.js +466 -466
  31. package/docs/external/designTokens.js +1 -1
  32. package/docs/external/foldcode.js +151 -151
  33. package/docs/external/format.js +129 -129
  34. package/docs/external/htmlmixed.js +84 -84
  35. package/docs/external/index.html +127 -127
  36. package/docs/external/javascript.js +422 -422
  37. package/docs/external/jsx.js +147 -147
  38. package/docs/external/matchbrackets.js +145 -145
  39. package/docs/external/xml.js +322 -322
  40. package/docs/package.json +41 -41
  41. package/docs/src/index.js +1311 -1311
  42. package/es/Accordion/Accordion.js +4 -20
  43. package/es/Accordion/AccordionItem.js +4 -19
  44. package/es/Accordion/props/defaultProps.js +8 -0
  45. package/es/Accordion/props/propTypes.js +30 -0
  46. package/es/Animation/Animation.js +4 -25
  47. package/es/Animation/props/defaultProps.js +7 -0
  48. package/es/Animation/props/propTypes.js +12 -0
  49. package/es/AppContainer/AppContainer.js +5 -24
  50. package/es/AppContainer/AppContainer.module.css +18 -18
  51. package/es/AppContainer/props/defaultProps.js +8 -0
  52. package/es/AppContainer/props/propTypes.js +15 -0
  53. package/es/Avatar/Avatar.js +14 -54
  54. package/es/Avatar/Avatar.module.css +117 -115
  55. package/es/Avatar/__tests__/__snapshots__/Avatar.spec.js.snap +288 -288
  56. package/es/Avatar/props/defaultProps.js +13 -0
  57. package/es/Avatar/props/propTypes.js +22 -0
  58. package/es/AvatarTeam/AvatarTeam.js +12 -44
  59. package/es/AvatarTeam/AvatarTeam.module.css +161 -147
  60. package/es/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +226 -226
  61. package/es/AvatarTeam/docs/AvatarTeam__custom.docs.js +0 -0
  62. package/es/AvatarTeam/docs/AvatarTeam__default.docs.js +0 -0
  63. package/es/AvatarTeam/docs/AvatarTeam__palette.docs.js +0 -0
  64. package/es/AvatarTeam/docs/AvatarTeam__size.docs.js +0 -0
  65. package/es/AvatarTeam/props/defaultProps.js +13 -0
  66. package/es/AvatarTeam/props/propTypes.js +23 -0
  67. package/es/Button/Button.js +8 -51
  68. package/es/Button/Button.module.css +521 -448
  69. package/es/Button/__tests__/__snapshots__/Button.spec.js.snap +191 -191
  70. package/es/Button/docs/Button__custom.docs.js +0 -0
  71. package/es/Button/docs/Button__default.docs.js +0 -0
  72. package/es/Button/props/defaultProps.js +15 -0
  73. package/es/Button/props/propTypes.js +22 -0
  74. package/es/Buttongroup/Buttongroup.js +5 -12
  75. package/es/Buttongroup/Buttongroup.module.css +89 -60
  76. package/es/Buttongroup/__test__/__snapshots__/Buttongroup.spec.js.snap +146 -146
  77. package/es/Buttongroup/props/defaultProps.js +4 -0
  78. package/es/Buttongroup/props/propTypes.js +7 -0
  79. package/es/Card/Card.js +16 -64
  80. package/es/Card/Card.module.css +20 -20
  81. package/es/Card/docs/Card__Custom.docs.js +0 -0
  82. package/es/Card/docs/Card__Default.docs.js +0 -0
  83. package/es/Card/docs/Card__Scroll.docs.js +0 -0
  84. package/es/Card/props/defaultProps.js +15 -0
  85. package/es/Card/props/propTypes.js +43 -0
  86. package/es/CheckBox/CheckBox.js +5 -60
  87. package/es/CheckBox/CheckBox.module.css +157 -147
  88. package/es/CheckBox/docs/CheckBox__custom.docs.js +0 -0
  89. package/es/CheckBox/docs/CheckBox__default.docs.js +0 -0
  90. package/es/CheckBox/props/defaultProps.js +18 -0
  91. package/es/CheckBox/props/propTypes.js +41 -0
  92. package/es/DateTime/CalendarView.js +6 -26
  93. package/es/DateTime/DateTime.js +4 -62
  94. package/es/DateTime/DateTime.module.css +187 -160
  95. package/es/DateTime/DateWidget.js +4 -83
  96. package/es/DateTime/DateWidget.module.css +38 -34
  97. package/es/DateTime/YearView.js +4 -12
  98. package/es/DateTime/YearView.module.css +81 -71
  99. package/es/DateTime/common.js +0 -0
  100. package/es/DateTime/docs/DateTime__default.docs.js +0 -0
  101. package/es/DateTime/docs/DateWidget__default.docs.js +0 -0
  102. package/es/DateTime/index.js +0 -0
  103. package/es/DateTime/objectUtils.js +0 -0
  104. package/es/DateTime/props/defaultProps.js +50 -0
  105. package/es/DateTime/props/propTypes.js +130 -0
  106. package/es/DateTime/typeChecker.js +0 -0
  107. package/es/DateTime/validator.js +0 -0
  108. package/es/DropBox/DropBox.js +5 -72
  109. package/es/DropBox/DropBox.module.css +406 -370
  110. package/es/DropBox/DropBoxPositionMapping.json +144 -144
  111. package/es/DropBox/props/defaultProps.js +20 -0
  112. package/es/DropBox/props/propTypes.js +47 -0
  113. package/es/DropDown/DropDown.js +7 -34
  114. package/es/DropDown/DropDown.module.css +5 -5
  115. package/es/DropDown/DropDownHeading.js +4 -19
  116. package/es/DropDown/DropDownHeading.module.css +53 -49
  117. package/es/DropDown/DropDownItem.js +4 -18
  118. package/es/DropDown/DropDownItem.module.css +94 -68
  119. package/es/DropDown/DropDownSearch.js +4 -24
  120. package/es/DropDown/DropDownSearch.module.css +14 -14
  121. package/es/DropDown/DropDownSeparator.js +2 -4
  122. package/es/DropDown/DropDownSeparator.module.css +7 -7
  123. package/es/DropDown/props/defaultProps.js +18 -0
  124. package/es/DropDown/props/propTypes.js +77 -0
  125. package/es/Label/Label.js +6 -26
  126. package/es/Label/Label.module.css +52 -52
  127. package/es/Label/LabelColors.module.css +20 -20
  128. package/es/Label/__tests__/__snapshots__/Label.spec.js.snap +101 -101
  129. package/es/Label/docs/Label__clipped.docs.js +0 -0
  130. package/es/Label/docs/Label__custom.docs.js +0 -0
  131. package/es/Label/docs/Label__palette.docs.js +0 -0
  132. package/es/Label/docs/Label__size.docs.js +0 -0
  133. package/es/Label/docs/Label__type.docs.js +0 -0
  134. package/es/Label/props/defaultProps.js +10 -0
  135. package/es/Label/props/propTypes.js +14 -0
  136. package/es/Layout/Box.js +15 -30
  137. package/es/Layout/Container.js +15 -27
  138. package/es/Layout/Layout.module.css +336 -324
  139. package/es/Layout/docs/Layout__default.docs.js +0 -0
  140. package/es/Layout/docs/Layout__four_Column.docs.js +16 -22
  141. package/es/Layout/props/defaultProps.js +12 -0
  142. package/es/Layout/props/propTypes.js +42 -0
  143. package/es/Layout/utils.js +0 -0
  144. package/es/LightNightMode/Colors.json +496 -496
  145. package/es/ListItem/ListContainer.js +5 -42
  146. package/es/ListItem/ListItem.js +5 -51
  147. package/es/ListItem/ListItem.module.css +209 -173
  148. package/es/ListItem/ListItemWithAvatar.js +5 -57
  149. package/es/ListItem/ListItemWithCheckBox.js +5 -41
  150. package/es/ListItem/ListItemWithIcon.js +5 -48
  151. package/es/ListItem/ListItemWithRadio.js +5 -42
  152. package/es/ListItem/props/defaultProps.js +85 -0
  153. package/es/ListItem/props/propTypes.js +185 -0
  154. package/es/Modal/Modal.js +5 -10
  155. package/es/Modal/props/defaultProps.js +3 -0
  156. package/es/Modal/props/propTypes.js +6 -0
  157. package/es/MultiSelect/AdvancedGroupMultiSelect.js +10 -96
  158. package/es/MultiSelect/AdvancedMultiSelect.js +5 -114
  159. package/es/MultiSelect/EmptyState.js +4 -29
  160. package/es/MultiSelect/MultiSelect.js +9 -118
  161. package/es/MultiSelect/MultiSelect.module.css +205 -188
  162. package/es/MultiSelect/MultiSelectHeader.js +4 -12
  163. package/es/MultiSelect/MultiSelectWithAvatar.js +4 -99
  164. package/es/MultiSelect/SelectedOptions.js +5 -20
  165. package/es/MultiSelect/SelectedOptions.module.css +15 -9
  166. package/es/MultiSelect/Suggestions.js +6 -35
  167. package/es/MultiSelect/__tests__/MultiSelect.spec.js +0 -0
  168. package/es/MultiSelect/props/defaultProps.js +140 -0
  169. package/es/MultiSelect/props/propTypes.js +360 -0
  170. package/es/PopOver/PopOver.js +7 -78
  171. package/es/PopOver/PopOver.module.css +8 -8
  172. package/es/PopOver/props/defaultProps.js +7 -0
  173. package/es/PopOver/props/propTypes.js +53 -0
  174. package/es/Popup/Popup.js +1 -1
  175. package/es/Popup/PositionMapping.json +73 -73
  176. package/es/Provider.js +37 -7
  177. package/es/Radio/Radio.js +4 -46
  178. package/es/Radio/Radio.module.css +112 -104
  179. package/es/Radio/docs/Radio__custom.docs.js +0 -0
  180. package/es/Radio/docs/Radio__default.docs.js +0 -0
  181. package/es/Radio/props/defaultProps.js +14 -0
  182. package/es/Radio/props/propTypes.js +32 -0
  183. package/es/Responsive/CustomResponsive.js +8 -19
  184. package/es/Responsive/ResizeComponent.js +15 -82
  185. package/es/Responsive/ResizeObserver.js +2 -6
  186. package/es/Responsive/Responsive.js +8 -23
  187. package/es/Responsive/docs/Responsive__Custom.docs.js +0 -0
  188. package/es/Responsive/docs/style.module.css +55 -46
  189. package/es/Responsive/props/defaultProps.js +13 -0
  190. package/es/Responsive/props/propTypes.js +25 -0
  191. package/es/ResponsiveDropBox/ResponsiveDropBox.js +5 -12
  192. package/es/ResponsiveDropBox/ResponsiveDropBox.module.css +6 -6
  193. package/es/ResponsiveDropBox/props/defaultProps.js +4 -0
  194. package/es/ResponsiveDropBox/props/propTypes.js +7 -0
  195. package/es/Ribbon/Ribbon.js +4 -25
  196. package/es/Ribbon/Ribbon.module.css +376 -311
  197. package/es/Ribbon/__tests__/__snapshots__/Ribbon.spec.js.snap +163 -163
  198. package/es/Ribbon/docs/Ribbon__custom.docs.js +0 -0
  199. package/es/Ribbon/docs/Ribbon__default.docs.js +0 -0
  200. package/es/Ribbon/props/defaultProps.js +8 -0
  201. package/es/Ribbon/props/propTypes.js +10 -0
  202. package/es/RippleEffect/RippleEffect.js +4 -20
  203. package/es/RippleEffect/RippleEffect.module.css +92 -99
  204. package/es/RippleEffect/props/defaultProps.js +9 -0
  205. package/es/RippleEffect/props/propTypes.js +11 -0
  206. package/es/Select/GroupSelect.js +4 -109
  207. package/es/Select/Select.js +5 -121
  208. package/es/Select/Select.module.css +106 -96
  209. package/es/Select/SelectWithAvatar.js +4 -80
  210. package/es/Select/SelectWithIcon.js +4 -70
  211. package/es/Select/__tests__/Select.spec.js +0 -0
  212. package/es/Select/docs/SelectWithIcon__default.docs.js +0 -0
  213. package/es/Select/docs/Select__default.docs.js +0 -0
  214. package/es/Select/props/defaultProps.js +110 -0
  215. package/es/Select/props/propTypes.js +266 -0
  216. package/es/Stencils/Stencils.js +4 -17
  217. package/es/Stencils/Stencils.module.css +96 -78
  218. package/es/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +49 -49
  219. package/es/Stencils/props/defaultProps.js +6 -0
  220. package/es/Stencils/props/propTypes.js +7 -0
  221. package/es/Switch/Switch.js +5 -38
  222. package/es/Switch/Switch.module.css +110 -110
  223. package/es/Switch/docs/Switch__custom.docs.js +0 -0
  224. package/es/Switch/docs/Switch__default.docs.js +0 -0
  225. package/es/Switch/props/defaultProps.js +10 -0
  226. package/es/Switch/props/propTypes.js +27 -0
  227. package/es/Tab/Tab.js +5 -32
  228. package/es/Tab/Tab.module.css +101 -92
  229. package/es/Tab/TabContent.js +4 -10
  230. package/es/Tab/TabContent.module.css +4 -4
  231. package/es/Tab/TabContentWrapper.js +4 -12
  232. package/es/Tab/TabWrapper.js +5 -26
  233. package/es/Tab/Tabs.js +24 -86
  234. package/es/Tab/Tabs.module.css +141 -107
  235. package/es/Tab/docs/tabdocs.module.css +29 -29
  236. package/es/Tab/props/defaultProps.js +39 -0
  237. package/es/Tab/props/propTypes.js +102 -0
  238. package/es/Tag/Tag.js +12 -55
  239. package/es/Tag/Tag.module.css +254 -232
  240. package/es/Tag/docs/Tag__custom.docs.js +0 -0
  241. package/es/Tag/docs/Tag__default.docs.js +0 -0
  242. package/es/Tag/props/defaultProps.js +13 -0
  243. package/es/Tag/props/propTypes.js +34 -0
  244. package/es/TextBox/TextBox.js +5 -73
  245. package/es/TextBox/TextBox.module.css +157 -161
  246. package/es/TextBox/__tests__/__snapshots__/TextBox.spec.js.snap +127 -127
  247. package/es/TextBox/docs/TextBox__custom.docs.js +0 -0
  248. package/es/TextBox/docs/TextBox__default.docs.js +0 -0
  249. package/es/TextBox/docs/TextBox__variant.docs.js +0 -0
  250. package/es/TextBox/props/defaultProps.js +19 -0
  251. package/es/TextBox/props/propTypes.js +53 -0
  252. package/es/TextBoxIcon/TextBoxIcon.js +5 -71
  253. package/es/TextBoxIcon/TextBoxIcon.module.css +78 -71
  254. package/es/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +334 -334
  255. package/es/TextBoxIcon/docs/TextBoxIcon__custom.docs.js +0 -0
  256. package/es/TextBoxIcon/docs/TextBoxIcon__default.docs.js +0 -0
  257. package/es/TextBoxIcon/props/defaultProps.js +21 -0
  258. package/es/TextBoxIcon/props/propTypes.js +49 -0
  259. package/es/Textarea/Textarea.js +5 -48
  260. package/es/Textarea/Textarea.module.css +139 -140
  261. package/es/Textarea/__tests__/__snapshots__/Textarea.spec.js.snap +97 -97
  262. package/es/Textarea/docs/Textarea__custom.docs.js +0 -0
  263. package/es/Textarea/docs/Textarea__default.docs.js +0 -0
  264. package/es/Textarea/docs/Textarea__disabled.docs.js +0 -0
  265. package/es/Textarea/props/defaultProps.js +16 -0
  266. package/es/Textarea/props/propTypes.js +31 -0
  267. package/es/Tooltip/Tooltip.js +4 -12
  268. package/es/Tooltip/Tooltip.module.css +109 -108
  269. package/es/Tooltip/props/defaultProps.js +4 -0
  270. package/es/Tooltip/props/propTypes.js +8 -0
  271. package/es/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +4 -23
  272. package/es/VelocityAnimation/VelocityAnimation/props/defaultProps.js +7 -0
  273. package/es/VelocityAnimation/VelocityAnimation/props/propTypes.js +12 -0
  274. package/es/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +5 -38
  275. package/es/VelocityAnimation/VelocityAnimationGroup/props/defaultProps.js +15 -0
  276. package/es/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +19 -0
  277. package/es/common/animation.module.css +624 -426
  278. package/es/common/avatarsizes.module.css +44 -44
  279. package/es/common/basic.module.css +33 -33
  280. package/es/common/basicReset.module.css +40 -50
  281. package/es/common/common.module.css +525 -458
  282. package/es/common/customscroll.module.css +89 -93
  283. package/es/common/docStyle.module.css +887 -719
  284. package/es/common/reset.module.css +12 -12
  285. package/es/common/transition.module.css +146 -106
  286. package/es/deprecated/AdvancedMultiSelect.module.css +126 -112
  287. package/es/deprecated/PortalLayer/PortalLayer.js +4 -16
  288. package/es/deprecated/PortalLayer/props/defaultProps.js +5 -0
  289. package/es/deprecated/PortalLayer/props/propTypes.js +11 -0
  290. package/es/index.js +0 -4
  291. package/es/semantic/Button/Button.js +4 -38
  292. package/es/semantic/Button/props/defaultProps.js +12 -0
  293. package/es/semantic/Button/props/propTypes.js +26 -0
  294. package/es/semantic/Button/semanticButton.module.css +9 -9
  295. package/es/utils/Common.js +0 -0
  296. package/es/utils/dropDownUtils.js +0 -0
  297. package/lib/Accordion/Accordion.js +7 -22
  298. package/lib/Accordion/AccordionItem.js +7 -21
  299. package/lib/Accordion/docs/Accordion__Demo.docs.js +2 -2
  300. package/lib/Accordion/props/defaultProps.js +16 -0
  301. package/lib/Accordion/props/propTypes.js +42 -0
  302. package/lib/Animation/Animation.js +7 -27
  303. package/lib/Animation/docs/Animation__default.docs.js +2 -2
  304. package/lib/Animation/docs/Animation__fadeIn.docs.js +2 -2
  305. package/lib/Animation/docs/Animation__scaleIn.docs.js +2 -2
  306. package/lib/Animation/docs/Animation__skewIn.docs.js +2 -2
  307. package/lib/Animation/docs/Animation__slideDown.docs.js +2 -2
  308. package/lib/Animation/docs/Animation__slideLeft.docs.js +2 -2
  309. package/lib/Animation/docs/Animation__zoomIn.docs.js +2 -2
  310. package/lib/Animation/props/defaultProps.js +14 -0
  311. package/lib/Animation/props/propTypes.js +23 -0
  312. package/lib/AppContainer/AppContainer.js +16 -27
  313. package/lib/AppContainer/AppContainer.module.css +18 -18
  314. package/lib/AppContainer/docs/AppContainer__default.docs.js +2 -2
  315. package/lib/AppContainer/props/defaultProps.js +15 -0
  316. package/lib/AppContainer/props/propTypes.js +26 -0
  317. package/lib/Avatar/Avatar.js +17 -56
  318. package/lib/Avatar/Avatar.module.css +117 -117
  319. package/lib/Avatar/__tests__/__snapshots__/Avatar.spec.js.snap +288 -288
  320. package/lib/Avatar/docs/Avatar__custom.docs.js +2 -2
  321. package/lib/Avatar/docs/Avatar__default.docs.js +2 -2
  322. package/lib/Avatar/docs/Avatar__palette.docs.js +2 -2
  323. package/lib/Avatar/docs/Avatar__text.docs.js +2 -2
  324. package/lib/Avatar/props/defaultProps.js +20 -0
  325. package/lib/Avatar/props/propTypes.js +33 -0
  326. package/lib/AvatarTeam/AvatarTeam.js +15 -46
  327. package/lib/AvatarTeam/AvatarTeam.module.css +161 -161
  328. package/lib/AvatarTeam/__tests__/__snapshots__/AvatarTeam.spec.js.snap +226 -226
  329. package/lib/AvatarTeam/docs/AvatarTeam__custom.docs.js +2 -2
  330. package/lib/AvatarTeam/docs/AvatarTeam__default.docs.js +2 -2
  331. package/lib/AvatarTeam/docs/AvatarTeam__palette.docs.js +2 -2
  332. package/lib/AvatarTeam/docs/AvatarTeam__size.docs.js +2 -2
  333. package/lib/AvatarTeam/props/defaultProps.js +20 -0
  334. package/lib/AvatarTeam/props/propTypes.js +34 -0
  335. package/lib/Button/Button.js +11 -54
  336. package/lib/Button/Button.module.css +521 -521
  337. package/lib/Button/__tests__/__snapshots__/Button.spec.js.snap +191 -191
  338. package/lib/Button/docs/Button__custom.docs.js +2 -2
  339. package/lib/Button/docs/Button__default.docs.js +2 -2
  340. package/lib/Button/props/defaultProps.js +24 -0
  341. package/lib/Button/props/propTypes.js +33 -0
  342. package/lib/Buttongroup/Buttongroup.js +8 -14
  343. package/lib/Buttongroup/Buttongroup.module.css +89 -89
  344. package/lib/Buttongroup/__test__/__snapshots__/Buttongroup.spec.js.snap +146 -146
  345. package/lib/Buttongroup/docs/Buttongroup__custom.docs.js +2 -2
  346. package/lib/Buttongroup/docs/Buttongroup__footer.docs.js +2 -2
  347. package/lib/Buttongroup/docs/Buttongroup__header.docs.js +2 -2
  348. package/lib/Buttongroup/props/defaultProps.js +11 -0
  349. package/lib/Buttongroup/props/propTypes.js +18 -0
  350. package/lib/Card/Card.js +19 -66
  351. package/lib/Card/Card.module.css +20 -20
  352. package/lib/Card/docs/Card__Custom.docs.js +2 -2
  353. package/lib/Card/docs/Card__Default.docs.js +2 -2
  354. package/lib/Card/docs/Card__Scroll.docs.js +2 -2
  355. package/lib/Card/props/defaultProps.js +23 -0
  356. package/lib/Card/props/propTypes.js +57 -0
  357. package/lib/CheckBox/CheckBox.js +10 -63
  358. package/lib/CheckBox/CheckBox.module.css +157 -153
  359. package/lib/CheckBox/docs/CheckBox__custom.docs.js +2 -2
  360. package/lib/CheckBox/docs/CheckBox__default.docs.js +2 -2
  361. package/lib/CheckBox/props/defaultProps.js +25 -0
  362. package/lib/CheckBox/props/propTypes.js +52 -0
  363. package/lib/DateTime/CalendarView.js +9 -28
  364. package/lib/DateTime/DateTime.js +55 -84
  365. package/lib/DateTime/DateTime.module.css +187 -187
  366. package/lib/DateTime/DateTimePopupFooter.js +2 -2
  367. package/lib/DateTime/DateTimePopupHeader.js +2 -2
  368. package/lib/DateTime/DateWidget.js +19 -87
  369. package/lib/DateTime/DateWidget.module.css +38 -42
  370. package/lib/DateTime/DaysRow.js +2 -2
  371. package/lib/DateTime/Time.js +2 -2
  372. package/lib/DateTime/YearView.js +7 -14
  373. package/lib/DateTime/YearView.module.css +81 -80
  374. package/lib/DateTime/common.js +0 -0
  375. package/lib/DateTime/docs/DateTime__default.docs.js +2 -2
  376. package/lib/DateTime/docs/DateWidget__default.docs.js +2 -2
  377. package/lib/DateTime/index.js +0 -0
  378. package/lib/DateTime/objectUtils.js +0 -0
  379. package/lib/DateTime/props/defaultProps.js +61 -0
  380. package/lib/DateTime/props/propTypes.js +145 -0
  381. package/lib/DateTime/typeChecker.js +0 -0
  382. package/lib/DateTime/validator.js +0 -0
  383. package/lib/DropBox/DropBox.js +9 -75
  384. package/lib/DropBox/DropBox.module.css +406 -406
  385. package/lib/DropBox/DropBoxPositionMapping.json +144 -144
  386. package/lib/DropBox/docs/DropBox__custom.docs.js +2 -2
  387. package/lib/DropBox/docs/DropBox__customOrder.docs.js +2 -2
  388. package/lib/DropBox/docs/DropBox__fixedPosition.docs.js +2 -2
  389. package/lib/DropBox/docs/DropBox__position.docs.js +2 -2
  390. package/lib/DropBox/docs/DropBox__size.docs.js +2 -2
  391. package/lib/DropBox/props/defaultProps.js +27 -0
  392. package/lib/DropBox/props/propTypes.js +58 -0
  393. package/lib/DropDown/DropDown.js +10 -36
  394. package/lib/DropDown/DropDown.module.css +5 -5
  395. package/lib/DropDown/DropDownHeading.js +7 -21
  396. package/lib/DropDown/DropDownHeading.module.css +53 -53
  397. package/lib/DropDown/DropDownItem.js +7 -20
  398. package/lib/DropDown/DropDownItem.module.css +94 -94
  399. package/lib/DropDown/DropDownSearch.js +7 -25
  400. package/lib/DropDown/DropDownSearch.module.css +14 -14
  401. package/lib/DropDown/DropDownSeparator.js +4 -6
  402. package/lib/DropDown/DropDownSeparator.module.css +7 -7
  403. package/lib/DropDown/docs/DropDownHeading__custom.docs.js +2 -2
  404. package/lib/DropDown/docs/DropDownHeading__default.docs.js +2 -2
  405. package/lib/DropDown/props/defaultProps.js +28 -0
  406. package/lib/DropDown/props/propTypes.js +94 -0
  407. package/lib/Label/Label.js +7 -26
  408. package/lib/Label/Label.module.css +52 -52
  409. package/lib/Label/LabelColors.module.css +20 -20
  410. package/lib/Label/__tests__/__snapshots__/Label.spec.js.snap +101 -101
  411. package/lib/Label/docs/Label__clipped.docs.js +2 -2
  412. package/lib/Label/docs/Label__custom.docs.js +2 -2
  413. package/lib/Label/docs/Label__palette.docs.js +2 -2
  414. package/lib/Label/docs/Label__size.docs.js +2 -2
  415. package/lib/Label/docs/Label__type.docs.js +2 -2
  416. package/lib/Label/props/defaultProps.js +17 -0
  417. package/lib/Label/props/propTypes.js +25 -0
  418. package/lib/Layout/Box.js +18 -32
  419. package/lib/Layout/Container.js +18 -29
  420. package/lib/Layout/Layout.module.css +336 -324
  421. package/lib/Layout/docs/Layout__Hidden.docs.js +2 -2
  422. package/lib/Layout/docs/Layout__default.docs.js +2 -2
  423. package/lib/Layout/docs/Layout__four_Column.docs.js +18 -24
  424. package/lib/Layout/docs/Layout__three_Column.docs.js +2 -2
  425. package/lib/Layout/docs/Layout__two_Column.docs.js +2 -2
  426. package/lib/Layout/props/defaultProps.js +20 -0
  427. package/lib/Layout/props/propTypes.js +54 -0
  428. package/lib/Layout/utils.js +0 -0
  429. package/lib/LightNightMode/Colors.json +497 -398
  430. package/lib/LightNightMode/docs/AlternativeColors.docs.js +25 -3
  431. package/lib/ListItem/ListContainer.js +14 -47
  432. package/lib/ListItem/ListItem.js +10 -55
  433. package/lib/ListItem/ListItem.module.css +209 -210
  434. package/lib/ListItem/ListItemWithAvatar.js +10 -41
  435. package/lib/ListItem/ListItemWithCheckBox.js +10 -45
  436. package/lib/ListItem/ListItemWithIcon.js +10 -52
  437. package/lib/ListItem/ListItemWithRadio.js +10 -46
  438. package/lib/ListItem/docs/ListItemWithAvatar__custom.docs.js +2 -2
  439. package/lib/ListItem/docs/ListItemWithAvatar__default.docs.js +2 -2
  440. package/lib/ListItem/docs/ListItemWithCheckBox__custom.docs.js +2 -2
  441. package/lib/ListItem/docs/ListItemWithCheckBox__default.docs.js +2 -2
  442. package/lib/ListItem/docs/ListItemWithIcon__custom.docs.js +2 -2
  443. package/lib/ListItem/docs/ListItemWithIcon__default.docs.js +2 -2
  444. package/lib/ListItem/docs/ListItemWithRadio__custom.docs.js +2 -2
  445. package/lib/ListItem/docs/ListItemWithRadio__default.docs.js +2 -2
  446. package/lib/ListItem/docs/ListItem__custom.docs.js +2 -2
  447. package/lib/ListItem/docs/ListItem__default.docs.js +2 -2
  448. package/lib/ListItem/props/defaultProps.js +97 -0
  449. package/lib/ListItem/props/propTypes.js +181 -0
  450. package/lib/Modal/Modal.js +8 -12
  451. package/lib/Modal/__docs__/Modal__default.docs.js +2 -2
  452. package/lib/Modal/props/defaultProps.js +10 -0
  453. package/lib/Modal/props/propTypes.js +17 -0
  454. package/lib/MultiSelect/AdvancedGroupMultiSelect.js +125 -179
  455. package/lib/MultiSelect/AdvancedMultiSelect.js +104 -175
  456. package/lib/MultiSelect/EmptyState.js +7 -31
  457. package/lib/MultiSelect/MultiSelect.js +98 -180
  458. package/lib/MultiSelect/MultiSelect.module.css +206 -193
  459. package/lib/MultiSelect/MultiSelectHeader.js +7 -14
  460. package/lib/MultiSelect/MultiSelectWithAvatar.js +85 -154
  461. package/lib/MultiSelect/SelectedOptions.js +8 -22
  462. package/lib/MultiSelect/SelectedOptions.module.css +15 -15
  463. package/lib/MultiSelect/Suggestions.js +9 -37
  464. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +0 -0
  465. package/lib/MultiSelect/docs/AdvancedGroupMultiSelect__default.docs.js +2 -2
  466. package/lib/MultiSelect/docs/AdvancedMultiSelect__default.docs.js +2 -2
  467. package/lib/MultiSelect/docs/MultiSelectWithAvatar__default.docs.js +2 -2
  468. package/lib/MultiSelect/docs/MultiSelect__default.docs.js +2 -2
  469. package/lib/MultiSelect/props/defaultProps.js +156 -0
  470. package/lib/MultiSelect/props/propTypes.js +378 -0
  471. package/lib/PopOver/PopOver.js +21 -84
  472. package/lib/PopOver/PopOver.module.css +8 -8
  473. package/lib/PopOver/docs/PopOver__default.docs.js +2 -2
  474. package/lib/PopOver/props/defaultProps.js +15 -0
  475. package/lib/PopOver/props/propTypes.js +66 -0
  476. package/lib/Popup/Popup.js +3 -3
  477. package/lib/Popup/PositionMapping.json +73 -73
  478. package/lib/Popup/__tests__/Popup.spec.js +2 -2
  479. package/lib/Provider/Config.js +3 -1
  480. package/lib/Provider/docs/Provider_Id__Class.docs.js +2 -2
  481. package/lib/Provider/docs/Provider_Zindex__Class.docs.js +2 -2
  482. package/lib/Provider.js +88 -103
  483. package/lib/Radio/Radio.js +7 -48
  484. package/lib/Radio/Radio.module.css +112 -110
  485. package/lib/Radio/docs/Radio__custom.docs.js +2 -2
  486. package/lib/Radio/docs/Radio__default.docs.js +2 -2
  487. package/lib/Radio/props/defaultProps.js +21 -0
  488. package/lib/Radio/props/propTypes.js +43 -0
  489. package/lib/Responsive/CustomResponsive.js +11 -21
  490. package/lib/Responsive/ResizeComponent.js +2 -2
  491. package/lib/Responsive/Responsive.js +19 -26
  492. package/lib/Responsive/docs/Responsive__Custom.docs.js +2 -2
  493. package/lib/Responsive/docs/Responsive__default.docs.js +2 -2
  494. package/lib/Responsive/docs/style.module.css +55 -55
  495. package/lib/Responsive/props/defaultProps.js +23 -0
  496. package/lib/Responsive/props/propTypes.js +39 -0
  497. package/lib/Responsive/sizeObservers.js +3 -3
  498. package/lib/ResponsiveDropBox/ResponsiveDropBox.js +124 -0
  499. package/lib/ResponsiveDropBox/ResponsiveDropBox.module.css +6 -0
  500. package/lib/ResponsiveDropBox/props/defaultProps.js +11 -0
  501. package/lib/ResponsiveDropBox/props/propTypes.js +18 -0
  502. package/lib/Ribbon/Ribbon.js +7 -27
  503. package/lib/Ribbon/Ribbon.module.css +376 -376
  504. package/lib/Ribbon/__tests__/__snapshots__/Ribbon.spec.js.snap +163 -163
  505. package/lib/Ribbon/docs/Ribbon__custom.docs.js +2 -2
  506. package/lib/Ribbon/docs/Ribbon__default.docs.js +2 -2
  507. package/lib/Ribbon/props/defaultProps.js +15 -0
  508. package/lib/Ribbon/props/propTypes.js +21 -0
  509. package/lib/RippleEffect/RippleEffect.js +5 -20
  510. package/lib/RippleEffect/RippleEffect.module.css +92 -70
  511. package/lib/RippleEffect/docs/RippleEffect__default.docs.js +2 -2
  512. package/lib/RippleEffect/props/defaultProps.js +16 -0
  513. package/lib/RippleEffect/props/propTypes.js +22 -0
  514. package/lib/Select/GroupSelect.js +107 -188
  515. package/lib/Select/Select.js +116 -199
  516. package/lib/Select/Select.module.css +106 -100
  517. package/lib/Select/SelectWithAvatar.js +103 -153
  518. package/lib/Select/SelectWithIcon.js +104 -136
  519. package/lib/Select/__tests__/Select.spec.js +0 -0
  520. package/lib/Select/docs/GroupSelect__default.docs.js +2 -2
  521. package/lib/Select/docs/SelectWithAvatar__default.docs.js +2 -2
  522. package/lib/Select/docs/SelectWithIcon__default.docs.js +2 -2
  523. package/lib/Select/docs/Select__default.docs.js +2 -2
  524. package/lib/Select/props/defaultProps.js +113 -0
  525. package/lib/Select/props/propTypes.js +280 -0
  526. package/lib/Stencils/Stencils.js +7 -19
  527. package/lib/Stencils/Stencils.module.css +96 -96
  528. package/lib/Stencils/__tests__/__snapshots__/Stencils.spec.js.snap +49 -49
  529. package/lib/Stencils/docs/Stencils__custom.docs.js +2 -2
  530. package/lib/Stencils/docs/Stencils__default.docs.js +2 -2
  531. package/lib/Stencils/props/defaultProps.js +13 -0
  532. package/lib/Stencils/props/propTypes.js +18 -0
  533. package/lib/Switch/Switch.js +8 -40
  534. package/lib/Switch/Switch.module.css +110 -109
  535. package/lib/Switch/docs/Switch__custom.docs.js +2 -2
  536. package/lib/Switch/docs/Switch__default.docs.js +2 -2
  537. package/lib/Switch/props/defaultProps.js +17 -0
  538. package/lib/Switch/props/propTypes.js +38 -0
  539. package/lib/Tab/Tab.js +6 -32
  540. package/lib/Tab/Tab.module.css +101 -101
  541. package/lib/Tab/TabContent.js +5 -10
  542. package/lib/Tab/TabContent.module.css +4 -4
  543. package/lib/Tab/TabContentWrapper.js +5 -12
  544. package/lib/Tab/TabWrapper.js +6 -28
  545. package/lib/Tab/Tabs.js +94 -128
  546. package/lib/Tab/Tabs.module.css +141 -140
  547. package/lib/Tab/docs/Tab__default.docs.js +2 -2
  548. package/lib/Tab/docs/tabdocs.module.css +29 -29
  549. package/lib/Tab/props/defaultProps.js +50 -0
  550. package/lib/Tab/props/propTypes.js +117 -0
  551. package/lib/Tag/Tag.js +15 -57
  552. package/lib/Tag/Tag.module.css +254 -250
  553. package/lib/Tag/docs/Tag__custom.docs.js +2 -2
  554. package/lib/Tag/docs/Tag__default.docs.js +2 -2
  555. package/lib/Tag/props/defaultProps.js +20 -0
  556. package/lib/Tag/props/propTypes.js +45 -0
  557. package/lib/TextBox/TextBox.js +8 -73
  558. package/lib/TextBox/TextBox.module.css +157 -157
  559. package/lib/TextBox/__tests__/__snapshots__/TextBox.spec.js.snap +127 -127
  560. package/lib/TextBox/docs/TextBox__custom.docs.js +2 -2
  561. package/lib/TextBox/docs/TextBox__default.docs.js +2 -2
  562. package/lib/TextBox/docs/TextBox__size.docs.js +2 -2
  563. package/lib/TextBox/docs/TextBox__variant.docs.js +2 -2
  564. package/lib/TextBox/props/defaultProps.js +26 -0
  565. package/lib/TextBox/props/propTypes.js +62 -0
  566. package/lib/TextBoxIcon/TextBoxIcon.js +8 -73
  567. package/lib/TextBoxIcon/TextBoxIcon.module.css +78 -78
  568. package/lib/TextBoxIcon/__tests__/__snapshots__/TextBoxIcon.spec.js.snap +334 -334
  569. package/lib/TextBoxIcon/docs/TextBoxIcon__custom.docs.js +2 -2
  570. package/lib/TextBoxIcon/docs/TextBoxIcon__default.docs.js +2 -2
  571. package/lib/TextBoxIcon/props/defaultProps.js +28 -0
  572. package/lib/TextBoxIcon/props/propTypes.js +60 -0
  573. package/lib/Textarea/Textarea.js +8 -50
  574. package/lib/Textarea/Textarea.module.css +139 -139
  575. package/lib/Textarea/__tests__/__snapshots__/Textarea.spec.js.snap +97 -97
  576. package/lib/Textarea/docs/Textarea__animated.docs.js +2 -2
  577. package/lib/Textarea/docs/Textarea__custom.docs.js +2 -2
  578. package/lib/Textarea/docs/Textarea__default.docs.js +2 -2
  579. package/lib/Textarea/docs/Textarea__disabled.docs.js +2 -2
  580. package/lib/Textarea/props/defaultProps.js +23 -0
  581. package/lib/Textarea/props/propTypes.js +42 -0
  582. package/lib/Tooltip/Tooltip.js +67 -22
  583. package/lib/Tooltip/Tooltip.module.css +109 -104
  584. package/lib/Tooltip/__tests__/Tooltip.spec.js +2 -2
  585. package/lib/Tooltip/docs/Tooltip__default.docs.js +52 -13
  586. package/lib/Tooltip/props/defaultProps.js +11 -0
  587. package/lib/Tooltip/props/propTypes.js +19 -0
  588. package/lib/VelocityAnimation/VelocityAnimation/VelocityAnimation.js +7 -25
  589. package/lib/VelocityAnimation/VelocityAnimation/docs/VelocityAnimation__demo.docs.js +2 -2
  590. package/lib/VelocityAnimation/VelocityAnimation/props/defaultProps.js +14 -0
  591. package/lib/VelocityAnimation/VelocityAnimation/props/propTypes.js +23 -0
  592. package/lib/VelocityAnimation/VelocityAnimationGroup/VelocityAnimationGroup.js +15 -41
  593. package/lib/VelocityAnimation/VelocityAnimationGroup/docs/VelocityAnimationGroup__demo.docs.js +2 -2
  594. package/lib/VelocityAnimation/VelocityAnimationGroup/props/defaultProps.js +22 -0
  595. package/lib/VelocityAnimation/VelocityAnimationGroup/props/propTypes.js +30 -0
  596. package/lib/common/animation.module.css +624 -624
  597. package/lib/common/avatarsizes.module.css +44 -44
  598. package/lib/common/basic.module.css +33 -33
  599. package/lib/common/basicReset.module.css +40 -40
  600. package/lib/common/common.module.css +525 -502
  601. package/lib/common/customscroll.module.css +89 -89
  602. package/lib/common/docStyle.module.css +887 -762
  603. package/lib/common/reset.module.css +12 -12
  604. package/lib/common/transition.module.css +146 -146
  605. package/lib/css.js +0 -2
  606. package/lib/{MultiSelect → deprecated}/AdvancedMultiSelect.module.css +127 -127
  607. package/lib/deprecated/PortalLayer/PortalLayer.js +7 -18
  608. package/lib/deprecated/PortalLayer/docs/PortalLayer__default.docs.js +2 -2
  609. package/lib/deprecated/PortalLayer/props/defaultProps.js +12 -0
  610. package/lib/deprecated/PortalLayer/props/propTypes.js +22 -0
  611. package/lib/deprecated/advancedMultiSelectVariableJson.js +82 -0
  612. package/lib/index.js +10 -37
  613. package/lib/semantic/Button/Button.js +7 -40
  614. package/lib/semantic/Button/docs/Button__default.docs.js +2 -2
  615. package/lib/semantic/Button/props/defaultProps.js +19 -0
  616. package/lib/semantic/Button/props/propTypes.js +37 -0
  617. package/lib/semantic/Button/semanticButton.module.css +9 -9
  618. package/lib/utils/Common.js +0 -0
  619. package/lib/utils/dropDownUtils.js +0 -0
  620. package/package.json +76 -76
  621. package/es/MultiSelect/AdvancedMultiSelect.module.css +0 -113
  622. package/es/a11y/FocusScope/FocusScope.js +0 -370
  623. package/es/a11y/FocusScope/docs/FocusScope__default.docs.js +0 -139
  624. package/es/beta/FocusRing/FocusRing.js +0 -281
  625. package/es/beta/FocusRing/FocusRing.module.css +0 -127
  626. package/es/beta/FocusRing/docs/FocusRing__default.docs.js +0 -48
  627. package/lib/a11y/FocusScope/FocusScope.js +0 -443
  628. package/lib/a11y/FocusScope/docs/FocusScope__default.docs.js +0 -191
  629. package/lib/beta/FocusRing/FocusRing.js +0 -338
  630. package/lib/beta/FocusRing/FocusRing.module.css +0 -152
  631. package/lib/beta/FocusRing/docs/FocusRing__default.docs.js +0 -101
@@ -1,370 +0,0 @@
1
- import React, { useContext, useEffect, useRef } from 'react';
2
- let scopes = new Set();
3
- let activeScope = null;
4
- const FocusContext = /*#__PURE__*/React.createContext(null); // interface FocusManager {
5
- // /** Moves focus to the next focusable or tabbable element in the focus scope. */
6
- // focusNext(opts?: FocusManagerOptions): HTMLElement,
7
- // /** Moves focus to the previous focusable or tabbable element in the focus scope. */
8
- // focusPrevious(opts?: FocusManagerOptions): HTMLElement
9
- // }
10
-
11
- export const useLayoutEffect = window !== 'undefined' ? React.useLayoutEffect : () => {};
12
- export default function FocusScope(props) {
13
- let {
14
- children,
15
- contain = true,
16
- restoreFocus = true,
17
- autoFocus = true
18
- } = props;
19
- let startRef = useRef();
20
- let endRef = useRef();
21
- let scopeRef = useRef([]);
22
- useLayoutEffect(() => {
23
- // Find all rendered nodes between the sentinels and add them to the scope.
24
- let node = startRef.current.nextSibling;
25
- let nodes = [];
26
-
27
- while (node && node !== endRef.current) {
28
- nodes.push(node);
29
- node = node.nextSibling;
30
- }
31
-
32
- scopeRef.current = nodes;
33
- scopes.add(scopeRef);
34
- return () => {
35
- scopes.delete(scopeRef);
36
- };
37
- }, [children]);
38
- useFocusContainment(scopeRef, contain);
39
- useRestoreFocus(scopeRef, restoreFocus, contain);
40
- useAutoFocus(scopeRef, autoFocus);
41
- let focusManager = createFocusManager(scopeRef);
42
- return /*#__PURE__*/React.createElement(FocusContext.Provider, {
43
- value: focusManager
44
- }, /*#__PURE__*/React.createElement("span", {
45
- hidden: true,
46
- ref: startRef
47
- }), children, /*#__PURE__*/React.createElement("span", {
48
- hidden: true,
49
- ref: endRef
50
- }));
51
- }
52
- export function useFocusManager() {
53
- return useContext(FocusContext);
54
- }
55
-
56
- function createFocusManager(scopeRef) {
57
- return {
58
- focusNext(opts) {
59
- let node = opts.from || document.activeElement;
60
- let focusable = getFocusableElementsInScope(scopeRef.current, opts);
61
- let nextNode = focusable.find(n => !!(node.compareDocumentPosition(n) & (Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY)));
62
-
63
- if (!nextNode && opts.wrap) {
64
- nextNode = focusable[0];
65
- }
66
-
67
- if (nextNode) {
68
- nextNode.focus();
69
- }
70
-
71
- return nextNode;
72
- },
73
-
74
- focusPrevious(opts) {
75
- let node = opts.from || document.activeElement;
76
- let focusable = getFocusableElementsInScope(scopeRef.current, opts).reverse();
77
- let previousNode = focusable.find(n => !!(node.compareDocumentPosition(n) & (Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINED_BY)));
78
-
79
- if (!previousNode && opts.wrap) {
80
- previousNode = focusable[0];
81
- }
82
-
83
- if (previousNode) {
84
- previousNode.focus();
85
- }
86
-
87
- return previousNode;
88
- }
89
-
90
- };
91
- }
92
-
93
- const focusableElements = ['input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'a[href]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])', 'details>summary:first-of-type', 'details', 'area[href]', 'summary', 'iframe', 'object', 'embed'];
94
- const FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(',') + ',[tabindex]';
95
- focusableElements.push('[tabindex]:not([tabindex="-1"])');
96
- const TABBABLE_ELEMENT_SELECTOR = focusableElements.join(':not([tabindex="-1"]),');
97
-
98
- function useAutoFocus(scopeRef, autoFocus) {
99
- useEffect(() => {
100
- if (autoFocus) {
101
- activeScope = scopeRef;
102
-
103
- if (!isElementInScope(document.activeElement, activeScope.current)) {
104
- focusFirstInScope(scopeRef.current);
105
- }
106
- }
107
- }, [scopeRef, autoFocus]);
108
- }
109
-
110
- function getFocusableElementsInScope(scope, opts) {
111
- let res = [],
112
- response = [];
113
- let selector = opts.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;
114
-
115
- for (let node of scope) {
116
- if (node.matches(selector)) {
117
- res.push(node);
118
- }
119
-
120
- response.push(...Array.from(node.querySelectorAll(selector)));
121
- res = response.filter(element => {
122
- return !(window.getComputedStyle(element).display === 'none');
123
- });
124
- }
125
-
126
- ;
127
- return res;
128
- }
129
-
130
- function useFocusContainment(scopeRef, contain) {
131
- let focusedNode = useRef();
132
- let raf = useRef(null);
133
- useEffect(() => {
134
- let scope = scopeRef.current;
135
-
136
- if (!contain) {
137
- return;
138
- } // Handle the Tab key to contain focus within the scope
139
-
140
-
141
- let onKeyDown = e => {
142
- if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {
143
- return;
144
- }
145
-
146
- let elements = getFocusableElementsInScope(scope, {
147
- tabbable: true
148
- });
149
- let focusedElement = document.activeElement;
150
-
151
- if (!isElementInScope(focusedElement, scope)) {
152
- return;
153
- }
154
-
155
- let position = elements.indexOf(focusedElement);
156
- let lastPosition = elements.length - 1;
157
- let nextElement = null;
158
-
159
- if (e.shiftKey) {
160
- if (position <= 0) {
161
- nextElement = elements[lastPosition];
162
- } else {
163
- nextElement = elements[position - 1];
164
- }
165
- } else {
166
- if (position === lastPosition) {
167
- nextElement = elements[0];
168
- } else {
169
- nextElement = elements[position + 1];
170
- }
171
- }
172
-
173
- e.preventDefault();
174
-
175
- if (nextElement) {
176
- focusElement(nextElement, true);
177
- }
178
- };
179
-
180
- let onFocus = e => {
181
- // If a focus event occurs outside the active scope (e.g. user tabs from browser location bar),
182
- // restore focus to the previously focused node or the first tabbable element in the active scope.
183
- let isInAnyScope = isElementInAnyScope(e.target, scopes);
184
-
185
- if (!isInAnyScope) {
186
- if (focusedNode.current) {
187
- focusedNode.current.focus();
188
- } else if (activeScope) {
189
- focusFirstInScope(activeScope.current);
190
- }
191
- } else {
192
- activeScope = scopeRef;
193
- focusedNode.current = e.target;
194
- }
195
- };
196
-
197
- let onBlur = e => {
198
- // Firefox doesn't shift focus back to the Dialog properly without this
199
- raf.current = requestAnimationFrame(() => {
200
- // Use document.activeElement instead of e.relatedTarget so we can tell if user clicked into iframe
201
- let isInAnyScope = isElementInAnyScope(document.activeElement, scopes);
202
-
203
- if (!isInAnyScope) {
204
- activeScope = scopeRef;
205
- focusedNode.current = e.target;
206
- focusedNode.current.focus();
207
- }
208
- });
209
- };
210
-
211
- document.addEventListener('keydown', onKeyDown, false);
212
- document.addEventListener('focusin', onFocus, false);
213
- scope.forEach(element => element.addEventListener('focusin', onFocus, false));
214
- scope.forEach(element => element.addEventListener('focusout', onBlur, false));
215
- return () => {
216
- document.removeEventListener('keydown', onKeyDown, false);
217
- document.removeEventListener('focusin', onFocus, false);
218
- scope.forEach(element => element.removeEventListener('focusin', onFocus, false));
219
- scope.forEach(element => element.removeEventListener('focusout', onBlur, false));
220
- };
221
- }, [scopeRef, contain]); // eslint-disable-next-line arrow-body-style
222
-
223
- useEffect(() => {
224
- return () => cancelAnimationFrame(raf.current);
225
- }, [raf]);
226
- }
227
-
228
- function isElementInAnyScope(element) {
229
- let scopes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
230
-
231
- for (let scope of scopes.values()) {
232
- if (isElementInScope(element, scope.current)) {
233
- return true;
234
- }
235
- }
236
-
237
- return false;
238
- }
239
-
240
- function isElementInScope(element) {
241
- let scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
242
- return scope.some(node => node.contains(element));
243
- }
244
-
245
- function focusElement() {
246
- let element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
247
-
248
- if (element != null) {
249
- element.focus();
250
- }
251
- }
252
-
253
- function findElement(elements) {
254
- let ele = [];
255
-
256
- for (let element = 0; element < elements.length; element++) {
257
- let elem = elements[element];
258
-
259
- if (elem.getAttribute('data-auto-focus')) {
260
- ele.push(elem);
261
- }
262
- }
263
-
264
- return ele.length ? ele[0] : null;
265
- }
266
-
267
- function focusFirstInScope() {
268
- let scope = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
269
- let elements = getFocusableElementsInScope(scope, {
270
- tabbable: true
271
- });
272
- let element = findElement(elements);
273
- focusElement(element ? element : elements[0]);
274
- }
275
-
276
- function useRestoreFocus(scopeRef, restoreFocus, contain) {
277
- // useLayoutEffect instead of useEffect so the active element is saved synchronously instead of asynchronously.
278
- useLayoutEffect(() => {
279
- let scope = scopeRef.current;
280
- let nodeToRestore = document.activeElement; // Handle the Tab key so that tabbing out of the scope goes to the next element
281
- // after the node that had focus when the scope mounted. This is important when
282
- // using portals for overlays, so that focus goes to the expected element when
283
- // tabbing out of the overlay.
284
-
285
- let onKeyDown = e => {
286
- if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {
287
- return;
288
- }
289
-
290
- let focusedElement = document.activeElement;
291
-
292
- if (!isElementInScope(focusedElement, scope)) {
293
- return;
294
- } // Create a DOM tree walker that matches all tabbable elements
295
-
296
-
297
- let walker = getFocusableTreeWalker(document.body, {
298
- tabbable: true
299
- }); // Find the next tabbable element after the currently focused element
300
-
301
- walker.currentNode = focusedElement;
302
- let nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode(); // If there is no next element, or it is outside the current scope, move focus to the
303
- // next element after the node to restore to instead.
304
-
305
- if ((!nextElement || !isElementInScope(nextElement, scope)) && nodeToRestore) {
306
- walker.currentNode = nodeToRestore; // Skip over elements within the scope, in case the scope immediately follows the node to restore.
307
-
308
- do {
309
- nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();
310
- } while (isElementInScope(nextElement, scope));
311
-
312
- e.preventDefault();
313
- e.stopPropagation();
314
-
315
- if (nextElement) {
316
- nextElement.focus();
317
- } else {
318
- // If there is no next element, blur the focused element to move focus to the body.
319
- focusedElement.blur();
320
- }
321
- }
322
- };
323
-
324
- if (!contain) {
325
- document.addEventListener('keydown', onKeyDown, true);
326
- }
327
-
328
- return () => {
329
- if (!contain) {
330
- document.removeEventListener('keydown', onKeyDown, true);
331
- }
332
-
333
- if (restoreFocus && nodeToRestore && isElementInScope(document.activeElement, scope)) {
334
- requestAnimationFrame(() => {
335
- if (document.body.contains(nodeToRestore)) {
336
- focusElement(nodeToRestore);
337
- }
338
- });
339
- }
340
- };
341
- }, [scopeRef, restoreFocus, contain]);
342
- }
343
-
344
- export function getFocusableTreeWalker(root, opts) {
345
- let selector = opts && opts.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;
346
- let walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {
347
- acceptNode(node) {
348
- // Skip nodes inside the starting node.
349
- if (opts && opts.from && opts.from.contains(node)) {
350
- return NodeFilter.FILTER_REJECT;
351
- }
352
-
353
- if (node.matches(selector)) {
354
- return NodeFilter.FILTER_ACCEPT;
355
- }
356
-
357
- return NodeFilter.FILTER_SKIP;
358
- }
359
-
360
- }, false);
361
-
362
- if (opts && opts.from) {
363
- walker.currentNode = opts.from;
364
- }
365
-
366
- return walker;
367
- }
368
- FocusScope.docs = {
369
- componentGroup: 'Atom'
370
- };
@@ -1,139 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import FocusScope, { useFocusManager } from '../FocusScope';
4
- import style from '../../../beta/FocusRing/FocusRing.module.css';
5
- export default class FocusScope__default extends React.Component {
6
- constructor(props) {
7
- super(props);
8
- this.state = {
9
- isOpen: false,
10
- isSub: false
11
- };
12
- this.handleSubmit = this.handleSubmit.bind(this);
13
- }
14
-
15
- handleSubmit(e, issub) {
16
- this.setState({
17
- isSub: issub,
18
- isOpen: e
19
- });
20
- }
21
-
22
- render() {
23
- const {
24
- isOpen,
25
- isSub
26
- } = this.state;
27
- console.log(this.state);
28
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("button", {
29
- className: style.primary,
30
- type: "button",
31
- onClick: this.handleSubmit.bind(this, true, false)
32
- }, "Focusscope"), isOpen ? /*#__PURE__*/React.createElement("div", {
33
- className: style.freezeLayer
34
- }, /*#__PURE__*/React.createElement(FocusScope, {
35
- contain: true,
36
- autoFocus: true,
37
- restoreFocus: true
38
- }, /*#__PURE__*/React.createElement(FormContainer, {
39
- onSubmit: this.handleSubmit.bind(this, true, true),
40
- onCancel: this.handleSubmit.bind(this, false, false)
41
- }), isSub ? /*#__PURE__*/React.createElement(FocusScope, {
42
- contain: true,
43
- restoreFocus: true,
44
- autoFocus: true
45
- }, /*#__PURE__*/React.createElement("span", {
46
- className: `${style.container} ${isSub && style.box1} ${isSub && style.manage}`
47
- }, /*#__PURE__*/React.createElement(ToolbarButton, null, "Cut"), /*#__PURE__*/React.createElement(ToolbarButton, null, "Copy"), /*#__PURE__*/React.createElement(ToolbarButton, null, "Paste"), /*#__PURE__*/React.createElement(ToolbarButton, {
48
- onClick: this.handleSubmit.bind(this, true, false)
49
- }, "Close"))) : null)) : null);
50
- }
51
-
52
- }
53
-
54
- function ToolbarButton(props) {
55
- const focusManager = useFocusManager();
56
-
57
- const onKeyDown = e => {
58
- switch (e.key) {
59
- case 'ArrowRight':
60
- focusManager.focusNext({
61
- wrap: true
62
- });
63
- break;
64
-
65
- case 'ArrowLeft':
66
- focusManager.focusPrevious({
67
- wrap: true
68
- });
69
- break;
70
-
71
- default:
72
- }
73
- };
74
-
75
- const {
76
- onClick,
77
- children
78
- } = props;
79
- return /*#__PURE__*/React.createElement("button", {
80
- className: style.primary,
81
- type: "button",
82
- onClick: onClick,
83
- onKeyDown: onKeyDown
84
- }, children);
85
- }
86
-
87
- ToolbarButton.propTypes = {
88
- children: PropTypes.string.isRequired,
89
- onClick: PropTypes.func
90
- };
91
-
92
- function FormContainer(props) {
93
- const {
94
- onSubmit,
95
- onCancel
96
- } = props;
97
- const options = ['apple', 'MSoffice'];
98
- return /*#__PURE__*/React.createElement("div", {
99
- className: `${style.container} ${style.box1}`
100
- }, /*#__PURE__*/React.createElement("button", {
101
- className: style.secondary,
102
- type: "button",
103
- onClick: onCancel
104
- }, "close"), /*#__PURE__*/React.createElement("form", {
105
- className: style.formContainer
106
- }, /*#__PURE__*/React.createElement("h3", null, "name"), /*#__PURE__*/React.createElement("input", {
107
- type: "text",
108
- value: "Input A",
109
- className: `${style.input} ${style.inpFocus}`,
110
- name: "name"
111
- }), /*#__PURE__*/React.createElement("h3", null, "contact"), /*#__PURE__*/React.createElement("input", {
112
- type: "text",
113
- value: "Input A",
114
- className: `${style.input} ${style.inpFocus}`,
115
- name: "contact"
116
- }), /*#__PURE__*/React.createElement("h3", null, "select"), /*#__PURE__*/React.createElement("select", {
117
- options: options,
118
- name: "select",
119
- className: `${style.input} ${style.inpFocus}`
120
- }, options.map((item, i) => /*#__PURE__*/React.createElement("option", {
121
- key: `item-${i}`
122
- }, item)))), /*#__PURE__*/React.createElement("button", {
123
- className: style.primary,
124
- type: "submit",
125
- onClick: onSubmit
126
- }, "Submit"), /*#__PURE__*/React.createElement("button", {
127
- className: style.secondary,
128
- type: "button",
129
- onClick: onCancel
130
- }, "Cancel"));
131
- }
132
-
133
- FormContainer.propTypes = {
134
- onCancel: PropTypes.func,
135
- onSubmit: PropTypes.func
136
- };
137
- FocusScope__default.docs = {
138
- componentGroup: 'Atom'
139
- };