@workday/canvas-kit-react 8.0.0-alpha.208-next.1 → 8.0.0-alpha.222-next.6

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 (298) hide show
  1. package/common/lib/theming/index.ts +1 -1
  2. package/common/lib/theming/styled.ts +6 -3
  3. package/common/lib/utils/elements.ts +4 -4
  4. package/common/lib/utils/index.ts +0 -1
  5. package/dist/commonjs/card/lib/Card.d.ts +1 -1
  6. package/dist/commonjs/card/lib/CardBody.d.ts +1 -1
  7. package/dist/commonjs/card/lib/CardBody.d.ts.map +1 -1
  8. package/dist/commonjs/common/lib/theming/index.d.ts +1 -1
  9. package/dist/commonjs/common/lib/theming/index.d.ts.map +1 -1
  10. package/dist/commonjs/common/lib/theming/styled.d.ts +2 -0
  11. package/dist/commonjs/common/lib/theming/styled.d.ts.map +1 -1
  12. package/dist/commonjs/common/lib/theming/styled.js +1 -2
  13. package/dist/commonjs/common/lib/utils/elements.d.ts +1 -1
  14. package/dist/commonjs/common/lib/utils/elements.d.ts.map +1 -1
  15. package/dist/commonjs/common/lib/utils/elements.js +3 -3
  16. package/dist/commonjs/common/lib/utils/index.d.ts +0 -1
  17. package/dist/commonjs/common/lib/utils/index.d.ts.map +1 -1
  18. package/dist/commonjs/common/lib/utils/index.js +0 -1
  19. package/dist/commonjs/dialog/lib/Dialog.d.ts +1 -1
  20. package/dist/commonjs/icon/lib/SystemIcon.d.ts +1 -1
  21. package/dist/commonjs/icon/lib/SystemIcon.d.ts.map +1 -1
  22. package/dist/commonjs/index.d.ts +1 -0
  23. package/dist/commonjs/index.d.ts.map +1 -1
  24. package/dist/commonjs/index.js +1 -0
  25. package/dist/commonjs/layout/index.d.ts +8 -4
  26. package/dist/commonjs/layout/index.d.ts.map +1 -1
  27. package/dist/commonjs/layout/index.js +10 -2
  28. package/dist/commonjs/layout/lib/Box.d.ts +6 -4
  29. package/dist/commonjs/layout/lib/Box.d.ts.map +1 -1
  30. package/dist/commonjs/layout/lib/Box.js +8 -9
  31. package/dist/commonjs/layout/lib/Flex.d.ts +5 -2
  32. package/dist/commonjs/layout/lib/Flex.d.ts.map +1 -1
  33. package/dist/commonjs/layout/lib/Flex.js +5 -1
  34. package/dist/commonjs/layout/lib/Grid.d.ts +5 -6
  35. package/dist/commonjs/layout/lib/Grid.d.ts.map +1 -1
  36. package/dist/commonjs/layout/lib/Grid.js +2 -2
  37. package/dist/commonjs/layout/lib/Stack.d.ts +4 -4
  38. package/dist/commonjs/layout/lib/utils/background.d.ts +44 -0
  39. package/dist/commonjs/layout/lib/utils/background.d.ts.map +1 -0
  40. package/dist/commonjs/layout/lib/utils/background.js +57 -0
  41. package/dist/commonjs/layout/lib/utils/border/color.d.ts +47 -0
  42. package/dist/commonjs/layout/lib/utils/border/color.d.ts.map +1 -0
  43. package/dist/commonjs/layout/lib/utils/border/color.js +42 -0
  44. package/dist/commonjs/layout/lib/utils/border/index.d.ts +26 -0
  45. package/dist/commonjs/layout/lib/utils/border/index.d.ts.map +1 -0
  46. package/dist/commonjs/layout/lib/utils/border/index.js +46 -0
  47. package/dist/commonjs/layout/lib/utils/border/lineStyle.d.ts +38 -0
  48. package/dist/commonjs/layout/lib/utils/border/lineStyle.d.ts.map +1 -0
  49. package/dist/commonjs/layout/lib/utils/border/lineStyle.js +52 -0
  50. package/dist/commonjs/layout/lib/utils/border/radius.d.ts +33 -0
  51. package/dist/commonjs/layout/lib/utils/border/radius.d.ts.map +1 -0
  52. package/dist/commonjs/layout/lib/utils/border/radius.js +32 -0
  53. package/dist/commonjs/layout/lib/utils/border/shorthand.d.ts +34 -0
  54. package/dist/commonjs/layout/lib/utils/border/shorthand.d.ts.map +1 -0
  55. package/dist/commonjs/layout/lib/utils/border/shorthand.js +42 -0
  56. package/dist/commonjs/layout/lib/utils/border/width.d.ts +34 -0
  57. package/dist/commonjs/layout/lib/utils/border/width.d.ts.map +1 -0
  58. package/dist/commonjs/layout/lib/utils/border/width.js +42 -0
  59. package/dist/commonjs/layout/lib/utils/buildStyleFns.d.ts +12 -0
  60. package/dist/commonjs/layout/lib/utils/buildStyleFns.d.ts.map +1 -0
  61. package/dist/commonjs/layout/lib/utils/buildStyleFns.js +90 -0
  62. package/dist/commonjs/layout/lib/utils/color.d.ts +23 -16
  63. package/dist/commonjs/layout/lib/utils/color.d.ts.map +1 -1
  64. package/dist/commonjs/layout/lib/utils/color.js +25 -49
  65. package/dist/commonjs/layout/lib/utils/depth.d.ts +17 -11
  66. package/dist/commonjs/layout/lib/utils/depth.d.ts.map +1 -1
  67. package/dist/commonjs/layout/lib/utils/depth.js +20 -20
  68. package/dist/commonjs/layout/lib/utils/flex.d.ts +31 -12
  69. package/dist/commonjs/layout/lib/utils/flex.d.ts.map +1 -1
  70. package/dist/commonjs/layout/lib/utils/flex.js +58 -25
  71. package/dist/commonjs/layout/lib/utils/flexItem.d.ts +18 -15
  72. package/dist/commonjs/layout/lib/utils/flexItem.d.ts.map +1 -1
  73. package/dist/commonjs/layout/lib/utils/flexItem.js +43 -26
  74. package/dist/commonjs/layout/lib/utils/grid.d.ts +40 -35
  75. package/dist/commonjs/layout/lib/utils/grid.d.ts.map +1 -1
  76. package/dist/commonjs/layout/lib/utils/grid.js +99 -72
  77. package/dist/commonjs/layout/lib/utils/gridItem.d.ts +17 -14
  78. package/dist/commonjs/layout/lib/utils/gridItem.d.ts.map +1 -1
  79. package/dist/commonjs/layout/lib/utils/gridItem.js +58 -30
  80. package/dist/commonjs/layout/lib/utils/layout.d.ts +47 -25
  81. package/dist/commonjs/layout/lib/utils/layout.d.ts.map +1 -1
  82. package/dist/commonjs/layout/lib/utils/layout.js +71 -33
  83. package/dist/commonjs/layout/lib/utils/other.d.ts +44 -2
  84. package/dist/commonjs/layout/lib/utils/other.d.ts.map +1 -1
  85. package/dist/commonjs/layout/lib/utils/other.js +101 -17
  86. package/dist/commonjs/layout/lib/utils/position.d.ts +37 -20
  87. package/dist/commonjs/layout/lib/utils/position.d.ts.map +1 -1
  88. package/dist/commonjs/layout/lib/utils/position.js +49 -66
  89. package/dist/commonjs/layout/lib/utils/space.d.ts +107 -51
  90. package/dist/commonjs/layout/lib/utils/space.d.ts.map +1 -1
  91. package/dist/commonjs/layout/lib/utils/space.js +98 -148
  92. package/dist/commonjs/layout/lib/utils/stack.d.ts +3 -6
  93. package/dist/commonjs/layout/lib/utils/stack.d.ts.map +1 -1
  94. package/dist/commonjs/layout/lib/utils/stack.js +13 -39
  95. package/dist/commonjs/layout/lib/utils/systemProps.d.ts +31 -0
  96. package/dist/commonjs/layout/lib/utils/systemProps.d.ts.map +1 -0
  97. package/dist/commonjs/layout/lib/utils/systemProps.js +2 -0
  98. package/dist/commonjs/layout/lib/utils/text.d.ts +33 -15
  99. package/dist/commonjs/layout/lib/utils/text.d.ts.map +1 -1
  100. package/dist/commonjs/layout/lib/utils/text.js +74 -38
  101. package/dist/commonjs/modal/lib/Modal.d.ts +1 -1
  102. package/dist/commonjs/popup/lib/Popup.d.ts +1 -1
  103. package/dist/commonjs/popup/lib/PopupBody.d.ts +1 -1
  104. package/dist/commonjs/popup/lib/hooks/useReturnFocus.d.ts.map +1 -1
  105. package/dist/commonjs/popup/lib/hooks/useReturnFocus.js +72 -7
  106. package/dist/commonjs/tabs/lib/TabsItem.d.ts +1 -1
  107. package/dist/commonjs/testing/index.d.ts +5 -0
  108. package/dist/commonjs/testing/index.d.ts.map +1 -0
  109. package/dist/commonjs/testing/index.js +16 -0
  110. package/dist/commonjs/testing/lib/ComponentStatesTable.d.ts +26 -0
  111. package/dist/commonjs/testing/lib/ComponentStatesTable.d.ts.map +1 -0
  112. package/dist/commonjs/testing/lib/ComponentStatesTable.js +48 -0
  113. package/dist/commonjs/testing/lib/StaticStates.d.ts +7 -0
  114. package/dist/commonjs/testing/lib/StaticStates.d.ts.map +1 -0
  115. package/dist/commonjs/{common/lib/utils → testing/lib}/StaticStates.js +1 -1
  116. package/dist/commonjs/testing/lib/permutateProps.d.ts +5 -0
  117. package/dist/commonjs/testing/lib/permutateProps.d.ts.map +1 -0
  118. package/dist/commonjs/testing/lib/permutateProps.js +47 -0
  119. package/dist/commonjs/testing/lib/propTypes.d.ts +15 -0
  120. package/dist/commonjs/testing/lib/propTypes.d.ts.map +1 -0
  121. package/dist/commonjs/testing/lib/propTypes.js +2 -0
  122. package/dist/commonjs/tokens/lib/colors.types.d.ts +4 -6
  123. package/dist/commonjs/tokens/lib/colors.types.d.ts.map +1 -1
  124. package/dist/es6/card/lib/Card.d.ts +1 -1
  125. package/dist/es6/card/lib/CardBody.d.ts +1 -1
  126. package/dist/es6/card/lib/CardBody.d.ts.map +1 -1
  127. package/dist/es6/common/lib/theming/index.d.ts +1 -1
  128. package/dist/es6/common/lib/theming/index.d.ts.map +1 -1
  129. package/dist/es6/common/lib/theming/styled.d.ts +2 -0
  130. package/dist/es6/common/lib/theming/styled.d.ts.map +1 -1
  131. package/dist/es6/common/lib/theming/styled.js +1 -2
  132. package/dist/es6/common/lib/utils/elements.d.ts +1 -1
  133. package/dist/es6/common/lib/utils/elements.d.ts.map +1 -1
  134. package/dist/es6/common/lib/utils/elements.js +3 -3
  135. package/dist/es6/common/lib/utils/index.d.ts +0 -1
  136. package/dist/es6/common/lib/utils/index.d.ts.map +1 -1
  137. package/dist/es6/common/lib/utils/index.js +0 -1
  138. package/dist/es6/dialog/lib/Dialog.d.ts +1 -1
  139. package/dist/es6/icon/lib/SystemIcon.d.ts +1 -1
  140. package/dist/es6/icon/lib/SystemIcon.d.ts.map +1 -1
  141. package/dist/es6/index.d.ts +1 -0
  142. package/dist/es6/index.d.ts.map +1 -1
  143. package/dist/es6/index.js +1 -0
  144. package/dist/es6/layout/index.d.ts +8 -4
  145. package/dist/es6/layout/index.d.ts.map +1 -1
  146. package/dist/es6/layout/index.js +7 -1
  147. package/dist/es6/layout/lib/Box.d.ts +6 -4
  148. package/dist/es6/layout/lib/Box.d.ts.map +1 -1
  149. package/dist/es6/layout/lib/Box.js +8 -9
  150. package/dist/es6/layout/lib/Flex.d.ts +5 -2
  151. package/dist/es6/layout/lib/Flex.d.ts.map +1 -1
  152. package/dist/es6/layout/lib/Flex.js +5 -1
  153. package/dist/es6/layout/lib/Grid.d.ts +5 -6
  154. package/dist/es6/layout/lib/Grid.d.ts.map +1 -1
  155. package/dist/es6/layout/lib/Grid.js +2 -2
  156. package/dist/es6/layout/lib/Stack.d.ts +4 -4
  157. package/dist/es6/layout/lib/utils/background.d.ts +44 -0
  158. package/dist/es6/layout/lib/utils/background.d.ts.map +1 -0
  159. package/dist/es6/layout/lib/utils/background.js +54 -0
  160. package/dist/es6/layout/lib/utils/border/color.d.ts +47 -0
  161. package/dist/es6/layout/lib/utils/border/color.d.ts.map +1 -0
  162. package/dist/es6/layout/lib/utils/border/color.js +39 -0
  163. package/dist/es6/layout/lib/utils/border/index.d.ts +26 -0
  164. package/dist/es6/layout/lib/utils/border/index.d.ts.map +1 -0
  165. package/dist/es6/layout/lib/utils/border/index.js +43 -0
  166. package/dist/es6/layout/lib/utils/border/lineStyle.d.ts +38 -0
  167. package/dist/es6/layout/lib/utils/border/lineStyle.d.ts.map +1 -0
  168. package/dist/es6/layout/lib/utils/border/lineStyle.js +49 -0
  169. package/dist/es6/layout/lib/utils/border/radius.d.ts +33 -0
  170. package/dist/es6/layout/lib/utils/border/radius.d.ts.map +1 -0
  171. package/dist/es6/layout/lib/utils/border/radius.js +29 -0
  172. package/dist/es6/layout/lib/utils/border/shorthand.d.ts +34 -0
  173. package/dist/es6/layout/lib/utils/border/shorthand.d.ts.map +1 -0
  174. package/dist/es6/layout/lib/utils/border/shorthand.js +39 -0
  175. package/dist/es6/layout/lib/utils/border/width.d.ts +34 -0
  176. package/dist/es6/layout/lib/utils/border/width.d.ts.map +1 -0
  177. package/dist/es6/layout/lib/utils/border/width.js +39 -0
  178. package/dist/es6/layout/lib/utils/buildStyleFns.d.ts +12 -0
  179. package/dist/es6/layout/lib/utils/buildStyleFns.d.ts.map +1 -0
  180. package/dist/es6/layout/lib/utils/buildStyleFns.js +85 -0
  181. package/dist/es6/layout/lib/utils/color.d.ts +23 -16
  182. package/dist/es6/layout/lib/utils/color.d.ts.map +1 -1
  183. package/dist/es6/layout/lib/utils/color.js +24 -47
  184. package/dist/es6/layout/lib/utils/depth.d.ts +17 -11
  185. package/dist/es6/layout/lib/utils/depth.d.ts.map +1 -1
  186. package/dist/es6/layout/lib/utils/depth.js +19 -18
  187. package/dist/es6/layout/lib/utils/flex.d.ts +31 -12
  188. package/dist/es6/layout/lib/utils/flex.d.ts.map +1 -1
  189. package/dist/es6/layout/lib/utils/flex.js +57 -23
  190. package/dist/es6/layout/lib/utils/flexItem.d.ts +18 -15
  191. package/dist/es6/layout/lib/utils/flexItem.d.ts.map +1 -1
  192. package/dist/es6/layout/lib/utils/flexItem.js +42 -24
  193. package/dist/es6/layout/lib/utils/grid.d.ts +40 -35
  194. package/dist/es6/layout/lib/utils/grid.d.ts.map +1 -1
  195. package/dist/es6/layout/lib/utils/grid.js +98 -70
  196. package/dist/es6/layout/lib/utils/gridItem.d.ts +17 -14
  197. package/dist/es6/layout/lib/utils/gridItem.d.ts.map +1 -1
  198. package/dist/es6/layout/lib/utils/gridItem.js +57 -28
  199. package/dist/es6/layout/lib/utils/layout.d.ts +47 -25
  200. package/dist/es6/layout/lib/utils/layout.d.ts.map +1 -1
  201. package/dist/es6/layout/lib/utils/layout.js +70 -31
  202. package/dist/es6/layout/lib/utils/other.d.ts +44 -2
  203. package/dist/es6/layout/lib/utils/other.d.ts.map +1 -1
  204. package/dist/es6/layout/lib/utils/other.js +100 -15
  205. package/dist/es6/layout/lib/utils/position.d.ts +37 -20
  206. package/dist/es6/layout/lib/utils/position.d.ts.map +1 -1
  207. package/dist/es6/layout/lib/utils/position.js +48 -64
  208. package/dist/es6/layout/lib/utils/space.d.ts +107 -51
  209. package/dist/es6/layout/lib/utils/space.d.ts.map +1 -1
  210. package/dist/es6/layout/lib/utils/space.js +97 -146
  211. package/dist/es6/layout/lib/utils/stack.d.ts +3 -6
  212. package/dist/es6/layout/lib/utils/stack.d.ts.map +1 -1
  213. package/dist/es6/layout/lib/utils/stack.js +13 -39
  214. package/dist/es6/layout/lib/utils/systemProps.d.ts +31 -0
  215. package/dist/es6/layout/lib/utils/systemProps.d.ts.map +1 -0
  216. package/dist/es6/layout/lib/utils/systemProps.js +1 -0
  217. package/dist/es6/layout/lib/utils/text.d.ts +33 -15
  218. package/dist/es6/layout/lib/utils/text.d.ts.map +1 -1
  219. package/dist/es6/layout/lib/utils/text.js +73 -36
  220. package/dist/es6/modal/lib/Modal.d.ts +1 -1
  221. package/dist/es6/popup/lib/Popup.d.ts +1 -1
  222. package/dist/es6/popup/lib/PopupBody.d.ts +1 -1
  223. package/dist/es6/popup/lib/hooks/useReturnFocus.d.ts.map +1 -1
  224. package/dist/es6/popup/lib/hooks/useReturnFocus.js +73 -8
  225. package/dist/es6/tabs/lib/TabsItem.d.ts +1 -1
  226. package/dist/es6/testing/index.d.ts +5 -0
  227. package/dist/es6/testing/index.d.ts.map +1 -0
  228. package/dist/es6/testing/index.js +4 -0
  229. package/dist/es6/testing/lib/ComponentStatesTable.d.ts +26 -0
  230. package/dist/es6/testing/lib/ComponentStatesTable.d.ts.map +1 -0
  231. package/dist/es6/testing/lib/ComponentStatesTable.js +41 -0
  232. package/dist/es6/testing/lib/StaticStates.d.ts +7 -0
  233. package/dist/es6/testing/lib/StaticStates.d.ts.map +1 -0
  234. package/dist/es6/{common/lib/utils → testing/lib}/StaticStates.js +1 -1
  235. package/dist/es6/testing/lib/permutateProps.d.ts +5 -0
  236. package/dist/es6/testing/lib/permutateProps.d.ts.map +1 -0
  237. package/dist/es6/testing/lib/permutateProps.js +43 -0
  238. package/dist/es6/testing/lib/propTypes.d.ts +15 -0
  239. package/dist/es6/testing/lib/propTypes.d.ts.map +1 -0
  240. package/dist/es6/testing/lib/propTypes.js +1 -0
  241. package/dist/es6/tokens/lib/colors.types.d.ts +4 -6
  242. package/dist/es6/tokens/lib/colors.types.d.ts.map +1 -1
  243. package/icon/lib/SystemIcon.tsx +1 -1
  244. package/index.ts +1 -0
  245. package/layout/index.ts +8 -4
  246. package/layout/lib/Box.tsx +10 -36
  247. package/layout/lib/Flex.tsx +5 -1
  248. package/layout/lib/Grid.tsx +3 -4
  249. package/layout/lib/utils/background.ts +83 -0
  250. package/layout/lib/utils/border/color.ts +85 -0
  251. package/layout/lib/utils/border/index.ts +49 -0
  252. package/layout/lib/utils/border/lineStyle.ts +87 -0
  253. package/layout/lib/utils/border/radius.ts +61 -0
  254. package/layout/lib/utils/border/shorthand.ts +73 -0
  255. package/layout/lib/utils/border/width.ts +73 -0
  256. package/layout/lib/utils/buildStyleFns.ts +117 -0
  257. package/layout/lib/utils/color.ts +40 -55
  258. package/layout/lib/utils/depth.ts +28 -24
  259. package/layout/lib/utils/flex.ts +83 -32
  260. package/layout/lib/utils/flexItem.ts +54 -36
  261. package/layout/lib/utils/grid.ts +131 -94
  262. package/layout/lib/utils/gridItem.ts +69 -41
  263. package/layout/lib/utils/layout.ts +109 -50
  264. package/layout/lib/utils/other.ts +142 -15
  265. package/layout/lib/utils/position.ts +79 -73
  266. package/layout/lib/utils/space.ts +202 -196
  267. package/layout/lib/utils/stack.ts +19 -45
  268. package/layout/lib/utils/systemProps.ts +46 -0
  269. package/layout/lib/utils/text.ts +99 -34
  270. package/package.json +3 -3
  271. package/popup/lib/hooks/useReturnFocus.tsx +83 -9
  272. package/testing/LICENSE +52 -0
  273. package/testing/README.md +6 -0
  274. package/testing/index.ts +4 -0
  275. package/testing/lib/ComponentStatesTable.tsx +80 -0
  276. package/{common/lib/utils → testing/lib}/StaticStates.tsx +5 -4
  277. package/testing/lib/permutateProps.ts +47 -0
  278. package/testing/lib/propTypes.ts +15 -0
  279. package/testing/package.json +6 -0
  280. package/tokens/lib/colors.types.ts +4 -7
  281. package/dist/commonjs/common/lib/utils/StaticStates.d.ts +0 -8
  282. package/dist/commonjs/common/lib/utils/StaticStates.d.ts.map +0 -1
  283. package/dist/commonjs/layout/lib/utils/border.d.ts +0 -103
  284. package/dist/commonjs/layout/lib/utils/border.d.ts.map +0 -1
  285. package/dist/commonjs/layout/lib/utils/border.js +0 -153
  286. package/dist/commonjs/layout/lib/utils/font.d.ts +0 -29
  287. package/dist/commonjs/layout/lib/utils/font.d.ts.map +0 -1
  288. package/dist/commonjs/layout/lib/utils/font.js +0 -57
  289. package/dist/es6/common/lib/utils/StaticStates.d.ts +0 -8
  290. package/dist/es6/common/lib/utils/StaticStates.d.ts.map +0 -1
  291. package/dist/es6/layout/lib/utils/border.d.ts +0 -103
  292. package/dist/es6/layout/lib/utils/border.d.ts.map +0 -1
  293. package/dist/es6/layout/lib/utils/border.js +0 -149
  294. package/dist/es6/layout/lib/utils/font.d.ts +0 -29
  295. package/dist/es6/layout/lib/utils/font.d.ts.map +0 -1
  296. package/dist/es6/layout/lib/utils/font.js +0 -53
  297. package/layout/lib/utils/border.ts +0 -263
  298. package/layout/lib/utils/font.ts +0 -67
@@ -1,20 +1,147 @@
1
+ import {Property} from 'csstype';
2
+
3
+ import {buildStyleFns, buildStylePropFn, StyleFnConfig} from './buildStyleFns';
4
+
5
+ /** style props to for other CSS properties */
1
6
  export type OtherStyleProps = {
2
- animation?: string;
7
+ /** sets [CSS animation property](https://developer.mozilla.org/en-US/docs/Web/CSS/animation) */
8
+ animation?: Property.Animation;
9
+ /** sets [CSS appearance property](https://developer.mozilla.org/en-US/docs/Web/CSS/appearance) */
10
+ appearance?: Property.Appearance;
11
+ /** sets [CSS box-sizing property](https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing) */
12
+ boxSizing?: Property.BoxSizing;
13
+ /** sets [CSS content property](https://developer.mozilla.org/en-US/docs/Web/CSS/content) */
14
+ content?: Property.Content;
15
+ /** sets [CSS cursor property](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor) */
16
+ cursor?: Property.Cursor;
17
+ /** sets [CSS fill property](https://developer.mozilla.org/en-US/docs/Web/CSS/fill) */
18
+ fill?: Property.Fill;
19
+ /** sets [CSS float property](https://developer.mozilla.org/en-US/docs/Web/CSS/float) */
20
+ float?: Property.Float;
21
+ /** sets [CSS object-fit property](https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit) */
22
+ objectFit?: Property.ObjectFit;
23
+ /** sets [CSS object-position property](https://developer.mozilla.org/en-US/docs/Web/CSS/object-position) */
24
+ objectPosition?: Property.ObjectPosition;
25
+ /** sets [CSS outline property](https://developer.mozilla.org/en-US/docs/Web/CSS/outline) */
26
+ outline?: Property.Outline;
27
+ /** sets [CSS outline-offset property](https://developer.mozilla.org/en-US/docs/Web/CSS/outline-offset) */
28
+ outlineOffset?: Property.OutlineOffset;
29
+ /** sets [CSS overflow-wrap property](https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap) */
30
+ overflowWrap?: Property.OverflowWrap;
31
+ /** sets [CSS pointer-events property](https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events) */
32
+ pointerEvents?: Property.PointerEvents;
33
+ /** sets [CSS resize property](https://developer.mozilla.org/en-US/docs/Web/CSS/resize) */
34
+ resize?: Property.Resize;
35
+ /** sets [CSS stroke property](https://developer.mozilla.org/en-US/docs/Web/CSS/stroke) */
36
+ stroke?: Property.Stroke;
37
+ /** sets [CSS transform property](https://developer.mozilla.org/en-US/docs/Web/CSS/transform) */
38
+ transform?: Property.Transform;
39
+ /** sets [CSS transition property](https://developer.mozilla.org/en-US/docs/Web/CSS/transition) */
40
+ transition?: Property.Transition;
41
+ /** sets [CSS user-select property](https://developer.mozilla.org/en-US/docs/Web/CSS/user-select) */
42
+ userSelect?: Property.UserSelect;
43
+ /** sets [CSS visibility property](https://developer.mozilla.org/en-US/docs/Web/CSS/visibility) */
44
+ visibility?: Property.Visibility;
3
45
  };
4
46
 
5
- const otherProps = {
6
- animation: (value: string) => {
7
- return {animation: value};
47
+ export const otherStyleFnConfigs: StyleFnConfig[] = [
48
+ {
49
+ name: 'animation',
50
+ properties: ['animation'],
51
+ system: 'none',
8
52
  },
9
- };
53
+ {
54
+ name: 'appearance',
55
+ properties: ['appearance'],
56
+ system: 'none',
57
+ },
58
+ {
59
+ name: 'boxSizing',
60
+ properties: ['boxSizing'],
61
+ system: 'none',
62
+ },
63
+ {
64
+ name: 'content',
65
+ properties: ['content'],
66
+ system: 'none',
67
+ },
68
+ {
69
+ name: 'cursor',
70
+ properties: ['cursor'],
71
+ system: 'none',
72
+ },
73
+ {
74
+ name: 'fill',
75
+ properties: ['fill'],
76
+ system: 'none',
77
+ },
78
+ {
79
+ name: 'float',
80
+ properties: ['float'],
81
+ system: 'none',
82
+ },
83
+ {
84
+ name: 'objectFit',
85
+ properties: ['objectFit'],
86
+ system: 'none',
87
+ },
88
+ {
89
+ name: 'objectPosition',
90
+ properties: ['objectPosition'],
91
+ system: 'none',
92
+ },
93
+ {
94
+ name: 'outline',
95
+ properties: ['outline'],
96
+ system: 'none',
97
+ },
98
+ {
99
+ name: 'outlineOffset',
100
+ properties: ['outlineOffset'],
101
+ system: 'none',
102
+ },
103
+ {
104
+ name: 'overflowWrap',
105
+ properties: ['overflowWrap'],
106
+ system: 'none',
107
+ },
108
+ {
109
+ name: 'pointerEvents',
110
+ properties: ['pointerEvents'],
111
+ system: 'none',
112
+ },
113
+ {
114
+ name: 'resize',
115
+ properties: ['resize'],
116
+ system: 'none',
117
+ },
118
+ {
119
+ name: 'stroke',
120
+ properties: ['stroke'],
121
+ system: 'none',
122
+ },
123
+ {
124
+ name: 'transform',
125
+ properties: ['transform'],
126
+ system: 'none',
127
+ },
128
+ {
129
+ name: 'transition',
130
+ properties: ['transition'],
131
+ system: 'none',
132
+ },
133
+ {
134
+ name: 'userSelect',
135
+ properties: ['userSelect'],
136
+ system: 'none',
137
+ },
138
+ {
139
+ name: 'visibility',
140
+ properties: ['visibility'],
141
+ system: 'none',
142
+ },
143
+ ];
144
+
145
+ export const otherStyleFns = buildStyleFns(otherStyleFnConfigs);
10
146
 
11
- export function other<P extends OtherStyleProps>(props: P) {
12
- for (const key in props) {
13
- if (key in otherProps) {
14
- const value = props[key as keyof OtherStyleProps] as keyof OtherStyleProps;
15
- const styleFn = otherProps[key as keyof OtherStyleProps];
16
- return styleFn(value);
17
- }
18
- }
19
- return {};
20
- }
147
+ export const other = buildStylePropFn<OtherStyleProps>(otherStyleFns);
@@ -1,96 +1,102 @@
1
- import {
2
- ContentDirection,
3
- PartialEmotionCanvasTheme,
4
- useTheme,
5
- } from '@workday/canvas-kit-react/common';
6
1
  import {Property} from 'csstype';
7
2
 
8
- /** style props to for standard position properties */
9
- export type PositionStandardProps = {
10
- /** sets `position` property */
3
+ import {buildStyleFns, buildStylePropFn, StyleFnConfig} from './buildStyleFns';
4
+
5
+ /** style props to for CSS position properties */
6
+ export type PositionStyleProps = {
7
+ /**
8
+ * - sets [CSS position property](https://developer.mozilla.org/en-US/docs/Web/CSS/position)
9
+ * */
11
10
  position?: Property.Position;
12
- /** sets `zIndex` property */
11
+ /**
12
+ * - sets [CSS z-index property](https://developer.mozilla.org/en-US/docs/Web/CSS/z-index)
13
+ * */
13
14
  zIndex?: Property.ZIndex;
14
- /** sets `top` property */
15
+ /**
16
+ * - sets [CSS top property](https://developer.mozilla.org/en-US/docs/Web/CSS/top)
17
+ * */
15
18
  top?: number | string;
16
- /** sets `right` property (no bidirectional support) */
19
+ /**
20
+ * - sets [CSS right property](https://developer.mozilla.org/en-US/docs/Web/CSS/right)
21
+ * - no bidirectional support
22
+ * */
17
23
  right?: number | string;
18
- /** sets `bottom` property */
24
+ /**
25
+ * - sets [CSS bottom property](https://developer.mozilla.org/en-US/docs/Web/CSS/bottom)
26
+ * */
19
27
  bottom?: number | string;
20
- /** sets `left` property (no bidirectional support) */
28
+ /**
29
+ * - sets [CSS left property](https://developer.mozilla.org/en-US/docs/Web/CSS/left)
30
+ * - no bidirectional support
31
+ * */
21
32
  left?: number | string;
22
- };
23
-
24
- export type PositionLogicalProps = {
25
- /** sets `left` property (bidirectional support) */
33
+ /**
34
+ * - sets [CSS inset-inline-start property](https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline-start)
35
+ * - bidirectional support
36
+ * */
26
37
  insetInlineStart?: number | string;
27
- /** sets `right` property (bidirectional support) */
38
+ /**
39
+ * - sets [CSS inset-inline-end property](https://developer.mozilla.org/en-US/docs/Web/CSS/inset-inline-end)
40
+ * - bidirectional support
41
+ * */
28
42
  insetInlineEnd?: number | string;
29
43
  };
30
44
 
31
- const getInsetInlineStartStyle = (value: number | string, isRTL = false) => {
32
- const attr = isRTL ? 'right' : 'left';
33
- return {[attr]: value};
34
- };
35
-
36
- const getInsetInlineEndStyle = (value: number | string, isRTL = false) => {
37
- const attr = isRTL ? 'left' : 'right';
38
- return {[attr]: value};
39
- };
40
-
41
- const standardPositionProps = {
42
- position: 'position',
43
- zIndex: 'zIndex',
44
- top: 'top',
45
- right: 'right',
46
- bottom: 'bottom',
47
- left: 'left',
48
- };
49
-
50
- const logicalPositionProps = {
51
- insetInlineStart: getInsetInlineStartStyle,
52
- insetInlineEnd: getInsetInlineEndStyle,
53
- };
54
-
55
- export type PositionStyleProps = PositionStandardProps & PositionLogicalProps;
45
+ export const positionStyleFnConfigs: StyleFnConfig[] = [
46
+ {
47
+ name: 'position',
48
+ properties: ['position'],
49
+ system: 'none',
50
+ },
51
+ {
52
+ name: 'zIndex',
53
+ properties: ['zIndex'],
54
+ system: 'none',
55
+ },
56
+ {
57
+ name: 'top',
58
+ properties: ['top'],
59
+ system: 'none',
60
+ },
61
+ {
62
+ name: 'right',
63
+ properties: ['right'],
64
+ system: 'none',
65
+ },
66
+ {
67
+ name: 'bottom',
68
+ properties: ['bottom'],
69
+ system: 'none',
70
+ },
71
+ {
72
+ name: 'left',
73
+ properties: ['left'],
74
+ system: 'none',
75
+ },
76
+ {
77
+ name: 'insetInlineStart',
78
+ properties: ['insetInlineStart'],
79
+ system: 'none',
80
+ },
81
+ {
82
+ name: 'insetInlineEnd',
83
+ properties: ['insetInlineEnd'],
84
+ system: 'none',
85
+ },
86
+ ];
56
87
 
88
+ export const positionStyleFns = buildStyleFns(positionStyleFnConfigs);
57
89
  /**
58
- * A style prop function that takes components props and returns position styles.
90
+ * A style prop function that takes component props and returns position styles.
59
91
  * If no `PositionProps` are found, it returns an empty object.
60
92
  *
61
93
  * @example
62
- * // You'll most likely use `position` with low-level, styled components
94
+ * ```
63
95
  * const BoxExample = () => (
64
96
  * <Box position="absolute" top="50%">
65
97
  * Hello, positions!
66
98
  * </Box>
67
99
  * );
68
- *
100
+ * ```
69
101
  */
70
- export function position<P extends PositionStyleProps & {theme?: PartialEmotionCanvasTheme}>(
71
- props: P
72
- ) {
73
- // position will always be used within the context of a component, but eslint doesn't know that
74
- // eslint-disable-next-line react-hooks/rules-of-hooks
75
- const {canvas} = useTheme(props.theme);
76
- let styles = {};
77
- for (const key in props) {
78
- if (key in props) {
79
- if (key in standardPositionProps) {
80
- const value = props[key];
81
- const attr = standardPositionProps[key as keyof PositionStandardProps];
82
- // @ts-ignore TS doesn't like adding a potentially unknown key to an object, but because we own this object, it's fine.
83
- styles[attr] = value;
84
- continue;
85
- }
86
- if (key in logicalPositionProps) {
87
- const value = props[key as keyof PositionLogicalProps] as string | number;
88
- const styleFn = logicalPositionProps[key as keyof PositionLogicalProps];
89
- const isRTL = canvas.direction === ContentDirection.RTL;
90
- const style = styleFn(value, isRTL);
91
- styles = {...styles, ...style};
92
- }
93
- }
94
- }
95
- return styles;
96
- }
102
+ export const position = buildStylePropFn<PositionStyleProps>(positionStyleFns);