@workday/canvas-kit-labs-react 7.0.0-alpha.0-next.5 → 7.0.0-alpha.100-next.25

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 (300) hide show
  1. package/combobox/README.md +1 -1
  2. package/combobox/lib/Combobox.tsx +7 -11
  3. package/common/index.ts +0 -8
  4. package/dist/commonjs/combobox/lib/Combobox.d.ts +3 -4
  5. package/dist/commonjs/combobox/lib/Combobox.d.ts.map +1 -1
  6. package/dist/commonjs/combobox/lib/Combobox.js +4 -7
  7. package/dist/commonjs/common/index.d.ts +0 -8
  8. package/dist/commonjs/common/index.d.ts.map +1 -1
  9. package/dist/commonjs/common/index.js +0 -1
  10. package/dist/commonjs/drawer/lib/DrawerHeader.js +2 -2
  11. package/dist/commonjs/index.d.ts +0 -2
  12. package/dist/commonjs/index.d.ts.map +1 -1
  13. package/dist/commonjs/index.js +0 -2
  14. package/dist/commonjs/search-form/lib/SearchForm.d.ts +7 -2
  15. package/dist/commonjs/search-form/lib/SearchForm.d.ts.map +1 -1
  16. package/dist/commonjs/search-form/lib/SearchForm.js +16 -22
  17. package/dist/es6/combobox/lib/Combobox.d.ts +3 -4
  18. package/dist/es6/combobox/lib/Combobox.d.ts.map +1 -1
  19. package/dist/es6/combobox/lib/Combobox.js +5 -8
  20. package/dist/es6/common/index.d.ts +0 -8
  21. package/dist/es6/common/index.d.ts.map +1 -1
  22. package/dist/es6/common/index.js +0 -1
  23. package/dist/es6/drawer/lib/DrawerHeader.js +3 -3
  24. package/dist/es6/index.d.ts +0 -2
  25. package/dist/es6/index.d.ts.map +1 -1
  26. package/dist/es6/index.js +0 -2
  27. package/dist/es6/search-form/lib/SearchForm.d.ts +7 -2
  28. package/dist/es6/search-form/lib/SearchForm.d.ts.map +1 -1
  29. package/dist/es6/search-form/lib/SearchForm.js +17 -23
  30. package/drawer/lib/DrawerHeader.tsx +3 -3
  31. package/index.ts +0 -2
  32. package/package.json +8 -19
  33. package/search-form/lib/SearchForm.tsx +25 -37
  34. package/common/lib/Box.tsx +0 -92
  35. package/common/lib/utils/border.ts +0 -263
  36. package/common/lib/utils/color.ts +0 -62
  37. package/common/lib/utils/depth.ts +0 -37
  38. package/common/lib/utils/flexItem.ts +0 -56
  39. package/common/lib/utils/layout.ts +0 -77
  40. package/common/lib/utils/other.ts +0 -20
  41. package/common/lib/utils/position.ts +0 -96
  42. package/common/lib/utils/space.ts +0 -207
  43. package/common/lib/utils/types.ts +0 -105
  44. package/dist/commonjs/common/lib/Box.d.ts +0 -31
  45. package/dist/commonjs/common/lib/Box.d.ts.map +0 -1
  46. package/dist/commonjs/common/lib/Box.js +0 -99
  47. package/dist/commonjs/common/lib/utils/border.d.ts +0 -103
  48. package/dist/commonjs/common/lib/utils/border.d.ts.map +0 -1
  49. package/dist/commonjs/common/lib/utils/border.js +0 -153
  50. package/dist/commonjs/common/lib/utils/color.d.ts +0 -26
  51. package/dist/commonjs/common/lib/utils/color.d.ts.map +0 -1
  52. package/dist/commonjs/common/lib/utils/color.js +0 -57
  53. package/dist/commonjs/common/lib/utils/depth.d.ts +0 -22
  54. package/dist/commonjs/common/lib/utils/depth.d.ts.map +0 -1
  55. package/dist/commonjs/common/lib/utils/depth.js +0 -29
  56. package/dist/commonjs/common/lib/utils/flexItem.d.ts +0 -33
  57. package/dist/commonjs/common/lib/utils/flexItem.d.ts.map +0 -1
  58. package/dist/commonjs/common/lib/utils/flexItem.js +0 -39
  59. package/dist/commonjs/common/lib/utils/layout.d.ts +0 -43
  60. package/dist/commonjs/common/lib/utils/layout.d.ts.map +0 -1
  61. package/dist/commonjs/common/lib/utils/layout.js +0 -43
  62. package/dist/commonjs/common/lib/utils/other.d.ts +0 -5
  63. package/dist/commonjs/common/lib/utils/other.d.ts.map +0 -1
  64. package/dist/commonjs/common/lib/utils/other.js +0 -19
  65. package/dist/commonjs/common/lib/utils/position.d.ts +0 -41
  66. package/dist/commonjs/common/lib/utils/position.d.ts.map +0 -1
  67. package/dist/commonjs/common/lib/utils/position.js +0 -78
  68. package/dist/commonjs/common/lib/utils/space.d.ts +0 -64
  69. package/dist/commonjs/common/lib/utils/space.d.ts.map +0 -1
  70. package/dist/commonjs/common/lib/utils/space.js +0 -161
  71. package/dist/commonjs/common/lib/utils/types.d.ts +0 -14
  72. package/dist/commonjs/common/lib/utils/types.d.ts.map +0 -1
  73. package/dist/commonjs/common/lib/utils/types.js +0 -2
  74. package/dist/commonjs/header/index.d.ts +0 -9
  75. package/dist/commonjs/header/index.d.ts.map +0 -1
  76. package/dist/commonjs/header/index.js +0 -24
  77. package/dist/commonjs/header/lib/GlobalHeader.d.ts +0 -38
  78. package/dist/commonjs/header/lib/GlobalHeader.d.ts.map +0 -1
  79. package/dist/commonjs/header/lib/GlobalHeader.js +0 -86
  80. package/dist/commonjs/header/lib/Header.d.ts +0 -76
  81. package/dist/commonjs/header/lib/Header.d.ts.map +0 -1
  82. package/dist/commonjs/header/lib/Header.js +0 -333
  83. package/dist/commonjs/header/lib/parts/DubLogoTitle.d.ts +0 -30
  84. package/dist/commonjs/header/lib/parts/DubLogoTitle.d.ts.map +0 -1
  85. package/dist/commonjs/header/lib/parts/DubLogoTitle.js +0 -118
  86. package/dist/commonjs/header/lib/parts/WorkdayLogoTitle.d.ts +0 -31
  87. package/dist/commonjs/header/lib/parts/WorkdayLogoTitle.d.ts.map +0 -1
  88. package/dist/commonjs/header/lib/parts/WorkdayLogoTitle.js +0 -137
  89. package/dist/commonjs/header/lib/parts/index.d.ts +0 -3
  90. package/dist/commonjs/header/lib/parts/index.d.ts.map +0 -1
  91. package/dist/commonjs/header/lib/parts/index.js +0 -7
  92. package/dist/commonjs/header/lib/shared/themes.d.ts +0 -43
  93. package/dist/commonjs/header/lib/shared/themes.d.ts.map +0 -1
  94. package/dist/commonjs/header/lib/shared/themes.js +0 -63
  95. package/dist/commonjs/header/lib/shared/types.d.ts +0 -15
  96. package/dist/commonjs/header/lib/shared/types.d.ts.map +0 -1
  97. package/dist/commonjs/header/lib/shared/types.js +0 -20
  98. package/dist/commonjs/layout/index.d.ts +0 -5
  99. package/dist/commonjs/layout/index.d.ts.map +0 -1
  100. package/dist/commonjs/layout/index.js +0 -14
  101. package/dist/commonjs/layout/lib/Flex.d.ts +0 -26
  102. package/dist/commonjs/layout/lib/Flex.d.ts.map +0 -1
  103. package/dist/commonjs/layout/lib/Flex.js +0 -83
  104. package/dist/commonjs/layout/lib/Stack.d.ts +0 -27
  105. package/dist/commonjs/layout/lib/Stack.d.ts.map +0 -1
  106. package/dist/commonjs/layout/lib/Stack.js +0 -99
  107. package/dist/commonjs/layout/lib/utils/flex.d.ts +0 -36
  108. package/dist/commonjs/layout/lib/utils/flex.d.ts.map +0 -1
  109. package/dist/commonjs/layout/lib/utils/flex.js +0 -38
  110. package/dist/commonjs/layout/lib/utils/getValidChildren.d.ts +0 -3
  111. package/dist/commonjs/layout/lib/utils/getValidChildren.d.ts.map +0 -1
  112. package/dist/commonjs/layout/lib/utils/getValidChildren.js +0 -29
  113. package/dist/commonjs/layout/lib/utils/stack.d.ts +0 -26
  114. package/dist/commonjs/layout/lib/utils/stack.d.ts.map +0 -1
  115. package/dist/commonjs/layout/lib/utils/stack.js +0 -55
  116. package/dist/commonjs/layout/lib/utils/types.d.ts +0 -8
  117. package/dist/commonjs/layout/lib/utils/types.d.ts.map +0 -1
  118. package/dist/commonjs/layout/lib/utils/types.js +0 -2
  119. package/dist/es6/common/lib/Box.d.ts +0 -31
  120. package/dist/es6/common/lib/Box.d.ts.map +0 -1
  121. package/dist/es6/common/lib/Box.js +0 -74
  122. package/dist/es6/common/lib/utils/border.d.ts +0 -103
  123. package/dist/es6/common/lib/utils/border.d.ts.map +0 -1
  124. package/dist/es6/common/lib/utils/border.js +0 -149
  125. package/dist/es6/common/lib/utils/color.d.ts +0 -26
  126. package/dist/es6/common/lib/utils/color.d.ts.map +0 -1
  127. package/dist/es6/common/lib/utils/color.js +0 -53
  128. package/dist/es6/common/lib/utils/depth.d.ts +0 -22
  129. package/dist/es6/common/lib/utils/depth.d.ts.map +0 -1
  130. package/dist/es6/common/lib/utils/depth.js +0 -25
  131. package/dist/es6/common/lib/utils/flexItem.d.ts +0 -33
  132. package/dist/es6/common/lib/utils/flexItem.d.ts.map +0 -1
  133. package/dist/es6/common/lib/utils/flexItem.js +0 -35
  134. package/dist/es6/common/lib/utils/layout.d.ts +0 -43
  135. package/dist/es6/common/lib/utils/layout.d.ts.map +0 -1
  136. package/dist/es6/common/lib/utils/layout.js +0 -39
  137. package/dist/es6/common/lib/utils/other.d.ts +0 -5
  138. package/dist/es6/common/lib/utils/other.d.ts.map +0 -1
  139. package/dist/es6/common/lib/utils/other.js +0 -15
  140. package/dist/es6/common/lib/utils/position.d.ts +0 -41
  141. package/dist/es6/common/lib/utils/position.d.ts.map +0 -1
  142. package/dist/es6/common/lib/utils/position.js +0 -74
  143. package/dist/es6/common/lib/utils/space.d.ts +0 -64
  144. package/dist/es6/common/lib/utils/space.d.ts.map +0 -1
  145. package/dist/es6/common/lib/utils/space.js +0 -157
  146. package/dist/es6/common/lib/utils/types.d.ts +0 -14
  147. package/dist/es6/common/lib/utils/types.d.ts.map +0 -1
  148. package/dist/es6/common/lib/utils/types.js +0 -1
  149. package/dist/es6/header/index.d.ts +0 -9
  150. package/dist/es6/header/index.d.ts.map +0 -1
  151. package/dist/es6/header/index.js +0 -8
  152. package/dist/es6/header/lib/GlobalHeader.d.ts +0 -38
  153. package/dist/es6/header/lib/GlobalHeader.d.ts.map +0 -1
  154. package/dist/es6/header/lib/GlobalHeader.js +0 -62
  155. package/dist/es6/header/lib/Header.d.ts +0 -76
  156. package/dist/es6/header/lib/Header.d.ts.map +0 -1
  157. package/dist/es6/header/lib/Header.js +0 -309
  158. package/dist/es6/header/lib/parts/DubLogoTitle.d.ts +0 -30
  159. package/dist/es6/header/lib/parts/DubLogoTitle.d.ts.map +0 -1
  160. package/dist/es6/header/lib/parts/DubLogoTitle.js +0 -93
  161. package/dist/es6/header/lib/parts/WorkdayLogoTitle.d.ts +0 -31
  162. package/dist/es6/header/lib/parts/WorkdayLogoTitle.d.ts.map +0 -1
  163. package/dist/es6/header/lib/parts/WorkdayLogoTitle.js +0 -112
  164. package/dist/es6/header/lib/parts/index.d.ts +0 -3
  165. package/dist/es6/header/lib/parts/index.d.ts.map +0 -1
  166. package/dist/es6/header/lib/parts/index.js +0 -2
  167. package/dist/es6/header/lib/shared/themes.d.ts +0 -43
  168. package/dist/es6/header/lib/shared/themes.d.ts.map +0 -1
  169. package/dist/es6/header/lib/shared/themes.js +0 -57
  170. package/dist/es6/header/lib/shared/types.d.ts +0 -15
  171. package/dist/es6/header/lib/shared/types.d.ts.map +0 -1
  172. package/dist/es6/header/lib/shared/types.js +0 -17
  173. package/dist/es6/layout/index.d.ts +0 -5
  174. package/dist/es6/layout/index.d.ts.map +0 -1
  175. package/dist/es6/layout/index.js +0 -2
  176. package/dist/es6/layout/lib/Flex.d.ts +0 -26
  177. package/dist/es6/layout/lib/Flex.d.ts.map +0 -1
  178. package/dist/es6/layout/lib/Flex.js +0 -58
  179. package/dist/es6/layout/lib/Stack.d.ts +0 -27
  180. package/dist/es6/layout/lib/Stack.d.ts.map +0 -1
  181. package/dist/es6/layout/lib/Stack.js +0 -74
  182. package/dist/es6/layout/lib/utils/flex.d.ts +0 -36
  183. package/dist/es6/layout/lib/utils/flex.d.ts.map +0 -1
  184. package/dist/es6/layout/lib/utils/flex.js +0 -34
  185. package/dist/es6/layout/lib/utils/getValidChildren.d.ts +0 -3
  186. package/dist/es6/layout/lib/utils/getValidChildren.d.ts.map +0 -1
  187. package/dist/es6/layout/lib/utils/getValidChildren.js +0 -6
  188. package/dist/es6/layout/lib/utils/stack.d.ts +0 -26
  189. package/dist/es6/layout/lib/utils/stack.d.ts.map +0 -1
  190. package/dist/es6/layout/lib/utils/stack.js +0 -51
  191. package/dist/es6/layout/lib/utils/types.d.ts +0 -8
  192. package/dist/es6/layout/lib/utils/types.d.ts.map +0 -1
  193. package/dist/es6/layout/lib/utils/types.js +0 -1
  194. package/header/LICENSE +0 -51
  195. package/header/README.md +0 -359
  196. package/header/index.ts +0 -9
  197. package/header/lib/GlobalHeader.tsx +0 -73
  198. package/header/lib/Header.tsx +0 -429
  199. package/header/lib/parts/DubLogoTitle.tsx +0 -99
  200. package/header/lib/parts/WorkdayLogoTitle.tsx +0 -120
  201. package/header/lib/parts/index.ts +0 -2
  202. package/header/lib/shared/themes.tsx +0 -97
  203. package/header/lib/shared/types.tsx +0 -16
  204. package/header/package.json +0 -5
  205. package/layout/LICENSE +0 -52
  206. package/layout/README.md +0 -16
  207. package/layout/index.ts +0 -4
  208. package/layout/lib/Flex.tsx +0 -47
  209. package/layout/lib/Stack.tsx +0 -95
  210. package/layout/lib/utils/flex.ts +0 -65
  211. package/layout/lib/utils/getValidChildren.ts +0 -7
  212. package/layout/lib/utils/stack.ts +0 -78
  213. package/layout/lib/utils/types.ts +0 -45
  214. package/layout/package.json +0 -5
  215. package/ts3.5/dist/commonjs/combobox/index.d.ts +0 -5
  216. package/ts3.5/dist/commonjs/combobox/lib/AutocompleteList.d.ts +0 -32
  217. package/ts3.5/dist/commonjs/combobox/lib/Combobox.d.ts +0 -64
  218. package/ts3.5/dist/commonjs/combobox/lib/Status.d.ts +0 -11
  219. package/ts3.5/dist/commonjs/common/index.d.ts +0 -12
  220. package/ts3.5/dist/commonjs/common/lib/Box.d.ts +0 -31
  221. package/ts3.5/dist/commonjs/common/lib/storybook-utils/ComponentStatesTable.d.ts +0 -26
  222. package/ts3.5/dist/commonjs/common/lib/storybook-utils/permutateProps.d.ts +0 -5
  223. package/ts3.5/dist/commonjs/common/lib/storybook-utils/propTypes.d.ts +0 -15
  224. package/ts3.5/dist/commonjs/common/lib/theming/index.d.ts +0 -3
  225. package/ts3.5/dist/commonjs/common/lib/theming/useThemeRTL.d.ts +0 -36
  226. package/ts3.5/dist/commonjs/common/lib/theming/useThemedRing.d.ts +0 -11
  227. package/ts3.5/dist/commonjs/common/lib/utils/border.d.ts +0 -103
  228. package/ts3.5/dist/commonjs/common/lib/utils/color.d.ts +0 -26
  229. package/ts3.5/dist/commonjs/common/lib/utils/depth.d.ts +0 -22
  230. package/ts3.5/dist/commonjs/common/lib/utils/flexItem.d.ts +0 -33
  231. package/ts3.5/dist/commonjs/common/lib/utils/layout.d.ts +0 -43
  232. package/ts3.5/dist/commonjs/common/lib/utils/other.d.ts +0 -5
  233. package/ts3.5/dist/commonjs/common/lib/utils/position.d.ts +0 -41
  234. package/ts3.5/dist/commonjs/common/lib/utils/space.d.ts +0 -64
  235. package/ts3.5/dist/commonjs/common/lib/utils/types.d.ts +0 -14
  236. package/ts3.5/dist/commonjs/drawer/index.d.ts +0 -6
  237. package/ts3.5/dist/commonjs/drawer/lib/Drawer.d.ts +0 -49
  238. package/ts3.5/dist/commonjs/drawer/lib/DrawerHeader.d.ts +0 -38
  239. package/ts3.5/dist/commonjs/header/index.d.ts +0 -9
  240. package/ts3.5/dist/commonjs/header/lib/GlobalHeader.d.ts +0 -38
  241. package/ts3.5/dist/commonjs/header/lib/Header.d.ts +0 -76
  242. package/ts3.5/dist/commonjs/header/lib/parts/DubLogoTitle.d.ts +0 -30
  243. package/ts3.5/dist/commonjs/header/lib/parts/WorkdayLogoTitle.d.ts +0 -31
  244. package/ts3.5/dist/commonjs/header/lib/parts/index.d.ts +0 -3
  245. package/ts3.5/dist/commonjs/header/lib/shared/themes.d.ts +0 -43
  246. package/ts3.5/dist/commonjs/header/lib/shared/types.d.ts +0 -15
  247. package/ts3.5/dist/commonjs/index.d.ts +0 -7
  248. package/ts3.5/dist/commonjs/layout/index.d.ts +0 -5
  249. package/ts3.5/dist/commonjs/layout/lib/Flex.d.ts +0 -26
  250. package/ts3.5/dist/commonjs/layout/lib/Stack.d.ts +0 -27
  251. package/ts3.5/dist/commonjs/layout/lib/utils/flex.d.ts +0 -36
  252. package/ts3.5/dist/commonjs/layout/lib/utils/getValidChildren.d.ts +0 -3
  253. package/ts3.5/dist/commonjs/layout/lib/utils/stack.d.ts +0 -26
  254. package/ts3.5/dist/commonjs/layout/lib/utils/types.d.ts +0 -8
  255. package/ts3.5/dist/commonjs/search-form/index.d.ts +0 -3
  256. package/ts3.5/dist/commonjs/search-form/lib/SearchForm.d.ts +0 -103
  257. package/ts3.5/dist/commonjs/search-form/lib/themes.d.ts +0 -21
  258. package/ts3.5/dist/es6/combobox/index.d.ts +0 -5
  259. package/ts3.5/dist/es6/combobox/lib/AutocompleteList.d.ts +0 -32
  260. package/ts3.5/dist/es6/combobox/lib/Combobox.d.ts +0 -64
  261. package/ts3.5/dist/es6/combobox/lib/Status.d.ts +0 -11
  262. package/ts3.5/dist/es6/common/index.d.ts +0 -12
  263. package/ts3.5/dist/es6/common/lib/Box.d.ts +0 -31
  264. package/ts3.5/dist/es6/common/lib/storybook-utils/ComponentStatesTable.d.ts +0 -26
  265. package/ts3.5/dist/es6/common/lib/storybook-utils/permutateProps.d.ts +0 -5
  266. package/ts3.5/dist/es6/common/lib/storybook-utils/propTypes.d.ts +0 -15
  267. package/ts3.5/dist/es6/common/lib/theming/index.d.ts +0 -3
  268. package/ts3.5/dist/es6/common/lib/theming/useThemeRTL.d.ts +0 -36
  269. package/ts3.5/dist/es6/common/lib/theming/useThemedRing.d.ts +0 -11
  270. package/ts3.5/dist/es6/common/lib/utils/border.d.ts +0 -103
  271. package/ts3.5/dist/es6/common/lib/utils/color.d.ts +0 -26
  272. package/ts3.5/dist/es6/common/lib/utils/depth.d.ts +0 -22
  273. package/ts3.5/dist/es6/common/lib/utils/flexItem.d.ts +0 -33
  274. package/ts3.5/dist/es6/common/lib/utils/layout.d.ts +0 -43
  275. package/ts3.5/dist/es6/common/lib/utils/other.d.ts +0 -5
  276. package/ts3.5/dist/es6/common/lib/utils/position.d.ts +0 -41
  277. package/ts3.5/dist/es6/common/lib/utils/space.d.ts +0 -64
  278. package/ts3.5/dist/es6/common/lib/utils/types.d.ts +0 -14
  279. package/ts3.5/dist/es6/drawer/index.d.ts +0 -6
  280. package/ts3.5/dist/es6/drawer/lib/Drawer.d.ts +0 -49
  281. package/ts3.5/dist/es6/drawer/lib/DrawerHeader.d.ts +0 -38
  282. package/ts3.5/dist/es6/header/index.d.ts +0 -9
  283. package/ts3.5/dist/es6/header/lib/GlobalHeader.d.ts +0 -38
  284. package/ts3.5/dist/es6/header/lib/Header.d.ts +0 -76
  285. package/ts3.5/dist/es6/header/lib/parts/DubLogoTitle.d.ts +0 -30
  286. package/ts3.5/dist/es6/header/lib/parts/WorkdayLogoTitle.d.ts +0 -31
  287. package/ts3.5/dist/es6/header/lib/parts/index.d.ts +0 -3
  288. package/ts3.5/dist/es6/header/lib/shared/themes.d.ts +0 -43
  289. package/ts3.5/dist/es6/header/lib/shared/types.d.ts +0 -15
  290. package/ts3.5/dist/es6/index.d.ts +0 -7
  291. package/ts3.5/dist/es6/layout/index.d.ts +0 -5
  292. package/ts3.5/dist/es6/layout/lib/Flex.d.ts +0 -26
  293. package/ts3.5/dist/es6/layout/lib/Stack.d.ts +0 -27
  294. package/ts3.5/dist/es6/layout/lib/utils/flex.d.ts +0 -36
  295. package/ts3.5/dist/es6/layout/lib/utils/getValidChildren.d.ts +0 -3
  296. package/ts3.5/dist/es6/layout/lib/utils/stack.d.ts +0 -26
  297. package/ts3.5/dist/es6/layout/lib/utils/types.d.ts +0 -8
  298. package/ts3.5/dist/es6/search-form/index.d.ts +0 -3
  299. package/ts3.5/dist/es6/search-form/lib/SearchForm.d.ts +0 -103
  300. package/ts3.5/dist/es6/search-form/lib/themes.d.ts +0 -21
@@ -36,7 +36,7 @@ var __rest = (this && this.__rest) || function (s, e) {
36
36
  import * as React from 'react';
37
37
  import { colors, space, spaceNumbers } from '@workday/canvas-kit-react/tokens';
38
38
  import { styled, generateUniqueId } from '@workday/canvas-kit-react/common';
39
- import { IconButton } from '@workday/canvas-kit-react/button';
39
+ import { TertiaryButton } from '@workday/canvas-kit-react/button';
40
40
  import { searchIcon, xIcon } from '@workday/canvas-system-icons-web';
41
41
  import { FormField, FormFieldLabelPosition } from '@workday/canvas-kit-react/form-field';
42
42
  import { Combobox } from '@workday/canvas-kit-labs-react/combobox';
@@ -106,26 +106,20 @@ var SearchContainer = styled('div')({
106
106
  var SearchCombobox = styled(Combobox)({
107
107
  width: "100%",
108
108
  });
109
- var SearchIcon = styled(IconButton)(function (_a) {
109
+ var SearchIcon = styled(TertiaryButton)(function (_a) {
110
110
  var isCollapsed = _a.isCollapsed, isHidden = _a.isHidden;
111
- var collapsedSize = 40;
112
- var size = 32;
113
- var collapseStyles = isCollapsed
114
- ? {
115
- minWidth: collapsedSize,
116
- width: collapsedSize,
117
- minHeight: collapsedSize,
118
- height: collapsedSize,
119
- }
120
- : {
121
- minWidth: size,
122
- width: size,
123
- minHeight: size,
124
- height: size,
125
- };
126
- return __assign({ position: "absolute", margin: isCollapsed ? "auto " + space.xxs : "auto " + space.xxxs, top: 0, bottom: 0, left: 0, padding: 0, zIndex: 3, display: isHidden ? 'none' : 'flex' }, collapseStyles);
111
+ return {
112
+ position: "absolute",
113
+ margin: isCollapsed ? "auto " + space.xxs : "auto " + space.xxxs,
114
+ top: 0,
115
+ bottom: 0,
116
+ left: 0,
117
+ padding: 0,
118
+ zIndex: 3,
119
+ display: isHidden ? 'none' : 'flex',
120
+ };
127
121
  });
128
- var CloseButton = styled(IconButton)(function (_a) {
122
+ var CloseButton = styled(TertiaryButton)(function (_a) {
129
123
  var isCollapsed = _a.isCollapsed, showForm = _a.showForm;
130
124
  var collapseStyles = isCollapsed && showForm
131
125
  ? {
@@ -221,11 +215,11 @@ var SearchForm = /** @class */ (function (_super) {
221
215
  background = formCollapsedBackground;
222
216
  }
223
217
  var isDarkBackground = chroma(background).get('lab.l') < 70;
224
- return isDarkBackground ? 'inverse' : 'plain';
218
+ return isDarkBackground ? 'inverse' : undefined;
225
219
  };
226
220
  _this.handleSubmit = function (event) {
227
221
  event.preventDefault();
228
- if (_this.state.searchQuery.trim()) {
222
+ if (_this.props.allowEmptyStringSearch || _this.state.searchQuery.trim()) {
229
223
  _this.props.onSubmit(event);
230
224
  }
231
225
  else {
@@ -279,7 +273,7 @@ var SearchForm = /** @class */ (function (_super) {
279
273
  }
280
274
  };
281
275
  SearchForm.prototype.render = function () {
282
- var _a = this.props, _b = _a.clearButtonAriaLabel, clearButtonAriaLabel = _b === void 0 ? 'Reset Search Form' : _b, _c = _a.placeholder, placeholder = _c === void 0 ? 'Search' : _c, _d = _a.inputLabel, inputLabel = _d === void 0 ? 'Search' : _d, _e = _a.submitAriaLabel, submitAriaLabel = _e === void 0 ? 'Search' : _e, _f = _a.openButtonAriaLabel, openButtonAriaLabel = _f === void 0 ? 'Open Search' : _f, _g = _a.closeButtonAriaLabel, closeButtonAriaLabel = _g === void 0 ? 'Cancel' : _g, _h = _a.showClearButton, showClearButton = _h === void 0 ? true : _h, _j = _a.height, height = _j === void 0 ? 40 : _j, grow = _a.grow, onSubmit = _a.onSubmit, isCollapsed = _a.isCollapsed, onInputChange = _a.onInputChange, autocompleteItems = _a.autocompleteItems, initialValue = _a.initialValue, searchTheme = _a.searchTheme, rightAlign = _a.rightAlign, elemProps = __rest(_a, ["clearButtonAriaLabel", "placeholder", "inputLabel", "submitAriaLabel", "openButtonAriaLabel", "closeButtonAriaLabel", "showClearButton", "height", "grow", "onSubmit", "isCollapsed", "onInputChange", "autocompleteItems", "initialValue", "searchTheme", "rightAlign"]);
276
+ var _a = this.props, _b = _a.clearButtonAriaLabel, clearButtonAriaLabel = _b === void 0 ? 'Reset Search Form' : _b, _c = _a.placeholder, placeholder = _c === void 0 ? 'Search' : _c, _d = _a.inputLabel, inputLabel = _d === void 0 ? 'Search' : _d, _e = _a.submitAriaLabel, submitAriaLabel = _e === void 0 ? 'Search' : _e, _f = _a.openButtonAriaLabel, openButtonAriaLabel = _f === void 0 ? 'Open Search' : _f, _g = _a.closeButtonAriaLabel, closeButtonAriaLabel = _g === void 0 ? 'Cancel' : _g, _h = _a.showClearButton, showClearButton = _h === void 0 ? true : _h, _j = _a.height, height = _j === void 0 ? 40 : _j, grow = _a.grow, onSubmit = _a.onSubmit, isCollapsed = _a.isCollapsed, onInputChange = _a.onInputChange, autocompleteItems = _a.autocompleteItems, initialValue = _a.initialValue, searchTheme = _a.searchTheme, rightAlign = _a.rightAlign, _k = _a.allowEmptyStringSearch, allowEmptyStringSearch = _k === void 0 ? false : _k, elemProps = __rest(_a, ["clearButtonAriaLabel", "placeholder", "inputLabel", "submitAriaLabel", "openButtonAriaLabel", "closeButtonAriaLabel", "showClearButton", "height", "grow", "onSubmit", "isCollapsed", "onInputChange", "autocompleteItems", "initialValue", "searchTheme", "rightAlign", "allowEmptyStringSearch"]);
283
277
  return (React.createElement(StyledSearchForm, __assign({ role: "search", action: ".", rightAlign: rightAlign, grow: grow, "aria-labelledby": this.labelId, isCollapsed: isCollapsed, onSubmit: this.handleSubmit, showForm: this.state.showForm }, elemProps),
284
278
  React.createElement(SearchContainer, { height: height },
285
279
  React.createElement(SearchIcon, { "aria-label": submitAriaLabel, icon: searchIcon, isCollapsed: isCollapsed, variant: this.getIconButtonType(), type: "submit", isHidden: !!isCollapsed && !this.state.showForm }),
@@ -287,7 +281,7 @@ var SearchForm = /** @class */ (function (_super) {
287
281
  React.createElement(SearchField, { grow: grow, id: this.labelId, inputId: "input-" + this.labelId, label: inputLabel, labelPosition: FormFieldLabelPosition.Hidden, useFieldset: false, isCollapsed: isCollapsed, showForm: this.state.showForm, height: height },
288
282
  React.createElement(SearchCombobox, { initialValue: initialValue, clearButtonVariant: this.getIconButtonType(), autocompleteItems: autocompleteItems, onChange: this.handleSearchInputChange, onFocus: this.handleFocus, onBlur: this.handleBlur, showClearButton: !isCollapsed && showClearButton, clearButtonAriaLabel: clearButtonAriaLabel, labelId: this.labelId },
289
283
  React.createElement(SearchInput, { ref: this.inputRef, value: this.state.searchQuery, placeholder: placeholder, isCollapsed: isCollapsed, inputColors: this.getThemeColors(), height: height, name: "search", autoComplete: "off" }))),
290
- React.createElement(CloseButton, { "aria-label": closeButtonAriaLabel, icon: xIcon, isCollapsed: isCollapsed, variant: "plain", showForm: this.state.showForm, onClick: this.closeCollapsedSearch, type: "button" }))));
284
+ React.createElement(CloseButton, { "aria-label": closeButtonAriaLabel, icon: xIcon, isCollapsed: isCollapsed, showForm: this.state.showForm, onClick: this.closeCollapsedSearch, type: "button" }))));
291
285
  };
292
286
  SearchForm.Theme = SearchTheme;
293
287
  return SearchForm;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import styled from '@emotion/styled';
3
3
  import {colors, space, type, CanvasColor, typeColors} from '@workday/canvas-kit-react/tokens';
4
- import {IconButton} from '@workday/canvas-kit-react/button';
4
+ import {TertiaryButton} from '@workday/canvas-kit-react/button';
5
5
  import {xIcon} from '@workday/canvas-system-icons-web';
6
6
 
7
7
  export interface DrawerHeaderProps extends React.HTMLAttributes<HTMLDivElement> {
@@ -69,7 +69,7 @@ const HeaderTitle = styled('h4')<Pick<DrawerHeaderProps, 'inverse'>>(
69
69
  })
70
70
  );
71
71
 
72
- const CloseButton = styled(IconButton)({
72
+ const CloseButton = styled(TertiaryButton)({
73
73
  margin: '-8px', // for inverse and plain button, we always want this margin
74
74
  });
75
75
 
@@ -93,7 +93,7 @@ export default class DrawerHeader extends React.Component<DrawerHeaderProps, {}>
93
93
  </HeaderTitle>
94
94
  {onClose && closeIconAriaLabel && (
95
95
  <CloseButton
96
- variant={inverse ? 'inverse' : 'plain'}
96
+ variant={inverse ? 'inverse' : undefined}
97
97
  onClick={onClose}
98
98
  aria-label={closeIconAriaLabel}
99
99
  icon={xIcon}
package/index.ts CHANGED
@@ -1,6 +1,4 @@
1
1
  export * from './combobox';
2
2
  export * from './common';
3
3
  export * from './drawer';
4
- export * from './header';
5
- export * from './layout';
6
4
  export * from './search-form';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workday/canvas-kit-labs-react",
3
- "version": "7.0.0-alpha.0-next.5+b69254c7",
3
+ "version": "7.0.0-alpha.100-next.25+911bfad3",
4
4
  "description": "Canvas Kit Labs is an incubator for new and experimental components. Since we have a rather rigorous process for getting components in at a production level, it can be valuable to make them available earlier while we continuously iterate on the API/functionality. The Labs modules allow us to do that as needed.",
5
5
  "author": "Workday, Inc. (https://www.workday.com)",
6
6
  "license": "Apache-2.0",
@@ -17,25 +17,16 @@
17
17
  "*/lib/*",
18
18
  "*/index.ts",
19
19
  "dist/",
20
- "index.ts",
21
- "ts3.5/**/*"
20
+ "index.ts"
22
21
  ],
23
- "typesVersions": {
24
- "<=3.5": {
25
- "*": [
26
- "ts3.5/*"
27
- ]
28
- }
29
- },
30
22
  "scripts": {
31
23
  "watch": "yarn build:es6 -w",
32
24
  "test": "echo \"Error: no test specified\" && exit 1",
33
- "clean": "rimraf dist && rimraf ts3.5 && rimraf .build-info && mkdirp dist && mkdirp ts3.5/dist",
25
+ "clean": "rimraf dist && rimraf .build-info && mkdirp dist",
34
26
  "build:cjs": "tsc -p tsconfig.cjs.json",
35
27
  "build:es6": "tsc -p tsconfig.es6.json",
36
28
  "build:rebuild": "npm-run-all clean build",
37
- "build:downlevel-dts": "yarn run downlevel-dts dist ts3.5/dist",
38
- "build": "npm-run-all --parallel build:cjs build:es6 --sequential build:downlevel-dts",
29
+ "build": "npm-run-all --parallel build:cjs build:es6",
39
30
  "prepack": "node ../../utils/publish.js pre labs-react",
40
31
  "postpack": "node ../../utils/publish.js post labs-react",
41
32
  "depcheck": "node ../../utils/check-dependencies-exist.js",
@@ -52,19 +43,17 @@
52
43
  "react": "^16.8 || ^17.0"
53
44
  },
54
45
  "dependencies": {
55
- "@emotion/is-prop-valid": "^1.1.1",
56
46
  "@emotion/react": "^11.7.1",
57
47
  "@emotion/styled": "^11.6.0",
58
- "@workday/canvas-kit-preview-react": "^7.0.0-alpha.0-next.5+b69254c7",
59
- "@workday/canvas-kit-react": "^7.0.0-alpha.0-next.5+b69254c7",
60
- "@workday/canvas-system-icons-web": "1.0.41",
48
+ "@workday/canvas-kit-preview-react": "^7.0.0-alpha.100-next.25+911bfad3",
49
+ "@workday/canvas-kit-react": "^7.0.0-alpha.100-next.25+911bfad3",
50
+ "@workday/canvas-system-icons-web": "^3.0.0",
61
51
  "chroma-js": "^2.1.0",
62
- "csstype": "^2.6.17",
63
52
  "lodash.flatten": "^4.4.0",
64
53
  "rtl-css-js": "^1.14.1"
65
54
  },
66
55
  "devDependencies": {
67
56
  "@types/lodash.flatten": "^4.4.6"
68
57
  },
69
- "gitHead": "b69254c752dc3fcc508e3b93164f8f7a83b005bb"
58
+ "gitHead": "911bfad34147c054ac08fd77845d0a0339fd3f95"
70
59
  }
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import {CSSObject} from '@emotion/styled';
3
3
  import {colors, space, spaceNumbers} from '@workday/canvas-kit-react/tokens';
4
4
  import {GrowthBehavior, styled, generateUniqueId} from '@workday/canvas-kit-react/common';
5
- import {IconButton, IconButtonProps} from '@workday/canvas-kit-react/button';
5
+ import {TertiaryButton, TertiaryButtonProps} from '@workday/canvas-kit-react/button';
6
6
  import {searchIcon, xIcon} from '@workday/canvas-system-icons-web';
7
7
  import {FormField, FormFieldLabelPosition} from '@workday/canvas-kit-react/form-field';
8
8
  import {Combobox} from '@workday/canvas-kit-labs-react/combobox';
@@ -82,6 +82,11 @@ export interface SearchFormProps extends GrowthBehavior, React.FormHTMLAttribute
82
82
  * @default 40
83
83
  */
84
84
  height?: number;
85
+ /**
86
+ * If true, allow onSubmit being called when input value is empty.
87
+ * @default false
88
+ */
89
+ allowEmptyStringSearch?: boolean;
85
90
  }
86
91
 
87
92
  export interface SearchFormState {
@@ -164,39 +169,22 @@ const SearchCombobox = styled(Combobox)({
164
169
  width: `100%`,
165
170
  });
166
171
 
167
- const SearchIcon = styled(IconButton)<Pick<SearchFormProps, 'isCollapsed'> & {isHidden: boolean}>(
168
- ({isCollapsed, isHidden}) => {
169
- const collapsedSize = 40;
170
- const size = 32;
171
- const collapseStyles: CSSObject = isCollapsed
172
- ? {
173
- minWidth: collapsedSize,
174
- width: collapsedSize,
175
- minHeight: collapsedSize,
176
- height: collapsedSize,
177
- }
178
- : {
179
- minWidth: size,
180
- width: size,
181
- minHeight: size,
182
- height: size,
183
- };
184
-
185
- return {
186
- position: `absolute`,
187
- margin: isCollapsed ? `auto ${space.xxs}` : `auto ${space.xxxs}`,
188
- top: 0,
189
- bottom: 0,
190
- left: 0,
191
- padding: 0,
192
- zIndex: 3,
193
- display: isHidden ? 'none' : 'flex',
194
- ...collapseStyles,
195
- };
196
- }
197
- );
172
+ const SearchIcon = styled(TertiaryButton)<
173
+ Pick<SearchFormProps, 'isCollapsed'> & {isHidden: boolean}
174
+ >(({isCollapsed, isHidden}) => {
175
+ return {
176
+ position: `absolute`,
177
+ margin: isCollapsed ? `auto ${space.xxs}` : `auto ${space.xxxs}`,
178
+ top: 0,
179
+ bottom: 0,
180
+ left: 0,
181
+ padding: 0,
182
+ zIndex: 3,
183
+ display: isHidden ? 'none' : 'flex',
184
+ };
185
+ });
198
186
 
199
- const CloseButton = styled(IconButton)<
187
+ const CloseButton = styled(TertiaryButton)<
200
188
  Pick<SearchFormProps, 'isCollapsed'> & Pick<SearchFormState, 'showForm'>
201
189
  >(({isCollapsed, showForm}) => {
202
190
  const collapseStyles: CSSObject =
@@ -320,18 +308,18 @@ export class SearchForm extends React.Component<SearchFormProps, SearchFormState
320
308
  return getInputColors(theme, this.state.isFocused);
321
309
  };
322
310
 
323
- getIconButtonType = (): IconButtonProps['variant'] => {
311
+ getIconButtonType = (): TertiaryButtonProps['variant'] => {
324
312
  let background = this.getThemeColors().background || `#fff`;
325
313
  if (this.props.isCollapsed && this.state.showForm) {
326
314
  background = formCollapsedBackground;
327
315
  }
328
316
  const isDarkBackground = chroma(background as string).get('lab.l') < 70;
329
- return isDarkBackground ? 'inverse' : 'plain';
317
+ return isDarkBackground ? 'inverse' : undefined;
330
318
  };
331
319
 
332
320
  handleSubmit = (event: React.FormEvent<HTMLFormElement>): void => {
333
321
  event.preventDefault();
334
- if (this.state.searchQuery.trim()) {
322
+ if (this.props.allowEmptyStringSearch || this.state.searchQuery.trim()) {
335
323
  this.props.onSubmit(event);
336
324
  } else {
337
325
  this.focusInput();
@@ -407,6 +395,7 @@ export class SearchForm extends React.Component<SearchFormProps, SearchFormState
407
395
  initialValue,
408
396
  searchTheme,
409
397
  rightAlign,
398
+ allowEmptyStringSearch = false,
410
399
  ...elemProps
411
400
  } = this.props;
412
401
 
@@ -479,7 +468,6 @@ export class SearchForm extends React.Component<SearchFormProps, SearchFormState
479
468
  aria-label={closeButtonAriaLabel}
480
469
  icon={xIcon}
481
470
  isCollapsed={isCollapsed}
482
- variant="plain"
483
471
  showForm={this.state.showForm}
484
472
  onClick={this.closeCollapsedSearch}
485
473
  type="button"
@@ -1,92 +0,0 @@
1
- import * as React from 'react';
2
- import styled from '@emotion/styled';
3
- import isPropValid from '@emotion/is-prop-valid';
4
- import {createComponent, StyledType, useConstant} from '@workday/canvas-kit-react/common';
5
-
6
- // style props
7
- import {border, BorderStyleProps} from './utils/border';
8
- import {color, ColorStyleProps} from './utils/color';
9
- import {depth, DepthStyleProps} from './utils/depth';
10
- import {flexItem, FlexItemStyleProps} from './utils/flexItem';
11
- import {layout, LayoutStyleProps} from './utils/layout';
12
- import {other, OtherStyleProps} from './utils/other';
13
- import {position, PositionStyleProps} from './utils/position';
14
- import {space, SpaceStyleProps} from './utils/space';
15
-
16
- export type BoxProps = BorderStyleProps &
17
- ColorStyleProps &
18
- DepthStyleProps &
19
- FlexItemStyleProps &
20
- LayoutStyleProps &
21
- OtherStyleProps &
22
- PositionStyleProps &
23
- SpaceStyleProps & {
24
- children?: React.ReactNode;
25
- };
26
-
27
- const omittedProps = ['display', 'color', 'height', 'overflow', 'width', 'border', 'background'];
28
-
29
- const shouldForwardProp = (prop: string) => {
30
- return isPropValid(prop) && !omittedProps.includes(prop);
31
- };
32
-
33
- // Meant to be used with elements. The `shouldForwardProps` will remove all style props
34
- const StyledBoxElement = styled('div', {shouldForwardProp})<StyledType & BoxProps>(
35
- {
36
- boxSizing: 'border-box',
37
- },
38
- border,
39
- color,
40
- depth,
41
- flexItem,
42
- layout,
43
- position,
44
- space
45
- );
46
-
47
- // Meant to be used with components. There is no `shouldForwardProps` - all props will be forwarded to the component
48
- const StyledBoxComponent = styled('div')<StyledType & BoxProps>(
49
- {
50
- boxSizing: 'border-box',
51
- },
52
- border,
53
- color,
54
- depth,
55
- flexItem,
56
- layout,
57
- other,
58
- position,
59
- space
60
- );
61
-
62
- /**
63
- * `Box` is a primitive component that provides a common, ergonomic API around Canvas design tokens.
64
- * It is highly flexible, and its primary purpose is to build other components.
65
- *
66
- * @example
67
- * import { Box, BoxProps } from '@workday/canvas-kit-labs-react/common';
68
- *
69
- * interface CardProps extends BoxProps {
70
- * // card-specific props
71
- * }
72
- *
73
- * // `Card`'s default values are set using `BoxProps`
74
- * const Card = (props: CardProps) => (
75
- * <Box depth={2} padding="m" borderRadius="l" {...props}>Hello, Card!</Box>
76
- * );
77
- *
78
- */
79
- export const Box = createComponent('div')({
80
- displayName: 'Box',
81
- Component: ({children, ...elemProps}: BoxProps, ref, Element) => {
82
- const BoxComponent = useConstant(() =>
83
- typeof Element === 'string' ? StyledBoxElement : StyledBoxComponent
84
- );
85
-
86
- return (
87
- <BoxComponent as={Element} ref={ref} {...elemProps}>
88
- {children}
89
- </BoxComponent>
90
- );
91
- },
92
- });
@@ -1,263 +0,0 @@
1
- import {
2
- borderRadius as borderRadiusTokens,
3
- CanvasBorderRadiusKeys,
4
- colors as colorTokens,
5
- CanvasColor,
6
- } from '@workday/canvas-kit-react/tokens';
7
- import {
8
- ContentDirection,
9
- PartialEmotionCanvasTheme,
10
- useTheme,
11
- } from '@workday/canvas-kit-react/common';
12
-
13
- import {PropertyBorder} from './types';
14
-
15
- /** style props to set the border properties */
16
- export type BorderShorthandStyleProps = {
17
- /** sets `border` property */
18
- border?: string;
19
- /** sets `border-top` property */
20
- borderTop?: string;
21
- /** sets `border-right` property (no bidirectional support) */
22
- borderRight?: string;
23
- /** sets `border-bottom` property */
24
- borderBottom?: string;
25
- /** sets `border-left` property (no bidirectional support) */
26
- borderLeft?: string;
27
- };
28
-
29
- /** style props to set the border color properties */
30
- export type BorderColorStyleProps = {
31
- /** sets `border-color` property */
32
- borderColor?: CanvasColor | (string & {});
33
- /** sets `border-top-color` property */
34
- borderTopColor?: CanvasColor | (string & {});
35
- /** sets `border-right-color` property (no bidirectional support) */
36
- borderRightColor?: CanvasColor | (string & {});
37
- /** sets `border-bottom-color` property */
38
- borderBottomColor?: CanvasColor | (string & {});
39
- /** sets `border-left-color` property (no bidirectional support) */
40
- borderLeftColor?: CanvasColor | (string & {});
41
- };
42
-
43
- /** style props to set the border radius properties */
44
- export type BorderRadiusStyleProps = {
45
- /** sets `border-radius` property */
46
- borderRadius?: CanvasBorderRadiusKeys | number | (string & {});
47
- /** sets `border-top-left-radius` property */
48
- borderTopLeftRadius?: CanvasBorderRadiusKeys | number | (string & {});
49
- /** sets `border-top-right-radius` property */
50
- borderTopRightRadius?: CanvasBorderRadiusKeys | number | (string & {});
51
- /** sets `border-bottom-left-radius` property */
52
- borderBottomLeftRadius?: CanvasBorderRadiusKeys | number | (string & {});
53
- /** sets `border-bottom-right-radius` property */
54
- borderBottomRightRadius?: CanvasBorderRadiusKeys | number | (string & {});
55
- };
56
-
57
- /** style props to set the border style properties */
58
- export type BorderLineStyleProps = {
59
- /** sets `border-style` property */
60
- borderStyle?: PropertyBorder;
61
- /** sets `border-top-style` property */
62
- borderTopStyle?: PropertyBorder;
63
- /** sets `border-right-style` property (no bidirectional support) */
64
- borderRightStyle?: PropertyBorder;
65
- /** sets `border-bottom-style` property */
66
- borderBottomStyle?: PropertyBorder;
67
- /** sets `border-left-style` property (no bidirectional support) */
68
- borderLeftStyle?: PropertyBorder;
69
- };
70
-
71
- /** style props to set the border width properties */
72
- export type BorderWidthStyleProps = {
73
- /** sets `border-width` property */
74
- borderWidth?: string | number;
75
- /** sets `border-top-width` property */
76
- borderTopWidth?: string | number;
77
- /** sets `border-right-width` property (no bidirectional support) */
78
- borderRightWidth?: string | number;
79
- /** sets `border-bottom-width` property */
80
- borderBottomWidth?: string | number;
81
- /** sets `border-left-width` property (no bidirectional support) */
82
- borderLeftWidth?: string | number;
83
- };
84
-
85
- export type BorderLogicalStyleProps = {
86
- /** sets `border-left` property (bidirectional support) */
87
- borderInlineStart?: string;
88
- /** sets `border-left-color` property (bidirectional support) */
89
- borderInlineStartColor?: CanvasColor | (string & {});
90
- /** sets `border-left-style` property (bidirectional support) */
91
- borderInlineStartStyle?: PropertyBorder;
92
- /** sets `border-left-width` property (bidirectional support) */
93
- borderInlineStartWidth?: string | number;
94
- /** sets `border-right` property (bidirectional support) */
95
- borderInlineEnd?: string;
96
- /** sets `border-right-color` property (bidirectional support) */
97
- borderInlineEndColor?: CanvasColor | (string & {});
98
- /** sets `border-right-style` property (bidirectional support) */
99
- borderInlineEndStyle?: PropertyBorder;
100
- /** sets `border-right-width` property (bidirectional support) */
101
- borderInlineEndWidth?: string | number;
102
- };
103
-
104
- /** a collection style props for border properties */
105
- export type BorderStyleProps = BorderShorthandStyleProps &
106
- BorderColorStyleProps &
107
- BorderRadiusStyleProps &
108
- BorderLineStyleProps &
109
- BorderWidthStyleProps &
110
- BorderLogicalStyleProps;
111
-
112
- // border logical prop handlers
113
- const borderInlineStart = (isRTL: boolean) => (isRTL ? 'borderRight' : 'borderLeft');
114
- const borderInlineEnd = (isRTL: boolean) => (isRTL ? 'borderLeft' : 'borderRight');
115
- const borderInlineStartColor = (isRTL: boolean) => (isRTL ? 'borderRightColor' : 'borderLeftColor');
116
- const borderInlineEndColor = (isRTL: boolean) => (isRTL ? 'borderLeftColor' : 'borderRightColor');
117
- const borderInlineStartStyle = (isRTL: boolean) => (isRTL ? 'borderRightStyle' : 'borderLeftStyle');
118
- const borderInlineEndStyle = (isRTL: boolean) => (isRTL ? 'borderLeftStyle' : 'borderRightStyle');
119
- const borderInlineStartWidth = (isRTL: boolean) => (isRTL ? 'borderRightWidth' : 'borderLeftWidth');
120
- const borderInlineEndWidth = (isRTL: boolean) => (isRTL ? 'borderLeftWidth' : 'borderRightWidth');
121
-
122
- const borderShorthandProps = {
123
- border: 'border',
124
- borderTop: 'borderTop',
125
- borderRight: 'borderRight',
126
- borderBottom: 'borderBottom',
127
- borderLeft: 'borderLeft',
128
- borderInlineStart,
129
- borderInlineEnd,
130
- };
131
-
132
- const borderColors = {
133
- borderColor: 'borderColor',
134
- borderTopColor: 'borderTopColor',
135
- borderRightColor: 'borderRightColor',
136
- borderBottomColor: 'borderBottomColor',
137
- borderLeftColor: 'borderLeftColor',
138
- borderInlineStartColor,
139
- borderInlineEndColor,
140
- };
141
-
142
- const borderRadii = {
143
- borderRadius: 'borderRadius',
144
- borderTopLeftRadius: 'borderTopLeftRadius',
145
- borderTopRightRadius: 'borderTopRightRadius',
146
- borderBottomLeftRadius: 'borderBottomLeftRadius',
147
- borderBottomRightRadius: 'borderBottomRightRadius',
148
- };
149
-
150
- const borderStyles = {
151
- borderStyle: 'borderStyle',
152
- borderTopStyle: 'borderTopStyle',
153
- borderRightStyle: 'borderRightStyle',
154
- borderBottomStyle: 'borderBottomStyle',
155
- borderLeftStyle: 'borderLeftStyle',
156
- borderInlineStartStyle,
157
- borderInlineEndStyle,
158
- };
159
-
160
- const borderWidths = {
161
- borderWidth: 'borderWidth',
162
- borderTopWidth: 'borderTopWidth',
163
- borderRightWidth: 'borderRightWidth',
164
- borderBottomWidth: 'borderBottomWidth',
165
- borderLeftWidth: 'borderLeftWidth',
166
- borderInlineStartWidth,
167
- borderInlineEndWidth,
168
- };
169
-
170
- /**
171
- * A style prop function that takes components props and returns border styles. Some props, such as borderRadius and borderColor, are connected to our design tokens.
172
- * If no `BorderStyleProps` are found, it returns an empty object.
173
- *
174
- * @example
175
- * // You'll most likely use `border` with low-level, styled components
176
- * const BoxExample = () => (
177
- * <Box border={`solid 1px #333333 ${colors.blackPepper400}`}>Hello, border styles!</Box>
178
- * );
179
- *
180
- */
181
- export function border<P extends BorderStyleProps & {theme?: PartialEmotionCanvasTheme}>(props: P) {
182
- // border will always be used within the context of a component, but eslint doesn't know that
183
- // eslint-disable-next-line react-hooks/rules-of-hooks
184
- const {canvas} = useTheme(props.theme);
185
- const isRTL = canvas.direction === ContentDirection.RTL;
186
- const styles = {};
187
- for (const key in props) {
188
- if (props.hasOwnProperty(key)) {
189
- if (key in borderShorthandProps) {
190
- const value = props[key as keyof BorderShorthandStyleProps];
191
- let attr: string;
192
- if (key === 'borderInlineStart') {
193
- attr = borderInlineStart(isRTL);
194
- } else if (key === 'borderInlineEnd') {
195
- attr = borderInlineEnd(isRTL);
196
- } else {
197
- attr = borderShorthandProps[key as keyof BorderShorthandStyleProps];
198
- }
199
- // @ts-ignore TS doesn't like adding a potentially unknown key to an object, but because we own this object, it's fine.
200
- styles[attr] = value;
201
- continue;
202
- }
203
-
204
- if (key in borderColors) {
205
- const propValue = props[key as keyof BorderColorStyleProps] as CanvasColor | string;
206
- const value = colorTokens[propValue as CanvasColor] || propValue;
207
- let attr: string;
208
- if (key === 'borderInlineStartColor') {
209
- attr = borderInlineStartColor(isRTL);
210
- } else if (key === 'borderInlineEndColor') {
211
- attr = borderInlineEndColor(isRTL);
212
- } else {
213
- attr = borderColors[key as keyof BorderColorStyleProps];
214
- }
215
- // @ts-ignore TS doesn't like adding a potentially unknown key to an object, but because we own this object, it's fine.
216
- styles[attr] = value;
217
- continue;
218
- }
219
-
220
- if (key in borderRadii) {
221
- const propValue = props[key as keyof BorderRadiusStyleProps] as
222
- | CanvasBorderRadiusKeys
223
- | number
224
- | string;
225
- const value = borderRadiusTokens[propValue as CanvasBorderRadiusKeys] || propValue;
226
- const attr = borderRadii[key as keyof BorderRadiusStyleProps];
227
- // @ts-ignore TS doesn't like adding a potentially unknown key to an object, but because we own this object, it's fine.
228
- styles[attr] = value;
229
- continue;
230
- }
231
-
232
- if (key in borderStyles) {
233
- const value = props[key as keyof BorderLineStyleProps];
234
- let attr: string;
235
- if (key === 'borderInlineStartStyle') {
236
- attr = borderInlineStartStyle(isRTL);
237
- } else if (key === 'borderInlineEndStyle') {
238
- attr = borderInlineEndStyle(isRTL);
239
- } else {
240
- attr = borderStyles[key as keyof BorderLineStyleProps];
241
- }
242
- // @ts-ignore TS doesn't like adding a potentially unknown key to an object, but because we own this object, it's fine.
243
- styles[attr] = value;
244
- continue;
245
- }
246
-
247
- if (key in borderWidths) {
248
- const value = props[key as keyof BorderWidthStyleProps];
249
- let attr: string;
250
- if (key === 'borderInlineStartWidth') {
251
- attr = borderInlineStartWidth(isRTL);
252
- } else if (key === 'borderInlineEndWidth') {
253
- attr = borderInlineEndWidth(isRTL);
254
- } else {
255
- attr = borderWidths[key as keyof BorderWidthStyleProps];
256
- }
257
- // @ts-ignore TS doesn't like adding a potentially unknown key to an object, but because we own this object, it's fine.
258
- styles[attr] = value;
259
- }
260
- }
261
- }
262
- return styles;
263
- }