@fluentui/react-button 9.0.0-alpha.10 → 9.0.0-alpha.100

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 (270) hide show
  1. package/CHANGELOG.json +2418 -1
  2. package/CHANGELOG.md +920 -2
  3. package/README.md +19 -108
  4. package/dist/demo/index.html +71 -0
  5. package/dist/demo/react-dom.development.js +21413 -0
  6. package/dist/demo/react.development.js +3155 -0
  7. package/dist/react-button.d.ts +204 -82
  8. package/lib/Button.js.map +1 -1
  9. package/lib/CompoundButton.d.ts +1 -0
  10. package/lib/CompoundButton.js +2 -0
  11. package/lib/CompoundButton.js.map +1 -0
  12. package/lib/MenuButton.d.ts +1 -0
  13. package/lib/MenuButton.js +2 -0
  14. package/lib/MenuButton.js.map +1 -0
  15. package/lib/SplitButton.d.ts +1 -0
  16. package/lib/SplitButton.js +2 -0
  17. package/lib/SplitButton.js.map +1 -0
  18. package/lib/ToggleButton.d.ts +1 -0
  19. package/lib/ToggleButton.js +2 -0
  20. package/lib/ToggleButton.js.map +1 -0
  21. package/lib/common/isConformant.d.ts +4 -2
  22. package/lib/common/isConformant.js +9 -6
  23. package/lib/common/isConformant.js.map +1 -1
  24. package/lib/components/Button/Button.d.ts +4 -11
  25. package/lib/components/Button/Button.js +7 -16
  26. package/lib/components/Button/Button.js.map +1 -1
  27. package/lib/components/Button/Button.types.d.ts +57 -60
  28. package/lib/components/Button/Button.types.js +1 -0
  29. package/lib/components/Button/Button.types.js.map +1 -1
  30. package/lib/components/Button/index.d.ts +1 -2
  31. package/lib/components/Button/index.js +1 -1
  32. package/lib/components/Button/index.js.map +1 -1
  33. package/lib/components/Button/renderButton.d.ts +2 -2
  34. package/lib/components/Button/renderButton.js +9 -8
  35. package/lib/components/Button/renderButton.js.map +1 -1
  36. package/lib/components/Button/useButton.d.ts +5 -7
  37. package/lib/components/Button/useButton.js +49 -23
  38. package/lib/components/Button/useButton.js.map +1 -1
  39. package/lib/components/Button/useButtonStyles.d.ts +10 -4
  40. package/lib/components/Button/useButtonStyles.js +350 -378
  41. package/lib/components/Button/useButtonStyles.js.map +1 -1
  42. package/lib/components/CompoundButton/CompoundButton.d.ts +6 -0
  43. package/lib/components/CompoundButton/CompoundButton.js +15 -0
  44. package/lib/components/CompoundButton/CompoundButton.js.map +1 -0
  45. package/lib/components/CompoundButton/CompoundButton.types.d.ts +14 -0
  46. package/lib/components/CompoundButton/CompoundButton.types.js +2 -0
  47. package/lib/components/CompoundButton/CompoundButton.types.js.map +1 -0
  48. package/lib/components/CompoundButton/index.d.ts +5 -0
  49. package/lib/components/CompoundButton/index.js +6 -0
  50. package/lib/components/CompoundButton/index.js.map +1 -0
  51. package/lib/components/CompoundButton/renderCompoundButton.d.ts +5 -0
  52. package/lib/components/CompoundButton/renderCompoundButton.js +17 -0
  53. package/lib/components/CompoundButton/renderCompoundButton.js.map +1 -0
  54. package/lib/components/CompoundButton/useCompoundButton.d.ts +8 -0
  55. package/lib/components/CompoundButton/useCompoundButton.js +29 -0
  56. package/lib/components/CompoundButton/useCompoundButton.js.map +1 -0
  57. package/lib/components/CompoundButton/useCompoundButtonStyles.d.ts +2 -0
  58. package/lib/components/CompoundButton/useCompoundButtonStyles.js +164 -0
  59. package/lib/components/CompoundButton/useCompoundButtonStyles.js.map +1 -0
  60. package/lib/components/MenuButton/MenuButton.d.ts +6 -0
  61. package/lib/components/MenuButton/MenuButton.js +15 -0
  62. package/lib/components/MenuButton/MenuButton.js.map +1 -0
  63. package/lib/components/MenuButton/MenuButton.types.d.ts +11 -0
  64. package/lib/components/MenuButton/MenuButton.types.js +2 -0
  65. package/lib/components/MenuButton/MenuButton.types.js.map +1 -0
  66. package/lib/components/MenuButton/index.d.ts +5 -0
  67. package/lib/components/MenuButton/index.js +6 -0
  68. package/lib/components/MenuButton/index.js.map +1 -0
  69. package/lib/components/MenuButton/renderMenuButton.d.ts +5 -0
  70. package/lib/components/MenuButton/renderMenuButton.js +17 -0
  71. package/lib/components/MenuButton/renderMenuButton.js.map +1 -0
  72. package/lib/components/MenuButton/useMenuButton.d.ts +6 -0
  73. package/lib/components/MenuButton/useMenuButton.js +32 -0
  74. package/lib/components/MenuButton/useMenuButton.js.map +1 -0
  75. package/lib/components/MenuButton/useMenuButtonStyles.d.ts +2 -0
  76. package/lib/components/MenuButton/useMenuButtonStyles.js +34 -0
  77. package/lib/components/MenuButton/useMenuButtonStyles.js.map +1 -0
  78. package/lib/components/SplitButton/SplitButton.d.ts +7 -0
  79. package/lib/components/SplitButton/SplitButton.js +16 -0
  80. package/lib/components/SplitButton/SplitButton.js.map +1 -0
  81. package/lib/components/SplitButton/SplitButton.types.d.ts +19 -0
  82. package/lib/components/SplitButton/SplitButton.types.js +2 -0
  83. package/lib/components/SplitButton/SplitButton.types.js.map +1 -0
  84. package/lib/components/SplitButton/index.d.ts +5 -0
  85. package/lib/components/SplitButton/index.js +6 -0
  86. package/lib/components/SplitButton/index.js.map +1 -0
  87. package/lib/components/SplitButton/renderSplitButton.d.ts +5 -0
  88. package/lib/components/SplitButton/renderSplitButton.js +15 -0
  89. package/lib/components/SplitButton/renderSplitButton.js.map +1 -0
  90. package/lib/components/SplitButton/useSplitButton.d.ts +8 -0
  91. package/lib/components/SplitButton/useSplitButton.js +73 -0
  92. package/lib/components/SplitButton/useSplitButton.js.map +1 -0
  93. package/lib/components/SplitButton/useSplitButtonStyles.d.ts +2 -0
  94. package/lib/components/SplitButton/useSplitButtonStyles.js +77 -0
  95. package/lib/components/SplitButton/useSplitButtonStyles.js.map +1 -0
  96. package/lib/components/ToggleButton/ToggleButton.d.ts +6 -0
  97. package/lib/components/ToggleButton/ToggleButton.js +15 -0
  98. package/lib/components/ToggleButton/ToggleButton.js.map +1 -0
  99. package/lib/components/ToggleButton/ToggleButton.types.d.ts +19 -0
  100. package/lib/components/ToggleButton/ToggleButton.types.js +2 -0
  101. package/lib/components/ToggleButton/ToggleButton.types.js.map +1 -0
  102. package/lib/components/ToggleButton/index.d.ts +5 -0
  103. package/lib/components/ToggleButton/index.js +6 -0
  104. package/lib/components/ToggleButton/index.js.map +1 -0
  105. package/lib/components/ToggleButton/renderToggleButton.d.ts +1 -0
  106. package/lib/components/ToggleButton/renderToggleButton.js +2 -0
  107. package/lib/components/ToggleButton/renderToggleButton.js.map +1 -0
  108. package/lib/components/ToggleButton/useToggleButton.d.ts +9 -0
  109. package/lib/components/ToggleButton/useToggleButton.js +50 -0
  110. package/lib/components/ToggleButton/useToggleButton.js.map +1 -0
  111. package/lib/components/ToggleButton/useToggleButtonStyles.d.ts +2 -0
  112. package/lib/components/ToggleButton/useToggleButtonStyles.js +190 -0
  113. package/lib/components/ToggleButton/useToggleButtonStyles.js.map +1 -0
  114. package/lib/index.d.ts +4 -0
  115. package/lib/index.js +4 -0
  116. package/lib/index.js.map +1 -1
  117. package/lib/tsdoc-metadata.json +1 -1
  118. package/lib-commonjs/Button.js +7 -2
  119. package/lib-commonjs/Button.js.map +1 -1
  120. package/lib-commonjs/CompoundButton.d.ts +1 -0
  121. package/lib-commonjs/CompoundButton.js +10 -0
  122. package/lib-commonjs/CompoundButton.js.map +1 -0
  123. package/lib-commonjs/MenuButton.d.ts +1 -0
  124. package/lib-commonjs/MenuButton.js +10 -0
  125. package/lib-commonjs/MenuButton.js.map +1 -0
  126. package/lib-commonjs/SplitButton.d.ts +1 -0
  127. package/lib-commonjs/SplitButton.js +10 -0
  128. package/lib-commonjs/SplitButton.js.map +1 -0
  129. package/lib-commonjs/ToggleButton.d.ts +1 -0
  130. package/lib-commonjs/ToggleButton.js +10 -0
  131. package/lib-commonjs/ToggleButton.js.map +1 -0
  132. package/lib-commonjs/common/isConformant.d.ts +4 -2
  133. package/lib-commonjs/common/isConformant.js +19 -8
  134. package/lib-commonjs/common/isConformant.js.map +1 -1
  135. package/lib-commonjs/components/Button/Button.d.ts +4 -11
  136. package/lib-commonjs/components/Button/Button.js +20 -20
  137. package/lib-commonjs/components/Button/Button.js.map +1 -1
  138. package/lib-commonjs/components/Button/Button.types.d.ts +57 -60
  139. package/lib-commonjs/components/Button/Button.types.js +4 -1
  140. package/lib-commonjs/components/Button/Button.types.js.map +1 -1
  141. package/lib-commonjs/components/Button/index.d.ts +1 -2
  142. package/lib-commonjs/components/Button/index.js +21 -5
  143. package/lib-commonjs/components/Button/index.js.map +1 -1
  144. package/lib-commonjs/components/Button/renderButton.d.ts +2 -2
  145. package/lib-commonjs/components/Button/renderButton.js +24 -13
  146. package/lib-commonjs/components/Button/renderButton.js.map +1 -1
  147. package/lib-commonjs/components/Button/useButton.d.ts +5 -7
  148. package/lib-commonjs/components/Button/useButton.js +59 -24
  149. package/lib-commonjs/components/Button/useButton.js.map +1 -1
  150. package/lib-commonjs/components/Button/useButtonStyles.d.ts +10 -4
  151. package/lib-commonjs/components/Button/useButtonStyles.js +360 -379
  152. package/lib-commonjs/components/Button/useButtonStyles.js.map +1 -1
  153. package/lib-commonjs/components/CompoundButton/CompoundButton.d.ts +6 -0
  154. package/lib-commonjs/components/CompoundButton/CompoundButton.js +26 -0
  155. package/lib-commonjs/components/CompoundButton/CompoundButton.js.map +1 -0
  156. package/lib-commonjs/components/CompoundButton/CompoundButton.types.d.ts +14 -0
  157. package/lib-commonjs/components/CompoundButton/CompoundButton.types.js +6 -0
  158. package/lib-commonjs/components/CompoundButton/CompoundButton.types.js.map +1 -0
  159. package/lib-commonjs/components/CompoundButton/index.d.ts +5 -0
  160. package/lib-commonjs/components/CompoundButton/index.js +26 -0
  161. package/lib-commonjs/components/CompoundButton/index.js.map +1 -0
  162. package/lib-commonjs/components/CompoundButton/renderCompoundButton.d.ts +5 -0
  163. package/lib-commonjs/components/CompoundButton/renderCompoundButton.js +29 -0
  164. package/lib-commonjs/components/CompoundButton/renderCompoundButton.js.map +1 -0
  165. package/lib-commonjs/components/CompoundButton/useCompoundButton.d.ts +8 -0
  166. package/lib-commonjs/components/CompoundButton/useCompoundButton.js +41 -0
  167. package/lib-commonjs/components/CompoundButton/useCompoundButton.js.map +1 -0
  168. package/lib-commonjs/components/CompoundButton/useCompoundButtonStyles.d.ts +2 -0
  169. package/lib-commonjs/components/CompoundButton/useCompoundButtonStyles.js +175 -0
  170. package/lib-commonjs/components/CompoundButton/useCompoundButtonStyles.js.map +1 -0
  171. package/lib-commonjs/components/MenuButton/MenuButton.d.ts +6 -0
  172. package/lib-commonjs/components/MenuButton/MenuButton.js +26 -0
  173. package/lib-commonjs/components/MenuButton/MenuButton.js.map +1 -0
  174. package/lib-commonjs/components/MenuButton/MenuButton.types.d.ts +11 -0
  175. package/lib-commonjs/components/MenuButton/MenuButton.types.js +6 -0
  176. package/lib-commonjs/components/MenuButton/MenuButton.types.js.map +1 -0
  177. package/lib-commonjs/components/MenuButton/index.d.ts +5 -0
  178. package/lib-commonjs/components/MenuButton/index.js +26 -0
  179. package/lib-commonjs/components/MenuButton/index.js.map +1 -0
  180. package/lib-commonjs/components/MenuButton/renderMenuButton.d.ts +5 -0
  181. package/lib-commonjs/components/MenuButton/renderMenuButton.js +29 -0
  182. package/lib-commonjs/components/MenuButton/renderMenuButton.js.map +1 -0
  183. package/lib-commonjs/components/MenuButton/useMenuButton.d.ts +6 -0
  184. package/lib-commonjs/components/MenuButton/useMenuButton.js +46 -0
  185. package/lib-commonjs/components/MenuButton/useMenuButton.js.map +1 -0
  186. package/lib-commonjs/components/MenuButton/useMenuButtonStyles.d.ts +2 -0
  187. package/lib-commonjs/components/MenuButton/useMenuButtonStyles.js +44 -0
  188. package/lib-commonjs/components/MenuButton/useMenuButtonStyles.js.map +1 -0
  189. package/lib-commonjs/components/SplitButton/SplitButton.d.ts +7 -0
  190. package/lib-commonjs/components/SplitButton/SplitButton.js +27 -0
  191. package/lib-commonjs/components/SplitButton/SplitButton.js.map +1 -0
  192. package/lib-commonjs/components/SplitButton/SplitButton.types.d.ts +19 -0
  193. package/lib-commonjs/components/SplitButton/SplitButton.types.js +6 -0
  194. package/lib-commonjs/components/SplitButton/SplitButton.types.js.map +1 -0
  195. package/lib-commonjs/components/SplitButton/index.d.ts +5 -0
  196. package/lib-commonjs/components/SplitButton/index.js +26 -0
  197. package/lib-commonjs/components/SplitButton/index.js.map +1 -0
  198. package/lib-commonjs/components/SplitButton/renderSplitButton.d.ts +5 -0
  199. package/lib-commonjs/components/SplitButton/renderSplitButton.js +27 -0
  200. package/lib-commonjs/components/SplitButton/renderSplitButton.js.map +1 -0
  201. package/lib-commonjs/components/SplitButton/useSplitButton.d.ts +8 -0
  202. package/lib-commonjs/components/SplitButton/useSplitButton.js +86 -0
  203. package/lib-commonjs/components/SplitButton/useSplitButton.js.map +1 -0
  204. package/lib-commonjs/components/SplitButton/useSplitButtonStyles.d.ts +2 -0
  205. package/lib-commonjs/components/SplitButton/useSplitButtonStyles.js +88 -0
  206. package/lib-commonjs/components/SplitButton/useSplitButtonStyles.js.map +1 -0
  207. package/lib-commonjs/components/ToggleButton/ToggleButton.d.ts +6 -0
  208. package/lib-commonjs/components/ToggleButton/ToggleButton.js +26 -0
  209. package/lib-commonjs/components/ToggleButton/ToggleButton.js.map +1 -0
  210. package/lib-commonjs/components/ToggleButton/ToggleButton.types.d.ts +19 -0
  211. package/lib-commonjs/components/ToggleButton/ToggleButton.types.js +6 -0
  212. package/lib-commonjs/components/ToggleButton/ToggleButton.types.js.map +1 -0
  213. package/lib-commonjs/components/ToggleButton/index.d.ts +5 -0
  214. package/lib-commonjs/components/ToggleButton/index.js +26 -0
  215. package/lib-commonjs/components/ToggleButton/index.js.map +1 -0
  216. package/lib-commonjs/components/ToggleButton/renderToggleButton.d.ts +1 -0
  217. package/lib-commonjs/components/ToggleButton/renderToggleButton.js +16 -0
  218. package/lib-commonjs/components/ToggleButton/renderToggleButton.js.map +1 -0
  219. package/lib-commonjs/components/ToggleButton/useToggleButton.d.ts +9 -0
  220. package/lib-commonjs/components/ToggleButton/useToggleButton.js +63 -0
  221. package/lib-commonjs/components/ToggleButton/useToggleButton.js.map +1 -0
  222. package/lib-commonjs/components/ToggleButton/useToggleButtonStyles.d.ts +2 -0
  223. package/lib-commonjs/components/ToggleButton/useToggleButtonStyles.js +200 -0
  224. package/lib-commonjs/components/ToggleButton/useToggleButtonStyles.js.map +1 -0
  225. package/lib-commonjs/index.d.ts +4 -0
  226. package/lib-commonjs/index.js +15 -2
  227. package/lib-commonjs/index.js.map +1 -1
  228. package/package.json +21 -14
  229. package/config/api-extractor.json +0 -3
  230. package/config/pre-copy.json +0 -9
  231. package/config/tests.js +0 -6
  232. package/etc/react-button.api.md +0 -104
  233. package/just.config.ts +0 -3
  234. package/lib/components/Button/useButtonState.d.ts +0 -6
  235. package/lib/components/Button/useButtonState.js +0 -45
  236. package/lib/components/Button/useButtonState.js.map +0 -1
  237. package/lib-amd/Button.d.ts +0 -1
  238. package/lib-amd/Button.js +0 -6
  239. package/lib-amd/Button.js.map +0 -1
  240. package/lib-amd/common/isConformant.d.ts +0 -2
  241. package/lib-amd/common/isConformant.js +0 -14
  242. package/lib-amd/common/isConformant.js.map +0 -1
  243. package/lib-amd/components/Button/Button.d.ts +0 -13
  244. package/lib-amd/components/Button/Button.js +0 -24
  245. package/lib-amd/components/Button/Button.js.map +0 -1
  246. package/lib-amd/components/Button/Button.types.d.ts +0 -65
  247. package/lib-amd/components/Button/Button.types.js +0 -5
  248. package/lib-amd/components/Button/Button.types.js.map +0 -1
  249. package/lib-amd/components/Button/index.d.ts +0 -6
  250. package/lib-amd/components/Button/index.js +0 -10
  251. package/lib-amd/components/Button/index.js.map +0 -1
  252. package/lib-amd/components/Button/renderButton.d.ts +0 -5
  253. package/lib-amd/components/Button/renderButton.js +0 -16
  254. package/lib-amd/components/Button/renderButton.js.map +0 -1
  255. package/lib-amd/components/Button/useButton.d.ts +0 -10
  256. package/lib-amd/components/Button/useButton.js +0 -28
  257. package/lib-amd/components/Button/useButton.js.map +0 -1
  258. package/lib-amd/components/Button/useButtonState.d.ts +0 -6
  259. package/lib-amd/components/Button/useButtonState.js +0 -48
  260. package/lib-amd/components/Button/useButtonState.js.map +0 -1
  261. package/lib-amd/components/Button/useButtonStyles.d.ts +0 -4
  262. package/lib-amd/components/Button/useButtonStyles.js +0 -385
  263. package/lib-amd/components/Button/useButtonStyles.js.map +0 -1
  264. package/lib-amd/index.d.ts +0 -1
  265. package/lib-amd/index.js +0 -6
  266. package/lib-amd/index.js.map +0 -1
  267. package/lib-commonjs/components/Button/useButtonState.d.ts +0 -6
  268. package/lib-commonjs/components/Button/useButtonState.js +0 -47
  269. package/lib-commonjs/components/Button/useButtonState.js.map +0 -1
  270. package/src/components/Button/Button.types.ts +0 -120
@@ -1,385 +0,0 @@
1
- define(["require", "exports", "@fluentui/react-make-styles"], function (require, exports, react_make_styles_1) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- // TODO: These are named in design specs but not hoisted to global/alias yet.
5
- // We're tracking these here to determine how we can hoist them.
6
- var buttonSpacing = {
7
- smallest: '2px',
8
- smaller: '4px',
9
- small: '6px',
10
- medium: '8px',
11
- large: '12px',
12
- larger: '16px',
13
- };
14
- // We do not want a combinatorial explosion of component variables for variants (bg, bgPrimary, etc)
15
- // We want a fixed interface of variables for a given component and to alter those between variants
16
- exports.makeButtonTokens = function (theme) { return ({
17
- base: {
18
- // TODO: these are not in the global/alias theme currently
19
- // When they are shown in the token UI, we need to make it clear there is no global/alias mapping support
20
- height: '32px',
21
- paddingX: buttonSpacing.large,
22
- paddingY: '0',
23
- minWidth: '96px',
24
- maxWidth: '280px',
25
- color: theme.alias.color.neutral.neutralForeground1,
26
- content2Color: theme.alias.color.neutral.neutralForeground2,
27
- background: theme.alias.color.neutral.neutralBackground1,
28
- backgroundPressed: theme.alias.color.neutral.neutralBackground1,
29
- borderRadius: theme.global.borderRadius.medium,
30
- borderWidth: theme.global.strokeWidth.thin,
31
- borderColor: theme.alias.color.neutral.neutralStroke1,
32
- backgroundHover: theme.alias.color.neutral.neutralBackground1Hover,
33
- borderColorHover: theme.alias.color.neutral.neutralStroke1Hover,
34
- backgroundActive: theme.alias.color.neutral.neutralBackground1Pressed,
35
- borderColorActive: theme.alias.color.neutral.neutralStroke1Pressed,
36
- fontWeight: theme.global.type.fontWeights.semibold,
37
- fontSize: theme.global.type.fontSizes.base[300],
38
- lineHeight: theme.global.type.lineHeights.base[300],
39
- iconSpacing: buttonSpacing.small,
40
- iconWidth: '20px',
41
- iconHeight: '20px',
42
- },
43
- disabled: {
44
- background: theme.alias.color.neutral.neutralBackgroundDisabled,
45
- borderColor: theme.alias.color.neutral.neutralStrokeDisabled,
46
- color: theme.alias.color.neutral.neutralForegroundDisabled,
47
- content2Color: theme.alias.color.neutral.neutralForegroundDisabled,
48
- },
49
- small: {
50
- paddingX: buttonSpacing.medium,
51
- borderRadius: theme.global.borderRadius.small,
52
- // TODO: design spec says minWidth "can be toggled off", consider prop like compact?
53
- minWidth: '64px',
54
- height: '24px',
55
- fontSize: theme.global.type.fontSizes.base[200],
56
- lineHeight: theme.global.type.fontSizes.base[200],
57
- fontWeight: theme.global.type.fontWeights.regular,
58
- },
59
- large: {
60
- paddingX: buttonSpacing.larger,
61
- height: '40px',
62
- borderRadius: theme.global.borderRadius.medium,
63
- fontSize: theme.global.type.fontSizes.base[400],
64
- // TODO: 24px is not on the global ramp of line heights
65
- // 22px = theme.global.type.lineHeights.base[400]
66
- // 28px = theme.global.type.lineHeights.base[500]
67
- lineHeight: '24px',
68
- iconWidth: '24px',
69
- iconHeight: '24px',
70
- iconSpacing: buttonSpacing.small,
71
- },
72
- // TODO: Would be ideal to automate a check to ensure when a variant is accessed, all the tokens are accessed as well.
73
- // If not, it means there is cruft in the variant tokens definition.
74
- // All tokens in a variant should be mapped to some style property.
75
- iconOnly: {
76
- paddingX: buttonSpacing.small,
77
- paddingY: buttonSpacing.small,
78
- minWidth: '32px',
79
- maxWidth: '32px',
80
- },
81
- // TODO: combinatorial "variants" is wrong, we already have iconOnly and small.
82
- // we essentially need to update component token mappings based on variant matchers.
83
- // fow the sake of progress for now, we're extending variants to have combinations.
84
- iconOnlySmall: {
85
- paddingX: buttonSpacing.smallest,
86
- paddingY: buttonSpacing.smallest,
87
- borderRadius: theme.global.borderRadius.small,
88
- minWidth: '24px',
89
- maxWidth: '24px',
90
- },
91
- iconOnlyLarge: {
92
- paddingX: buttonSpacing.small,
93
- paddingY: buttonSpacing.small,
94
- borderRadius: theme.global.borderRadius.medium,
95
- minWidth: '40px',
96
- maxWidth: '40px',
97
- },
98
- primary: {
99
- color: theme.alias.color.neutral.neutralForegroundInvertedAccessible,
100
- background: theme.alias.color.brand.brandBackground,
101
- borderColor: 'transparent',
102
- borderColorHover: 'transparent',
103
- borderColorActive: 'transparent',
104
- backgroundHover: theme.alias.color.brand.brandBackgroundHover,
105
- backgroundPressed: theme.alias.color.brand.brandBackgroundPressed,
106
- // TODO: spec calls out "shadow 4 __brand__", are we missing tokens?
107
- shadow: theme.alias.shadow.shadow4,
108
- // TODO: spec calls out "shadow 2 __darker__", are we missing tokens?
109
- shadowPressed: theme.alias.shadow.shadow2,
110
- },
111
- primaryDisabled: {
112
- background: theme.alias.color.neutral.neutralBackgroundDisabled,
113
- // borderColor: theme.alias.color.neutral.neutralStrokeDisabled,
114
- color: theme.alias.color.neutral.neutralForegroundDisabled,
115
- content2Color: theme.alias.color.neutral.neutralForegroundDisabled,
116
- shadow: 'none',
117
- shadowPressed: 'none',
118
- },
119
- }); };
120
- var useRootStyles = react_make_styles_1.makeStylesCompat([
121
- [
122
- null,
123
- function (theme) {
124
- var buttonTokens = exports.makeButtonTokens(theme);
125
- return {
126
- display: 'inline-flex',
127
- alignItems: 'center',
128
- justifyContent: 'center',
129
- // TODO: remove unsafe property: https://caniuse.com/?search=gap
130
- gap: buttonTokens.base.iconSpacing,
131
- // // TODO: 1) ask designers what our vertical align strategy is
132
- // // 2) enforce with conformance for inline elements
133
- verticalAlign: 'text-bottom',
134
- margin: 0,
135
- padding: buttonTokens.base.paddingY + " " + buttonTokens.base.paddingX,
136
- height: buttonTokens.base.height,
137
- minWidth: buttonTokens.base.minWidth,
138
- maxWidth: buttonTokens.base.maxWidth,
139
- color: buttonTokens.base.color,
140
- borderStyle: 'solid',
141
- borderRadius: buttonTokens.base.borderRadius,
142
- borderWidth: buttonTokens.base.borderWidth,
143
- borderColor: buttonTokens.base.borderColor,
144
- background: buttonTokens.base.background,
145
- outline: 'none',
146
- ':hover': {
147
- background: buttonTokens.base.backgroundHover,
148
- borderColor: buttonTokens.base.borderColorHover,
149
- cursor: 'pointer',
150
- },
151
- ':active': {
152
- background: buttonTokens.base.backgroundActive,
153
- borderColor: buttonTokens.base.borderColorActive,
154
- outline: 'none',
155
- },
156
- };
157
- },
158
- ],
159
- [
160
- function (_a) {
161
- var size = _a.size;
162
- return size === 'small';
163
- },
164
- function (theme) {
165
- var buttonTokens = exports.makeButtonTokens(theme);
166
- return {
167
- padding: buttonTokens.small.paddingX + " " + buttonTokens.small.paddingY,
168
- minWidth: buttonTokens.small.minWidth,
169
- height: buttonTokens.small.height,
170
- borderRadius: buttonTokens.small.borderRadius,
171
- };
172
- },
173
- ],
174
- [
175
- function (_a) {
176
- var size = _a.size;
177
- return size === 'large';
178
- },
179
- function (theme) {
180
- var buttonTokens = exports.makeButtonTokens(theme);
181
- return {
182
- gap: buttonTokens.large.iconSpacing,
183
- padding: buttonTokens.large.paddingX + " " + buttonTokens.large.paddingY,
184
- height: buttonTokens.large.height,
185
- borderRadius: buttonTokens.large.borderRadius,
186
- };
187
- },
188
- ],
189
- [
190
- function (_a) {
191
- var disabled = _a.disabled;
192
- return disabled;
193
- },
194
- function (theme) {
195
- var buttonTokens = exports.makeButtonTokens(theme);
196
- return {
197
- background: buttonTokens.disabled.background,
198
- borderColor: buttonTokens.disabled.borderColor,
199
- color: buttonTokens.disabled.color,
200
- ':hover': {
201
- background: buttonTokens.disabled.background,
202
- borderColor: buttonTokens.disabled.borderColor,
203
- cursor: 'default',
204
- },
205
- ':active': {
206
- background: buttonTokens.disabled.background,
207
- borderColor: buttonTokens.disabled.borderColor,
208
- },
209
- };
210
- },
211
- ],
212
- [
213
- function (_a) {
214
- var primary = _a.primary;
215
- return primary;
216
- },
217
- function (theme) {
218
- var buttonTokens = exports.makeButtonTokens(theme);
219
- return {
220
- background: buttonTokens.primary.background,
221
- color: buttonTokens.primary.color,
222
- borderColor: buttonTokens.primary.borderColor,
223
- // TODO: spec calls out "shadow 4 __darker__", are we missing tokens?
224
- boxShadow: buttonTokens.primary.shadow,
225
- ':hover': {
226
- background: buttonTokens.primary.backgroundHover,
227
- borderColor: buttonTokens.primary.borderColorHover,
228
- },
229
- ':active': {
230
- background: buttonTokens.primary.backgroundPressed,
231
- // TODO: spec calls out "shadow 2 __darker__", are we missing tokens?
232
- boxShadow: buttonTokens.primary.shadow,
233
- borderColor: buttonTokens.primary.borderColorActive,
234
- },
235
- };
236
- },
237
- ],
238
- [
239
- function (_a) {
240
- var primary = _a.primary, disabled = _a.disabled;
241
- return primary && disabled;
242
- },
243
- function (theme) {
244
- var buttonTokens = exports.makeButtonTokens(theme);
245
- return {
246
- background: buttonTokens.primaryDisabled.background,
247
- color: buttonTokens.primaryDisabled.color,
248
- boxShadow: buttonTokens.primaryDisabled.shadow,
249
- ':hover': {
250
- background: buttonTokens.primaryDisabled.background,
251
- cursor: 'default',
252
- },
253
- ':active': {
254
- boxShadow: buttonTokens.primaryDisabled.shadowPressed,
255
- },
256
- };
257
- },
258
- ],
259
- [
260
- function (_a) {
261
- var iconOnly = _a.iconOnly;
262
- return iconOnly;
263
- },
264
- function (theme) {
265
- var buttonTokens = exports.makeButtonTokens(theme);
266
- return {
267
- padding: buttonTokens.iconOnly.paddingX,
268
- minWidth: buttonTokens.iconOnly.minWidth,
269
- maxWidth: buttonTokens.iconOnly.maxWidth,
270
- };
271
- },
272
- ],
273
- [
274
- function (_a) {
275
- var iconOnly = _a.iconOnly, size = _a.size;
276
- return iconOnly && size === 'small';
277
- },
278
- function (theme) {
279
- var buttonTokens = exports.makeButtonTokens(theme);
280
- return {
281
- padding: buttonTokens.iconOnlySmall.paddingX + " " + buttonTokens.iconOnlySmall.paddingY,
282
- minWidth: buttonTokens.iconOnlySmall.minWidth,
283
- maxWidth: buttonTokens.iconOnlySmall.maxWidth,
284
- borderRadius: buttonTokens.iconOnlySmall.borderRadius,
285
- };
286
- },
287
- ],
288
- [
289
- function (_a) {
290
- var iconOnly = _a.iconOnly, size = _a.size;
291
- return iconOnly && size === 'large';
292
- },
293
- function (theme) {
294
- var buttonTokens = exports.makeButtonTokens(theme);
295
- return {
296
- padding: buttonTokens.iconOnlyLarge.paddingX + " " + buttonTokens.iconOnlyLarge.paddingY,
297
- minWidth: buttonTokens.iconOnlyLarge.minWidth,
298
- maxWidth: buttonTokens.iconOnlyLarge.maxWidth,
299
- borderRadius: buttonTokens.iconOnlyLarge.borderRadius,
300
- };
301
- },
302
- ],
303
- ]);
304
- var useChildrenStyles = react_make_styles_1.makeStylesCompat([
305
- [
306
- null,
307
- function (theme) {
308
- var buttonTokens = exports.makeButtonTokens(theme);
309
- return {
310
- textOverflow: 'ellipsis',
311
- overflow: 'hidden',
312
- whiteSpace: 'nowrap',
313
- // TODO: This is "Body, Strong (?)" token in the design spec (14px size, 20px line, semibold weight)
314
- // There are some type aliases in the figma not in our theme as well, not sure if this maps to alias or not
315
- fontWeight: buttonTokens.base.fontWeight,
316
- fontSize: buttonTokens.base.fontSize,
317
- lineHeight: buttonTokens.base.lineHeight,
318
- };
319
- },
320
- ],
321
- [
322
- function (_a) {
323
- var size = _a.size;
324
- return size === 'small';
325
- },
326
- function (theme) {
327
- var buttonTokens = exports.makeButtonTokens(theme);
328
- return {
329
- fontSize: buttonTokens.small.fontSize,
330
- fontWeight: buttonTokens.small.fontWeight,
331
- lineHeight: buttonTokens.small.lineHeight,
332
- };
333
- },
334
- ],
335
- [
336
- function (_a) {
337
- var size = _a.size;
338
- return size === 'large';
339
- },
340
- function (theme) {
341
- var buttonTokens = exports.makeButtonTokens(theme);
342
- return {
343
- fontSize: buttonTokens.large.fontSize,
344
- lineHeight: buttonTokens.large.lineHeight,
345
- };
346
- },
347
- ],
348
- ]);
349
- var useIconStyles = react_make_styles_1.makeStylesCompat([
350
- [
351
- null,
352
- function (theme) {
353
- var buttonTokens = exports.makeButtonTokens(theme);
354
- return {
355
- display: 'inline-flex',
356
- alignItems: 'center',
357
- justifyContent: 'center',
358
- height: buttonTokens.base.iconHeight,
359
- width: buttonTokens.base.iconWidth,
360
- };
361
- },
362
- ],
363
- [
364
- function (_a) {
365
- var size = _a.size;
366
- return size === 'large';
367
- },
368
- function (theme) {
369
- var buttonTokens = exports.makeButtonTokens(theme);
370
- return {
371
- width: buttonTokens.large.iconWidth,
372
- height: buttonTokens.large.iconHeight,
373
- };
374
- },
375
- ],
376
- ]);
377
- exports.useButtonStyles = function (state, selectors) {
378
- state.className = react_make_styles_1.ax(state.className, useRootStyles(selectors));
379
- state.children = state.children || { className: '' };
380
- state.icon = state.icon || { className: '' };
381
- state.children.className = react_make_styles_1.ax(state.children.className, useChildrenStyles(selectors));
382
- state.icon.className = react_make_styles_1.ax(state.icon.className, useIconStyles(selectors));
383
- };
384
- });
385
- //# sourceMappingURL=useButtonStyles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useButtonStyles.js","sourceRoot":"../src/","sources":["components/Button/useButtonStyles.ts"],"names":[],"mappings":"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","sourcesContent":["import { ButtonState, ButtonStyleSelectors, ButtonVariantTokens } from './Button.types';\nimport { ax, makeStylesCompat } from '@fluentui/react-make-styles';\nimport { Theme } from '@fluentui/react-theme';\n\n// TODO: These are named in design specs but not hoisted to global/alias yet.\n// We're tracking these here to determine how we can hoist them.\nconst buttonSpacing = {\n smallest: '2px',\n smaller: '4px',\n small: '6px',\n medium: '8px',\n large: '12px',\n larger: '16px',\n};\n\n// We do not want a combinatorial explosion of component variables for variants (bg, bgPrimary, etc)\n// We want a fixed interface of variables for a given component and to alter those between variants\nexport const makeButtonTokens = (theme: Theme): ButtonVariantTokens => ({\n base: {\n // TODO: these are not in the global/alias theme currently\n // When they are shown in the token UI, we need to make it clear there is no global/alias mapping support\n height: '32px',\n paddingX: buttonSpacing.large,\n paddingY: '0',\n minWidth: '96px',\n maxWidth: '280px',\n\n color: theme.alias.color.neutral.neutralForeground1,\n content2Color: theme.alias.color.neutral.neutralForeground2,\n background: theme.alias.color.neutral.neutralBackground1,\n backgroundPressed: theme.alias.color.neutral.neutralBackground1,\n\n borderRadius: theme.global.borderRadius.medium,\n borderWidth: theme.global.strokeWidth.thin,\n borderColor: theme.alias.color.neutral.neutralStroke1,\n\n backgroundHover: theme.alias.color.neutral.neutralBackground1Hover,\n borderColorHover: theme.alias.color.neutral.neutralStroke1Hover,\n\n backgroundActive: theme.alias.color.neutral.neutralBackground1Pressed,\n borderColorActive: theme.alias.color.neutral.neutralStroke1Pressed,\n\n fontWeight: theme.global.type.fontWeights.semibold,\n fontSize: theme.global.type.fontSizes.base[300],\n lineHeight: theme.global.type.lineHeights.base[300],\n\n iconSpacing: buttonSpacing.small,\n iconWidth: '20px',\n iconHeight: '20px',\n },\n disabled: {\n background: theme.alias.color.neutral.neutralBackgroundDisabled,\n borderColor: theme.alias.color.neutral.neutralStrokeDisabled,\n color: theme.alias.color.neutral.neutralForegroundDisabled,\n content2Color: theme.alias.color.neutral.neutralForegroundDisabled,\n },\n small: {\n paddingX: buttonSpacing.medium,\n borderRadius: theme.global.borderRadius.small,\n // TODO: design spec says minWidth \"can be toggled off\", consider prop like compact?\n minWidth: '64px',\n height: '24px',\n fontSize: theme.global.type.fontSizes.base[200],\n lineHeight: theme.global.type.fontSizes.base[200],\n fontWeight: theme.global.type.fontWeights.regular,\n },\n large: {\n paddingX: buttonSpacing.larger,\n height: '40px',\n borderRadius: theme.global.borderRadius.medium,\n fontSize: theme.global.type.fontSizes.base[400],\n // TODO: 24px is not on the global ramp of line heights\n // 22px = theme.global.type.lineHeights.base[400]\n // 28px = theme.global.type.lineHeights.base[500]\n lineHeight: '24px',\n iconWidth: '24px',\n iconHeight: '24px',\n iconSpacing: buttonSpacing.small,\n },\n // TODO: Would be ideal to automate a check to ensure when a variant is accessed, all the tokens are accessed as well.\n // If not, it means there is cruft in the variant tokens definition.\n // All tokens in a variant should be mapped to some style property.\n iconOnly: {\n paddingX: buttonSpacing.small,\n paddingY: buttonSpacing.small,\n minWidth: '32px',\n maxWidth: '32px',\n },\n // TODO: combinatorial \"variants\" is wrong, we already have iconOnly and small.\n // we essentially need to update component token mappings based on variant matchers.\n // fow the sake of progress for now, we're extending variants to have combinations.\n iconOnlySmall: {\n paddingX: buttonSpacing.smallest,\n paddingY: buttonSpacing.smallest,\n borderRadius: theme.global.borderRadius.small,\n minWidth: '24px',\n maxWidth: '24px',\n },\n iconOnlyLarge: {\n paddingX: buttonSpacing.small,\n paddingY: buttonSpacing.small,\n borderRadius: theme.global.borderRadius.medium,\n minWidth: '40px',\n maxWidth: '40px',\n },\n primary: {\n color: theme.alias.color.neutral.neutralForegroundInvertedAccessible,\n\n background: theme.alias.color.brand.brandBackground,\n borderColor: 'transparent',\n borderColorHover: 'transparent',\n borderColorActive: 'transparent',\n\n backgroundHover: theme.alias.color.brand.brandBackgroundHover,\n backgroundPressed: theme.alias.color.brand.brandBackgroundPressed,\n\n // TODO: spec calls out \"shadow 4 __brand__\", are we missing tokens?\n shadow: theme.alias.shadow.shadow4,\n\n // TODO: spec calls out \"shadow 2 __darker__\", are we missing tokens?\n shadowPressed: theme.alias.shadow.shadow2,\n },\n primaryDisabled: {\n background: theme.alias.color.neutral.neutralBackgroundDisabled,\n // borderColor: theme.alias.color.neutral.neutralStrokeDisabled,\n color: theme.alias.color.neutral.neutralForegroundDisabled,\n content2Color: theme.alias.color.neutral.neutralForegroundDisabled,\n shadow: 'none',\n shadowPressed: 'none',\n },\n});\n\nconst useRootStyles = makeStylesCompat<ButtonStyleSelectors>([\n [\n null,\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n // TODO: remove unsafe property: https://caniuse.com/?search=gap\n gap: buttonTokens.base.iconSpacing,\n // // TODO: 1) ask designers what our vertical align strategy is\n // // 2) enforce with conformance for inline elements\n verticalAlign: 'text-bottom',\n margin: 0,\n\n padding: `${buttonTokens.base.paddingY} ${buttonTokens.base.paddingX}`,\n height: buttonTokens.base.height,\n\n minWidth: buttonTokens.base.minWidth,\n maxWidth: buttonTokens.base.maxWidth,\n\n color: buttonTokens.base.color,\n borderStyle: 'solid',\n borderRadius: buttonTokens.base.borderRadius,\n borderWidth: buttonTokens.base.borderWidth,\n borderColor: buttonTokens.base.borderColor,\n background: buttonTokens.base.background,\n\n outline: 'none',\n ':hover': {\n background: buttonTokens.base.backgroundHover,\n borderColor: buttonTokens.base.borderColorHover,\n cursor: 'pointer',\n },\n ':active': {\n background: buttonTokens.base.backgroundActive,\n borderColor: buttonTokens.base.borderColorActive,\n outline: 'none',\n },\n // TODO: this is for toggle button only. Use here in regular button?\n // '.active': theme.alias.color.neutral.neutralStroke1Pressed,\n };\n },\n ],\n [\n ({ size }) => size === 'small',\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n padding: `${buttonTokens.small.paddingX} ${buttonTokens.small.paddingY}`,\n minWidth: buttonTokens.small.minWidth,\n height: buttonTokens.small.height,\n borderRadius: buttonTokens.small.borderRadius,\n };\n },\n ],\n [\n ({ size }) => size === 'large',\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n gap: buttonTokens.large.iconSpacing,\n padding: `${buttonTokens.large.paddingX} ${buttonTokens.large.paddingY}`,\n height: buttonTokens.large.height,\n borderRadius: buttonTokens.large.borderRadius,\n };\n },\n ],\n [\n ({ disabled }) => disabled,\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n background: buttonTokens.disabled.background,\n borderColor: buttonTokens.disabled.borderColor,\n color: buttonTokens.disabled.color,\n ':hover': {\n background: buttonTokens.disabled.background,\n borderColor: buttonTokens.disabled.borderColor,\n cursor: 'default',\n },\n ':active': {\n background: buttonTokens.disabled.background,\n borderColor: buttonTokens.disabled.borderColor,\n },\n };\n },\n ],\n [\n ({ primary }) => primary,\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n background: buttonTokens.primary.background,\n color: buttonTokens.primary.color,\n borderColor: buttonTokens.primary.borderColor,\n // TODO: spec calls out \"shadow 4 __darker__\", are we missing tokens?\n boxShadow: buttonTokens.primary.shadow,\n\n ':hover': {\n background: buttonTokens.primary.backgroundHover,\n borderColor: buttonTokens.primary.borderColorHover,\n },\n\n ':active': {\n background: buttonTokens.primary.backgroundPressed,\n // TODO: spec calls out \"shadow 2 __darker__\", are we missing tokens?\n boxShadow: buttonTokens.primary.shadow,\n borderColor: buttonTokens.primary.borderColorActive,\n },\n\n // TODO: focus\n };\n },\n ],\n [\n ({ primary, disabled }) => primary && disabled,\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n background: buttonTokens.primaryDisabled.background,\n color: buttonTokens.primaryDisabled.color,\n boxShadow: buttonTokens.primaryDisabled.shadow,\n ':hover': {\n background: buttonTokens.primaryDisabled.background,\n cursor: 'default',\n },\n ':active': {\n boxShadow: buttonTokens.primaryDisabled.shadowPressed,\n },\n };\n },\n ],\n [\n ({ iconOnly }) => iconOnly,\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n padding: buttonTokens.iconOnly.paddingX,\n minWidth: buttonTokens.iconOnly.minWidth,\n maxWidth: buttonTokens.iconOnly.maxWidth,\n };\n },\n ],\n [\n ({ iconOnly, size }) => iconOnly && size === 'small',\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n padding: `${buttonTokens.iconOnlySmall.paddingX} ${buttonTokens.iconOnlySmall.paddingY}`,\n minWidth: buttonTokens.iconOnlySmall.minWidth,\n maxWidth: buttonTokens.iconOnlySmall.maxWidth,\n borderRadius: buttonTokens.iconOnlySmall.borderRadius,\n };\n },\n ],\n [\n ({ iconOnly, size }) => iconOnly && size === 'large',\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n padding: `${buttonTokens.iconOnlyLarge.paddingX} ${buttonTokens.iconOnlyLarge.paddingY}`,\n minWidth: buttonTokens.iconOnlyLarge.minWidth,\n maxWidth: buttonTokens.iconOnlyLarge.maxWidth,\n borderRadius: buttonTokens.iconOnlyLarge.borderRadius,\n };\n },\n ],\n // TODO: add disabled before ship prerelease\n]);\n\nconst useChildrenStyles = makeStylesCompat<ButtonStyleSelectors>([\n [\n null,\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n // TODO: This is \"Body, Strong (?)\" token in the design spec (14px size, 20px line, semibold weight)\n // There are some type aliases in the figma not in our theme as well, not sure if this maps to alias or not\n fontWeight: buttonTokens.base.fontWeight,\n fontSize: buttonTokens.base.fontSize,\n lineHeight: buttonTokens.base.lineHeight,\n };\n },\n ],\n [\n ({ size }) => size === 'small',\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n fontSize: buttonTokens.small.fontSize,\n fontWeight: buttonTokens.small.fontWeight,\n lineHeight: buttonTokens.small.lineHeight,\n };\n },\n ],\n [\n ({ size }) => size === 'large',\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n fontSize: buttonTokens.large.fontSize,\n lineHeight: buttonTokens.large.lineHeight,\n };\n },\n ],\n]);\n\nconst useIconStyles = makeStylesCompat<ButtonStyleSelectors>([\n [\n null,\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: buttonTokens.base.iconHeight,\n width: buttonTokens.base.iconWidth,\n };\n },\n ],\n [\n ({ size }) => size === 'large',\n theme => {\n const buttonTokens = makeButtonTokens(theme);\n\n return {\n width: buttonTokens.large.iconWidth,\n height: buttonTokens.large.iconHeight,\n };\n },\n ],\n]);\n\nexport const useButtonStyles = (state: ButtonState, selectors: ButtonStyleSelectors) => {\n state.className = ax(state.className, useRootStyles(selectors));\n\n state.children = state.children || { className: '' };\n state.icon = state.icon || { className: '' };\n\n state.children.className = ax(state.children.className, useChildrenStyles(selectors));\n state.icon.className = ax(state.icon.className, useIconStyles(selectors));\n};\n"]}
@@ -1 +0,0 @@
1
- export * from './Button';
package/lib-amd/index.js DELETED
@@ -1,6 +0,0 @@
1
- define(["require", "exports", "tslib", "./Button"], function (require, exports, tslib_1, Button_1) {
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- tslib_1.__exportStar(Button_1, exports);
5
- });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../src/","sources":["index.ts"],"names":[],"mappings":";;;IAAA,wCAAyB","sourcesContent":["export * from './Button';\n"]}
@@ -1,6 +0,0 @@
1
- import { ButtonState } from './Button.types';
2
- /**
3
- * The useButton hook processes the Button draft state.
4
- * @param draftState - Button draft state to mutate.
5
- */
6
- export declare const useButtonState: (draftState: ButtonState) => void;
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var keyboard_key_1 = require("@fluentui/keyboard-key");
4
- /**
5
- * The useButton hook processes the Button draft state.
6
- * @param draftState - Button draft state to mutate.
7
- */
8
- exports.useButtonState = function (draftState) {
9
- if (draftState.as !== 'button') {
10
- draftState.role = 'button';
11
- if (draftState.as !== 'a') {
12
- var onClickCallback_1 = draftState.onClick, onKeyDownCallback_1 = draftState.onKeyDown;
13
- draftState.tabIndex = 0;
14
- draftState.onKeyDown = function (ev) {
15
- if (onKeyDownCallback_1) {
16
- onKeyDownCallback_1(ev);
17
- }
18
- var keyCode = keyboard_key_1.getCode(ev);
19
- if (!ev.defaultPrevented && onClickCallback_1 && (keyCode === keyboard_key_1.EnterKey || keyCode === keyboard_key_1.SpacebarKey)) {
20
- // Translate the keydown enter/space to a click.
21
- ev.preventDefault();
22
- ev.stopPropagation();
23
- ev.target.click();
24
- }
25
- };
26
- }
27
- }
28
- // Disallow click and keyboard events when component is disabled and eat events when disabledFocusable is set to true.
29
- var disabled = draftState.disabled, /* disabledFocusable, */ onKeyDown = draftState.onKeyDown;
30
- if (disabled) {
31
- draftState.onClick = undefined;
32
- }
33
- draftState.onKeyDown = function (ev) {
34
- var _a;
35
- var keyCode = keyboard_key_1.getCode(ev);
36
- if (disabled && (keyCode === keyboard_key_1.EnterKey || keyCode === keyboard_key_1.SpacebarKey)) {
37
- ev.preventDefault();
38
- ev.stopPropagation();
39
- }
40
- else {
41
- (_a = onKeyDown) === null || _a === void 0 ? void 0 : _a(ev);
42
- }
43
- };
44
- draftState['aria-disabled'] = disabled /* || disabledFocusable*/;
45
- draftState.disabled = draftState.as === 'button' ? disabled /* && !disabledFocusable */ : undefined;
46
- };
47
- //# sourceMappingURL=useButtonState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useButtonState.js","sourceRoot":"../src/","sources":["components/Button/useButtonState.ts"],"names":[],"mappings":";;AACA,uDAAwE;AAGxE;;;GAGG;AACU,QAAA,cAAc,GAAG,UAAC,UAAuB;IACpD,IAAI,UAAU,CAAC,EAAE,KAAK,QAAQ,EAAE;QAC9B,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;QAE3B,IAAI,UAAU,CAAC,EAAE,KAAK,GAAG,EAAE;YACjB,IAAA,sCAAwB,EAAE,0CAA4B,CAAgB;YAE9E,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;YAExB,UAAU,CAAC,SAAS,GAAG,UAAC,EAAoC;gBAC1D,IAAI,mBAAiB,EAAE;oBACrB,mBAAiB,CAAC,EAAE,CAAC,CAAC;iBACvB;gBAED,IAAM,OAAO,GAAG,sBAAO,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,CAAC,EAAE,CAAC,gBAAgB,IAAI,iBAAe,IAAI,CAAC,OAAO,KAAK,uBAAQ,IAAI,OAAO,KAAK,0BAAW,CAAC,EAAE;oBAChG,gDAAgD;oBAChD,EAAE,CAAC,cAAc,EAAE,CAAC;oBACpB,EAAE,CAAC,eAAe,EAAE,CAAC;oBAEpB,EAAE,CAAC,MAAsB,CAAC,KAAK,EAAE,CAAC;iBACpC;YACH,CAAC,CAAC;SACH;KACF;IAED,sHAAsH;IAC9G,IAAA,8BAAQ,EAAE,wBAAwB,CAAC,gCAAS,CAAgB;IACpE,IAAI,QAAQ,EAAE;QACZ,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;KAChC;IACD,UAAU,CAAC,SAAS,GAAG,UAAC,EAAoC;;QAC1D,IAAM,OAAO,GAAG,sBAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,QAAQ,IAAI,CAAC,OAAO,KAAK,uBAAQ,IAAI,OAAO,KAAK,0BAAW,CAAC,EAAE;YACjE,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,EAAE,CAAC,eAAe,EAAE,CAAC;SACtB;aAAM;YACL,MAAA,SAAS,0CAAG,EAAE,EAAE;SACjB;IACH,CAAC,CAAC;IAEF,UAAU,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,yBAAyB,CAAC;IACjE,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;AACtG,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { getCode, EnterKey, SpacebarKey } from '@fluentui/keyboard-key';\nimport { ButtonState } from './Button.types';\n\n/**\n * The useButton hook processes the Button draft state.\n * @param draftState - Button draft state to mutate.\n */\nexport const useButtonState = (draftState: ButtonState) => {\n if (draftState.as !== 'button') {\n draftState.role = 'button';\n\n if (draftState.as !== 'a') {\n const { onClick: onClickCallback, onKeyDown: onKeyDownCallback } = draftState;\n\n draftState.tabIndex = 0;\n\n draftState.onKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (onKeyDownCallback) {\n onKeyDownCallback(ev);\n }\n\n const keyCode = getCode(ev);\n if (!ev.defaultPrevented && onClickCallback && (keyCode === EnterKey || keyCode === SpacebarKey)) {\n // Translate the keydown enter/space to a click.\n ev.preventDefault();\n ev.stopPropagation();\n\n (ev.target as HTMLElement).click();\n }\n };\n }\n }\n\n // Disallow click and keyboard events when component is disabled and eat events when disabledFocusable is set to true.\n const { disabled, /* disabledFocusable, */ onKeyDown } = draftState;\n if (disabled) {\n draftState.onClick = undefined;\n }\n draftState.onKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n const keyCode = getCode(ev);\n if (disabled && (keyCode === EnterKey || keyCode === SpacebarKey)) {\n ev.preventDefault();\n ev.stopPropagation();\n } else {\n onKeyDown?.(ev);\n }\n };\n\n draftState['aria-disabled'] = disabled /* || disabledFocusable*/;\n draftState.disabled = draftState.as === 'button' ? disabled /* && !disabledFocusable */ : undefined;\n};\n"]}
@@ -1,120 +0,0 @@
1
- import * as React from 'react';
2
- import { ComponentProps, ShorthandProps } from '@fluentui/react-utilities';
3
- import { ObjectShorthandProps } from '@fluentui/react-utilities';
4
-
5
- export type ButtonProps = ComponentProps &
6
- React.ButtonHTMLAttributes<HTMLElement> & {
7
- /**
8
- * Shorthand icon. A shorthand prop can be a literal, object, or
9
- * JSX. The `children` prop of the object can be a render function,
10
- * taking in the original slot component and props.
11
- */
12
- icon?: ShorthandProps<React.HTMLAttributes<HTMLSpanElement>>;
13
-
14
- // TODO: children needs a new typing to handle render functions along with hook updates for children functionality
15
- // children?: ???;
16
-
17
- // /** A button can appear circular. */
18
- // circular?: boolean;
19
-
20
- /** A button can show that it cannot be interacted with. */
21
- disabled?: boolean;
22
-
23
- // /**
24
- // eslint-disable-next-line @fluentui/max-len
25
- // * When set, allows the button to be focusable even when it has been disabled. This is used in scenarios where it is
26
- // * important to keep a consistent tab order for screen reader and keyboard users.
27
- // * @defaultvalue false
28
- // */
29
- // disabledFocusable?: boolean;
30
-
31
- // /** A button can fill the width of its container. */
32
- // block?: boolean;
33
-
34
- /** A button can contain only an icon. */
35
- iconOnly?: boolean;
36
-
37
- /** An icon button can format its icon to appear before or after its content. */
38
- iconPosition?: 'before' | 'after';
39
-
40
- // /** A button can show a loading indicator. */
41
- // loading?: boolean;
42
-
43
- /** A button can emphasize that it represents the primary action. */
44
- primary?: boolean;
45
-
46
- // /** A button can blend into its background to become less emphasized. */
47
- // subtle?: boolean;
48
-
49
- // /** A button can have no background styling and just be emphasized through its content styling. */
50
- // transparent?: boolean;
51
-
52
- /** A button can be sized. */
53
- size?: 'small' | 'large';
54
- };
55
-
56
- /**
57
- * {@docCategory Button}
58
- */
59
- export interface ButtonState extends ButtonProps {
60
- ref: React.RefObject<HTMLButtonElement>;
61
-
62
- icon?: ObjectShorthandProps<React.HTMLAttributes<HTMLSpanElement>>;
63
- children?: ObjectShorthandProps<React.HTMLAttributes<HTMLSpanElement>>;
64
- }
65
-
66
- export type ButtonStyleSelectors = {
67
- disabled?: boolean;
68
- iconOnly?: boolean;
69
- primary?: boolean;
70
- size?: string;
71
- };
72
-
73
- export type ButtonVariants =
74
- | 'base'
75
- | 'disabled'
76
- | 'iconOnly'
77
- | 'primary'
78
- | 'small'
79
- | 'large'
80
- // TODO: get rid of these combinations, use individual variants in matchers
81
- | 'primaryDisabled'
82
- | 'iconOnlySmall'
83
- | 'iconOnlyLarge';
84
-
85
- export type ButtonTokens = {
86
- height: string;
87
- paddingX: string;
88
- paddingY: string;
89
- minWidth: string;
90
- maxWidth: string;
91
-
92
- fontSize: string;
93
- fontWeight: number;
94
- lineHeight: string;
95
-
96
- iconWidth: string;
97
- iconHeight: string;
98
- iconSpacing: string;
99
-
100
- color: string;
101
- content2Color: string;
102
-
103
- background: string;
104
- backgroundHover: string;
105
- backgroundPressed: string;
106
- backgroundActive: string;
107
-
108
- borderColor: string;
109
- borderColorHover: string;
110
- borderColorActive: string;
111
- borderWidth: string;
112
- borderRadius: string;
113
-
114
- shadow: string;
115
- shadowPressed: string;
116
- };
117
-
118
- export type ButtonVariantTokens = {
119
- [variant in ButtonVariants]: Partial<ButtonTokens>;
120
- };