@workday/canvas-kit-react 6.3.5 → 7.0.0-alpha.0-next.3

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 (325) hide show
  1. package/action-bar/README.md +4 -53
  2. package/action-bar/index.ts +0 -4
  3. package/action-bar/lib/ActionBar.tsx +29 -68
  4. package/banner/index.ts +1 -4
  5. package/banner/lib/Banner.tsx +86 -111
  6. package/banner/lib/BannerActionText.tsx +49 -0
  7. package/banner/lib/BannerIcon.tsx +39 -0
  8. package/banner/lib/BannerLabel.tsx +29 -0
  9. package/banner/lib/hooks/index.ts +6 -0
  10. package/banner/lib/hooks/useBanner.tsx +13 -0
  11. package/banner/lib/hooks/useBannerActionText.tsx +12 -0
  12. package/banner/lib/hooks/useBannerIcon.tsx +19 -0
  13. package/banner/lib/hooks/useBannerLabel.tsx +12 -0
  14. package/banner/lib/hooks/useBannerModel.tsx +63 -0
  15. package/banner/lib/hooks/useThemedPalette.ts +53 -0
  16. package/button/lib/IconButton.tsx +5 -2
  17. package/button/lib/ToolbarDropdownButton.tsx +1 -2
  18. package/common/lib/styles/hideMouseFocus.ts +3 -2
  19. package/cookie-banner/lib/CookieBanner.tsx +1 -0
  20. package/dist/commonjs/action-bar/index.d.ts +0 -3
  21. package/dist/commonjs/action-bar/index.d.ts.map +1 -1
  22. package/dist/commonjs/action-bar/index.js +0 -6
  23. package/dist/commonjs/action-bar/lib/ActionBar.d.ts +5 -10
  24. package/dist/commonjs/action-bar/lib/ActionBar.d.ts.map +1 -1
  25. package/dist/commonjs/action-bar/lib/ActionBar.js +8 -76
  26. package/dist/commonjs/banner/index.d.ts +1 -3
  27. package/dist/commonjs/banner/index.d.ts.map +1 -1
  28. package/dist/commonjs/banner/index.js +1 -6
  29. package/dist/commonjs/banner/lib/Banner.d.ts +17 -33
  30. package/dist/commonjs/banner/lib/Banner.d.ts.map +1 -1
  31. package/dist/commonjs/banner/lib/Banner.js +45 -69
  32. package/dist/commonjs/banner/lib/BannerActionText.d.ts +14 -0
  33. package/dist/commonjs/banner/lib/BannerActionText.d.ts.map +1 -0
  34. package/dist/commonjs/banner/lib/BannerActionText.js +48 -0
  35. package/dist/commonjs/banner/lib/BannerIcon.d.ts +14 -0
  36. package/dist/commonjs/banner/lib/BannerIcon.d.ts.map +1 -0
  37. package/dist/commonjs/banner/lib/BannerIcon.js +47 -0
  38. package/dist/commonjs/banner/lib/BannerLabel.d.ts +13 -0
  39. package/dist/commonjs/banner/lib/BannerLabel.d.ts.map +1 -0
  40. package/dist/commonjs/banner/lib/BannerLabel.js +45 -0
  41. package/dist/commonjs/banner/lib/hooks/index.d.ts +7 -0
  42. package/dist/commonjs/banner/lib/hooks/index.d.ts.map +1 -0
  43. package/dist/commonjs/banner/lib/hooks/index.js +11 -0
  44. package/dist/commonjs/banner/lib/hooks/useBanner.d.ts +16 -0
  45. package/dist/commonjs/banner/lib/hooks/useBanner.d.ts.map +1 -0
  46. package/dist/commonjs/banner/lib/hooks/useBanner.js +14 -0
  47. package/dist/commonjs/banner/lib/hooks/useBannerActionText.d.ts +15 -0
  48. package/dist/commonjs/banner/lib/hooks/useBannerActionText.d.ts.map +1 -0
  49. package/dist/commonjs/banner/lib/hooks/useBannerActionText.js +13 -0
  50. package/dist/commonjs/banner/lib/hooks/useBannerIcon.d.ts +18 -0
  51. package/dist/commonjs/banner/lib/hooks/useBannerIcon.d.ts.map +1 -0
  52. package/dist/commonjs/banner/lib/hooks/useBannerIcon.js +19 -0
  53. package/dist/commonjs/banner/lib/hooks/useBannerLabel.d.ts +15 -0
  54. package/dist/commonjs/banner/lib/hooks/useBannerLabel.d.ts.map +1 -0
  55. package/dist/commonjs/banner/lib/hooks/useBannerLabel.js +13 -0
  56. package/dist/commonjs/banner/lib/hooks/useBannerModel.d.ts +37 -0
  57. package/dist/commonjs/banner/lib/hooks/useBannerModel.d.ts.map +1 -0
  58. package/dist/commonjs/banner/lib/hooks/useBannerModel.js +22 -0
  59. package/dist/commonjs/banner/lib/hooks/useThemedPalette.d.ts +11 -0
  60. package/dist/commonjs/banner/lib/hooks/useThemedPalette.d.ts.map +1 -0
  61. package/dist/commonjs/banner/lib/hooks/useThemedPalette.js +39 -0
  62. package/dist/commonjs/button/lib/IconButton.d.ts +5 -2
  63. package/dist/commonjs/button/lib/IconButton.d.ts.map +1 -1
  64. package/dist/commonjs/button/lib/ToolbarDropdownButton.d.ts.map +1 -1
  65. package/dist/commonjs/button/lib/ToolbarDropdownButton.js +7 -5
  66. package/dist/commonjs/card/lib/Card.d.ts +1 -1
  67. package/dist/commonjs/card/lib/CardBody.d.ts +1 -1
  68. package/dist/commonjs/card/lib/CardBody.d.ts.map +1 -1
  69. package/dist/commonjs/common/lib/styles/hideMouseFocus.d.ts +3 -2
  70. package/dist/commonjs/common/lib/styles/hideMouseFocus.d.ts.map +1 -1
  71. package/dist/commonjs/cookie-banner/lib/CookieBanner.d.ts.map +1 -1
  72. package/dist/commonjs/cookie-banner/lib/CookieBanner.js +1 -0
  73. package/dist/commonjs/dialog/lib/Dialog.d.ts +1 -1
  74. package/dist/commonjs/icon/lib/Svg.d.ts +0 -1
  75. package/dist/commonjs/icon/lib/Svg.d.ts.map +1 -1
  76. package/dist/commonjs/icon/lib/Svg.js +7 -14
  77. package/dist/commonjs/modal/lib/Modal.d.ts +1 -1
  78. package/dist/commonjs/pagination/lib/Pagination/AdditionalDetails.d.ts +2 -3
  79. package/dist/commonjs/pagination/lib/Pagination/AdditionalDetails.d.ts.map +1 -1
  80. package/dist/commonjs/pagination/lib/Pagination/AdditionalDetails.js +21 -7
  81. package/dist/commonjs/pagination/lib/Pagination/Controls.js +2 -2
  82. package/dist/commonjs/pagination/lib/Pagination/GoTo/Form.d.ts +2 -3
  83. package/dist/commonjs/pagination/lib/Pagination/GoTo/Form.d.ts.map +1 -1
  84. package/dist/commonjs/pagination/lib/Pagination/GoTo/Form.js +2 -2
  85. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +1 -2
  86. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  87. package/dist/commonjs/pagination/lib/Pagination/GoTo/Label.js +12 -4
  88. package/dist/commonjs/pagination/lib/Pagination/Nav.d.ts +1 -1
  89. package/dist/commonjs/pagination/lib/Pagination/Nav.d.ts.map +1 -1
  90. package/dist/commonjs/pagination/lib/Pagination/Nav.js +2 -2
  91. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +4 -4
  92. package/dist/commonjs/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  93. package/dist/commonjs/pagination/lib/Pagination/PageList.js +11 -7
  94. package/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +4 -4
  95. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +6 -8
  96. package/dist/commonjs/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  97. package/dist/commonjs/pagination/lib/Pagination/common/List.js +15 -12
  98. package/dist/commonjs/popup/lib/Popup.d.ts +1 -1
  99. package/dist/commonjs/status-indicator/lib/StatusIndicator.d.ts +5 -0
  100. package/dist/commonjs/status-indicator/lib/StatusIndicator.d.ts.map +1 -1
  101. package/dist/commonjs/status-indicator/lib/StatusIndicator.js +5 -5
  102. package/dist/commonjs/tabs/lib/TabsItem.d.ts +1 -1
  103. package/dist/commonjs/toast/lib/Toast.d.ts.map +1 -1
  104. package/dist/commonjs/toast/lib/Toast.js +16 -13
  105. package/dist/es6/action-bar/index.d.ts +0 -3
  106. package/dist/es6/action-bar/index.d.ts.map +1 -1
  107. package/dist/es6/action-bar/index.js +0 -3
  108. package/dist/es6/action-bar/lib/ActionBar.d.ts +5 -10
  109. package/dist/es6/action-bar/lib/ActionBar.d.ts.map +1 -1
  110. package/dist/es6/action-bar/lib/ActionBar.js +10 -78
  111. package/dist/es6/banner/index.d.ts +1 -3
  112. package/dist/es6/banner/index.d.ts.map +1 -1
  113. package/dist/es6/banner/index.js +1 -3
  114. package/dist/es6/banner/lib/Banner.d.ts +17 -33
  115. package/dist/es6/banner/lib/Banner.d.ts.map +1 -1
  116. package/dist/es6/banner/lib/Banner.js +47 -71
  117. package/dist/es6/banner/lib/BannerActionText.d.ts +14 -0
  118. package/dist/es6/banner/lib/BannerActionText.d.ts.map +1 -0
  119. package/dist/es6/banner/lib/BannerActionText.js +39 -0
  120. package/dist/es6/banner/lib/BannerIcon.d.ts +14 -0
  121. package/dist/es6/banner/lib/BannerIcon.d.ts.map +1 -0
  122. package/dist/es6/banner/lib/BannerIcon.js +42 -0
  123. package/dist/es6/banner/lib/BannerLabel.d.ts +13 -0
  124. package/dist/es6/banner/lib/BannerLabel.d.ts.map +1 -0
  125. package/dist/es6/banner/lib/BannerLabel.js +36 -0
  126. package/dist/es6/banner/lib/hooks/index.d.ts +7 -0
  127. package/dist/es6/banner/lib/hooks/index.d.ts.map +1 -0
  128. package/dist/es6/banner/lib/hooks/index.js +6 -0
  129. package/dist/es6/banner/lib/hooks/useBanner.d.ts +16 -0
  130. package/dist/es6/banner/lib/hooks/useBanner.d.ts.map +1 -0
  131. package/dist/es6/banner/lib/hooks/useBanner.js +12 -0
  132. package/dist/es6/banner/lib/hooks/useBannerActionText.d.ts +15 -0
  133. package/dist/es6/banner/lib/hooks/useBannerActionText.d.ts.map +1 -0
  134. package/dist/es6/banner/lib/hooks/useBannerActionText.js +11 -0
  135. package/dist/es6/banner/lib/hooks/useBannerIcon.d.ts +18 -0
  136. package/dist/es6/banner/lib/hooks/useBannerIcon.d.ts.map +1 -0
  137. package/dist/es6/banner/lib/hooks/useBannerIcon.js +17 -0
  138. package/dist/es6/banner/lib/hooks/useBannerLabel.d.ts +15 -0
  139. package/dist/es6/banner/lib/hooks/useBannerLabel.d.ts.map +1 -0
  140. package/dist/es6/banner/lib/hooks/useBannerLabel.js +11 -0
  141. package/dist/es6/banner/lib/hooks/useBannerModel.d.ts +37 -0
  142. package/dist/es6/banner/lib/hooks/useBannerModel.d.ts.map +1 -0
  143. package/dist/es6/banner/lib/hooks/useBannerModel.js +20 -0
  144. package/dist/es6/banner/lib/hooks/useThemedPalette.d.ts +11 -0
  145. package/dist/es6/banner/lib/hooks/useThemedPalette.d.ts.map +1 -0
  146. package/dist/es6/banner/lib/hooks/useThemedPalette.js +33 -0
  147. package/dist/es6/button/lib/IconButton.d.ts +5 -2
  148. package/dist/es6/button/lib/IconButton.d.ts.map +1 -1
  149. package/dist/es6/button/lib/ToolbarDropdownButton.d.ts.map +1 -1
  150. package/dist/es6/button/lib/ToolbarDropdownButton.js +4 -5
  151. package/dist/es6/card/lib/Card.d.ts +1 -1
  152. package/dist/es6/card/lib/CardBody.d.ts +1 -1
  153. package/dist/es6/card/lib/CardBody.d.ts.map +1 -1
  154. package/dist/es6/common/lib/styles/hideMouseFocus.d.ts +3 -2
  155. package/dist/es6/common/lib/styles/hideMouseFocus.d.ts.map +1 -1
  156. package/dist/es6/cookie-banner/lib/CookieBanner.d.ts.map +1 -1
  157. package/dist/es6/cookie-banner/lib/CookieBanner.js +1 -0
  158. package/dist/es6/dialog/lib/Dialog.d.ts +1 -1
  159. package/dist/es6/icon/lib/Svg.d.ts +0 -1
  160. package/dist/es6/icon/lib/Svg.d.ts.map +1 -1
  161. package/dist/es6/icon/lib/Svg.js +7 -14
  162. package/dist/es6/modal/lib/Modal.d.ts +1 -1
  163. package/dist/es6/pagination/lib/Pagination/AdditionalDetails.d.ts +2 -3
  164. package/dist/es6/pagination/lib/Pagination/AdditionalDetails.d.ts.map +1 -1
  165. package/dist/es6/pagination/lib/Pagination/AdditionalDetails.js +16 -9
  166. package/dist/es6/pagination/lib/Pagination/Controls.js +1 -1
  167. package/dist/es6/pagination/lib/Pagination/GoTo/Form.d.ts +2 -3
  168. package/dist/es6/pagination/lib/Pagination/GoTo/Form.d.ts.map +1 -1
  169. package/dist/es6/pagination/lib/Pagination/GoTo/Form.js +2 -2
  170. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +1 -2
  171. package/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts.map +1 -1
  172. package/dist/es6/pagination/lib/Pagination/GoTo/Label.js +5 -4
  173. package/dist/es6/pagination/lib/Pagination/Nav.d.ts +1 -1
  174. package/dist/es6/pagination/lib/Pagination/Nav.d.ts.map +1 -1
  175. package/dist/es6/pagination/lib/Pagination/Nav.js +2 -2
  176. package/dist/es6/pagination/lib/Pagination/PageList.d.ts +4 -4
  177. package/dist/es6/pagination/lib/Pagination/PageList.d.ts.map +1 -1
  178. package/dist/es6/pagination/lib/Pagination/PageList.js +5 -8
  179. package/dist/es6/pagination/lib/Pagination/Pagination.d.ts +4 -4
  180. package/dist/es6/pagination/lib/Pagination/common/List.d.ts +6 -8
  181. package/dist/es6/pagination/lib/Pagination/common/List.d.ts.map +1 -1
  182. package/dist/es6/pagination/lib/Pagination/common/List.js +15 -12
  183. package/dist/es6/popup/lib/Popup.d.ts +1 -1
  184. package/dist/es6/status-indicator/lib/StatusIndicator.d.ts +5 -0
  185. package/dist/es6/status-indicator/lib/StatusIndicator.d.ts.map +1 -1
  186. package/dist/es6/status-indicator/lib/StatusIndicator.js +5 -5
  187. package/dist/es6/tabs/lib/TabsItem.d.ts +1 -1
  188. package/dist/es6/toast/lib/Toast.d.ts.map +1 -1
  189. package/dist/es6/toast/lib/Toast.js +9 -13
  190. package/icon/lib/Svg.tsx +13 -22
  191. package/package.json +5 -5
  192. package/pagination/lib/Pagination/AdditionalDetails.tsx +24 -18
  193. package/pagination/lib/Pagination/Controls.tsx +1 -1
  194. package/pagination/lib/Pagination/GoTo/Form.tsx +4 -5
  195. package/pagination/lib/Pagination/GoTo/Label.tsx +5 -6
  196. package/pagination/lib/Pagination/Nav.tsx +2 -2
  197. package/pagination/lib/Pagination/PageList.tsx +13 -11
  198. package/pagination/lib/Pagination/common/List.tsx +25 -23
  199. package/status-indicator/lib/StatusIndicator.tsx +20 -9
  200. package/toast/lib/Toast.tsx +9 -15
  201. package/ts3.5/dist/commonjs/action-bar/index.d.ts +0 -3
  202. package/ts3.5/dist/commonjs/action-bar/lib/ActionBar.d.ts +5 -10
  203. package/ts3.5/dist/commonjs/banner/index.d.ts +1 -3
  204. package/ts3.5/dist/commonjs/banner/lib/Banner.d.ts +17 -33
  205. package/ts3.5/dist/commonjs/banner/lib/BannerActionText.d.ts +14 -0
  206. package/ts3.5/dist/commonjs/banner/lib/BannerIcon.d.ts +14 -0
  207. package/ts3.5/dist/commonjs/banner/lib/BannerLabel.d.ts +13 -0
  208. package/ts3.5/dist/commonjs/banner/lib/hooks/index.d.ts +7 -0
  209. package/ts3.5/dist/commonjs/banner/lib/hooks/useBanner.d.ts +16 -0
  210. package/ts3.5/dist/commonjs/banner/lib/hooks/useBannerActionText.d.ts +15 -0
  211. package/ts3.5/dist/commonjs/banner/lib/hooks/useBannerIcon.d.ts +18 -0
  212. package/ts3.5/dist/commonjs/banner/lib/hooks/useBannerLabel.d.ts +15 -0
  213. package/ts3.5/dist/commonjs/banner/lib/hooks/useBannerModel.d.ts +37 -0
  214. package/ts3.5/dist/commonjs/banner/lib/hooks/useThemedPalette.d.ts +11 -0
  215. package/ts3.5/dist/commonjs/button/lib/IconButton.d.ts +5 -2
  216. package/ts3.5/dist/commonjs/card/lib/Card.d.ts +1 -1
  217. package/ts3.5/dist/commonjs/card/lib/CardBody.d.ts +1 -1
  218. package/ts3.5/dist/commonjs/common/lib/styles/hideMouseFocus.d.ts +3 -2
  219. package/ts3.5/dist/commonjs/dialog/lib/Dialog.d.ts +1 -1
  220. package/ts3.5/dist/commonjs/icon/lib/Svg.d.ts +0 -1
  221. package/ts3.5/dist/commonjs/modal/lib/Modal.d.ts +1 -1
  222. package/ts3.5/dist/commonjs/pagination/lib/Pagination/AdditionalDetails.d.ts +2 -3
  223. package/ts3.5/dist/commonjs/pagination/lib/Pagination/GoTo/Form.d.ts +2 -3
  224. package/ts3.5/dist/commonjs/pagination/lib/Pagination/GoTo/Label.d.ts +1 -2
  225. package/ts3.5/dist/commonjs/pagination/lib/Pagination/Nav.d.ts +1 -1
  226. package/ts3.5/dist/commonjs/pagination/lib/Pagination/PageList.d.ts +4 -4
  227. package/ts3.5/dist/commonjs/pagination/lib/Pagination/Pagination.d.ts +4 -4
  228. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/List.d.ts +6 -8
  229. package/ts3.5/dist/commonjs/popup/lib/Popup.d.ts +1 -1
  230. package/ts3.5/dist/commonjs/status-indicator/lib/StatusIndicator.d.ts +5 -0
  231. package/ts3.5/dist/commonjs/tabs/lib/TabsItem.d.ts +1 -1
  232. package/ts3.5/dist/es6/action-bar/index.d.ts +0 -3
  233. package/ts3.5/dist/es6/action-bar/lib/ActionBar.d.ts +5 -10
  234. package/ts3.5/dist/es6/banner/index.d.ts +1 -3
  235. package/ts3.5/dist/es6/banner/lib/Banner.d.ts +17 -33
  236. package/ts3.5/dist/es6/banner/lib/BannerActionText.d.ts +14 -0
  237. package/ts3.5/dist/es6/banner/lib/BannerIcon.d.ts +14 -0
  238. package/ts3.5/dist/es6/banner/lib/BannerLabel.d.ts +13 -0
  239. package/ts3.5/dist/es6/banner/lib/hooks/index.d.ts +7 -0
  240. package/ts3.5/dist/es6/banner/lib/hooks/useBanner.d.ts +16 -0
  241. package/ts3.5/dist/es6/banner/lib/hooks/useBannerActionText.d.ts +15 -0
  242. package/ts3.5/dist/es6/banner/lib/hooks/useBannerIcon.d.ts +18 -0
  243. package/ts3.5/dist/es6/banner/lib/hooks/useBannerLabel.d.ts +15 -0
  244. package/ts3.5/dist/es6/banner/lib/hooks/useBannerModel.d.ts +37 -0
  245. package/ts3.5/dist/es6/banner/lib/hooks/useThemedPalette.d.ts +11 -0
  246. package/ts3.5/dist/es6/button/lib/IconButton.d.ts +5 -2
  247. package/ts3.5/dist/es6/card/lib/Card.d.ts +1 -1
  248. package/ts3.5/dist/es6/card/lib/CardBody.d.ts +1 -1
  249. package/ts3.5/dist/es6/common/lib/styles/hideMouseFocus.d.ts +3 -2
  250. package/ts3.5/dist/es6/dialog/lib/Dialog.d.ts +1 -1
  251. package/ts3.5/dist/es6/icon/lib/Svg.d.ts +0 -1
  252. package/ts3.5/dist/es6/modal/lib/Modal.d.ts +1 -1
  253. package/ts3.5/dist/es6/pagination/lib/Pagination/AdditionalDetails.d.ts +2 -3
  254. package/ts3.5/dist/es6/pagination/lib/Pagination/GoTo/Form.d.ts +2 -3
  255. package/ts3.5/dist/es6/pagination/lib/Pagination/GoTo/Label.d.ts +1 -2
  256. package/ts3.5/dist/es6/pagination/lib/Pagination/Nav.d.ts +1 -1
  257. package/ts3.5/dist/es6/pagination/lib/Pagination/PageList.d.ts +4 -4
  258. package/ts3.5/dist/es6/pagination/lib/Pagination/Pagination.d.ts +4 -4
  259. package/ts3.5/dist/es6/pagination/lib/Pagination/common/List.d.ts +6 -8
  260. package/ts3.5/dist/es6/popup/lib/Popup.d.ts +1 -1
  261. package/ts3.5/dist/es6/status-indicator/lib/StatusIndicator.d.ts +5 -0
  262. package/ts3.5/dist/es6/tabs/lib/TabsItem.d.ts +1 -1
  263. package/dist/commonjs/pagination/lib/Pagination/common/Box.d.ts +0 -12
  264. package/dist/commonjs/pagination/lib/Pagination/common/Box.d.ts.map +0 -1
  265. package/dist/commonjs/pagination/lib/Pagination/common/Box.js +0 -70
  266. package/dist/commonjs/pagination/lib/Pagination/common/Flex.d.ts +0 -6
  267. package/dist/commonjs/pagination/lib/Pagination/common/Flex.d.ts.map +0 -1
  268. package/dist/commonjs/pagination/lib/Pagination/common/Flex.js +0 -32
  269. package/dist/commonjs/pagination/lib/Pagination/common/Stack.d.ts +0 -48
  270. package/dist/commonjs/pagination/lib/Pagination/common/Stack.d.ts.map +0 -1
  271. package/dist/commonjs/pagination/lib/Pagination/common/Stack.js +0 -87
  272. package/dist/commonjs/pagination/lib/Pagination/common/utils/flex.d.ts +0 -57
  273. package/dist/commonjs/pagination/lib/Pagination/common/utils/flex.d.ts.map +0 -1
  274. package/dist/commonjs/pagination/lib/Pagination/common/utils/flex.js +0 -23
  275. package/dist/commonjs/pagination/lib/Pagination/common/utils/layout.d.ts +0 -32
  276. package/dist/commonjs/pagination/lib/Pagination/common/utils/layout.d.ts.map +0 -1
  277. package/dist/commonjs/pagination/lib/Pagination/common/utils/layout.js +0 -15
  278. package/dist/commonjs/pagination/lib/Pagination/common/utils/safelySpreadProps.d.ts +0 -12
  279. package/dist/commonjs/pagination/lib/Pagination/common/utils/safelySpreadProps.d.ts.map +0 -1
  280. package/dist/commonjs/pagination/lib/Pagination/common/utils/safelySpreadProps.js +0 -37
  281. package/dist/commonjs/pagination/lib/Pagination/common/utils/space.d.ts +0 -127
  282. package/dist/commonjs/pagination/lib/Pagination/common/utils/space.d.ts.map +0 -1
  283. package/dist/commonjs/pagination/lib/Pagination/common/utils/space.js +0 -75
  284. package/dist/es6/pagination/lib/Pagination/common/Box.d.ts +0 -12
  285. package/dist/es6/pagination/lib/Pagination/common/Box.d.ts.map +0 -1
  286. package/dist/es6/pagination/lib/Pagination/common/Box.js +0 -58
  287. package/dist/es6/pagination/lib/Pagination/common/Flex.d.ts +0 -6
  288. package/dist/es6/pagination/lib/Pagination/common/Flex.d.ts.map +0 -1
  289. package/dist/es6/pagination/lib/Pagination/common/Flex.js +0 -27
  290. package/dist/es6/pagination/lib/Pagination/common/Stack.d.ts +0 -48
  291. package/dist/es6/pagination/lib/Pagination/common/Stack.d.ts.map +0 -1
  292. package/dist/es6/pagination/lib/Pagination/common/Stack.js +0 -78
  293. package/dist/es6/pagination/lib/Pagination/common/utils/flex.d.ts +0 -57
  294. package/dist/es6/pagination/lib/Pagination/common/utils/flex.d.ts.map +0 -1
  295. package/dist/es6/pagination/lib/Pagination/common/utils/flex.js +0 -21
  296. package/dist/es6/pagination/lib/Pagination/common/utils/layout.d.ts +0 -32
  297. package/dist/es6/pagination/lib/Pagination/common/utils/layout.d.ts.map +0 -1
  298. package/dist/es6/pagination/lib/Pagination/common/utils/layout.js +0 -13
  299. package/dist/es6/pagination/lib/Pagination/common/utils/safelySpreadProps.d.ts +0 -12
  300. package/dist/es6/pagination/lib/Pagination/common/utils/safelySpreadProps.d.ts.map +0 -1
  301. package/dist/es6/pagination/lib/Pagination/common/utils/safelySpreadProps.js +0 -34
  302. package/dist/es6/pagination/lib/Pagination/common/utils/space.d.ts +0 -127
  303. package/dist/es6/pagination/lib/Pagination/common/utils/space.d.ts.map +0 -1
  304. package/dist/es6/pagination/lib/Pagination/common/utils/space.js +0 -73
  305. package/pagination/lib/Pagination/common/Box.tsx +0 -44
  306. package/pagination/lib/Pagination/common/Flex.tsx +0 -23
  307. package/pagination/lib/Pagination/common/Stack.tsx +0 -98
  308. package/pagination/lib/Pagination/common/utils/flex.ts +0 -110
  309. package/pagination/lib/Pagination/common/utils/layout.ts +0 -40
  310. package/pagination/lib/Pagination/common/utils/safelySpreadProps.ts +0 -29
  311. package/pagination/lib/Pagination/common/utils/space.ts +0 -109
  312. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/Box.d.ts +0 -12
  313. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/Flex.d.ts +0 -6
  314. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/Stack.d.ts +0 -48
  315. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/flex.d.ts +0 -57
  316. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/layout.d.ts +0 -32
  317. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/safelySpreadProps.d.ts +0 -12
  318. package/ts3.5/dist/commonjs/pagination/lib/Pagination/common/utils/space.d.ts +0 -127
  319. package/ts3.5/dist/es6/pagination/lib/Pagination/common/Box.d.ts +0 -12
  320. package/ts3.5/dist/es6/pagination/lib/Pagination/common/Flex.d.ts +0 -6
  321. package/ts3.5/dist/es6/pagination/lib/Pagination/common/Stack.d.ts +0 -48
  322. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/flex.d.ts +0 -57
  323. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/layout.d.ts +0 -32
  324. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/safelySpreadProps.d.ts +0 -12
  325. package/ts3.5/dist/es6/pagination/lib/Pagination/common/utils/space.d.ts +0 -127
@@ -1,55 +1,6 @@
1
- # Canvas Kit Action Bar
1
+ # Canvas Kit React Action Bar
2
2
 
3
- Full width toolbar fixed to bottom of screen.
3
+ `ActionBar` contains primary and secondary actions related to a page or task.
4
4
 
5
- Although not required, [buttons](../../button/react) are often used in in action bars. The primary
6
- action button should be left aligned followed by secondary buttons. The primary button is on the
7
- right only in task orchestration and on mobile devices.
8
-
9
- ## Installation
10
-
11
- ```sh
12
- yarn add @workday/canvas-kit-react
13
- ```
14
-
15
- ## Usage
16
-
17
- ```tsx
18
- import * as React from 'react';
19
- import {PrimaryButton, SecondaryButton} from '@workday/canvas-kit-react/button';
20
- import {ActionBar} from '@workday/canvas-kit-react/action-bar';
21
-
22
- <ActionBar>
23
- <PrimaryButton variant="primary">Button</PrimaryButton>
24
- <SecondaryButton>Button</SecondaryButton>
25
- <SecondaryButton>Button</SecondaryButton>
26
- </ActionBar>;
27
- ```
28
-
29
- ## Static Properties
30
-
31
- > None
32
-
33
- ## Component Props
34
-
35
- ### Required
36
-
37
- > None
38
-
39
- ### Optional
40
-
41
- #### `fixed: boolean`
42
-
43
- > Fixes the toolbar to the bottom of the window (uses `position: fixed`)
44
-
45
- ## Responsive Behavior
46
-
47
- At 575px, responsive styles will take effect:
48
-
49
- - Applies a flex box to the buttons
50
- - Makes single-button groups full width
51
- - All buttons will become the same width (`flex: 1`).
52
- - Button order will become reversed, making left-aligned primary buttons right-aligned.
53
-
54
- > When on a mobile form factor, the button placement should flip to have the primary button on the
55
- > far right.
5
+ For more detailed information on this component, please refer to the
6
+ [storybook documentation](https://workday.github.io/canvas-kit/?path=/docs/components-buttons-action-bar-react--basic)
@@ -1,5 +1 @@
1
- import ActionBar from './lib/ActionBar';
2
-
3
- export default ActionBar;
4
- export {ActionBar};
5
1
  export * from './lib/ActionBar';
@@ -1,76 +1,37 @@
1
1
  import * as React from 'react';
2
- import {styled} from '@workday/canvas-kit-react/common';
3
- import {colors, commonColors, space, CSSProperties} from '@workday/canvas-kit-react/tokens';
2
+ import {createComponent, styled, StyledType} from '@workday/canvas-kit-react/common';
3
+ import {commonColors, colors, space} from '@workday/canvas-kit-react/tokens';
4
+ import {HStack, HStackProps, StackSpacing} from '@workday/canvas-kit-labs-react';
4
5
 
5
- export interface ActionBarProps extends React.HTMLAttributes<HTMLDivElement> {
6
- /**
7
- * If true, fix the ActionBar to the bottom of the screen.
8
- * @default false
9
- */
10
- fixed?: boolean;
6
+ interface ActionBarProps extends Omit<HStackProps, 'spacing'> {
7
+ spacing?: StackSpacing;
11
8
  }
12
9
 
13
- function getFixedStyles(fixed = false): CSSProperties {
14
- return fixed
15
- ? {
16
- position: 'fixed',
17
- left: 0,
18
- bottom: 0,
19
- right: 0,
20
- }
21
- : {};
22
- }
23
-
24
- const ActionBarContainer = styled('div')<ActionBarProps>(
25
- {
26
- borderTop: `solid 1px ${colors.soap400}`,
27
- background: commonColors.background,
10
+ const ResponsiveHStack = styled(HStack)<HStackProps & StyledType>(({theme}) => ({
11
+ [theme.canvas.breakpoints.down('s')]: {
28
12
  padding: space.s,
29
- boxShadow: '0 -2px 4px rgba(0, 0, 0, 0.08)',
30
- },
31
- ({fixed, theme}) => {
32
- return {
33
- ...getFixedStyles(fixed),
34
- [theme.canvas.breakpoints.down('s')]: {
35
- padding: space.xxs,
36
- },
37
- };
38
- }
39
- );
40
-
41
- const ChildrenContainer = styled('div')(
42
- {
43
- display: 'inline-block',
44
- padding: `0 ${space.m}`,
45
- '*:not(:first-of-type)': {
46
- marginLeft: space.s,
13
+ '> *:not(div)': {
14
+ flex: 1,
47
15
  },
48
16
  },
49
- ({theme}) => ({
50
- [theme.canvas.breakpoints.down('s')]: {
51
- display: 'flex',
52
- padding: space.xxs,
53
- justifyContent: 'center',
54
- flexDirection: 'row-reverse',
55
- '> *': {
56
- flex: 1,
57
- '&:not(:first-of-type)': {
58
- marginRight: space.s,
59
- marginLeft: 0,
60
- },
61
- },
62
- },
63
- })
64
- );
65
-
66
- export default class ActionBar extends React.Component<ActionBarProps> {
67
- public render() {
68
- const {fixed, children, ...elemProps} = this.props;
17
+ }));
69
18
 
70
- return (
71
- <ActionBarContainer {...elemProps} fixed={fixed}>
72
- <ChildrenContainer>{children}</ChildrenContainer>
73
- </ActionBarContainer>
74
- );
75
- }
76
- }
19
+ export const ActionBar = createComponent('div')({
20
+ displayName: 'ActionBar',
21
+ Component: (elemProps: ActionBarProps, ref, Element) => (
22
+ <ResponsiveHStack
23
+ ref={ref}
24
+ as={Element}
25
+ spacing="s"
26
+ depth={1}
27
+ background={commonColors.background}
28
+ borderTop={`solid 1px ${colors.soap400}`}
29
+ padding={`${space.s} ${space.xl} `}
30
+ position="fixed"
31
+ bottom={0}
32
+ left={0}
33
+ right={0}
34
+ {...elemProps}
35
+ />
36
+ ),
37
+ });
package/banner/index.ts CHANGED
@@ -1,5 +1,2 @@
1
- import Banner from './lib/Banner';
2
-
3
- export default Banner;
4
- export {Banner};
5
1
  export * from './lib/Banner';
2
+ export * from './lib/hooks/';
@@ -1,127 +1,102 @@
1
+ /** @jsxRuntime classic */
2
+ /** @jsx jsx */
3
+ import {jsx} from '@emotion/core';
1
4
  import * as React from 'react';
2
- import {colors, space, borderRadius, type} from '@workday/canvas-kit-react/tokens';
3
- import {SystemIcon} from '@workday/canvas-kit-react/icon';
4
- import {exclamationCircleIcon, exclamationTriangleIcon} from '@workday/canvas-system-icons-web';
5
- import {ErrorType, focusRing, styled, Themeable} from '@workday/canvas-kit-react/common';
6
5
 
7
- export enum BannerVariant {
8
- Full,
9
- Sticky,
10
- }
6
+ import {borderRadius, CSSProperties, space, type} from '@workday/canvas-kit-react/tokens';
7
+ import {
8
+ createComponent,
9
+ ExtractProps,
10
+ focusRing,
11
+ hideMouseFocus,
12
+ useDefaultModel,
13
+ useIsRTL,
14
+ } from '@workday/canvas-kit-react/common';
15
+ import {Flex} from '@workday/canvas-kit-labs-react/layout';
11
16
 
12
- export interface BannerProps extends Themeable, React.ButtonHTMLAttributes<HTMLButtonElement> {
13
- /**
14
- * The function called when the Banner is clicked.
15
- */
16
- onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
17
- /**
18
- * The label of the Banner.
19
- */
20
- label?: React.ReactNode;
21
- /**
22
- * The variant of the Banner. Accepts `Full` or `Sticky`.
23
- * @default BannerVariant.Full
24
- */
25
- variant?: BannerVariant;
26
- /**
27
- * The type of error associated with the Banner (if applicable).
28
- * @default ErrorType.Alert
29
- */
30
- error?: ErrorType;
17
+ import {BannerModel, BannerModelConfig, useBanner, useBannerModel, useThemedPalette} from './hooks';
18
+
19
+ import {BannerIcon} from './BannerIcon';
20
+ import {BannerLabel} from './BannerLabel';
21
+ import {BannerActionText} from './BannerActionText';
22
+
23
+ export const BannerModelContext = React.createContext<BannerModel>({} as any);
24
+
25
+ export interface BannerProps extends BannerModelConfig, ExtractProps<typeof Flex, never> {
26
+ model?: BannerModel;
31
27
  /**
32
- * The text of the Banner action. This prop is also used as the aria-label for the action in the banner
33
- * @default 'View All'
28
+ * Children of the Banner. Should contain a `<Banner.Label>` a <Banner.Icon> and an optional `<Banner.ActionText>`
34
29
  */
35
- actionText?: string;
30
+ children?: React.ReactNode;
36
31
  }
37
32
 
38
- const BannerWrapper = styled('button')<BannerProps>(
39
- {
40
- ...type.levels.subtext.large,
41
- fontWeight: type.properties.fontWeights.medium,
42
- backgroundColor: colors.cantaloupe400,
43
- boxSizing: 'border-box',
44
- color: colors.blackPepper400,
45
- padding: `${space.xxs} ${space.s}`,
46
- textAlign: 'left',
47
- border: 0,
48
- display: 'flex',
49
- alignItems: 'center',
50
- transition: 'background-color 120ms',
51
- '&:focus': {
52
- outline: 'none',
53
- ...focusRing({separation: 2}),
54
- },
55
- '&:hover': {
56
- cursor: 'pointer',
57
- },
58
- },
59
- ({error, variant}) => ({
60
- backgroundColor: error === ErrorType.Error ? colors.cinnamon500 : colors.cantaloupe400,
61
- color: error === ErrorType.Error ? colors.frenchVanilla100 : colors.blackPepper400,
62
- borderRadius:
63
- variant === BannerVariant.Sticky ? `${borderRadius.m} 0 0 ${borderRadius.m}` : borderRadius.m,
64
- width: variant === BannerVariant.Sticky ? '222px' : '328px',
65
- '&:hover': {
66
- backgroundColor: error === ErrorType.Error ? colors.cinnamon600 : colors.cantaloupe500,
67
- },
68
- })
69
- );
33
+ // Remove color from our type since it is set on the Flex style attribute
34
+ const {color: _color, ...typeLevelsSubtextLarge} = type.levels.subtext.large;
70
35
 
71
- const BannerIcon = styled(SystemIcon)({
72
- marginRight: space.xs,
73
- });
36
+ const styles: CSSProperties = {
37
+ ...typeLevelsSubtextLarge,
38
+ cursor: 'pointer',
39
+ fontWeight: type.properties.fontWeights.medium,
40
+ textAlign: 'left',
41
+ transition: 'background-color 120ms',
42
+ '&:focus': {
43
+ outline: 'none',
44
+ ...focusRing({separation: 2}),
45
+ },
46
+ ...hideMouseFocus,
47
+ };
74
48
 
75
- const BannerLabel = styled('div')({
76
- flex: 1,
77
- });
49
+ export const Banner = createComponent('button')({
50
+ displayName: 'Banner',
51
+ Component: ({children, model, ...props}: BannerProps, ref, Element) => {
52
+ const {hasError, isSticky, id, ...elemProps} = props;
53
+ const value = useDefaultModel(model, {hasError, isSticky, id}, useBannerModel);
78
54
 
79
- const BannerViewAll = styled('span')<BannerProps>(
80
- {
81
- textDecoration: 'underline',
82
- },
83
- ({variant}) => ({
84
- display: variant === BannerVariant.Sticky ? 'none' : undefined,
85
- })
86
- );
55
+ const palette = useThemedPalette(hasError ? 'error' : 'alert');
56
+ const themedBackgroundStyles: CSSProperties = {
57
+ '&:hover': {
58
+ backgroundColor: palette.hover,
59
+ },
60
+ };
87
61
 
88
- class Banner extends React.Component<BannerProps> {
89
- static Variant = BannerVariant;
90
- static ErrorType = ErrorType;
62
+ const isRTL = useIsRTL();
63
+ const borderBottomLeftRadius = isRTL ? 'borderBottomRightRadius' : 'borderBottomLeftRadius';
64
+ const borderTopLeftRadius = isRTL ? 'borderTopRightRadius' : 'borderTopLeftRadius';
65
+ const borderBottomRightRadius = isRTL ? 'borderBottomLeftRadius' : 'borderBottomRightRadius';
66
+ const borderTopRightRadius = isRTL ? 'borderTopLeftRadius' : 'borderTopRightRadius';
91
67
 
92
- public render() {
93
- const {
94
- actionText = 'View All',
95
- variant = BannerVariant.Full,
96
- error = ErrorType.Alert,
97
- label,
98
- onClick,
99
- ...props
100
- } = this.props;
68
+ const borderStyleProps = {
69
+ [borderBottomLeftRadius]: borderRadius.m,
70
+ [borderTopLeftRadius]: borderRadius.m,
71
+ [borderBottomRightRadius]: isSticky ? 0 : borderRadius.m,
72
+ [borderTopRightRadius]: isSticky ? 0 : borderRadius.m,
73
+ };
101
74
 
102
- const bannerIcon = error === ErrorType.Error ? exclamationCircleIcon : exclamationTriangleIcon;
103
- const iconColor = error === ErrorType.Error ? colors.frenchVanilla100 : colors.blackPepper400;
104
- const iconSize = 24;
75
+ const bannerProps = useBanner(value, elemProps, ref);
105
76
 
106
77
  return (
107
- <BannerWrapper
108
- aria-label={actionText + ': ' + label}
109
- role="button"
110
- variant={variant}
111
- tabIndex={0}
112
- onClick={onClick}
113
- error={error}
114
- {...props}
115
- >
116
- <BannerIcon icon={bannerIcon} color={iconColor} colorHover={iconColor} size={iconSize} />
117
- <BannerLabel>{label}</BannerLabel>
118
- <BannerViewAll variant={variant}>{actionText}</BannerViewAll>
119
- </BannerWrapper>
78
+ <BannerModelContext.Provider value={value}>
79
+ <Flex
80
+ as={Element}
81
+ width={isSticky ? '222px' : '328px'}
82
+ backgroundColor={palette.normal}
83
+ color={palette.contrast}
84
+ padding={`${space.xxs} ${space.s}`}
85
+ border="0"
86
+ display="flex"
87
+ alignItems="center"
88
+ {...borderStyleProps}
89
+ css={[styles, themedBackgroundStyles]}
90
+ {...bannerProps}
91
+ >
92
+ {children}
93
+ </Flex>
94
+ </BannerModelContext.Provider>
120
95
  );
121
- }
122
- }
123
-
124
- Banner.Variant = BannerVariant;
125
- Banner.ErrorType = ErrorType;
126
-
127
- export default Banner;
96
+ },
97
+ subComponents: {
98
+ Icon: BannerIcon,
99
+ Label: BannerLabel,
100
+ ActionText: BannerActionText,
101
+ },
102
+ });
@@ -0,0 +1,49 @@
1
+ import * as React from 'react';
2
+
3
+ import {
4
+ ExtractProps,
5
+ createComponent,
6
+ useModelContext,
7
+ styled,
8
+ StyledType,
9
+ } from '@workday/canvas-kit-react/common';
10
+ import {Box} from '@workday/canvas-kit-labs-react/common';
11
+
12
+ import {BannerModelContext} from './Banner';
13
+ import {BannerModel, useBannerActionText} from './hooks';
14
+
15
+ export interface BannerActionTextProps extends ExtractProps<typeof Box, never> {
16
+ model?: BannerModel;
17
+ /**
18
+ * The text of the Banner action.
19
+ * @default 'View All'
20
+ */
21
+ children?: React.ReactNode;
22
+ }
23
+
24
+ const StyledActionBarText = styled(Box.as('span'))<StyledType>({
25
+ textDecoration: 'underline',
26
+ });
27
+
28
+ export const BannerActionText = createComponent('span')({
29
+ displayName: 'Banner.ActionTextText',
30
+ Component: (
31
+ {children = 'View All', model, ...elemProps}: BannerActionTextProps,
32
+ ref,
33
+ Element
34
+ ) => {
35
+ const localModel = useModelContext(BannerModelContext, model);
36
+ const props = useBannerActionText(localModel, elemProps, ref);
37
+
38
+ return (
39
+ <StyledActionBarText
40
+ display={localModel.state.isSticky ? 'none' : 'inline'}
41
+ ref={ref}
42
+ as={Element}
43
+ {...props}
44
+ >
45
+ {children}
46
+ </StyledActionBarText>
47
+ );
48
+ },
49
+ });
@@ -0,0 +1,39 @@
1
+ import React from 'react';
2
+ import {space} from '@workday/canvas-kit-react/tokens';
3
+ import {
4
+ ExtractProps,
5
+ createComponent,
6
+ useModelContext,
7
+ styled,
8
+ } from '@workday/canvas-kit-react/common';
9
+ import {SystemIcon} from '@workday/canvas-kit-react/icon';
10
+ import {exclamationTriangleIcon} from '@workday/canvas-system-icons-web';
11
+ import {CanvasSystemIcon} from '@workday/design-assets-types';
12
+
13
+ import {BannerModelContext} from './Banner';
14
+ import {BannerModel, useBannerIcon} from './hooks';
15
+
16
+ export interface BannerIconProps extends Omit<ExtractProps<typeof SystemIcon, never>, 'icon'> {
17
+ model?: BannerModel;
18
+ /**
19
+ * Icon to show next to label
20
+ * @default exclamationTriangleIcon or exclamationCircleIcon when hasError is true
21
+ */
22
+ icon?: CanvasSystemIcon;
23
+ }
24
+
25
+ const StyledBannerIcon = styled(SystemIcon)({
26
+ marginRight: space.xs,
27
+ });
28
+
29
+ export const BannerIcon = createComponent('span')({
30
+ displayName: 'Banner.Icon',
31
+ Component: ({icon = exclamationTriangleIcon, model, ...elemProps}: BannerIconProps, ref) => {
32
+ const localModel = useModelContext(BannerModelContext, model);
33
+
34
+ // SystemIcon is still a class based component so we need to set ref manually.
35
+ const {ref: iconRef, icon: defaultIcon, ...props} = useBannerIcon(localModel, elemProps, ref);
36
+
37
+ return <StyledBannerIcon icon={icon ?? defaultIcon} iconRef={iconRef} {...props} />;
38
+ },
39
+ });
@@ -0,0 +1,29 @@
1
+ import * as React from 'react';
2
+
3
+ import {ExtractProps, createComponent, useModelContext} from '@workday/canvas-kit-react/common';
4
+ import {Flex} from '@workday/canvas-kit-labs-react/layout';
5
+
6
+ import {BannerModelContext} from './Banner';
7
+ import {BannerModel, useBannerLabel} from './hooks';
8
+
9
+ export interface BannerLabelProps extends ExtractProps<typeof Flex, never> {
10
+ model?: BannerModel;
11
+ /**
12
+ * The text of the Banner.
13
+ */
14
+ children: React.ReactNode;
15
+ }
16
+
17
+ export const BannerLabel = createComponent('div')({
18
+ displayName: 'Banner.Label',
19
+ Component: ({children, model, ...elemProps}: BannerLabelProps, ref, Element) => {
20
+ const localModel = useModelContext(BannerModelContext, model);
21
+ const props = useBannerLabel(localModel, elemProps, ref);
22
+
23
+ return (
24
+ <Flex as={Element} flex="1 1 0%" {...props}>
25
+ {children}
26
+ </Flex>
27
+ );
28
+ },
29
+ });
@@ -0,0 +1,6 @@
1
+ export * from './useBannerModel';
2
+ export * from './useThemedPalette';
3
+ export * from './useBannerIcon';
4
+ export * from './useBannerLabel';
5
+ export * from './useBannerActionText';
6
+ export * from './useBanner';
@@ -0,0 +1,13 @@
1
+ import {createHook} from '@workday/canvas-kit-react/common';
2
+ import {BannerModel} from './useBannerModel';
3
+
4
+ /**
5
+ * Adds the necessary props to a `Banner` component.
6
+ * Used by the Banner component
7
+ */
8
+ export const useBanner = createHook(({state}: BannerModel) => {
9
+ return {
10
+ 'aria-describedby': `label-${state.id}`,
11
+ 'aria-labelledby': `action-${state.id}`,
12
+ };
13
+ });
@@ -0,0 +1,12 @@
1
+ import {createHook} from '@workday/canvas-kit-react/common';
2
+ import {BannerModel} from './useBannerModel';
3
+
4
+ /**
5
+ * Adds the necessary props to a `ActionText` component.
6
+ * Used by the Banner.ActionText subcomponent
7
+ */
8
+ export const useBannerActionText = createHook(({state}: BannerModel) => {
9
+ return {
10
+ id: `action-${state.id}`,
11
+ };
12
+ });
@@ -0,0 +1,19 @@
1
+ import {createHook} from '@workday/canvas-kit-react/common';
2
+ import {exclamationCircleIcon, exclamationTriangleIcon} from '@workday/canvas-system-icons-web';
3
+ import {BannerModel} from './useBannerModel';
4
+ import {useThemedPalette} from './useThemedPalette';
5
+
6
+ /**
7
+ * Adds the necessary props to a `Icon` component.
8
+ * Used by the Banner.Icon subcomponent
9
+ */
10
+ export const useBannerIcon = createHook(({state}: BannerModel) => {
11
+ const palette = useThemedPalette(state.hasError ? 'error' : 'alert');
12
+
13
+ return {
14
+ icon: state.hasError ? exclamationCircleIcon : exclamationTriangleIcon,
15
+ color: palette.contrast,
16
+ colorHover: palette.contrast,
17
+ size: 24,
18
+ };
19
+ });
@@ -0,0 +1,12 @@
1
+ import {createHook} from '@workday/canvas-kit-react/common';
2
+ import {BannerModel} from './useBannerModel';
3
+
4
+ /**
5
+ * Adds the necessary props to a `Label` component.
6
+ * Used by the Banner.Label subcomponent
7
+ */
8
+ export const useBannerLabel = createHook(({state}: BannerModel) => {
9
+ return {
10
+ id: `label-${state.id}`,
11
+ };
12
+ });
@@ -0,0 +1,63 @@
1
+ import {
2
+ createEventMap,
3
+ Model,
4
+ ToModelConfig,
5
+ useEventMap,
6
+ useUniqueId,
7
+ } from '@workday/canvas-kit-react/common';
8
+
9
+ type BannerState = {
10
+ /**
11
+ * Optional flag to denote the banner has an error to display. When true the default `Banner.Icon`
12
+ * will be `exclamationCircleIcon`, and a themed error color will be applied.
13
+ * @default false
14
+ */
15
+ hasError?: boolean;
16
+ /**
17
+ * Optional flag to denote the banner is stuck to the side of the screen. When true the default `Banner.ActionText`
18
+ * will be hidden, and some basic styles will be applied.
19
+ * You will still need to manually set the css `position` value.
20
+ * @default false
21
+ */
22
+ isSticky?: boolean;
23
+ /**
24
+ * Optional `id` provided to `Banner`'s subcomponents as HTML attributes:
25
+ * - `Banner` will set `aria-describedby` to `label-${id}`
26
+ * - `Banner` will set `aria-label` to `action-${id}`
27
+ * - `Banner.Label` will set `id` to `label-${id}`
28
+ * - `Banner.ActionText` will set `id` to `action-${id}`
29
+ *
30
+ * If a value is not provided, a unique id will be automatically created by `useUniqueId()`.
31
+ * @default `useUniqueId()`
32
+ */
33
+ id?: string;
34
+ };
35
+
36
+ type BannerEvents = {};
37
+
38
+ export type BannerModel = Model<BannerState, BannerEvents>;
39
+
40
+ const BannerEventMap = createEventMap<BannerEvents>()({
41
+ guards: {},
42
+ callbacks: {},
43
+ });
44
+
45
+ export type BannerModelConfig = BannerState &
46
+ Partial<ToModelConfig<BannerState, BannerEvents, typeof BannerEventMap>>;
47
+
48
+ export const useBannerModel = (config: BannerModelConfig = {}): BannerModel => {
49
+ const id = useUniqueId(config.id);
50
+
51
+ const state = {
52
+ hasError: config.hasError ?? false,
53
+ isSticky: config.isSticky ?? false,
54
+ id,
55
+ };
56
+
57
+ const events = useEventMap(BannerEventMap, state, config, {});
58
+
59
+ return {
60
+ state,
61
+ events,
62
+ };
63
+ };