baseui 12.1.3 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1058) hide show
  1. package/a11y/a11y.js +6 -2
  2. package/a11y/types.d.ts +1 -1
  3. package/accordion/accordion.js +1 -0
  4. package/accordion/index.d.ts +1 -1
  5. package/accordion/locale.d.ts +1 -1
  6. package/accordion/panel.js +2 -1
  7. package/accordion/stateless-accordion.js +3 -1
  8. package/accordion/types.d.ts +18 -18
  9. package/app-nav-bar/app-nav-bar.js +9 -3
  10. package/app-nav-bar/index.d.ts +4 -4
  11. package/app-nav-bar/mobile-menu.js +4 -2
  12. package/app-nav-bar/styled-components.js +2 -35
  13. package/app-nav-bar/styled-components.js.flow +6 -36
  14. package/app-nav-bar/types.d.ts +6 -6
  15. package/app-nav-bar/user-menu.js +3 -2
  16. package/app-nav-bar/utils.d.ts +1 -1
  17. package/aspect-ratio-box/aspect-ratio-box-body.js +11 -7
  18. package/aspect-ratio-box/aspect-ratio-box.js +1 -0
  19. package/aspect-ratio-box/types.d.ts +1 -1
  20. package/avatar/avatar.js +3 -1
  21. package/avatar/styled-components.js +3 -1
  22. package/avatar/types.d.ts +6 -6
  23. package/badge/index.d.ts +8 -8
  24. package/badge/styled-components.js +8 -5
  25. package/badge/styled-components.js.flow +9 -4
  26. package/badge/types.d.ts +9 -9
  27. package/badge/utils.d.ts +1 -1
  28. package/banner/banner.js +26 -10
  29. package/banner/banner.js.flow +9 -4
  30. package/banner/index.d.ts +3 -3
  31. package/banner/styled-components.js +1 -1
  32. package/banner/types.d.ts +12 -11
  33. package/block/styled-components.js +21 -4
  34. package/block/types.d.ts +21 -21
  35. package/bottom-navigation/bottom-navigation.d.ts +4 -0
  36. package/bottom-navigation/bottom-navigation.js +170 -0
  37. package/bottom-navigation/index.d.ts +4 -0
  38. package/bottom-navigation/index.js +55 -0
  39. package/bottom-navigation/index.js.flow +72 -0
  40. package/bottom-navigation/nav-item.d.ts +3 -0
  41. package/bottom-navigation/nav-item.js +20 -0
  42. package/bottom-navigation/package.json +4 -0
  43. package/bottom-navigation/panel.d.ts +3 -0
  44. package/bottom-navigation/panel.js +53 -0
  45. package/bottom-navigation/selector.d.ts +3 -0
  46. package/bottom-navigation/selector.js +71 -0
  47. package/bottom-navigation/styled-components.d.ts +9 -0
  48. package/bottom-navigation/styled-components.js +105 -0
  49. package/bottom-navigation/types.d.ts +45 -0
  50. package/bottom-navigation/types.js +5 -0
  51. package/breadcrumbs/breadcrumbs.js +6 -2
  52. package/breadcrumbs/locale.d.ts +1 -1
  53. package/breadcrumbs/types.d.ts +2 -2
  54. package/button/button-internals.js +13 -0
  55. package/button/button.d.ts +2 -2
  56. package/button/button.js +3 -8
  57. package/button/index.d.ts +1 -1
  58. package/button/styled-components.js +11 -6
  59. package/button/types.d.ts +4 -4
  60. package/button-dock/button-dock.d.ts +4 -0
  61. package/button-dock/button-dock.js +63 -0
  62. package/button-dock/index.d.ts +3 -0
  63. package/button-dock/index.js +46 -0
  64. package/button-dock/index.js.flow +37 -0
  65. package/button-dock/package.json +4 -0
  66. package/button-dock/styled-components.d.ts +5 -0
  67. package/button-dock/styled-components.js +63 -0
  68. package/button-dock/types.d.ts +14 -0
  69. package/button-dock/types.js +5 -0
  70. package/button-docked/button-docked.d.ts +4 -0
  71. package/button-docked/button-docked.js +63 -0
  72. package/button-docked/index.d.ts +3 -0
  73. package/button-docked/index.js +46 -0
  74. package/button-docked/index.js.flow +37 -0
  75. package/button-docked/package.json +4 -0
  76. package/button-docked/styled-components.d.ts +5 -0
  77. package/button-docked/styled-components.js +62 -0
  78. package/button-docked/types.d.ts +14 -0
  79. package/button-docked/types.js +5 -0
  80. package/button-group/button-group.js +5 -0
  81. package/button-group/locale.d.ts +1 -1
  82. package/button-group/stateful-container.d.ts +1 -1
  83. package/button-group/stateful-container.js +3 -0
  84. package/button-group/types.d.ts +11 -11
  85. package/button-timed/button-timed.d.ts +4 -0
  86. package/button-timed/button-timed.js +125 -0
  87. package/button-timed/index.d.ts +5 -0
  88. package/button-timed/index.js +78 -0
  89. package/button-timed/index.js.flow +57 -0
  90. package/button-timed/package.json +4 -0
  91. package/button-timed/styled-components.d.ts +5 -0
  92. package/button-timed/styled-components.js +59 -0
  93. package/button-timed/types.d.ts +12 -0
  94. package/button-timed/types.js +5 -0
  95. package/button-timed/utils.d.ts +1 -0
  96. package/button-timed/utils.js +30 -0
  97. package/card/card.js +4 -2
  98. package/card/card.js.flow +1 -1
  99. package/card/types.d.ts +4 -4
  100. package/card/types.js.flow +1 -1
  101. package/checkbox/checkbox.d.ts +2 -0
  102. package/checkbox/checkbox.js +36 -16
  103. package/checkbox/checkbox.js.flow +1 -4
  104. package/checkbox/styled-components.js +11 -5
  105. package/checkbox/types.d.ts +15 -17
  106. package/checkbox/types.js.flow +2 -2
  107. package/combobox/combobox.js +20 -20
  108. package/combobox/combobox.js.flow +8 -3
  109. package/combobox/index.d.ts +1 -1
  110. package/combobox/styled-components.js +3 -1
  111. package/combobox/types.d.ts +5 -3
  112. package/combobox/types.js.flow +2 -0
  113. package/data-table/column-anchor.d.ts +5 -5
  114. package/data-table/column-anchor.js +3 -1
  115. package/data-table/column-boolean.d.ts +3 -3
  116. package/data-table/column-boolean.js +4 -2
  117. package/data-table/column-categorical.d.ts +4 -4
  118. package/data-table/column-categorical.js +8 -3
  119. package/data-table/column-custom.d.ts +1 -1
  120. package/data-table/column-datetime.d.ts +4 -4
  121. package/data-table/column-datetime.js +22 -6
  122. package/data-table/column-numerical.d.ts +4 -4
  123. package/data-table/column-numerical.js +12 -6
  124. package/data-table/column-row-index.d.ts +3 -3
  125. package/data-table/column-row-index.js +2 -1
  126. package/data-table/column-string.d.ts +3 -3
  127. package/data-table/column-string.js +3 -1
  128. package/data-table/column.js +2 -0
  129. package/data-table/data-table.js +41 -22
  130. package/data-table/data-table.js.flow +2 -2
  131. package/data-table/filter-menu.d.ts +1 -1
  132. package/data-table/filter-menu.js +18 -6
  133. package/data-table/filter-shell.d.ts +2 -2
  134. package/data-table/header-cell.d.ts +1 -1
  135. package/data-table/header-cell.js +2 -0
  136. package/data-table/index.d.ts +5 -5
  137. package/data-table/locale.d.ts +5 -1
  138. package/data-table/locale.js +3 -1
  139. package/data-table/locale.js.flow +4 -1
  140. package/data-table/measure-column-widths.d.ts +1 -1
  141. package/data-table/measure-column-widths.js +23 -22
  142. package/data-table/measure-column-widths.js.flow +1 -2
  143. package/data-table/stateful-container.js +52 -37
  144. package/data-table/stateful-data-table.js +18 -10
  145. package/data-table/text-search.js +1 -0
  146. package/data-table/types.d.ts +17 -14
  147. package/data-table/types.js.flow +2 -0
  148. package/datepicker/calendar-header.js +63 -20
  149. package/datepicker/calendar-header.js.flow +9 -7
  150. package/datepicker/calendar.d.ts +1 -0
  151. package/datepicker/calendar.js +94 -20
  152. package/datepicker/calendar.js.flow +56 -1
  153. package/datepicker/datepicker.d.ts +2 -1
  154. package/datepicker/datepicker.js +34 -12
  155. package/datepicker/day.js +10 -3
  156. package/datepicker/index.d.ts +1 -1
  157. package/datepicker/index.js.flow +1 -0
  158. package/datepicker/locale.d.ts +1 -1
  159. package/datepicker/locale.js +1 -1
  160. package/datepicker/month.js +14 -1
  161. package/datepicker/stateful-calendar.d.ts +1 -1
  162. package/datepicker/stateful-container.d.ts +2 -2
  163. package/datepicker/stateful-container.js +3 -2
  164. package/datepicker/stateful-datepicker.d.ts +1 -1
  165. package/datepicker/styled-components.d.ts +6 -2
  166. package/datepicker/styled-components.js +84 -49
  167. package/datepicker/types.d.ts +35 -22
  168. package/datepicker/types.js.flow +13 -0
  169. package/datepicker/utils/calendar-header-helpers.d.ts +2 -2
  170. package/datepicker/utils/date-helpers.js +3 -2
  171. package/datepicker/utils/day-state.js +6 -2
  172. package/datepicker/utils/index.d.ts +1 -1
  173. package/datepicker/utils/types.d.ts +7 -7
  174. package/datepicker/week.js +7 -3
  175. package/divider/types.d.ts +1 -1
  176. package/dnd-list/index.d.ts +1 -1
  177. package/dnd-list/list.js +2 -0
  178. package/dnd-list/stateful-list-container.js +4 -2
  179. package/dnd-list/styled-components.js +4 -2
  180. package/dnd-list/types.d.ts +8 -8
  181. package/drawer/drawer.d.ts +3 -3
  182. package/drawer/locale.d.ts +1 -1
  183. package/drawer/styled-components.js +14 -11
  184. package/drawer/types.d.ts +11 -11
  185. package/es/a11y/a11y.js +6 -2
  186. package/es/accordion/accordion.js +1 -0
  187. package/es/accordion/panel.js +2 -1
  188. package/es/accordion/stateless-accordion.js +3 -1
  189. package/es/app-nav-bar/app-nav-bar.js +8 -4
  190. package/es/app-nav-bar/mobile-menu.js +6 -3
  191. package/es/app-nav-bar/styled-components.js +5 -35
  192. package/es/app-nav-bar/user-menu.js +3 -2
  193. package/es/aspect-ratio-box/aspect-ratio-box-body.js +4 -1
  194. package/es/aspect-ratio-box/aspect-ratio-box.js +1 -0
  195. package/es/avatar/avatar.js +3 -1
  196. package/es/avatar/styled-components.js +3 -1
  197. package/es/badge/styled-components.js +8 -6
  198. package/es/banner/banner.js +26 -10
  199. package/es/banner/styled-components.js +1 -1
  200. package/es/block/styled-components.js +21 -4
  201. package/es/bottom-navigation/bottom-navigation.js +109 -0
  202. package/es/bottom-navigation/index.js +10 -0
  203. package/es/bottom-navigation/nav-item.js +12 -0
  204. package/es/bottom-navigation/panel.js +25 -0
  205. package/es/bottom-navigation/selector.js +34 -0
  206. package/es/bottom-navigation/styled-components.js +89 -0
  207. package/es/bottom-navigation/types.js +1 -0
  208. package/es/breadcrumbs/breadcrumbs.js +6 -2
  209. package/es/button/button-internals.js +13 -0
  210. package/es/button/button.js +7 -13
  211. package/es/button/styled-components.js +17 -6
  212. package/es/button-dock/button-dock.js +29 -0
  213. package/es/button-dock/index.js +9 -0
  214. package/es/button-dock/styled-components.js +49 -0
  215. package/es/button-dock/types.js +1 -0
  216. package/es/button-docked/button-docked.js +29 -0
  217. package/es/button-docked/index.js +9 -0
  218. package/es/button-docked/styled-components.js +48 -0
  219. package/es/button-docked/types.js +1 -0
  220. package/es/button-group/button-group.js +5 -0
  221. package/es/button-group/stateful-container.js +3 -0
  222. package/es/button-timed/button-timed.js +83 -0
  223. package/es/button-timed/index.js +11 -0
  224. package/es/button-timed/styled-components.js +49 -0
  225. package/es/button-timed/types.js +1 -0
  226. package/es/button-timed/utils.js +21 -0
  227. package/es/card/card.js +3 -2
  228. package/es/checkbox/checkbox.js +37 -16
  229. package/es/checkbox/styled-components.js +11 -5
  230. package/es/combobox/combobox.js +19 -20
  231. package/es/combobox/styled-components.js +3 -1
  232. package/es/data-table/column-anchor.js +3 -1
  233. package/es/data-table/column-boolean.js +4 -2
  234. package/es/data-table/column-categorical.js +7 -3
  235. package/es/data-table/column-datetime.js +22 -6
  236. package/es/data-table/column-numerical.js +14 -7
  237. package/es/data-table/column-row-index.js +2 -1
  238. package/es/data-table/column-string.js +3 -1
  239. package/es/data-table/column.js +2 -0
  240. package/es/data-table/data-table.js +38 -19
  241. package/es/data-table/filter-menu.js +16 -6
  242. package/es/data-table/header-cell.js +2 -0
  243. package/es/data-table/locale.js +3 -1
  244. package/es/data-table/measure-column-widths.js +23 -22
  245. package/es/data-table/stateful-container.js +42 -22
  246. package/es/data-table/stateful-data-table.js +16 -8
  247. package/es/data-table/text-search.js +1 -0
  248. package/es/datepicker/calendar-header.js +63 -20
  249. package/es/datepicker/calendar.js +68 -12
  250. package/es/datepicker/datepicker.js +32 -12
  251. package/es/datepicker/day.js +10 -3
  252. package/es/datepicker/locale.js +1 -1
  253. package/es/datepicker/month.js +14 -1
  254. package/es/datepicker/stateful-container.js +3 -2
  255. package/es/datepicker/styled-components.js +85 -54
  256. package/es/datepicker/utils/date-helpers.js +3 -2
  257. package/es/datepicker/utils/day-state.js +6 -2
  258. package/es/datepicker/week.js +7 -3
  259. package/es/dnd-list/list.js +2 -0
  260. package/es/dnd-list/stateful-list-container.js +5 -2
  261. package/es/dnd-list/styled-components.js +4 -2
  262. package/es/drawer/styled-components.js +14 -11
  263. package/es/file-uploader/file-uploader.js +92 -82
  264. package/es/file-uploader/styled-components.js +5 -3
  265. package/es/flex-grid/flex-grid-item.js +7 -2
  266. package/es/flex-grid/flex-grid.js +2 -1
  267. package/es/form-control/form-control.js +10 -2
  268. package/es/helper/stateful-helper.js +1 -0
  269. package/es/helper/styled-components.js +9 -5
  270. package/es/helpers/overrides.js +1 -0
  271. package/es/helpers/react-helpers.js +1 -1
  272. package/es/helpers/responsive-helpers.js +25 -1
  273. package/es/icon/alert.js +1 -0
  274. package/es/icon/arrow-down.js +1 -0
  275. package/es/icon/arrow-left.js +1 -0
  276. package/es/icon/arrow-right.js +1 -0
  277. package/es/icon/arrow-up.js +1 -0
  278. package/es/icon/blank.js +1 -0
  279. package/es/icon/calendar.js +44 -0
  280. package/es/icon/check-indeterminate.js +1 -0
  281. package/es/icon/check.js +1 -0
  282. package/es/icon/chevron-down.js +1 -0
  283. package/es/icon/chevron-left.js +1 -0
  284. package/es/icon/chevron-right.js +1 -0
  285. package/es/icon/chevron-up.js +1 -0
  286. package/es/icon/delete-alt.js +1 -0
  287. package/es/icon/delete.js +1 -0
  288. package/es/icon/filter.js +1 -0
  289. package/es/icon/grab.js +1 -0
  290. package/es/icon/hide.js +1 -0
  291. package/es/icon/icon-exports.js +1 -0
  292. package/es/icon/icon.js +1 -0
  293. package/es/icon/menu.js +1 -0
  294. package/es/icon/omit-dollar-prefixed-keys.js +1 -0
  295. package/es/icon/overflow.js +1 -0
  296. package/es/icon/plus.js +1 -0
  297. package/es/icon/search.js +1 -0
  298. package/es/icon/show.js +1 -0
  299. package/es/icon/spinner.js +1 -0
  300. package/es/icon/styled-components.js +4 -0
  301. package/es/icon/triangle-down.js +1 -0
  302. package/es/icon/triangle-left.js +1 -0
  303. package/es/icon/triangle-right.js +1 -0
  304. package/es/icon/triangle-up.js +1 -0
  305. package/es/icon/upload.js +1 -0
  306. package/es/input/base-input.js +34 -11
  307. package/es/input/input.js +13 -4
  308. package/es/input/masked-input.js +2 -1
  309. package/es/input/stateful-container.js +4 -1
  310. package/es/input/styled-components.js +31 -7
  311. package/es/input/utils.js +2 -0
  312. package/es/layer/layer.js +5 -1
  313. package/es/layer/tether.js +4 -1
  314. package/es/layout-grid/grid.js +1 -0
  315. package/es/layout-grid/index.js +2 -1
  316. package/es/layout-grid/styled-components.js +6 -3
  317. package/es/link/index.js +1 -0
  318. package/es/list/list-heading.js +21 -22
  319. package/es/list/list-item.js +5 -1
  320. package/es/list/styled-components.js +16 -3
  321. package/es/locale/es_AR.js +3 -1
  322. package/es/locale/index.js +10 -4
  323. package/es/locale/tr_TR.js +3 -1
  324. package/es/map-marker/calculate-offsets.js +20 -0
  325. package/es/map-marker/constants.js +116 -1
  326. package/es/map-marker/fixed-marker.js +2 -0
  327. package/es/map-marker/floating-marker.js +3 -1
  328. package/es/map-marker/floating-route-marker.js +72 -0
  329. package/es/map-marker/index.js +3 -1
  330. package/es/map-marker/location-puck.js +10 -5
  331. package/es/map-marker/pin-head.js +19 -10
  332. package/es/map-marker/styled-components.js +81 -6
  333. package/es/menu/menu.js +12 -4
  334. package/es/menu/nested-menus.js +9 -1
  335. package/es/menu/option-list.js +7 -4
  336. package/es/menu/option-profile.js +3 -3
  337. package/es/menu/stateful-container.js +8 -3
  338. package/es/menu/styled-components.js +5 -3
  339. package/es/message-card/message-card.js +26 -25
  340. package/es/message-card/styled-components.js +6 -1
  341. package/es/mobile-header/constants.js +9 -0
  342. package/es/mobile-header/index.js +9 -0
  343. package/es/mobile-header/mobile-header.js +110 -0
  344. package/es/mobile-header/styled-components.js +69 -0
  345. package/es/mobile-header/types.js +1 -0
  346. package/es/modal/modal-button.js +1 -0
  347. package/es/modal/modal.js +25 -19
  348. package/es/modal/styled-components.js +9 -2
  349. package/es/page-control/constants.js +17 -0
  350. package/es/page-control/index.js +9 -0
  351. package/es/page-control/page-control.js +114 -0
  352. package/es/page-control/styled-components.js +99 -0
  353. package/es/page-control/types.js +1 -0
  354. package/es/pagination/pagination.js +62 -56
  355. package/es/payment-card/payment-card.js +6 -2
  356. package/es/phone-input/base-country-picker.js +5 -2
  357. package/es/phone-input/country-picker.js +7 -0
  358. package/es/phone-input/country-select.js +1 -0
  359. package/es/phone-input/default-props.js +4 -0
  360. package/es/phone-input/flag.js +2 -1
  361. package/es/phone-input/phone-input-lite.js +2 -0
  362. package/es/phone-input/phone-input-next.js +2 -0
  363. package/es/phone-input/stateful-phone-input-container.js +1 -0
  364. package/es/pin-code/default-props.js +4 -0
  365. package/es/pin-code/pin-code.js +4 -2
  366. package/es/popover/popover.js +23 -6
  367. package/es/popover/stateful-popover.js +1 -0
  368. package/es/popover/utils.js +4 -1
  369. package/es/progress-bar/progressbar-rounded.js +27 -28
  370. package/es/progress-bar/progressbar.js +9 -3
  371. package/es/progress-bar/styled-components.js +4 -0
  372. package/es/progress-steps/progress-steps.js +1 -0
  373. package/es/radio/radio.js +5 -2
  374. package/es/radio/radiogroup.js +1 -0
  375. package/es/radio/styled-components.js +11 -5
  376. package/es/rating/emoticon-rating.js +16 -7
  377. package/es/rating/star-rating.js +16 -7
  378. package/es/rating/styled-components.js +2 -0
  379. package/es/select/default-props.js +10 -0
  380. package/es/select/dropdown.js +3 -1
  381. package/es/select/multi-value.js +1 -0
  382. package/es/select/select-component.js +60 -21
  383. package/es/select/stateful-select-container.js +1 -0
  384. package/es/select/styled-components.js +18 -7
  385. package/es/select/utils/default-filter-options.js +3 -1
  386. package/es/select/utils/index.js +3 -1
  387. package/es/sheet/action-button.js +44 -0
  388. package/es/sheet/index.js +9 -0
  389. package/es/sheet/sheet.js +100 -0
  390. package/es/sheet/styled-components.js +197 -0
  391. package/es/sheet/types.js +1 -0
  392. package/es/side-navigation/index.js +2 -1
  393. package/es/side-navigation/nav-item.js +2 -1
  394. package/es/side-navigation/nav.js +10 -3
  395. package/es/side-navigation/side-navigation-next.js +271 -0
  396. package/es/side-navigation/styled-components.js +4 -2
  397. package/es/skeleton/skeleton.js +2 -0
  398. package/es/skeleton/styled-components.js +1 -0
  399. package/es/slider/slider.js +2 -1
  400. package/es/snackbar/snackbar-context.js +29 -11
  401. package/es/snackbar/snackbar-element.js +4 -1
  402. package/es/snackbar/styled-components.js +1 -1
  403. package/es/spinner/styled-components.js +2 -0
  404. package/es/stepper/index.js +8 -0
  405. package/es/stepper/stepper.js +89 -0
  406. package/es/stepper/styled-components.js +19 -0
  407. package/es/stepper/types.js +1 -0
  408. package/es/styles/__mocks__/styled.js +6 -2
  409. package/es/styles/as-primary-export-hoc.js +2 -0
  410. package/es/styles/styled.js +2 -1
  411. package/es/system-banner/index.js +8 -0
  412. package/es/system-banner/styled-components.js +71 -0
  413. package/es/system-banner/system-banner.js +81 -0
  414. package/es/system-banner/types.js +1 -0
  415. package/es/table/styled-components.js +1 -0
  416. package/es/table/table.js +2 -0
  417. package/es/table-semantic/styled-components.js +8 -8
  418. package/es/table-semantic/table-builder.js +25 -22
  419. package/es/table-semantic/table.js +2 -0
  420. package/es/tabs/stateful-tabs.js +2 -2
  421. package/es/tabs-motion/stateful-tabs.js +1 -0
  422. package/es/tabs-motion/tab.js +1 -0
  423. package/es/tabs-motion/tabs.js +29 -6
  424. package/es/tag/styled-components.js +72 -2
  425. package/es/tag/tag.js +2 -0
  426. package/es/textarea/stateful-textarea.js +5 -1
  427. package/es/textarea/textarea.js +4 -2
  428. package/es/themes/dark-theme/color-component-tokens.js +2 -2
  429. package/es/themes/dark-theme/color-semantic-tokens.js +12 -4
  430. package/es/themes/light-theme/color-semantic-tokens.js +12 -4
  431. package/es/timepicker/timepicker.js +10 -4
  432. package/es/timezonepicker/timezone-picker.js +3 -1
  433. package/es/toast/toast.js +13 -5
  434. package/es/toast/toaster.js +24 -3
  435. package/es/tree-view/tree-label-interactable.js +4 -2
  436. package/es/tree-view/tree-view.js +5 -2
  437. package/es/tree-view/utils.js +43 -15
  438. package/es/utils/deep-merge.js +5 -0
  439. package/es/utils/focusVisible.js +17 -7
  440. package/esm/a11y/a11y.js +6 -2
  441. package/esm/accordion/accordion.js +1 -0
  442. package/esm/accordion/panel.js +2 -1
  443. package/esm/accordion/stateless-accordion.js +3 -1
  444. package/esm/app-nav-bar/app-nav-bar.js +9 -4
  445. package/esm/app-nav-bar/mobile-menu.js +4 -2
  446. package/esm/app-nav-bar/styled-components.js +3 -36
  447. package/esm/app-nav-bar/user-menu.js +3 -2
  448. package/esm/aspect-ratio-box/aspect-ratio-box-body.js +11 -7
  449. package/esm/aspect-ratio-box/aspect-ratio-box.js +1 -0
  450. package/esm/avatar/avatar.js +3 -1
  451. package/esm/avatar/styled-components.js +3 -1
  452. package/esm/badge/styled-components.js +8 -6
  453. package/esm/banner/banner.js +26 -10
  454. package/esm/banner/styled-components.js +1 -1
  455. package/esm/block/styled-components.js +21 -4
  456. package/esm/bottom-navigation/bottom-navigation.js +154 -0
  457. package/esm/bottom-navigation/index.js +10 -0
  458. package/esm/bottom-navigation/nav-item.js +12 -0
  459. package/esm/bottom-navigation/panel.js +42 -0
  460. package/esm/bottom-navigation/selector.js +58 -0
  461. package/esm/bottom-navigation/styled-components.js +96 -0
  462. package/esm/bottom-navigation/types.js +1 -0
  463. package/esm/breadcrumbs/breadcrumbs.js +6 -2
  464. package/esm/button/button-internals.js +13 -0
  465. package/esm/button/button.js +3 -8
  466. package/esm/button/styled-components.js +11 -6
  467. package/esm/button-dock/button-dock.js +53 -0
  468. package/esm/button-dock/index.js +9 -0
  469. package/esm/button-dock/styled-components.js +52 -0
  470. package/esm/button-dock/types.js +1 -0
  471. package/esm/button-docked/button-docked.js +53 -0
  472. package/esm/button-docked/index.js +9 -0
  473. package/esm/button-docked/styled-components.js +51 -0
  474. package/esm/button-docked/types.js +1 -0
  475. package/esm/button-group/button-group.js +5 -0
  476. package/esm/button-group/stateful-container.js +3 -0
  477. package/esm/button-timed/button-timed.js +113 -0
  478. package/esm/button-timed/index.js +11 -0
  479. package/esm/button-timed/styled-components.js +53 -0
  480. package/esm/button-timed/types.js +1 -0
  481. package/esm/button-timed/utils.js +21 -0
  482. package/esm/card/card.js +3 -2
  483. package/esm/checkbox/checkbox.js +36 -16
  484. package/esm/checkbox/styled-components.js +11 -5
  485. package/esm/combobox/combobox.js +20 -20
  486. package/esm/combobox/styled-components.js +3 -1
  487. package/esm/data-table/column-anchor.js +3 -1
  488. package/esm/data-table/column-boolean.js +4 -2
  489. package/esm/data-table/column-categorical.js +7 -3
  490. package/esm/data-table/column-datetime.js +22 -6
  491. package/esm/data-table/column-numerical.js +14 -7
  492. package/esm/data-table/column-row-index.js +2 -1
  493. package/esm/data-table/column-string.js +3 -1
  494. package/esm/data-table/column.js +2 -0
  495. package/esm/data-table/data-table.js +43 -23
  496. package/esm/data-table/filter-menu.js +16 -6
  497. package/esm/data-table/header-cell.js +2 -0
  498. package/esm/data-table/locale.js +3 -1
  499. package/esm/data-table/measure-column-widths.js +23 -22
  500. package/esm/data-table/stateful-container.js +52 -37
  501. package/esm/data-table/stateful-data-table.js +18 -10
  502. package/esm/data-table/text-search.js +1 -0
  503. package/esm/datepicker/calendar-header.js +63 -20
  504. package/esm/datepicker/calendar.js +92 -20
  505. package/esm/datepicker/datepicker.js +34 -12
  506. package/esm/datepicker/day.js +10 -3
  507. package/esm/datepicker/locale.js +1 -1
  508. package/esm/datepicker/month.js +14 -1
  509. package/esm/datepicker/stateful-container.js +3 -2
  510. package/esm/datepicker/styled-components.js +84 -49
  511. package/esm/datepicker/utils/date-helpers.js +3 -2
  512. package/esm/datepicker/utils/day-state.js +6 -2
  513. package/esm/datepicker/week.js +7 -3
  514. package/esm/dnd-list/list.js +2 -0
  515. package/esm/dnd-list/stateful-list-container.js +4 -2
  516. package/esm/dnd-list/styled-components.js +4 -2
  517. package/esm/drawer/styled-components.js +14 -11
  518. package/esm/file-uploader/file-uploader.js +97 -87
  519. package/esm/file-uploader/styled-components.js +5 -3
  520. package/esm/flex-grid/flex-grid-item.js +7 -2
  521. package/esm/flex-grid/flex-grid.js +2 -1
  522. package/esm/form-control/form-control.js +5 -2
  523. package/esm/helper/stateful-helper.js +1 -0
  524. package/esm/helper/styled-components.js +9 -5
  525. package/esm/helpers/overrides.js +1 -0
  526. package/esm/helpers/react-helpers.js +1 -1
  527. package/esm/helpers/responsive-helpers.js +54 -1
  528. package/esm/icon/alert.js +1 -0
  529. package/esm/icon/arrow-down.js +1 -0
  530. package/esm/icon/arrow-left.js +1 -0
  531. package/esm/icon/arrow-right.js +1 -0
  532. package/esm/icon/arrow-up.js +1 -0
  533. package/esm/icon/blank.js +1 -0
  534. package/esm/icon/calendar.js +66 -0
  535. package/esm/icon/check-indeterminate.js +1 -0
  536. package/esm/icon/check.js +1 -0
  537. package/esm/icon/chevron-down.js +1 -0
  538. package/esm/icon/chevron-left.js +1 -0
  539. package/esm/icon/chevron-right.js +1 -0
  540. package/esm/icon/chevron-up.js +1 -0
  541. package/esm/icon/delete-alt.js +1 -0
  542. package/esm/icon/delete.js +1 -0
  543. package/esm/icon/filter.js +1 -0
  544. package/esm/icon/grab.js +1 -0
  545. package/esm/icon/hide.js +1 -0
  546. package/esm/icon/icon-exports.js +1 -0
  547. package/esm/icon/icon.js +1 -0
  548. package/esm/icon/menu.js +1 -0
  549. package/esm/icon/omit-dollar-prefixed-keys.js +1 -0
  550. package/esm/icon/overflow.js +1 -0
  551. package/esm/icon/plus.js +1 -0
  552. package/esm/icon/search.js +1 -0
  553. package/esm/icon/show.js +1 -0
  554. package/esm/icon/spinner.js +1 -0
  555. package/esm/icon/styled-components.js +4 -0
  556. package/esm/icon/triangle-down.js +1 -0
  557. package/esm/icon/triangle-left.js +1 -0
  558. package/esm/icon/triangle-right.js +1 -0
  559. package/esm/icon/triangle-up.js +1 -0
  560. package/esm/icon/upload.js +1 -0
  561. package/esm/input/base-input.js +31 -15
  562. package/esm/input/input.js +10 -4
  563. package/esm/input/masked-input.js +2 -1
  564. package/esm/input/stateful-container.js +4 -1
  565. package/esm/input/styled-components.js +32 -8
  566. package/esm/input/utils.js +2 -0
  567. package/esm/layer/layer.js +6 -2
  568. package/esm/layer/tether.js +4 -1
  569. package/esm/layout-grid/grid.js +1 -0
  570. package/esm/layout-grid/index.js +2 -1
  571. package/esm/layout-grid/styled-components.js +6 -3
  572. package/esm/link/index.js +1 -0
  573. package/esm/list/list-heading.js +21 -22
  574. package/esm/list/list-item.js +5 -1
  575. package/esm/list/styled-components.js +17 -4
  576. package/esm/locale/es_AR.js +3 -1
  577. package/esm/locale/index.js +10 -4
  578. package/esm/locale/tr_TR.js +3 -1
  579. package/esm/map-marker/calculate-offsets.js +32 -0
  580. package/esm/map-marker/constants.js +84 -3
  581. package/esm/map-marker/floating-marker.js +3 -1
  582. package/esm/map-marker/floating-route-marker.js +118 -0
  583. package/esm/map-marker/index.js +3 -1
  584. package/esm/map-marker/location-puck.js +9 -5
  585. package/esm/map-marker/pin-head.js +46 -24
  586. package/esm/map-marker/styled-components.js +84 -15
  587. package/esm/menu/menu.js +12 -4
  588. package/esm/menu/nested-menus.js +9 -1
  589. package/esm/menu/option-list.js +8 -4
  590. package/esm/menu/option-profile.js +3 -3
  591. package/esm/menu/stateful-container.js +8 -3
  592. package/esm/menu/styled-components.js +5 -3
  593. package/esm/message-card/message-card.js +31 -30
  594. package/esm/message-card/styled-components.js +6 -1
  595. package/esm/mobile-header/constants.js +9 -0
  596. package/esm/mobile-header/index.js +9 -0
  597. package/esm/mobile-header/mobile-header.js +157 -0
  598. package/esm/mobile-header/styled-components.js +80 -0
  599. package/esm/mobile-header/types.js +1 -0
  600. package/esm/modal/modal-button.js +1 -0
  601. package/esm/modal/modal.js +25 -19
  602. package/esm/modal/styled-components.js +9 -2
  603. package/esm/page-control/constants.js +17 -0
  604. package/esm/page-control/index.js +9 -0
  605. package/esm/page-control/page-control.js +139 -0
  606. package/esm/page-control/styled-components.js +95 -0
  607. package/esm/page-control/types.js +1 -0
  608. package/esm/pagination/pagination.js +65 -59
  609. package/esm/payment-card/payment-card.js +6 -2
  610. package/esm/phone-input/base-country-picker.js +5 -2
  611. package/esm/phone-input/country-picker.js +4 -0
  612. package/esm/phone-input/country-select.js +1 -0
  613. package/esm/phone-input/default-props.js +4 -0
  614. package/esm/phone-input/flag.js +2 -1
  615. package/esm/phone-input/phone-input-lite.js +2 -0
  616. package/esm/phone-input/phone-input-next.js +2 -0
  617. package/esm/phone-input/stateful-phone-input-container.js +1 -0
  618. package/esm/pin-code/default-props.js +4 -0
  619. package/esm/pin-code/pin-code.js +4 -2
  620. package/esm/popover/popover.js +23 -6
  621. package/esm/popover/stateful-popover.js +1 -0
  622. package/esm/popover/utils.js +3 -1
  623. package/esm/progress-bar/progressbar-rounded.js +27 -28
  624. package/esm/progress-bar/progressbar.js +9 -3
  625. package/esm/progress-bar/styled-components.js +2 -0
  626. package/esm/progress-steps/progress-steps.js +1 -0
  627. package/esm/radio/radio.js +5 -2
  628. package/esm/radio/radiogroup.js +1 -0
  629. package/esm/radio/styled-components.js +11 -5
  630. package/esm/rating/emoticon-rating.js +16 -7
  631. package/esm/rating/star-rating.js +16 -7
  632. package/esm/rating/styled-components.js +2 -0
  633. package/esm/select/default-props.js +10 -0
  634. package/esm/select/dropdown.js +3 -1
  635. package/esm/select/multi-value.js +1 -0
  636. package/esm/select/select-component.js +59 -22
  637. package/esm/select/stateful-select-container.js +1 -0
  638. package/esm/select/styled-components.js +18 -7
  639. package/esm/select/utils/default-filter-options.js +3 -1
  640. package/esm/select/utils/index.js +3 -1
  641. package/esm/sheet/action-button.js +54 -0
  642. package/esm/sheet/index.js +9 -0
  643. package/esm/sheet/sheet.js +166 -0
  644. package/esm/sheet/styled-components.js +201 -0
  645. package/esm/sheet/types.js +1 -0
  646. package/esm/side-navigation/index.js +2 -1
  647. package/esm/side-navigation/nav-item.js +2 -1
  648. package/esm/side-navigation/nav.js +11 -4
  649. package/esm/side-navigation/side-navigation-next.js +359 -0
  650. package/esm/side-navigation/styled-components.js +4 -2
  651. package/esm/skeleton/skeleton.js +2 -0
  652. package/esm/skeleton/styled-components.js +1 -0
  653. package/esm/slider/slider.js +3 -1
  654. package/esm/snackbar/snackbar-context.js +27 -11
  655. package/esm/snackbar/snackbar-element.js +4 -1
  656. package/esm/snackbar/styled-components.js +1 -1
  657. package/esm/spinner/styled-components.js +2 -0
  658. package/esm/stepper/index.js +8 -0
  659. package/esm/stepper/stepper.js +145 -0
  660. package/esm/stepper/styled-components.js +20 -0
  661. package/esm/stepper/types.js +1 -0
  662. package/esm/styles/__mocks__/styled.js +9 -4
  663. package/esm/styles/as-primary-export-hoc.js +2 -0
  664. package/esm/styles/styled.js +2 -1
  665. package/esm/system-banner/index.js +8 -0
  666. package/esm/system-banner/styled-components.js +82 -0
  667. package/esm/system-banner/system-banner.js +93 -0
  668. package/esm/system-banner/types.js +1 -0
  669. package/esm/table/styled-components.js +1 -0
  670. package/esm/table/table.js +2 -0
  671. package/esm/table-semantic/styled-components.js +8 -8
  672. package/esm/table-semantic/table-builder.js +25 -22
  673. package/esm/table-semantic/table.js +2 -0
  674. package/esm/tabs/stateful-tabs.js +2 -2
  675. package/esm/tabs-motion/stateful-tabs.js +1 -0
  676. package/esm/tabs-motion/tab.js +1 -0
  677. package/esm/tabs-motion/tabs.js +26 -18
  678. package/esm/tag/styled-components.js +41 -2
  679. package/esm/tag/tag.js +2 -0
  680. package/esm/textarea/stateful-textarea.js +7 -3
  681. package/esm/textarea/textarea.js +4 -2
  682. package/esm/themes/dark-theme/color-component-tokens.js +2 -2
  683. package/esm/themes/dark-theme/color-semantic-tokens.js +12 -4
  684. package/esm/themes/light-theme/color-semantic-tokens.js +12 -4
  685. package/esm/timepicker/timepicker.js +11 -4
  686. package/esm/timezonepicker/timezone-picker.js +3 -1
  687. package/esm/toast/toast.js +10 -5
  688. package/esm/toast/toaster.js +21 -3
  689. package/esm/tree-view/tree-label-interactable.js +4 -2
  690. package/esm/tree-view/tree-view.js +5 -2
  691. package/esm/tree-view/utils.js +43 -15
  692. package/esm/utils/deep-merge.js +5 -0
  693. package/esm/utils/focusVisible.js +17 -7
  694. package/file-uploader/file-uploader.js +97 -87
  695. package/file-uploader/locale.d.ts +1 -1
  696. package/file-uploader/styled-components.js +5 -3
  697. package/file-uploader/styled-components.js.flow +1 -1
  698. package/file-uploader/types.d.ts +7 -30
  699. package/flex-grid/flex-grid-item.js +7 -2
  700. package/flex-grid/flex-grid.js +2 -1
  701. package/flex-grid/types.d.ts +2 -2
  702. package/form-control/form-control.js +5 -2
  703. package/form-control/types.d.ts +4 -4
  704. package/header-navigation/types.d.ts +4 -3
  705. package/header-navigation/types.js.flow +2 -0
  706. package/heading/types.d.ts +2 -2
  707. package/helper/index.d.ts +1 -1
  708. package/helper/stateful-helper.js +1 -0
  709. package/helper/styled-components.js +9 -5
  710. package/helper/types.d.ts +1 -1
  711. package/helpers/overrides.d.ts +7 -7
  712. package/helpers/overrides.js +1 -0
  713. package/helpers/react-helpers.d.ts +1 -1
  714. package/helpers/react-helpers.js +1 -1
  715. package/helpers/responsive-helpers.d.ts +5 -1
  716. package/helpers/responsive-helpers.js +62 -3
  717. package/helpers/responsive-helpers.js.flow +27 -1
  718. package/helpers/types.d.ts +9 -2
  719. package/helpers/types.js.flow +11 -0
  720. package/icon/alert.js +1 -0
  721. package/icon/arrow-down.js +1 -0
  722. package/icon/arrow-left.js +1 -0
  723. package/icon/arrow-right.js +1 -0
  724. package/icon/arrow-up.js +1 -0
  725. package/icon/blank.js +1 -0
  726. package/icon/calendar.d.ts +9 -0
  727. package/icon/calendar.js +78 -0
  728. package/icon/calendar.js.flow +47 -0
  729. package/icon/check-indeterminate.js +1 -0
  730. package/icon/check.js +1 -0
  731. package/icon/chevron-down.js +1 -0
  732. package/icon/chevron-left.js +1 -0
  733. package/icon/chevron-right.js +1 -0
  734. package/icon/chevron-up.js +1 -0
  735. package/icon/delete-alt.js +1 -0
  736. package/icon/delete.js +1 -0
  737. package/icon/filter.js +1 -0
  738. package/icon/grab.js +1 -0
  739. package/icon/hide.js +1 -0
  740. package/icon/icon-exports.d.ts +1 -0
  741. package/icon/icon-exports.js +8 -0
  742. package/icon/icon-exports.js.flow +1 -0
  743. package/icon/icon.js +1 -0
  744. package/icon/index.d.ts +1 -1
  745. package/icon/menu.js +1 -0
  746. package/icon/omit-dollar-prefixed-keys.js +1 -0
  747. package/icon/overflow.js +1 -0
  748. package/icon/plus.js +1 -0
  749. package/icon/search.js +1 -0
  750. package/icon/show.js +1 -0
  751. package/icon/spinner.js +1 -0
  752. package/icon/styled-components.js +4 -0
  753. package/icon/triangle-down.js +1 -0
  754. package/icon/triangle-left.js +1 -0
  755. package/icon/triangle-right.js +1 -0
  756. package/icon/triangle-up.js +1 -0
  757. package/icon/types.d.ts +5 -5
  758. package/icon/upload.js +1 -0
  759. package/index.d.ts +3 -3
  760. package/input/base-input.js +31 -15
  761. package/input/input.js +10 -4
  762. package/input/stateful-container.js +4 -1
  763. package/input/styled-components.js +32 -8
  764. package/input/types.d.ts +17 -17
  765. package/input/utils.js +2 -0
  766. package/layer/layer.js +6 -2
  767. package/layer/layers-manager.d.ts +8 -8
  768. package/layer/tether.d.ts +1 -1
  769. package/layer/tether.js +4 -1
  770. package/layer/tether.js.flow +1 -1
  771. package/layer/types.d.ts +22 -22
  772. package/layout-grid/grid.js +1 -0
  773. package/layout-grid/index.d.ts +1 -1
  774. package/layout-grid/index.js +2 -1
  775. package/layout-grid/index.js.flow +1 -0
  776. package/layout-grid/styled-components.js +6 -3
  777. package/layout-grid/types.d.ts +14 -14
  778. package/layout-grid/types.js.flow +7 -5
  779. package/link/index.d.ts +1 -1
  780. package/link/index.js +1 -0
  781. package/list/index.d.ts +11 -11
  782. package/list/list-heading.js +21 -22
  783. package/list/list-item.js +5 -1
  784. package/list/list-item.js.flow +5 -0
  785. package/list/styled-components.js +17 -4
  786. package/list/styled-components.js.flow +30 -14
  787. package/list/types.d.ts +15 -13
  788. package/list/types.js.flow +2 -0
  789. package/locale/es_AR.js +3 -1
  790. package/locale/index.d.ts +17 -14
  791. package/locale/index.js +9 -3
  792. package/locale/tr_TR.js +3 -1
  793. package/locale/types.d.ts +1 -1
  794. package/map-marker/calculate-offsets.d.ts +2 -0
  795. package/map-marker/calculate-offsets.js +36 -0
  796. package/map-marker/calculate-offsets.js.flow +47 -0
  797. package/map-marker/constants.d.ts +102 -0
  798. package/map-marker/constants.js +90 -4
  799. package/map-marker/constants.js.flow +67 -0
  800. package/map-marker/fixed-marker.js.flow +3 -127
  801. package/map-marker/floating-marker.d.ts +1 -1
  802. package/map-marker/floating-marker.js +3 -0
  803. package/map-marker/floating-marker.js.flow +1 -91
  804. package/map-marker/floating-route-marker.d.ts +4 -0
  805. package/map-marker/floating-route-marker.js +132 -0
  806. package/map-marker/floating-route-marker.js.flow +18 -0
  807. package/map-marker/index.d.ts +30 -24
  808. package/map-marker/index.js +26 -1
  809. package/map-marker/index.js.flow +4 -0
  810. package/map-marker/location-puck.js +9 -4
  811. package/map-marker/pin-head.d.ts +1 -1
  812. package/map-marker/pin-head.js +45 -23
  813. package/map-marker/pin-head.js.flow +1 -155
  814. package/map-marker/styled-components.d.ts +23 -2
  815. package/map-marker/styled-components.js +90 -16
  816. package/map-marker/styled-components.js.flow +45 -2
  817. package/map-marker/types.d.ts +62 -31
  818. package/map-marker/types.js.flow +37 -2
  819. package/menu/index.d.ts +8 -8
  820. package/menu/locale.d.ts +1 -1
  821. package/menu/maybe-child-menu.d.ts +3 -2
  822. package/menu/menu.js +12 -4
  823. package/menu/nested-menus.d.ts +2 -2
  824. package/menu/nested-menus.js +9 -1
  825. package/menu/option-list.js +8 -4
  826. package/menu/option-profile.js +3 -3
  827. package/menu/stateful-container.js +8 -3
  828. package/menu/styled-components.d.ts +1 -1
  829. package/menu/styled-components.js +5 -3
  830. package/menu/types.d.ts +31 -31
  831. package/message-card/message-card.js +30 -29
  832. package/message-card/styled-components.js +6 -1
  833. package/message-card/types.d.ts +1 -1
  834. package/mobile-header/constants.d.ts +4 -0
  835. package/mobile-header/constants.js +17 -0
  836. package/mobile-header/index.d.ts +4 -0
  837. package/mobile-header/index.js +60 -0
  838. package/mobile-header/index.js.flow +54 -0
  839. package/mobile-header/mobile-header.d.ts +4 -0
  840. package/mobile-header/mobile-header.js +173 -0
  841. package/mobile-header/package.json +4 -0
  842. package/mobile-header/styled-components.d.ts +12 -0
  843. package/mobile-header/styled-components.js +88 -0
  844. package/mobile-header/types.d.ts +26 -0
  845. package/mobile-header/types.js +5 -0
  846. package/modal/focus-once.d.ts +1 -1
  847. package/modal/locale.d.ts +1 -1
  848. package/modal/modal-button.d.ts +3 -3
  849. package/modal/modal-button.js +1 -0
  850. package/modal/modal.d.ts +4 -4
  851. package/modal/modal.js +24 -18
  852. package/modal/modal.js.flow +24 -18
  853. package/modal/styled-components.d.ts +1 -0
  854. package/modal/styled-components.js +11 -3
  855. package/modal/styled-components.js.flow +4 -0
  856. package/modal/types.d.ts +15 -10
  857. package/modal/types.js.flow +5 -0
  858. package/overrides.js.flow +16 -0
  859. package/package.json +11 -10
  860. package/page-control/constants.d.ts +12 -0
  861. package/page-control/constants.js +26 -0
  862. package/page-control/index.d.ts +4 -0
  863. package/page-control/index.js +55 -0
  864. package/page-control/index.js.flow +53 -0
  865. package/page-control/package.json +4 -0
  866. package/page-control/page-control.d.ts +4 -0
  867. package/page-control/page-control.js +151 -0
  868. package/page-control/styled-components.d.ts +11 -0
  869. package/page-control/styled-components.js +101 -0
  870. package/page-control/types.d.ts +19 -0
  871. package/page-control/types.js +5 -0
  872. package/pagination/index.d.ts +2 -2
  873. package/pagination/locale.d.ts +1 -1
  874. package/pagination/pagination.d.ts +1 -1
  875. package/pagination/pagination.js +62 -57
  876. package/pagination/types.d.ts +9 -9
  877. package/payment-card/payment-card.js +6 -2
  878. package/payment-card/types.d.ts +3 -3
  879. package/phone-input/base-country-picker.js +5 -2
  880. package/phone-input/country-picker.js +4 -0
  881. package/phone-input/country-select.js +1 -0
  882. package/phone-input/default-props.js +4 -0
  883. package/phone-input/flag.d.ts +2 -2
  884. package/phone-input/flag.js +2 -1
  885. package/phone-input/phone-input-lite.js +2 -0
  886. package/phone-input/phone-input-next.js +2 -0
  887. package/phone-input/stateful-phone-input-container.js +1 -0
  888. package/phone-input/styled-components.d.ts +2 -2
  889. package/phone-input/types.d.ts +15 -15
  890. package/pin-code/default-props.js +4 -0
  891. package/pin-code/index.d.ts +1 -1
  892. package/pin-code/pin-code.js +4 -2
  893. package/pin-code/types.d.ts +9 -9
  894. package/popover/popover.js +23 -6
  895. package/popover/popover.js.flow +3 -3
  896. package/popover/stateful-container.d.ts +1 -1
  897. package/popover/stateful-popover.js +1 -0
  898. package/popover/types.d.ts +27 -27
  899. package/popover/types.js.flow +5 -4
  900. package/popover/utils.js +3 -1
  901. package/progress-bar/progressbar-rounded.js +27 -28
  902. package/progress-bar/progressbar.js +9 -3
  903. package/progress-bar/styled-components.js +2 -0
  904. package/progress-bar/types.d.ts +6 -6
  905. package/progress-steps/progress-steps.js +1 -0
  906. package/progress-steps/types.d.ts +8 -8
  907. package/progress-steps/types.js.flow +1 -1
  908. package/radio/radio.js +5 -2
  909. package/radio/radiogroup.js +1 -0
  910. package/radio/styled-components.js +11 -5
  911. package/radio/types.d.ts +15 -15
  912. package/rating/emoticon-rating.js +16 -7
  913. package/rating/star-rating.js +16 -7
  914. package/rating/styled-components.js +2 -0
  915. package/rating/types.d.ts +6 -6
  916. package/select/default-props.js +10 -0
  917. package/select/dropdown.d.ts +2 -2
  918. package/select/dropdown.js +3 -1
  919. package/select/index.d.ts +2 -2
  920. package/select/locale.d.ts +1 -1
  921. package/select/multi-value.js +1 -0
  922. package/select/select-component.d.ts +2 -2
  923. package/select/select-component.js +59 -22
  924. package/select/stateful-select-container.js +1 -0
  925. package/select/styled-components.js +18 -6
  926. package/select/types.d.ts +22 -22
  927. package/select/utils/default-filter-options.d.ts +1 -1
  928. package/select/utils/default-filter-options.js +3 -1
  929. package/select/utils/index.js +3 -1
  930. package/sheet/action-button.d.ts +6 -0
  931. package/sheet/action-button.js +63 -0
  932. package/sheet/index.d.ts +3 -0
  933. package/sheet/index.js +46 -0
  934. package/sheet/index.js.flow +76 -0
  935. package/sheet/package.json +4 -0
  936. package/sheet/sheet.d.ts +4 -0
  937. package/sheet/sheet.js +182 -0
  938. package/sheet/styled-components.d.ts +27 -0
  939. package/sheet/styled-components.js +216 -0
  940. package/sheet/types.d.ts +37 -0
  941. package/sheet/types.js +5 -0
  942. package/side-navigation/index.d.ts +1 -0
  943. package/side-navigation/index.js +14 -0
  944. package/side-navigation/nav-item.d.ts +1 -1
  945. package/side-navigation/nav-item.js +2 -1
  946. package/side-navigation/nav.js +11 -4
  947. package/side-navigation/side-navigation-next.d.ts +66 -0
  948. package/side-navigation/side-navigation-next.js +381 -0
  949. package/side-navigation/styled-components.js +4 -2
  950. package/side-navigation/types.d.ts +12 -12
  951. package/skeleton/index.d.ts +1 -1
  952. package/skeleton/skeleton.js +2 -0
  953. package/skeleton/skeleton.js.flow +1 -1
  954. package/skeleton/styled-components.d.ts +1 -0
  955. package/skeleton/styled-components.js +1 -0
  956. package/skeleton/types.d.ts +3 -3
  957. package/skeleton/types.js.flow +1 -1
  958. package/slider/index.d.ts +1 -1
  959. package/slider/slider.js +3 -1
  960. package/slider/types.d.ts +9 -9
  961. package/snackbar/index.d.ts +5 -5
  962. package/snackbar/snackbar-context.d.ts +1 -1
  963. package/snackbar/snackbar-context.js +28 -11
  964. package/snackbar/snackbar-element.js +4 -1
  965. package/snackbar/styled-components.js +1 -1
  966. package/snackbar/types.d.ts +5 -5
  967. package/spinner/styled-components.js +2 -0
  968. package/spinner/types.d.ts +2 -2
  969. package/stepper/index.d.ts +3 -0
  970. package/stepper/index.js +46 -0
  971. package/stepper/index.js.flow +36 -0
  972. package/stepper/package.json +4 -0
  973. package/stepper/stepper.d.ts +4 -0
  974. package/stepper/stepper.js +162 -0
  975. package/stepper/styled-components.d.ts +1 -0
  976. package/stepper/styled-components.js +29 -0
  977. package/stepper/types.d.ts +17 -0
  978. package/stepper/types.js +5 -0
  979. package/styles/__mocks__/styled.js +9 -4
  980. package/styles/as-primary-export-hoc.js +2 -0
  981. package/styles/styled.d.ts +6 -6
  982. package/styles/styled.js +2 -0
  983. package/styles/theme-provider.d.ts +2 -2
  984. package/styles/types.d.ts +4 -3
  985. package/styles/types.js.flow +1 -0
  986. package/system-banner/index.d.ts +2 -0
  987. package/system-banner/index.js +30 -0
  988. package/system-banner/index.js.flow +51 -0
  989. package/system-banner/package.json +4 -0
  990. package/system-banner/styled-components.d.ts +16 -0
  991. package/system-banner/styled-components.js +90 -0
  992. package/system-banner/system-banner.d.ts +3 -0
  993. package/system-banner/system-banner.js +104 -0
  994. package/system-banner/types.d.ts +17 -0
  995. package/system-banner/types.js +5 -0
  996. package/table/styled-components.d.ts +2 -2
  997. package/table/styled-components.js +1 -0
  998. package/table/table.js +2 -0
  999. package/table/types.d.ts +6 -6
  1000. package/table-semantic/styled-components.d.ts +5 -5
  1001. package/table-semantic/styled-components.js +8 -8
  1002. package/table-semantic/styled-components.js.flow +4 -5
  1003. package/table-semantic/table-builder.js +24 -21
  1004. package/table-semantic/table-builder.js.flow +21 -23
  1005. package/table-semantic/table.js +2 -0
  1006. package/table-semantic/types.d.ts +8 -8
  1007. package/tabs/index.d.ts +1 -1
  1008. package/tabs/stateful-tabs.d.ts +2 -2
  1009. package/tabs/stateful-tabs.js +2 -2
  1010. package/tabs/types.d.ts +14 -14
  1011. package/tabs-motion/index.d.ts +3 -3
  1012. package/tabs-motion/stateful-tabs.js +1 -0
  1013. package/tabs-motion/tab.js +1 -0
  1014. package/tabs-motion/tabs.js +26 -18
  1015. package/tabs-motion/tabs.js.flow +3 -2
  1016. package/tabs-motion/types.d.ts +13 -13
  1017. package/tabs-motion/types.js.flow +1 -1
  1018. package/tag/styled-components.js +41 -2
  1019. package/tag/tag.js +2 -0
  1020. package/tag/types.d.ts +6 -6
  1021. package/textarea/stateful-textarea.js +7 -3
  1022. package/textarea/textarea.js +4 -2
  1023. package/textarea/types.d.ts +10 -10
  1024. package/theme.js.flow +44 -0
  1025. package/themes/dark-theme/color-component-tokens.js +2 -2
  1026. package/themes/dark-theme/color-component-tokens.js.flow +2 -2
  1027. package/themes/dark-theme/color-semantic-tokens.js +12 -4
  1028. package/themes/dark-theme/color-semantic-tokens.js.flow +7 -4
  1029. package/themes/index.d.ts +2 -2
  1030. package/themes/light-theme/color-semantic-tokens.js +12 -4
  1031. package/themes/light-theme/color-semantic-tokens.js.flow +7 -4
  1032. package/themes/types.d.ts +32 -29
  1033. package/themes/types.js.flow +7 -4
  1034. package/timepicker/index.js.flow +1 -0
  1035. package/timepicker/timepicker.js +11 -4
  1036. package/timepicker/types.d.ts +4 -4
  1037. package/timezonepicker/index.d.ts +1 -1
  1038. package/timezonepicker/timezone-picker.js +3 -1
  1039. package/timezonepicker/types.d.ts +4 -4
  1040. package/toast/index.d.ts +1 -1
  1041. package/toast/locale.d.ts +1 -1
  1042. package/toast/toast.d.ts +3 -3
  1043. package/toast/toast.js +10 -5
  1044. package/toast/toaster.js +21 -3
  1045. package/toast/types.d.ts +15 -15
  1046. package/tokens/index.d.ts +1 -1
  1047. package/tokens/types.d.ts +1 -1
  1048. package/tooltip/types.d.ts +6 -6
  1049. package/tree-view/index.d.ts +1 -1
  1050. package/tree-view/stateful-container.d.ts +1 -1
  1051. package/tree-view/tree-label-interactable.d.ts +3 -3
  1052. package/tree-view/tree-label-interactable.js +4 -2
  1053. package/tree-view/tree-label-interactable.js.flow +2 -0
  1054. package/tree-view/tree-view.js +5 -2
  1055. package/tree-view/types.d.ts +9 -9
  1056. package/tree-view/utils.js +43 -15
  1057. package/utils/deep-merge.js +5 -0
  1058. package/utils/focusVisible.js +17 -7
@@ -0,0 +1,110 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ /*
4
+ Copyright (c) Uber Technologies, Inc.
5
+ This source code is licensed under the MIT license found in the
6
+ LICENSE file in the root directory of this source tree.
7
+ */
8
+ import * as React from 'react';
9
+ import { getOverrides } from '../helpers/overrides';
10
+ import { Button, KIND, SHAPE } from '../button';
11
+ import { StyledRoot, StyledNavContainer, StyledTitle, StyledActionButtonsContainer } from './styled-components';
12
+ import { TYPE } from './constants';
13
+ import { useStyletron } from '../styles/index';
14
+
15
+ const renderButtonContent = content => {
16
+ if (typeof content === 'string') {
17
+ return content;
18
+ }
19
+
20
+ const Icon = content;
21
+ return /*#__PURE__*/React.createElement(Icon, {
22
+ size: 32
23
+ });
24
+ };
25
+
26
+ const DefaultHeaderButton = ({
27
+ children,
28
+ type,
29
+ ...restProps
30
+ }) => {
31
+ const [, theme] = useStyletron();
32
+ const isFloating = type === TYPE.floating;
33
+ const hasTextContent = typeof children === 'string';
34
+ const shouldHaveTrailingMargin = isFloating || !hasTextContent;
35
+ const trailingMargin = theme.direction === 'rtl' ? {
36
+ marginLeft: theme.sizing.scale300
37
+ } : {
38
+ marginRight: theme.sizing.scale300
39
+ };
40
+ const style = { ...(!hasTextContent ? {
41
+ height: '48px',
42
+ width: '48px',
43
+ paddingTop: 0,
44
+ paddingBottom: 0,
45
+ paddingLeft: 0,
46
+ paddingRight: 0
47
+ } : {}),
48
+ ...(shouldHaveTrailingMargin ? trailingMargin : {}),
49
+ ...(isFloating ? {
50
+ backgroundColor: theme.colors.backgroundPrimary
51
+ } : {})
52
+ };
53
+ return /*#__PURE__*/React.createElement(Button, _extends({
54
+ kind: KIND.tertiary,
55
+ shape: SHAPE.pill,
56
+ overrides: {
57
+ BaseButton: {
58
+ style
59
+ }
60
+ }
61
+ }, restProps), children);
62
+ };
63
+
64
+ export function MobileHeader({
65
+ overrides = {},
66
+ title,
67
+ navButton,
68
+ actionButtons = [],
69
+ type = TYPE.fixed,
70
+ expanded = false
71
+ }) {
72
+ const [Root, rootProps] = getOverrides(overrides.Root, StyledRoot);
73
+ const [Title, titleProps] = getOverrides(overrides.Title, StyledTitle);
74
+ const [NavContainer, navContainerProps] = getOverrides(overrides.NavContainer, StyledNavContainer);
75
+ const [HeaderButton, iconButtonProps] = getOverrides(overrides.HeaderButton, DefaultHeaderButton);
76
+ const [ActionButtonsContainer, actionButtonsContainerProps] = getOverrides(overrides.ActionButtonsContainer, StyledActionButtonsContainer);
77
+
78
+ if (actionButtons.length > 2 && process.env.NODE_ENV !== "production") {
79
+ console.warn(`MobileHeader can only render two additional buttons. Received ${actionButtons.length}`);
80
+ }
81
+
82
+ return /*#__PURE__*/React.createElement(Root, _extends({}, rootProps, {
83
+ $type: type,
84
+ $expanded: expanded
85
+ }), /*#__PURE__*/React.createElement(NavContainer, _extends({
86
+ $type: type,
87
+ $hasTextContent: navButton && !Boolean(navButton.renderIcon)
88
+ }, navContainerProps), navButton && /*#__PURE__*/React.createElement(HeaderButton, _extends({
89
+ onClick: navButton.onClick,
90
+ type: type,
91
+ "aria-label": navButton.label
92
+ }, iconButtonProps), renderButtonContent(navButton.renderIcon || navButton.label))), type === TYPE.fixed && /*#__PURE__*/React.createElement(Title, _extends({
93
+ $type: type,
94
+ $expanded: expanded
95
+ }, titleProps), title), actionButtons.length > 0 && /*#__PURE__*/React.createElement(ActionButtonsContainer, actionButtonsContainerProps, actionButtons.map((button, idx) => {
96
+ const {
97
+ renderIcon,
98
+ onClick,
99
+ label
100
+ } = button;
101
+ return /*#__PURE__*/React.createElement(HeaderButton, _extends({
102
+ onClick: onClick,
103
+ "aria-label": label,
104
+ type: type
105
+ }, iconButtonProps, {
106
+ key: idx
107
+ }), renderButtonContent(renderIcon || label));
108
+ })));
109
+ }
110
+ export default MobileHeader;
@@ -0,0 +1,69 @@
1
+ /*
2
+ Copyright (c) Uber Technologies, Inc.
3
+ This source code is licensed under the MIT license found in the
4
+ LICENSE file in the root directory of this source tree.
5
+ */
6
+ import { styled } from '../styles';
7
+ import { TYPE } from './constants';
8
+ export const StyledRoot = styled('div', ({
9
+ $theme,
10
+ $type
11
+ }) => ({
12
+ width: '100%',
13
+ display: 'grid',
14
+ gridTemplateColumns: 'auto 1fr auto',
15
+ gridTemplateRows: '48px',
16
+ ...($type === TYPE.floating ? {
17
+ backgroundColor: 'transparent',
18
+ pointerEvents: 'none'
19
+ } : {
20
+ backgroundColor: $theme.colors.backgroundPrimary
21
+ })
22
+ }));
23
+ StyledRoot.displayName = "StyledRoot";
24
+ StyledRoot.displayName = 'StyledRoot';
25
+ export const StyledNavContainer = styled('div', ({
26
+ $hasTextContent,
27
+ $type,
28
+ $theme
29
+ }) => {
30
+ const floatingPadding = $theme.direction === 'rtl' ? {
31
+ paddingRight: $theme.sizing.scale300
32
+ } : {
33
+ paddingLeft: $theme.sizing.scale300
34
+ };
35
+ return {
36
+ pointerEvents: 'auto',
37
+ minWidth: '48px',
38
+ ...($hasTextContent && $type === TYPE.fixed ? {} : floatingPadding)
39
+ };
40
+ });
41
+ StyledNavContainer.displayName = "StyledNavContainer";
42
+ StyledNavContainer.displayName = 'StyledNavContainer';
43
+ export const StyledActionButtonsContainer = styled('div', ({}) => ({
44
+ display: 'flex',
45
+ justifyContent: 'flex-end',
46
+ gridColumn: '3 / 4',
47
+ pointerEvents: 'auto'
48
+ }));
49
+ StyledActionButtonsContainer.displayName = "StyledActionButtonsContainer";
50
+ StyledActionButtonsContainer.displayName = 'StyledActionButtonsContainer';
51
+ export const StyledTitle = styled('div', ({
52
+ $theme,
53
+ $expanded = false
54
+ }) => ({
55
+ alignSelf: 'center',
56
+ justifyContent: 'flex-start',
57
+ ...($expanded ? $theme.typography.DisplayXSmall : $theme.typography.LabelLarge),
58
+ ...($expanded ? {
59
+ gridColumn: '1 / 4',
60
+ gridRow: 2,
61
+ paddingLeft: $theme.sizing.scale600
62
+ } : {}),
63
+ // truncate long titles
64
+ textOverflow: 'ellipsis',
65
+ whiteSpace: 'nowrap',
66
+ overflow: 'hidden'
67
+ }));
68
+ StyledTitle.displayName = "StyledTitle";
69
+ StyledTitle.displayName = 'StyledTitle';
@@ -0,0 +1 @@
1
+ export {};
@@ -12,6 +12,7 @@ import { mergeOverrides } from '../helpers/overrides';
12
12
  // ModalButtons should have some margin pre-applied
13
13
  const overrides = {
14
14
  BaseButton: {
15
+ // @ts-ignore
15
16
  style: ({
16
17
  $theme
17
18
  }) => {
package/es/modal/modal.js CHANGED
@@ -16,7 +16,7 @@ import { LocaleContext } from '../locale';
16
16
  import { getOverrides } from '../helpers/overrides';
17
17
  import { Layer } from '../layer';
18
18
  import { SIZE, ROLE, CLOSE_SOURCE } from './constants';
19
- import { Root as StyledRoot, Dialog as StyledDialog, DialogContainer as StyledDialogContainer, Close as StyledClose } from './styled-components';
19
+ import { Root as StyledRoot, Dialog as StyledDialog, DialogContainer as StyledDialogContainer, Close as StyledClose, Hidden } from './styled-components';
20
20
  import { CloseIcon } from './close-icon';
21
21
  import { isFocusVisible, forkFocus, forkBlur } from '../utils/focusVisible';
22
22
 
@@ -197,10 +197,13 @@ class Modal extends React.Component {
197
197
  closeable
198
198
  } = this.props;
199
199
  return {
200
+ // @ts-ignore
200
201
  $animate: animate,
201
202
  $isVisible: this.state.isVisible,
202
203
  $isOpen: !!isOpen,
204
+ // @ts-ignore
203
205
  $size: size,
206
+ // @ts-ignore
204
207
  $role: role,
205
208
  $closeable: !!closeable,
206
209
  $isFocusVisible: this.state.isFocusVisible
@@ -228,7 +231,7 @@ class Modal extends React.Component {
228
231
  return typeof children === 'function' ? children() : children;
229
232
  }
230
233
 
231
- renderModal() {
234
+ renderModal(renderedContent) {
232
235
  const {
233
236
  overrides = {},
234
237
  closeable,
@@ -248,7 +251,6 @@ class Modal extends React.Component {
248
251
  const [Dialog, dialogProps] = getOverrides(DialogOverride, StyledDialog);
249
252
  const [Close, closeProps] = getOverrides(CloseOverride, StyledClose);
250
253
  const sharedProps = this.getSharedProps();
251
- const children = this.getChildren();
252
254
  return /*#__PURE__*/React.createElement(LocaleContext.Consumer, null, locale => /*#__PURE__*/React.createElement(FocusLock, {
253
255
  disabled: !focusLock // Allow focus to escape when UI is within an iframe
254
256
  ,
@@ -256,7 +258,8 @@ class Modal extends React.Component {
256
258
  returnFocus: returnFocus,
257
259
  autoFocus: autoFocus
258
260
  }, /*#__PURE__*/React.createElement(Root, _extends({
259
- "data-baseweb": "modal",
261
+ "data-baseweb": "modal" // eslint-disable-next-line @typescript-eslint/no-explicit-any
262
+ ,
260
263
  ref: this.rootRef
261
264
  }, sharedProps, rootProps), /*#__PURE__*/React.createElement(DialogContainer // eslint-disable-next-line @typescript-eslint/no-explicit-any
262
265
  , _extends({
@@ -266,7 +269,7 @@ class Modal extends React.Component {
266
269
  "aria-modal": true,
267
270
  "aria-label": "dialog",
268
271
  role: role
269
- }, sharedProps, dialogProps), children, closeable ? /*#__PURE__*/React.createElement(Close, _extends({
272
+ }, sharedProps, dialogProps), renderedContent, closeable ? /*#__PURE__*/React.createElement(Close, _extends({
270
273
  "aria-label": locale.modal.close,
271
274
  onClick: this.onCloseClick
272
275
  }, sharedProps, closeProps, {
@@ -276,21 +279,23 @@ class Modal extends React.Component {
276
279
  }
277
280
 
278
281
  render() {
279
- // Only render modal on the browser (portals aren't supported server-side)
280
- if (!this.state.mounted) {
281
- return null;
282
- } // Only render the modal if its isOpen is passed, or isVisible is true (still animating)
283
-
284
-
285
- if (!this.props.isOpen && !this.state.isVisible) {
282
+ // Only render an open and non-renderAll modal on the browser (portals aren't supported server-side)
283
+ const mountedAndOpen = this.state.mounted && (this.props.isOpen || this.state.isVisible);
284
+ const renderedContent = mountedAndOpen || this.props.renderAll ? this.getChildren() : null;
285
+
286
+ if (renderedContent) {
287
+ if (mountedAndOpen) {
288
+ return /*#__PURE__*/React.createElement(Layer, {
289
+ onEscape: this.onEscape,
290
+ onDocumentClick: this.onDocumentClick,
291
+ mountNode: this.props.mountNode
292
+ }, this.renderModal(renderedContent));
293
+ } else {
294
+ return /*#__PURE__*/React.createElement(Hidden, null, renderedContent);
295
+ }
296
+ } else {
286
297
  return null;
287
298
  }
288
-
289
- return /*#__PURE__*/React.createElement(Layer, {
290
- onEscape: this.onEscape,
291
- onDocumentClick: this.onDocumentClick,
292
- mountNode: this.props.mountNode
293
- }, this.renderModal());
294
299
  }
295
300
 
296
301
  }
@@ -305,7 +310,8 @@ _defineProperty(Modal, "defaultProps", {
305
310
  isOpen: false,
306
311
  overrides: {},
307
312
  role: ROLE.dialog,
308
- size: SIZE.default
313
+ size: SIZE.default,
314
+ renderAll: false
309
315
  });
310
316
 
311
317
  export default Modal;
@@ -10,12 +10,14 @@ import { SIZE, SIZE_WIDTHS } from './constants';
10
10
  function getSizeStyles($size) {
11
11
  const styles = {
12
12
  maxWidth: '100%',
13
+ // @ts-ignore
13
14
  width: null
14
15
  };
15
16
 
16
17
  if (typeof $size === 'number') {
17
- styles.width = `${$size}px`;
18
+ styles.width = `${$size}px`; // @ts-ignore
18
19
  } else if (SIZE[$size]) {
20
+ // @ts-ignore
19
21
  styles.width = SIZE_WIDTHS[$size];
20
22
  } else if (typeof $size === 'string') {
21
23
  styles.width = $size;
@@ -200,4 +202,9 @@ export const ModalFooter = styled('div', ({
200
202
  textAlign: $theme.direction === 'rtl' ? 'left' : 'right'
201
203
  }));
202
204
  ModalFooter.displayName = "ModalFooter";
203
- ModalFooter.displayName = 'ModalFooter';
205
+ ModalFooter.displayName = 'ModalFooter';
206
+ export const Hidden = styled('div', {
207
+ display: 'none'
208
+ });
209
+ Hidden.displayName = "Hidden";
210
+ Hidden.displayName = 'Hidden';
@@ -0,0 +1,17 @@
1
+ /*
2
+ Copyright (c) Uber Technologies, Inc.
3
+ This source code is licensed under the MIT license found in the
4
+ LICENSE file in the root directory of this source tree.
5
+ */
6
+ export const SIZE = Object.freeze({
7
+ large: 'large',
8
+ medium: 'medium',
9
+ small: 'small'
10
+ });
11
+ export const KIND = Object.freeze({
12
+ default: 'default',
13
+ backgroundProtection: 'backgroundProtection',
14
+ inverse: 'inverse',
15
+ alwaysLight: 'alwaysLight',
16
+ alwaysDark: 'alwaysDark'
17
+ });
@@ -0,0 +1,9 @@
1
+ /*
2
+ Copyright (c) Uber Technologies, Inc.
3
+ This source code is licensed under the MIT license found in the
4
+ LICENSE file in the root directory of this source tree.
5
+ */
6
+ export { default as PageControl } from './page-control';
7
+ export * from './styled-components';
8
+ export { KIND } from './constants';
9
+ export * from './types';
@@ -0,0 +1,114 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ /*
4
+ Copyright (c) Uber Technologies, Inc.
5
+
6
+ This source code is licensed under the MIT license found in the
7
+ LICENSE file in the root directory of this source tree.
8
+ */
9
+ import * as React from 'react';
10
+ import { getOverrides } from '../helpers/overrides';
11
+ import { StyledRoot, StyledDot } from './styled-components';
12
+ import { SIZE, KIND } from './constants';
13
+ const MAX_DOTS = 5;
14
+
15
+ const PageControl = ({
16
+ currentPage,
17
+ numPages,
18
+ onPageChange,
19
+ kind = KIND.default,
20
+ disabled = false,
21
+ 'aria-label': ariaLabel,
22
+ overrides = {}
23
+ }) => {
24
+ const [Root, RootProps] = getOverrides(overrides.Root, StyledRoot);
25
+ const [Dot, DotProps] = getOverrides(overrides.Dot, StyledDot);
26
+ const isOverflow = numPages > MAX_DOTS;
27
+
28
+ function isActive(page) {
29
+ return page === currentPage;
30
+ }
31
+
32
+ function isVisible(page) {
33
+ if (!isOverflow) return true; // if current page is one of first three pages, first five page dots are visible
34
+
35
+ if (currentPage <= 3) {
36
+ return page <= 5;
37
+ } // if current page is one of last three pages, last five page dots are visible
38
+
39
+
40
+ if (numPages - currentPage < 3) {
41
+ return page > numPages - 5;
42
+ } // otherwise, page must be within 2 of the current page for dot to be visible
43
+
44
+
45
+ return page >= currentPage - 2 && page <= currentPage + 2;
46
+ }
47
+
48
+ function getSize(page) {
49
+ if (!isOverflow) return SIZE.large;
50
+
51
+ if (currentPage <= 3) {
52
+ if (page <= 3) {
53
+ return SIZE.large;
54
+ }
55
+
56
+ if (page === 4) {
57
+ return SIZE.medium;
58
+ }
59
+
60
+ return SIZE.small;
61
+ }
62
+
63
+ if (numPages - currentPage < 3) {
64
+ if (page > numPages - 3) {
65
+ return SIZE.large;
66
+ }
67
+
68
+ if (page === numPages - 3) {
69
+ return SIZE.medium;
70
+ }
71
+
72
+ return SIZE.small;
73
+ }
74
+
75
+ if (page >= currentPage - 1 && page <= currentPage + 1) {
76
+ return SIZE.large;
77
+ }
78
+
79
+ if (page === currentPage - 2 || page === currentPage + 2) {
80
+ return SIZE.medium;
81
+ }
82
+
83
+ return SIZE.small;
84
+ }
85
+
86
+ const name = React.useId();
87
+ return /*#__PURE__*/React.createElement(Root, _extends({
88
+ $kind: kind,
89
+ role: "radiogroup",
90
+ "aria-label": ariaLabel || 'page control'
91
+ }, RootProps), Array.from({
92
+ length: numPages
93
+ }, (_, i) => {
94
+ const page = i + 1;
95
+ return /*#__PURE__*/React.createElement(Dot, _extends({
96
+ $active: isActive(page),
97
+ $kind: kind,
98
+ $disabled: disabled,
99
+ $isVisible: isVisible(page),
100
+ $size: getSize(page),
101
+ checked: isActive(page),
102
+ key: page,
103
+ "aria-label": `page ${page}`,
104
+ name: name,
105
+ onChange: () => onPageChange({
106
+ nextPage: page
107
+ }),
108
+ tabIndex: isActive(page) ? 0 : -1,
109
+ type: "radio"
110
+ }, DotProps));
111
+ }));
112
+ };
113
+
114
+ export default PageControl;
@@ -0,0 +1,99 @@
1
+ /*
2
+ Copyright (c) Uber Technologies, Inc.
3
+ This source code is licensed under the MIT license found in the
4
+ LICENSE file in the root directory of this source tree.
5
+ */
6
+ import { styled, hexToRgb } from '../styles';
7
+ import { SIZE, KIND } from './constants';
8
+ export const StyledRoot = styled('div', ({
9
+ $kind,
10
+ $theme
11
+ }) => ({
12
+ display: 'flex',
13
+ alignItems: 'center',
14
+ gap: $theme.sizing.scale300,
15
+ width: 'fit-content',
16
+ paddingTop: $theme.sizing.scale100,
17
+ paddingRight: $theme.sizing.scale500,
18
+ paddingBottom: $theme.sizing.scale100,
19
+ paddingLeft: $theme.sizing.scale500,
20
+ borderRadius: $theme.borders.radius500,
21
+ backgroundColor: $kind === KIND.backgroundProtection ? $theme.colors.backgroundPrimary : 'transparent'
22
+ }));
23
+ StyledRoot.displayName = "StyledRoot";
24
+ StyledRoot.displayName = 'StyledRoot';
25
+ export const StyledDot = styled('input', ({
26
+ $active,
27
+ $kind,
28
+ $size,
29
+ $disabled,
30
+ $isVisible,
31
+ $theme
32
+ }) => {
33
+ const sizes = {
34
+ [SIZE.large]: {
35
+ height: $theme.sizing.scale300,
36
+ width: $theme.sizing.scale300
37
+ },
38
+ [SIZE.medium]: {
39
+ height: $theme.sizing.scale200,
40
+ width: $theme.sizing.scale200,
41
+ marginTop: '1px',
42
+ marginRight: '1px',
43
+ marginBottom: '1px',
44
+ marginLeft: '1px'
45
+ },
46
+ [SIZE.small]: {
47
+ height: $theme.sizing.scale100,
48
+ width: $theme.sizing.scale100,
49
+ marginTop: $theme.sizing.scale0,
50
+ marginRight: $theme.sizing.scale0,
51
+ marginBottom: $theme.sizing.scale0,
52
+ marginLeft: $theme.sizing.scale0
53
+ }
54
+ };
55
+ const colors = {
56
+ [KIND.default]: {
57
+ active: $theme.colors.contentPrimary,
58
+ inactive: $theme.colors.backgroundTertiary
59
+ },
60
+ [KIND.backgroundProtection]: {
61
+ active: $theme.colors.contentPrimary,
62
+ inactive: $theme.colors.backgroundTertiary
63
+ },
64
+ [KIND.inverse]: {
65
+ active: $theme.colors.contentInversePrimary,
66
+ inactive: $theme.colors.backgroundInversePrimary
67
+ },
68
+ [KIND.alwaysLight]: {
69
+ active: $theme.colors.contentOnColorInverse,
70
+ inactive: hexToRgb($theme.colors.backgroundAlwaysDark, '0.12')
71
+ },
72
+ [KIND.alwaysDark]: {
73
+ active: $theme.colors.contentOnColor,
74
+ inactive: hexToRgb($theme.colors.backgroundAlwaysLight, '0.24')
75
+ }
76
+ };
77
+ return {
78
+ // reset default input styles
79
+ appearance: 'none',
80
+ margin: 0,
81
+ // base web styles
82
+ ...sizes[$size],
83
+ borderRadius: '50%',
84
+ backgroundColor: $disabled ? $theme.colors.contentStateDisabled : $active ? colors[$kind].active : colors[$kind].inactive,
85
+ ...(!$isVisible ? {
86
+ // https://www.nomensa.com/blog/how-improve-web-accessibility-hiding-elements
87
+ border: 0,
88
+ clip: 'rect(1px, 1px, 1px, 1px)',
89
+ height: '1px',
90
+ margin: '-1px',
91
+ overflow: 'hidden',
92
+ padding: 0,
93
+ position: 'absolute',
94
+ width: '1px'
95
+ } : {})
96
+ };
97
+ });
98
+ StyledDot.displayName = "StyledDot";
99
+ StyledDot.displayName = 'StyledDot';
@@ -0,0 +1 @@
1
+ export {};