baseui 10.12.1 → 11.0.2

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 (307) hide show
  1. package/README.md +3 -3
  2. package/accordion/accordion.js +60 -13
  3. package/accordion/accordion.js.flow +49 -12
  4. package/accordion/index.d.ts +0 -3
  5. package/accordion/panel.js +7 -6
  6. package/accordion/panel.js.flow +20 -20
  7. package/accordion/stateless-accordion.js +2 -4
  8. package/accordion/stateless-accordion.js.flow +0 -2
  9. package/accordion/types.js.flow +0 -5
  10. package/button/constants.js +1 -2
  11. package/button/constants.js.flow +0 -1
  12. package/button/index.d.ts +0 -1
  13. package/button/styled-components.js +2 -29
  14. package/button/styled-components.js.flow +2 -30
  15. package/checkbox/checkbox.js +6 -30
  16. package/checkbox/checkbox.js.flow +7 -38
  17. package/checkbox/constants.js +2 -1
  18. package/checkbox/constants.js.flow +2 -1
  19. package/checkbox/index.d.ts +4 -6
  20. package/checkbox/index.js +0 -6
  21. package/checkbox/index.js.flow +0 -1
  22. package/checkbox/styled-components.js +52 -149
  23. package/checkbox/styled-components.js.flow +59 -165
  24. package/checkbox/types.js.flow +0 -5
  25. package/data-table/column-categorical.js +1 -1
  26. package/data-table/column-categorical.js.flow +1 -1
  27. package/data-table/column-datetime.js +1 -1
  28. package/data-table/column-datetime.js.flow +3 -1
  29. package/data-table/column.js +6 -2
  30. package/data-table/column.js.flow +9 -7
  31. package/data-table/data-table.js +10 -2
  32. package/data-table/data-table.js.flow +4 -1
  33. package/data-table/header-cell.js +3 -0
  34. package/data-table/header-cell.js.flow +1 -1
  35. package/data-table/index.d.ts +7 -8
  36. package/data-table/stateful-data-table.js +2 -1
  37. package/data-table/stateful-data-table.js.flow +1 -0
  38. package/data-table/types.js.flow +8 -0
  39. package/datepicker/calendar.js +28 -15
  40. package/datepicker/calendar.js.flow +31 -14
  41. package/datepicker/constants.js +12 -2
  42. package/datepicker/constants.js.flow +10 -0
  43. package/datepicker/datepicker.js +117 -86
  44. package/datepicker/datepicker.js.flow +123 -66
  45. package/datepicker/day.js +85 -34
  46. package/datepicker/day.js.flow +118 -54
  47. package/datepicker/locale.js.flow +0 -1
  48. package/datepicker/month.js +3 -1
  49. package/datepicker/month.js.flow +2 -0
  50. package/datepicker/stateful-calendar.js +6 -1
  51. package/datepicker/stateful-calendar.js.flow +8 -1
  52. package/datepicker/stateful-container.js +23 -2
  53. package/datepicker/stateful-container.js.flow +17 -3
  54. package/datepicker/stateful-datepicker.js +6 -1
  55. package/datepicker/stateful-datepicker.js.flow +7 -1
  56. package/datepicker/styled-components.js +23 -1
  57. package/datepicker/styled-components.js.flow +12 -2
  58. package/datepicker/types.js.flow +46 -43
  59. package/datepicker/utils/date-helpers.js +30 -0
  60. package/datepicker/utils/date-helpers.js.flow +12 -0
  61. package/datepicker/week.js +3 -1
  62. package/datepicker/week.js.flow +2 -0
  63. package/es/accordion/accordion.js +52 -12
  64. package/es/accordion/panel.js +7 -5
  65. package/es/accordion/stateless-accordion.js +2 -4
  66. package/es/button/constants.js +1 -2
  67. package/es/button/styled-components.js +2 -29
  68. package/es/checkbox/checkbox.js +7 -32
  69. package/es/checkbox/constants.js +2 -1
  70. package/es/checkbox/index.js +1 -1
  71. package/es/checkbox/styled-components.js +51 -146
  72. package/es/data-table/column-categorical.js +1 -1
  73. package/es/data-table/column-datetime.js +1 -1
  74. package/es/data-table/column.js +6 -2
  75. package/es/data-table/data-table.js +6 -2
  76. package/es/data-table/header-cell.js +3 -0
  77. package/es/data-table/stateful-data-table.js +2 -1
  78. package/es/datepicker/calendar.js +28 -15
  79. package/es/datepicker/constants.js +8 -0
  80. package/es/datepicker/datepicker.js +106 -79
  81. package/es/datepicker/day.js +77 -34
  82. package/es/datepicker/month.js +3 -1
  83. package/es/datepicker/stateful-calendar.js +6 -1
  84. package/es/datepicker/stateful-container.js +22 -2
  85. package/es/datepicker/stateful-datepicker.js +6 -1
  86. package/es/datepicker/styled-components.js +8 -2
  87. package/es/datepicker/types.js +1 -1
  88. package/es/datepicker/utils/date-helpers.js +16 -0
  89. package/es/datepicker/week.js +3 -1
  90. package/es/file-uploader/file-uploader.js +4 -4
  91. package/es/form-control/styled-components.js +0 -1
  92. package/es/header-navigation/styled-components.js +3 -3
  93. package/es/helpers/overrides.js +1 -2
  94. package/es/input/styled-components.js +4 -4
  95. package/es/layer/layer.js +4 -4
  96. package/es/list/list-item.js +5 -1
  97. package/es/list/menu-adapter.js +4 -0
  98. package/es/locale/index.js +0 -7
  99. package/es/menu/stateful-container.js +0 -1
  100. package/es/menu/styled-components.js +1 -1
  101. package/es/modal/index.js +1 -1
  102. package/es/modal/modal.js +19 -65
  103. package/es/modal/styled-components.js +12 -48
  104. package/es/phone-input/default-props.js +1 -1
  105. package/es/phone-input/index.js +0 -4
  106. package/es/phone-input/phone-input-lite.js +55 -31
  107. package/es/radio/radio.js +1 -7
  108. package/es/radio/radiogroup.js +3 -28
  109. package/es/radio/styled-components.js +4 -5
  110. package/es/rating/styled-components.js +3 -3
  111. package/es/select/index.js +1 -2
  112. package/es/select/select-component.js +20 -20
  113. package/es/select/styled-components.js +21 -17
  114. package/es/snackbar/snackbar-context.js +1 -1
  115. package/es/snackbar/styled-components.js +2 -2
  116. package/es/spinner/index.js +3 -9
  117. package/es/spinner/styled-components.js +2 -32
  118. package/es/table/filter.js +3 -3
  119. package/es/tag/styled-components.js +1 -1
  120. package/es/themes/dark-theme/color-component-tokens.js +0 -38
  121. package/es/themes/dark-theme/color-tokens.js +0 -2
  122. package/es/themes/dark-theme/create-dark-theme.js +0 -2
  123. package/es/themes/dark-theme/dark-theme.js +0 -2
  124. package/es/themes/light-theme/color-component-tokens.js +0 -38
  125. package/es/themes/light-theme/color-tokens.js +0 -2
  126. package/es/themes/light-theme/create-light-theme.js +0 -2
  127. package/es/themes/light-theme/light-theme.js +0 -2
  128. package/es/timepicker/timepicker.js +1 -8
  129. package/es/typography/index.js +1 -31
  130. package/esm/accordion/accordion.js +60 -13
  131. package/esm/accordion/panel.js +7 -6
  132. package/esm/accordion/stateless-accordion.js +2 -4
  133. package/esm/button/constants.js +1 -2
  134. package/esm/button/styled-components.js +2 -29
  135. package/esm/checkbox/checkbox.js +7 -30
  136. package/esm/checkbox/constants.js +2 -1
  137. package/esm/checkbox/index.js +1 -1
  138. package/esm/checkbox/styled-components.js +52 -147
  139. package/esm/data-table/column-categorical.js +1 -1
  140. package/esm/data-table/column-datetime.js +1 -1
  141. package/esm/data-table/column.js +6 -2
  142. package/esm/data-table/data-table.js +10 -2
  143. package/esm/data-table/header-cell.js +3 -0
  144. package/esm/data-table/stateful-data-table.js +2 -1
  145. package/esm/datepicker/calendar.js +28 -15
  146. package/esm/datepicker/constants.js +8 -0
  147. package/esm/datepicker/datepicker.js +116 -86
  148. package/esm/datepicker/day.js +84 -34
  149. package/esm/datepicker/month.js +3 -1
  150. package/esm/datepicker/stateful-calendar.js +6 -1
  151. package/esm/datepicker/stateful-container.js +23 -2
  152. package/esm/datepicker/stateful-datepicker.js +6 -1
  153. package/esm/datepicker/styled-components.js +24 -2
  154. package/esm/datepicker/types.js +1 -1
  155. package/esm/datepicker/utils/date-helpers.js +30 -0
  156. package/esm/datepicker/week.js +3 -1
  157. package/esm/file-uploader/file-uploader.js +4 -4
  158. package/esm/form-control/styled-components.js +0 -1
  159. package/esm/header-navigation/styled-components.js +3 -3
  160. package/esm/helpers/overrides.js +1 -2
  161. package/esm/input/styled-components.js +4 -4
  162. package/esm/layer/layer.js +4 -4
  163. package/esm/list/list-item.js +5 -1
  164. package/esm/list/menu-adapter.js +4 -0
  165. package/esm/locale/index.js +0 -7
  166. package/esm/menu/stateful-container.js +0 -1
  167. package/esm/menu/styled-components.js +1 -1
  168. package/esm/modal/index.js +1 -1
  169. package/esm/modal/modal.js +28 -71
  170. package/esm/modal/styled-components.js +6 -38
  171. package/esm/phone-input/default-props.js +1 -1
  172. package/esm/phone-input/index.js +0 -4
  173. package/esm/phone-input/phone-input-lite.js +60 -37
  174. package/esm/radio/radio.js +1 -7
  175. package/esm/radio/radiogroup.js +3 -28
  176. package/esm/radio/styled-components.js +4 -5
  177. package/esm/rating/styled-components.js +3 -3
  178. package/esm/select/index.js +1 -2
  179. package/esm/select/select-component.js +20 -20
  180. package/esm/select/styled-components.js +21 -14
  181. package/esm/snackbar/snackbar-context.js +1 -1
  182. package/esm/snackbar/styled-components.js +2 -2
  183. package/esm/spinner/index.js +3 -9
  184. package/esm/spinner/styled-components.js +2 -40
  185. package/esm/table/filter.js +3 -3
  186. package/esm/tag/styled-components.js +1 -1
  187. package/esm/themes/dark-theme/color-component-tokens.js +0 -38
  188. package/esm/themes/dark-theme/color-tokens.js +0 -2
  189. package/esm/themes/dark-theme/create-dark-theme.js +1 -2
  190. package/esm/themes/dark-theme/dark-theme.js +1 -2
  191. package/esm/themes/light-theme/color-component-tokens.js +0 -38
  192. package/esm/themes/light-theme/color-tokens.js +0 -2
  193. package/esm/themes/light-theme/create-light-theme.js +1 -2
  194. package/esm/themes/light-theme/light-theme.js +1 -2
  195. package/esm/timepicker/timepicker.js +1 -8
  196. package/esm/typography/index.js +1 -35
  197. package/file-uploader/file-uploader.js +3 -3
  198. package/file-uploader/file-uploader.js.flow +4 -4
  199. package/form-control/index.d.ts +9 -0
  200. package/form-control/styled-components.js +0 -1
  201. package/form-control/styled-components.js.flow +0 -1
  202. package/header-navigation/styled-components.js +3 -3
  203. package/header-navigation/styled-components.js.flow +3 -3
  204. package/helpers/overrides.js +1 -2
  205. package/helpers/overrides.js.flow +1 -1
  206. package/input/index.d.ts +5 -9
  207. package/input/styled-components.js +4 -4
  208. package/input/styled-components.js.flow +4 -4
  209. package/layer/layer.js +4 -4
  210. package/layer/layer.js.flow +4 -3
  211. package/list/list-item.js +5 -1
  212. package/list/list-item.js.flow +4 -0
  213. package/list/menu-adapter.js +4 -0
  214. package/list/menu-adapter.js.flow +4 -0
  215. package/list/types.js.flow +4 -0
  216. package/locale/index.js +0 -7
  217. package/locale/index.js.flow +0 -7
  218. package/locale.ts +0 -1
  219. package/menu/index.d.ts +1 -3
  220. package/menu/stateful-container.js +0 -1
  221. package/menu/stateful-container.js.flow +0 -1
  222. package/menu/styled-components.js +1 -1
  223. package/menu/styled-components.js.flow +1 -1
  224. package/modal/index.d.ts +4 -6
  225. package/modal/index.js +0 -6
  226. package/modal/index.js.flow +0 -1
  227. package/modal/modal.js +27 -70
  228. package/modal/modal.js.flow +17 -83
  229. package/modal/styled-components.js +7 -40
  230. package/modal/styled-components.js.flow +12 -44
  231. package/modal/types.js.flow +1 -10
  232. package/package.json +3 -2
  233. package/phone-input/default-props.js +1 -1
  234. package/phone-input/default-props.js.flow +1 -1
  235. package/phone-input/index.d.ts +0 -1
  236. package/phone-input/index.js +0 -36
  237. package/phone-input/index.js.flow +0 -4
  238. package/phone-input/phone-input-lite.js +63 -38
  239. package/phone-input/phone-input-lite.js.flow +66 -44
  240. package/radio/index.d.ts +4 -9
  241. package/radio/radio.js +1 -7
  242. package/radio/radio.js.flow +1 -8
  243. package/radio/radiogroup.js +3 -28
  244. package/radio/radiogroup.js.flow +2 -26
  245. package/radio/styled-components.js +4 -5
  246. package/radio/styled-components.js.flow +3 -4
  247. package/radio/types.js.flow +4 -15
  248. package/rating/styled-components.js +3 -3
  249. package/rating/styled-components.js.flow +3 -3
  250. package/select/index.d.ts +0 -2
  251. package/select/index.js +0 -6
  252. package/select/index.js.flow +0 -2
  253. package/select/select-component.js +23 -24
  254. package/select/select-component.js.flow +25 -14
  255. package/select/styled-components.js +23 -17
  256. package/select/styled-components.js.flow +17 -12
  257. package/snackbar/snackbar-context.js +1 -1
  258. package/snackbar/snackbar-context.js.flow +1 -1
  259. package/snackbar/styled-components.js +1 -1
  260. package/snackbar/styled-components.js.flow +11 -11
  261. package/spinner/index.d.ts +5 -18
  262. package/spinner/index.js +2 -68
  263. package/spinner/index.js.flow +2 -27
  264. package/spinner/styled-components.js +9 -45
  265. package/spinner/styled-components.js.flow +2 -34
  266. package/spinner/types.js.flow +1 -19
  267. package/styles/types.js.flow +0 -2
  268. package/table/filter.js +3 -3
  269. package/table/filter.js.flow +3 -3
  270. package/tag/styled-components.js +1 -1
  271. package/tag/styled-components.js.flow +1 -1
  272. package/tag/types.js.flow +1 -1
  273. package/theme.ts +0 -81
  274. package/themes/dark-theme/color-component-tokens.js +0 -38
  275. package/themes/dark-theme/color-component-tokens.js.flow +0 -42
  276. package/themes/dark-theme/color-tokens.js +0 -2
  277. package/themes/dark-theme/color-tokens.js.flow +0 -2
  278. package/themes/dark-theme/create-dark-theme.js +1 -3
  279. package/themes/dark-theme/create-dark-theme.js.flow +0 -2
  280. package/themes/dark-theme/dark-theme.js +1 -3
  281. package/themes/dark-theme/dark-theme.js.flow +0 -2
  282. package/themes/light-theme/color-component-tokens.js +0 -38
  283. package/themes/light-theme/color-component-tokens.js.flow +0 -43
  284. package/themes/light-theme/color-tokens.js +0 -2
  285. package/themes/light-theme/color-tokens.js.flow +0 -2
  286. package/themes/light-theme/create-light-theme.js +1 -3
  287. package/themes/light-theme/create-light-theme.js.flow +0 -2
  288. package/themes/light-theme/light-theme.js +1 -3
  289. package/themes/light-theme/light-theme.js.flow +0 -2
  290. package/themes/types.js.flow +0 -68
  291. package/timepicker/timepicker.js +1 -8
  292. package/timepicker/timepicker.js.flow +4 -10
  293. package/typography/index.d.ts +0 -23
  294. package/typography/index.js +2 -57
  295. package/typography/index.js.flow +0 -31
  296. package/es/spinner/spinner.js +0 -68
  297. package/es/themes/dark-theme/color-deprecated-semantic-tokens.js +0 -35
  298. package/es/themes/light-theme/color-deprecated-semantic-tokens.js +0 -35
  299. package/esm/spinner/spinner.js +0 -125
  300. package/esm/themes/dark-theme/color-deprecated-semantic-tokens.js +0 -38
  301. package/esm/themes/light-theme/color-deprecated-semantic-tokens.js +0 -38
  302. package/spinner/spinner.js +0 -136
  303. package/spinner/spinner.js.flow +0 -75
  304. package/themes/dark-theme/color-deprecated-semantic-tokens.js +0 -50
  305. package/themes/dark-theme/color-deprecated-semantic-tokens.js.flow +0 -42
  306. package/themes/light-theme/color-deprecated-semantic-tokens.js +0 -50
  307. package/themes/light-theme/color-deprecated-semantic-tokens.js.flow +0 -42
@@ -58,6 +58,10 @@ const ListItem = React.forwardRef<PropsT, HTMLLIElement>((props: PropsT, ref) =>
58
58
  // flowlint-next-line unclear-type:off
59
59
  ref={(ref: any)}
60
60
  $shape={props.shape || SHAPE.DEFAULT}
61
+ aria-label={props['aria-label']}
62
+ aria-selected={props['aria-selected']}
63
+ id={props.id}
64
+ role={props.role}
61
65
  {...rootProps}
62
66
  >
63
67
  {Artwork && (
@@ -29,9 +29,13 @@ var MenuAdapter = /*#__PURE__*/React.forwardRef(function (props, ref) {
29
29
  return /*#__PURE__*/React.createElement(_listItem.default, {
30
30
  ref: ref,
31
31
  sublist: props.sublist || props.$size === 'compact',
32
+ "aria-label": props['aria-label'],
33
+ "aria-selected": props['aria-selected'],
32
34
  artwork: props.artwork,
33
35
  artworkSize: props.artworkSize,
34
36
  endEnhancer: props.endEnhancer,
37
+ id: props.id,
38
+ role: props.role,
35
39
  overrides: (0, _overrides.mergeOverrides)({
36
40
  Root: {
37
41
  props: {
@@ -17,9 +17,13 @@ const MenuAdapter = React.forwardRef<MenuAdapterPropsT, HTMLLIElement>((props, r
17
17
  <ListItem
18
18
  ref={ref}
19
19
  sublist={props.sublist || props.$size === 'compact'}
20
+ aria-label={props['aria-label']}
21
+ aria-selected={props['aria-selected']}
20
22
  artwork={props.artwork}
21
23
  artworkSize={props.artworkSize}
22
24
  endEnhancer={props.endEnhancer}
25
+ id={props.id}
26
+ role={props.role}
23
27
  overrides={mergeOverrides(
24
28
  {
25
29
  Root: {
@@ -44,7 +44,11 @@ export type PropsT = {|
44
44
  shape?: ShapeT,
45
45
  children: React.Node,
46
46
  endEnhancer?: React.AbstractComponent<{}>,
47
+ 'aria-label'?: string,
48
+ 'aria-selected'?: boolean,
49
+ id?: String,
47
50
  overrides?: OverridesT,
51
+ role?: string,
48
52
  sublist?: boolean,
49
53
  |};
50
54
 
package/locale/index.js CHANGED
@@ -31,13 +31,6 @@ exports.LocaleContext = LocaleContext;
31
31
  var LocaleProvider = function LocaleProvider(props) {
32
32
  var locale = props.locale,
33
33
  children = props.children;
34
-
35
- if (process.env.NODE_ENV !== "production") {
36
- if (locale.datepicker && locale.datepicker.timePickerAriaLabel) {
37
- console.warn('`timePickerAriaLabel` will be removed in v11 - please use timePickerAriaLabel12Hour and timePickerAriaLabel24Hour instead');
38
- }
39
- }
40
-
41
34
  return /*#__PURE__*/React.createElement(LocaleContext.Provider, {
42
35
  value: (0, _justExtend.default)({}, _en_US.default, locale)
43
36
  }, children);
@@ -15,13 +15,6 @@ export const LocaleContext: React.Context<LocaleT> = React.createContext(en_US);
15
15
 
16
16
  const LocaleProvider = (props: { locale: $Shape<LocaleT>, children: ?React.Node }) => {
17
17
  const { locale, children } = props;
18
- if (__DEV__) {
19
- if (locale.datepicker && locale.datepicker.timePickerAriaLabel) {
20
- console.warn(
21
- '`timePickerAriaLabel` will be removed in v11 - please use timePickerAriaLabel12Hour and timePickerAriaLabel24Hour instead'
22
- );
23
- }
24
- }
25
18
  return (
26
19
  <LocaleContext.Provider value={extend({}, en_US, locale)}>{children}</LocaleContext.Provider>
27
20
  );
package/locale.ts CHANGED
@@ -29,7 +29,6 @@ interface DatepickerLocale {
29
29
  quickSelectPlaceholder: string;
30
30
  timeSelectEndLabel: string;
31
31
  timeSelectStartLabel: string;
32
- timePickerAriaLabel?: string;
33
32
  timePickerAriaLabel12Hour: string;
34
33
  timePickerAriaLabel24Hour: string;
35
34
  timezonePickerAriaLabel: string;
package/menu/index.d.ts CHANGED
@@ -146,9 +146,7 @@ export const OptionList: React.FC<OptionListProps>;
146
146
  export interface OptionProfileProps extends BaseMenuPropsT {
147
147
  item: any;
148
148
  getChildMenu?: (item: any) => React.ReactNode;
149
- getProfileItemLabels: (
150
- item: any,
151
- ) => {
149
+ getProfileItemLabels: (item: any) => {
152
150
  title?: string;
153
151
  subtitle?: string;
154
152
  body?: string;
@@ -156,7 +156,6 @@ var MenuStatefulContainerInner = /*#__PURE__*/function (_React$Component) {
156
156
  _this.typeAheadChars = '';
157
157
  }, 500);
158
158
  var nextIndex = prevIndex;
159
- event.preventDefault();
160
159
 
161
160
  var list = _this.getItems();
162
161
 
@@ -210,7 +210,6 @@ class MenuStatefulContainerInner extends React.Component<
210
210
  }, 500);
211
211
 
212
212
  var nextIndex = prevIndex;
213
- event.preventDefault();
214
213
  var list = this.getItems();
215
214
  if (list.length === 0 || !('label' in list[0])) return;
216
215
 
@@ -106,7 +106,7 @@ var StyledOptgroupHeader = (0, _index.styled)('li', function (props) {
106
106
  var paddingX = props.$theme.sizing.scale300;
107
107
  var paddingY = props.$theme.sizing.scale200;
108
108
  return _objectSpread(_objectSpread({}, props.$theme.typography.font250), {}, {
109
- color: props.$theme.colors.colorPrimary,
109
+ color: props.$theme.colors.contentPrimary,
110
110
  paddingTop: paddingY,
111
111
  paddingBottom: paddingY,
112
112
  paddingRight: paddingX,
@@ -92,7 +92,7 @@ export const StyledOptgroupHeader = styled<{}>('li', (props) => {
92
92
  const paddingY = props.$theme.sizing.scale200;
93
93
  return {
94
94
  ...props.$theme.typography.font250,
95
- color: props.$theme.colors.colorPrimary,
95
+ color: props.$theme.colors.contentPrimary,
96
96
  paddingTop: paddingY,
97
97
  paddingBottom: paddingY,
98
98
  paddingRight: paddingX,
package/modal/index.d.ts CHANGED
@@ -32,22 +32,22 @@ export interface SharedStylePropsArg {
32
32
  $size?: SIZE[keyof SIZE];
33
33
  $role?: ROLE[keyof ROLE];
34
34
  $closeable?: boolean;
35
- $unstable_ModalBackdropScroll?: boolean;
36
35
  }
37
36
 
38
37
  export interface ModalOverrides {
39
38
  Root?: Override<SharedStylePropsArg>;
40
- Backdrop?: Override<SharedStylePropsArg>;
41
39
  Dialog?: Override<SharedStylePropsArg>;
42
40
  DialogContainer?: Override<SharedStylePropsArg>;
43
41
  Close?: Override<SharedStylePropsArg>;
44
42
  }
45
43
  export interface ModalProps {
46
44
  animate?: boolean;
47
- autofocus?: boolean;
48
45
  autoFocus?: boolean;
49
46
  focusLock?: boolean;
50
- returnFocus?: boolean | FocusOptions | ((returnTo: Element) => boolean | FocusOptions);
47
+ returnFocus?:
48
+ | boolean
49
+ | FocusOptions
50
+ | ((returnTo: Element) => boolean | FocusOptions);
51
51
  children?: React.ReactNode;
52
52
  closeable?: boolean;
53
53
  isOpen?: boolean;
@@ -56,7 +56,6 @@ export interface ModalProps {
56
56
  overrides?: ModalOverrides;
57
57
  role?: ROLE[keyof ROLE];
58
58
  size?: SIZE[keyof SIZE];
59
- unstable_ModalBackdropScroll?: boolean;
60
59
  }
61
60
  export interface ModalState {
62
61
  isVisible: boolean;
@@ -92,7 +91,6 @@ export class ModalButton extends React.Component<
92
91
  export class FocusOnce extends React.Component<{children: React.ReactNode}> {}
93
92
 
94
93
  export const StyledRoot: StyletronComponent<any>;
95
- export const StyledBackdrop: StyletronComponent<any>;
96
94
  export const StyledDialog: StyletronComponent<any>;
97
95
  export const StyledDialogContainer: StyletronComponent<any>;
98
96
  export const StyledClose: StyletronComponent<any>;
package/modal/index.js CHANGED
@@ -45,12 +45,6 @@ Object.defineProperty(exports, "StyledRoot", {
45
45
  return _styledComponents.Root;
46
46
  }
47
47
  });
48
- Object.defineProperty(exports, "StyledBackdrop", {
49
- enumerable: true,
50
- get: function get() {
51
- return _styledComponents.Backdrop;
52
- }
53
- });
54
48
  Object.defineProperty(exports, "StyledDialog", {
55
49
  enumerable: true,
56
50
  get: function get() {
@@ -11,7 +11,6 @@ export { default as FocusOnce } from './focus-once.js';
11
11
  export { SIZE, ROLE, CLOSE_SOURCE } from './constants.js';
12
12
  export {
13
13
  Root as StyledRoot,
14
- Backdrop as StyledBackdrop,
15
14
  Dialog as StyledDialog,
16
15
  DialogContainer as StyledDialogContainer,
17
16
  Close as StyledClose,
package/modal/modal.js CHANGED
@@ -87,11 +87,13 @@ var Modal = /*#__PURE__*/function (_React$Component) {
87
87
 
88
88
  _defineProperty(_assertThisInitialized(_this), "animateStartTimer", void 0);
89
89
 
90
+ _defineProperty(_assertThisInitialized(_this), "dialogContainerRef", /*#__PURE__*/React.createRef());
91
+
90
92
  _defineProperty(_assertThisInitialized(_this), "lastFocus", null);
91
93
 
92
94
  _defineProperty(_assertThisInitialized(_this), "lastMountNodeOverflowStyle", null);
93
95
 
94
- _defineProperty(_assertThisInitialized(_this), "_refs", {});
96
+ _defineProperty(_assertThisInitialized(_this), "rootRef", /*#__PURE__*/React.createRef());
95
97
 
96
98
  _defineProperty(_assertThisInitialized(_this), "state", {
97
99
  isVisible: false,
@@ -124,10 +126,7 @@ var Modal = /*#__PURE__*/function (_React$Component) {
124
126
  });
125
127
 
126
128
  _defineProperty(_assertThisInitialized(_this), "onDocumentClick", function (e) {
127
- if (e.target && e.target instanceof HTMLElement && ( // Handles modal closure when unstable_ModalBackdropScroll is set to true
128
- e.target.contains(_this.getRef('DialogContainer').current) || // Handles modal closure when unstable_ModalBackdropScroll is set to false
129
- // $FlowFixMe
130
- e.target.contains(_this.getRef('DeprecatedBackdrop').current))) {
129
+ if (e.target && e.target instanceof HTMLElement && e.target.contains(_this.dialogContainerRef.current)) {
131
130
  _this.onBackdropClick();
132
131
  }
133
132
  });
@@ -158,18 +157,10 @@ var Modal = /*#__PURE__*/function (_React$Component) {
158
157
  value: function componentDidMount() {
159
158
  this.setState({
160
159
  mounted: true
161
- }); // TODO(v11)
160
+ });
162
161
 
163
162
  if (process.env.NODE_ENV !== "production") {
164
- if (!this.props.unstable_ModalBackdropScroll) {
165
- console.warn("Consider setting 'unstable_ModalBackdropScroll' prop to true\n to prepare for the next major version upgrade. 'unstable_ModalBackdropScroll'\n prop will be removed in the next major version but implemented as the default behavior.");
166
- }
167
-
168
- if (this.props.overrides && this.props.overrides.Backdrop) {
169
- console.warn("Backdrop element will be removed in the next major version in favor of\n DialogContainer element that will have the backdrop styles and backdrop click handle.\n Consider setting 'unstable_ModalBackdropScroll' prop to true that will apply backdrop\n styles to DialogContainer enable modal scrolling while cursor in over the backdrop.\n Then pass backdrop overrides to DialogContainer instead. Tha will help you with\n the next major version upgrade.");
170
- } // $FlowFixMe: flow complains that this prop doesn't exist
171
-
172
-
163
+ // $FlowFixMe: flow complains that this prop doesn't exist
173
164
  if (this.props.closable) {
174
165
  console.warn('The property `closable` is not supported on the Modal. Did you mean `closeable`?');
175
166
  }
@@ -237,7 +228,7 @@ var Modal = /*#__PURE__*/function (_React$Component) {
237
228
 
238
229
  // Sometimes scroll starts past zero, possibly due to animation
239
230
  // Reset scroll to 0 (other libraries do this as well)
240
- var rootRef = this.getRef('Root').current;
231
+ var rootRef = this.rootRef.current;
241
232
 
242
233
  if (rootRef) {
243
234
  rootRef.scrollTop = 0;
@@ -277,8 +268,7 @@ var Modal = /*#__PURE__*/function (_React$Component) {
277
268
  isOpen = _this$props.isOpen,
278
269
  size = _this$props.size,
279
270
  role = _this$props.role,
280
- closeable = _this$props.closeable,
281
- unstable_ModalBackdropScroll = _this$props.unstable_ModalBackdropScroll;
271
+ closeable = _this$props.closeable;
282
272
  return {
283
273
  $animate: animate,
284
274
  $isVisible: this.state.isVisible,
@@ -286,7 +276,6 @@ var Modal = /*#__PURE__*/function (_React$Component) {
286
276
  $size: size,
287
277
  $role: role,
288
278
  $closeable: !!closeable,
289
- $unstable_ModalBackdropScroll: unstable_ModalBackdropScroll,
290
279
  $isFocusVisible: this.state.isFocusVisible
291
280
  };
292
281
  }
@@ -309,15 +298,6 @@ var Modal = /*#__PURE__*/function (_React$Component) {
309
298
  var children = this.props.children;
310
299
  return typeof children === 'function' ? children() : children;
311
300
  }
312
- }, {
313
- key: "getRef",
314
- value: function getRef(component) {
315
- if (!this._refs[component]) {
316
- this._refs[component] = /*#__PURE__*/React.createRef();
317
- }
318
-
319
- return this._refs[component];
320
- }
321
301
  }, {
322
302
  key: "renderModal",
323
303
  value: function renderModal() {
@@ -328,15 +308,12 @@ var Modal = /*#__PURE__*/function (_React$Component) {
328
308
  overrides = _this$props2$override === void 0 ? {} : _this$props2$override,
329
309
  closeable = _this$props2.closeable,
330
310
  role = _this$props2.role,
331
- unstable_ModalBackdropScroll = _this$props2.unstable_ModalBackdropScroll,
332
- autofocus = _this$props2.autofocus,
333
311
  autoFocus = _this$props2.autoFocus,
334
312
  focusLock = _this$props2.focusLock,
335
313
  returnFocus = _this$props2.returnFocus;
336
314
  var RootOverride = overrides.Root,
337
315
  DialogOverride = overrides.Dialog,
338
316
  DialogContainerOverride = overrides.DialogContainer,
339
- BackdropOverride = overrides.Backdrop,
340
317
  CloseOverride = overrides.Close;
341
318
 
342
319
  var _getOverrides = (0, _overrides.getOverrides)(RootOverride, _styledComponents.Root),
@@ -344,59 +321,42 @@ var Modal = /*#__PURE__*/function (_React$Component) {
344
321
  Root = _getOverrides2[0],
345
322
  rootProps = _getOverrides2[1];
346
323
 
347
- var _getOverrides3 = (0, _overrides.getOverrides)(BackdropOverride, _styledComponents.Backdrop),
324
+ var _getOverrides3 = (0, _overrides.getOverrides)(DialogContainerOverride, _styledComponents.DialogContainer),
348
325
  _getOverrides4 = _slicedToArray(_getOverrides3, 2),
349
- Backdrop = _getOverrides4[0],
350
- backdropProps = _getOverrides4[1];
326
+ DialogContainer = _getOverrides4[0],
327
+ dialogContainerProps = _getOverrides4[1];
351
328
 
352
- var _getOverrides5 = (0, _overrides.getOverrides)(DialogContainerOverride, _styledComponents.DialogContainer),
329
+ var _getOverrides5 = (0, _overrides.getOverrides)(DialogOverride, _styledComponents.Dialog),
353
330
  _getOverrides6 = _slicedToArray(_getOverrides5, 2),
354
- DialogContainer = _getOverrides6[0],
355
- dialogContainerProps = _getOverrides6[1];
331
+ Dialog = _getOverrides6[0],
332
+ dialogProps = _getOverrides6[1];
356
333
 
357
- var _getOverrides7 = (0, _overrides.getOverrides)(DialogOverride, _styledComponents.Dialog),
334
+ var _getOverrides7 = (0, _overrides.getOverrides)(CloseOverride, _styledComponents.Close),
358
335
  _getOverrides8 = _slicedToArray(_getOverrides7, 2),
359
- Dialog = _getOverrides8[0],
360
- dialogProps = _getOverrides8[1];
361
-
362
- var _getOverrides9 = (0, _overrides.getOverrides)(CloseOverride, _styledComponents.Close),
363
- _getOverrides10 = _slicedToArray(_getOverrides9, 2),
364
- Close = _getOverrides10[0],
365
- closeProps = _getOverrides10[1];
336
+ Close = _getOverrides8[0],
337
+ closeProps = _getOverrides8[1];
366
338
 
367
339
  var sharedProps = this.getSharedProps();
368
340
  var children = this.getChildren();
369
-
370
- if (autofocus === false && process.env.NODE_ENV !== "production") {
371
- console.warn("The prop \"autofocus\" is deprecated in favor of \"autoFocus\" to be consistent across the project.\n The property \"autofocus\" will be removed in a future major version.");
372
- } // Handles backdrop click when `unstable_ModalBackdropScroll` is set to true
373
-
374
-
375
- if (dialogContainerProps.ref) {
376
- this._refs.DialogContainer = dialogContainerProps.ref;
377
- }
378
-
379
- var dialogContainerConditionalProps = unstable_ModalBackdropScroll ? {
380
- ref: this.getRef('DialogContainer')
381
- } : {};
382
341
  return /*#__PURE__*/React.createElement(_index.LocaleContext.Consumer, null, function (locale) {
383
342
  return /*#__PURE__*/React.createElement(_reactFocusLock.default, {
384
343
  disabled: !focusLock // Allow focus to escape when UI is within an iframe
385
344
  ,
386
345
  crossFrame: false,
387
346
  returnFocus: returnFocus,
388
- autoFocus: autofocus !== null ? autofocus : autoFocus
347
+ autoFocus: autoFocus
389
348
  }, /*#__PURE__*/React.createElement(Root, _extends({
390
- "data-baseweb": "modal",
391
- ref: _this3.getRef('Root')
392
- }, sharedProps, rootProps), /*#__PURE__*/React.createElement(Backdrop, _extends({}, unstable_ModalBackdropScroll ? {} : {
393
- ref: _this3.getRef('DeprecatedBackdrop')
394
- }, sharedProps, backdropProps)), /*#__PURE__*/React.createElement(DialogContainer, _extends({}, dialogContainerConditionalProps, sharedProps, dialogContainerProps), /*#__PURE__*/React.createElement(Dialog, _extends({
349
+ "data-baseweb": "modal" // flowlint-next-line unclear-type:off
350
+ ,
351
+ ref: _this3.rootRef
352
+ }, sharedProps, rootProps), /*#__PURE__*/React.createElement(DialogContainer // flowlint-next-line unclear-type:off
353
+ , _extends({
354
+ ref: _this3.dialogContainerRef
355
+ }, sharedProps, dialogContainerProps), /*#__PURE__*/React.createElement(Dialog, _extends({
395
356
  tabIndex: -1,
396
357
  "aria-modal": true,
397
358
  "aria-label": "dialog",
398
- role: role,
399
- ref: _this3.getRef('Dialog')
359
+ role: role
400
360
  }, sharedProps, dialogProps), children, closeable ? /*#__PURE__*/React.createElement(Close, _extends({
401
361
  "aria-label": locale.modal.close,
402
362
  onClick: _this3.onCloseClick
@@ -432,8 +392,6 @@ var Modal = /*#__PURE__*/function (_React$Component) {
432
392
 
433
393
  _defineProperty(Modal, "defaultProps", {
434
394
  animate: true,
435
- // TODO(v11): remove
436
- autofocus: null,
437
395
  autoFocus: true,
438
396
  focusLock: true,
439
397
  returnFocus: true,
@@ -442,8 +400,7 @@ _defineProperty(Modal, "defaultProps", {
442
400
  isOpen: false,
443
401
  overrides: {},
444
402
  role: _constants.ROLE.dialog,
445
- size: _constants.SIZE.default,
446
- unstable_ModalBackdropScroll: false
403
+ size: _constants.SIZE.default
447
404
  });
448
405
 
449
406
  var _default = Modal;
@@ -16,27 +16,18 @@ import { Layer } from '../layer/index.js';
16
16
  import { SIZE, ROLE, CLOSE_SOURCE } from './constants.js';
17
17
  import {
18
18
  Root as StyledRoot,
19
- Backdrop as StyledBackdrop,
20
19
  Dialog as StyledDialog,
21
20
  DialogContainer as StyledDialogContainer,
22
21
  Close as StyledClose,
23
22
  } from './styled-components.js';
24
23
  import { CloseIcon } from './close-icon.js';
25
24
 
26
- import type {
27
- ModalPropsT,
28
- ModalStateT,
29
- SharedStylePropsArgT,
30
- CloseSourceT,
31
- ElementRefT,
32
- } from './types.js';
25
+ import type { ModalPropsT, ModalStateT, SharedStylePropsArgT, CloseSourceT } from './types.js';
33
26
  import { isFocusVisible, forkFocus, forkBlur } from '../utils/focusVisible.js';
34
27
 
35
28
  class Modal extends React.Component<ModalPropsT, ModalStateT> {
36
29
  static defaultProps: $Shape<ModalPropsT> = {
37
30
  animate: true,
38
- // TODO(v11): remove
39
- autofocus: null,
40
31
  autoFocus: true,
41
32
  focusLock: true,
42
33
  returnFocus: true,
@@ -46,14 +37,14 @@ class Modal extends React.Component<ModalPropsT, ModalStateT> {
46
37
  overrides: {},
47
38
  role: ROLE.dialog,
48
39
  size: SIZE.default,
49
- unstable_ModalBackdropScroll: false,
50
40
  };
51
41
 
52
42
  animateOutTimer: ?TimeoutID;
53
43
  animateStartTimer: ?AnimationFrameID;
44
+ dialogContainerRef = React.createRef<HTMLElement>();
54
45
  lastFocus: ?HTMLElement = null;
55
46
  lastMountNodeOverflowStyle: ?string = null;
56
- _refs: { [string]: ElementRefT } = {};
47
+ rootRef = React.createRef<HTMLElement>();
57
48
 
58
49
  state = {
59
50
  isVisible: false,
@@ -63,21 +54,7 @@ class Modal extends React.Component<ModalPropsT, ModalStateT> {
63
54
 
64
55
  componentDidMount() {
65
56
  this.setState({ mounted: true });
66
- // TODO(v11)
67
57
  if (__DEV__) {
68
- if (!this.props.unstable_ModalBackdropScroll) {
69
- console.warn(`Consider setting 'unstable_ModalBackdropScroll' prop to true
70
- to prepare for the next major version upgrade. 'unstable_ModalBackdropScroll'
71
- prop will be removed in the next major version but implemented as the default behavior.`);
72
- }
73
- if (this.props.overrides && this.props.overrides.Backdrop) {
74
- console.warn(`Backdrop element will be removed in the next major version in favor of
75
- DialogContainer element that will have the backdrop styles and backdrop click handle.
76
- Consider setting 'unstable_ModalBackdropScroll' prop to true that will apply backdrop
77
- styles to DialogContainer enable modal scrolling while cursor in over the backdrop.
78
- Then pass backdrop overrides to DialogContainer instead. Tha will help you with
79
- the next major version upgrade.`);
80
- }
81
58
  // $FlowFixMe: flow complains that this prop doesn't exist
82
59
  if (this.props.closable) {
83
60
  console.warn(
@@ -149,11 +126,7 @@ class Modal extends React.Component<ModalPropsT, ModalStateT> {
149
126
  if (
150
127
  e.target &&
151
128
  e.target instanceof HTMLElement &&
152
- // Handles modal closure when unstable_ModalBackdropScroll is set to true
153
- (e.target.contains(this.getRef('DialogContainer').current) ||
154
- // Handles modal closure when unstable_ModalBackdropScroll is set to false
155
- // $FlowFixMe
156
- e.target.contains(this.getRef('DeprecatedBackdrop').current))
129
+ e.target.contains(this.dialogContainerRef.current)
157
130
  ) {
158
131
  this.onBackdropClick();
159
132
  }
@@ -183,7 +156,7 @@ class Modal extends React.Component<ModalPropsT, ModalStateT> {
183
156
  didOpen() {
184
157
  // Sometimes scroll starts past zero, possibly due to animation
185
158
  // Reset scroll to 0 (other libraries do this as well)
186
- const rootRef = this.getRef('Root').current;
159
+ const rootRef = this.rootRef.current;
187
160
  if (rootRef) {
188
161
  rootRef.scrollTop = 0;
189
162
  }
@@ -220,7 +193,7 @@ class Modal extends React.Component<ModalPropsT, ModalStateT> {
220
193
  };
221
194
 
222
195
  getSharedProps(): $Diff<SharedStylePropsArgT, { children?: React.Node }> {
223
- const { animate, isOpen, size, role, closeable, unstable_ModalBackdropScroll } = this.props;
196
+ const { animate, isOpen, size, role, closeable } = this.props;
224
197
  return {
225
198
  $animate: animate,
226
199
  $isVisible: this.state.isVisible,
@@ -228,7 +201,6 @@ class Modal extends React.Component<ModalPropsT, ModalStateT> {
228
201
  $size: size,
229
202
  $role: role,
230
203
  $closeable: !!closeable,
231
- $unstable_ModalBackdropScroll: unstable_ModalBackdropScroll,
232
204
  $isFocusVisible: this.state.isFocusVisible,
233
205
  };
234
206
  }
@@ -248,35 +220,17 @@ class Modal extends React.Component<ModalPropsT, ModalStateT> {
248
220
  return typeof children === 'function' ? children() : children;
249
221
  }
250
222
 
251
- getRef(component: string): ElementRefT {
252
- if (!this._refs[component]) {
253
- this._refs[component] = React.createRef();
254
- }
255
- return this._refs[component];
256
- }
257
-
258
223
  renderModal() {
259
- const {
260
- overrides = {},
261
- closeable,
262
- role,
263
- unstable_ModalBackdropScroll,
264
- autofocus,
265
- autoFocus,
266
- focusLock,
267
- returnFocus,
268
- } = this.props;
224
+ const { overrides = {}, closeable, role, autoFocus, focusLock, returnFocus } = this.props;
269
225
 
270
226
  const {
271
227
  Root: RootOverride,
272
228
  Dialog: DialogOverride,
273
229
  DialogContainer: DialogContainerOverride,
274
- Backdrop: BackdropOverride,
275
230
  Close: CloseOverride,
276
231
  } = overrides;
277
232
 
278
233
  const [Root, rootProps] = getOverrides(RootOverride, StyledRoot);
279
- const [Backdrop, backdropProps] = getOverrides(BackdropOverride, StyledBackdrop);
280
234
  const [DialogContainer, dialogContainerProps] = getOverrides(
281
235
  DialogContainerOverride,
282
236
  StyledDialogContainer
@@ -287,23 +241,6 @@ class Modal extends React.Component<ModalPropsT, ModalStateT> {
287
241
  const sharedProps = this.getSharedProps();
288
242
  const children = this.getChildren();
289
243
 
290
- if (autofocus === false && __DEV__) {
291
- console.warn(
292
- `The prop "autofocus" is deprecated in favor of "autoFocus" to be consistent across the project.
293
- The property "autofocus" will be removed in a future major version.`
294
- );
295
- }
296
-
297
- // Handles backdrop click when `unstable_ModalBackdropScroll` is set to true
298
- if (dialogContainerProps.ref) {
299
- this._refs.DialogContainer = dialogContainerProps.ref;
300
- }
301
- const dialogContainerConditionalProps = unstable_ModalBackdropScroll
302
- ? {
303
- ref: this.getRef('DialogContainer'),
304
- }
305
- : {};
306
-
307
244
  return (
308
245
  <LocaleContext.Consumer>
309
246
  {(locale) => (
@@ -312,20 +249,18 @@ class Modal extends React.Component<ModalPropsT, ModalStateT> {
312
249
  // Allow focus to escape when UI is within an iframe
313
250
  crossFrame={false}
314
251
  returnFocus={returnFocus}
315
- autoFocus={autofocus !== null ? autofocus : autoFocus}
252
+ autoFocus={autoFocus}
316
253
  >
317
- <Root data-baseweb="modal" ref={this.getRef('Root')} {...sharedProps} {...rootProps}>
318
- <Backdrop
319
- {...(unstable_ModalBackdropScroll
320
- ? {}
321
- : {
322
- ref: this.getRef('DeprecatedBackdrop'),
323
- })}
324
- {...sharedProps}
325
- {...backdropProps}
326
- />
254
+ <Root
255
+ data-baseweb="modal"
256
+ // flowlint-next-line unclear-type:off
257
+ ref={(this.rootRef: any)}
258
+ {...sharedProps}
259
+ {...rootProps}
260
+ >
327
261
  <DialogContainer
328
- {...dialogContainerConditionalProps}
262
+ // flowlint-next-line unclear-type:off
263
+ ref={(this.dialogContainerRef: any)}
329
264
  {...sharedProps}
330
265
  {...dialogContainerProps}
331
266
  >
@@ -334,7 +269,6 @@ class Modal extends React.Component<ModalPropsT, ModalStateT> {
334
269
  aria-modal
335
270
  aria-label="dialog"
336
271
  role={role}
337
- ref={this.getRef('Dialog')}
338
272
  {...sharedProps}
339
273
  {...dialogProps}
340
274
  >