@workday/canvas-kit-react 10.0.0-alpha.538-next.0 → 10.0.0-alpha.540-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/button/index.ts +8 -11
  2. package/button/lib/BaseButton.tsx +274 -256
  3. package/button/lib/Button.tsx +67 -0
  4. package/button/lib/DeleteButton.tsx +42 -58
  5. package/button/lib/PrimaryButton.tsx +82 -149
  6. package/button/lib/SecondaryButton.tsx +87 -173
  7. package/button/lib/TertiaryButton.tsx +158 -223
  8. package/button/lib/ToolbarDropdownButton.tsx +11 -2
  9. package/button/lib/ToolbarIconButton.tsx +10 -2
  10. package/button/lib/parts/ButtonLabelIcon.tsx +1 -7
  11. package/button/lib/types.ts +6 -8
  12. package/checkbox/lib/Checkbox.tsx +24 -33
  13. package/common/lib/CanvasProvider.tsx +50 -24
  14. package/dist/commonjs/button/index.d.ts +8 -5
  15. package/dist/commonjs/button/index.d.ts.map +1 -1
  16. package/dist/commonjs/button/index.js +9 -13
  17. package/dist/commonjs/button/lib/BaseButton.d.ts +69 -5
  18. package/dist/commonjs/button/lib/BaseButton.d.ts.map +1 -1
  19. package/dist/commonjs/button/lib/BaseButton.js +199 -192
  20. package/dist/commonjs/button/lib/Button.d.ts +17 -0
  21. package/dist/commonjs/button/lib/Button.d.ts.map +1 -0
  22. package/dist/commonjs/button/lib/Button.js +42 -0
  23. package/dist/commonjs/button/lib/DeleteButton.d.ts +7 -9
  24. package/dist/commonjs/button/lib/DeleteButton.d.ts.map +1 -1
  25. package/dist/commonjs/button/lib/DeleteButton.js +29 -19
  26. package/dist/commonjs/button/lib/PrimaryButton.d.ts +15 -36
  27. package/dist/commonjs/button/lib/PrimaryButton.d.ts.map +1 -1
  28. package/dist/commonjs/button/lib/PrimaryButton.js +67 -79
  29. package/dist/commonjs/button/lib/SecondaryButton.d.ts +16 -43
  30. package/dist/commonjs/button/lib/SecondaryButton.d.ts.map +1 -1
  31. package/dist/commonjs/button/lib/SecondaryButton.js +71 -96
  32. package/dist/commonjs/button/lib/TertiaryButton.d.ts +35 -47
  33. package/dist/commonjs/button/lib/TertiaryButton.d.ts.map +1 -1
  34. package/dist/commonjs/button/lib/TertiaryButton.js +136 -134
  35. package/dist/commonjs/button/lib/ToolbarDropdownButton.d.ts.map +1 -1
  36. package/dist/commonjs/button/lib/ToolbarDropdownButton.js +11 -2
  37. package/dist/commonjs/button/lib/ToolbarIconButton.d.ts.map +1 -1
  38. package/dist/commonjs/button/lib/ToolbarIconButton.js +10 -2
  39. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts +1 -7
  40. package/dist/commonjs/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  41. package/dist/commonjs/button/lib/types.d.ts +6 -7
  42. package/dist/commonjs/button/lib/types.d.ts.map +1 -1
  43. package/dist/commonjs/card/lib/Card.d.ts +1 -1
  44. package/dist/commonjs/card/lib/CardBody.d.ts +1 -1
  45. package/dist/commonjs/card/lib/CardBody.d.ts.map +1 -1
  46. package/dist/commonjs/checkbox/lib/Checkbox.d.ts.map +1 -1
  47. package/dist/commonjs/checkbox/lib/Checkbox.js +13 -17
  48. package/dist/commonjs/common/lib/CanvasProvider.d.ts +1 -8
  49. package/dist/commonjs/common/lib/CanvasProvider.d.ts.map +1 -1
  50. package/dist/commonjs/common/lib/CanvasProvider.js +31 -13
  51. package/dist/commonjs/dialog/lib/Dialog.d.ts +1 -1
  52. package/dist/commonjs/layout/lib/Box.d.ts +3 -2
  53. package/dist/commonjs/layout/lib/Box.d.ts.map +1 -1
  54. package/dist/commonjs/layout/lib/Box.js +2 -1
  55. package/dist/commonjs/layout/lib/Flex.d.ts +1 -1
  56. package/dist/commonjs/layout/lib/Grid.d.ts +1 -1
  57. package/dist/commonjs/menu/lib/MenuItem.d.ts +1 -1
  58. package/dist/commonjs/popup/lib/Popup.d.ts +1 -1
  59. package/dist/commonjs/popup/lib/PopupBody.d.ts +1 -1
  60. package/dist/commonjs/popup/lib/PopupCloseIcon.js +1 -1
  61. package/dist/commonjs/radio/lib/Radio.d.ts.map +1 -1
  62. package/dist/commonjs/radio/lib/Radio.js +17 -22
  63. package/dist/commonjs/segmented-control/lib/SegmentedControlButton.d.ts.map +1 -1
  64. package/dist/commonjs/segmented-control/lib/SegmentedControlButton.js +3 -1
  65. package/dist/commonjs/table/lib/Table.d.ts +1 -2
  66. package/dist/commonjs/table/lib/Table.d.ts.map +1 -1
  67. package/dist/commonjs/table/lib/Table.js +1 -2
  68. package/dist/commonjs/table/lib/TableRow.d.ts +3 -6
  69. package/dist/commonjs/table/lib/TableRow.d.ts.map +1 -1
  70. package/dist/commonjs/table/lib/TableRow.js +3 -5
  71. package/dist/commonjs/tabs/lib/TabsItem.d.ts +1 -1
  72. package/dist/commonjs/text-area/lib/TextArea.d.ts.map +1 -1
  73. package/dist/commonjs/text-area/lib/TextArea.js +1 -1
  74. package/dist/commonjs/text-input/lib/TextInput.js +1 -1
  75. package/dist/commonjs/tokens/lib/space.d.ts +44 -31
  76. package/dist/commonjs/tokens/lib/space.d.ts.map +1 -1
  77. package/dist/commonjs/tokens/lib/space.js +22 -29
  78. package/dist/commonjs/tooltip/lib/TooltipContainer.js +2 -2
  79. package/dist/es6/button/index.d.ts +8 -5
  80. package/dist/es6/button/index.d.ts.map +1 -1
  81. package/dist/es6/button/index.js +8 -5
  82. package/dist/es6/button/lib/BaseButton.d.ts +69 -5
  83. package/dist/es6/button/lib/BaseButton.d.ts.map +1 -1
  84. package/dist/es6/button/lib/BaseButton.js +199 -192
  85. package/dist/es6/button/lib/Button.d.ts +17 -0
  86. package/dist/es6/button/lib/Button.d.ts.map +1 -0
  87. package/dist/es6/button/lib/Button.js +20 -0
  88. package/dist/es6/button/lib/DeleteButton.d.ts +7 -9
  89. package/dist/es6/button/lib/DeleteButton.d.ts.map +1 -1
  90. package/dist/es6/button/lib/DeleteButton.js +31 -21
  91. package/dist/es6/button/lib/PrimaryButton.d.ts +15 -36
  92. package/dist/es6/button/lib/PrimaryButton.d.ts.map +1 -1
  93. package/dist/es6/button/lib/PrimaryButton.js +67 -79
  94. package/dist/es6/button/lib/SecondaryButton.d.ts +16 -43
  95. package/dist/es6/button/lib/SecondaryButton.d.ts.map +1 -1
  96. package/dist/es6/button/lib/SecondaryButton.js +71 -95
  97. package/dist/es6/button/lib/TertiaryButton.d.ts +35 -47
  98. package/dist/es6/button/lib/TertiaryButton.d.ts.map +1 -1
  99. package/dist/es6/button/lib/TertiaryButton.js +137 -135
  100. package/dist/es6/button/lib/ToolbarDropdownButton.d.ts.map +1 -1
  101. package/dist/es6/button/lib/ToolbarDropdownButton.js +11 -2
  102. package/dist/es6/button/lib/ToolbarIconButton.d.ts.map +1 -1
  103. package/dist/es6/button/lib/ToolbarIconButton.js +10 -2
  104. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts +1 -7
  105. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  106. package/dist/es6/button/lib/types.d.ts +6 -7
  107. package/dist/es6/button/lib/types.d.ts.map +1 -1
  108. package/dist/es6/card/lib/Card.d.ts +1 -1
  109. package/dist/es6/card/lib/CardBody.d.ts +1 -1
  110. package/dist/es6/card/lib/CardBody.d.ts.map +1 -1
  111. package/dist/es6/checkbox/lib/Checkbox.d.ts.map +1 -1
  112. package/dist/es6/checkbox/lib/Checkbox.js +14 -18
  113. package/dist/es6/common/lib/CanvasProvider.d.ts +1 -8
  114. package/dist/es6/common/lib/CanvasProvider.d.ts.map +1 -1
  115. package/dist/es6/common/lib/CanvasProvider.js +31 -13
  116. package/dist/es6/dialog/lib/Dialog.d.ts +1 -1
  117. package/dist/es6/layout/lib/Box.d.ts +3 -2
  118. package/dist/es6/layout/lib/Box.d.ts.map +1 -1
  119. package/dist/es6/layout/lib/Box.js +2 -1
  120. package/dist/es6/layout/lib/Flex.d.ts +1 -1
  121. package/dist/es6/layout/lib/Grid.d.ts +1 -1
  122. package/dist/es6/menu/lib/MenuItem.d.ts +1 -1
  123. package/dist/es6/popup/lib/Popup.d.ts +1 -1
  124. package/dist/es6/popup/lib/PopupBody.d.ts +1 -1
  125. package/dist/es6/popup/lib/PopupCloseIcon.js +1 -1
  126. package/dist/es6/radio/lib/Radio.d.ts.map +1 -1
  127. package/dist/es6/radio/lib/Radio.js +18 -23
  128. package/dist/es6/segmented-control/lib/SegmentedControlButton.d.ts.map +1 -1
  129. package/dist/es6/segmented-control/lib/SegmentedControlButton.js +3 -1
  130. package/dist/es6/table/lib/Table.d.ts +1 -2
  131. package/dist/es6/table/lib/Table.d.ts.map +1 -1
  132. package/dist/es6/table/lib/Table.js +1 -2
  133. package/dist/es6/table/lib/TableRow.d.ts +3 -6
  134. package/dist/es6/table/lib/TableRow.d.ts.map +1 -1
  135. package/dist/es6/table/lib/TableRow.js +4 -6
  136. package/dist/es6/tabs/lib/TabsItem.d.ts +1 -1
  137. package/dist/es6/text-area/lib/TextArea.d.ts.map +1 -1
  138. package/dist/es6/text-area/lib/TextArea.js +2 -2
  139. package/dist/es6/text-input/lib/TextInput.js +2 -2
  140. package/dist/es6/tokens/lib/space.d.ts +44 -31
  141. package/dist/es6/tokens/lib/space.d.ts.map +1 -1
  142. package/dist/es6/tokens/lib/space.js +22 -29
  143. package/dist/es6/tooltip/lib/TooltipContainer.js +3 -3
  144. package/layout/lib/Box.tsx +6 -4
  145. package/package.json +5 -3
  146. package/popup/lib/PopupCloseIcon.tsx +1 -1
  147. package/radio/lib/Radio.tsx +18 -34
  148. package/segmented-control/lib/SegmentedControlButton.tsx +3 -1
  149. package/table/lib/Table.tsx +1 -2
  150. package/table/lib/TableRow.tsx +5 -8
  151. package/text-area/lib/TextArea.tsx +2 -8
  152. package/text-input/lib/TextInput.tsx +2 -2
  153. package/tokens/README.md +25 -28
  154. package/tokens/lib/space.ts +53 -40
  155. package/tooltip/lib/TooltipContainer.tsx +3 -3
@@ -12,13 +12,7 @@ import {
12
12
  Themeable,
13
13
  useLocalRef,
14
14
  } from '@workday/canvas-kit-react/common';
15
- import {
16
- borderRadius,
17
- colors,
18
- inputColors,
19
- space,
20
- spaceNumbers,
21
- } from '@workday/canvas-kit-react/tokens';
15
+ import {borderRadius, colors, inputColors, space} from '@workday/canvas-kit-react/tokens';
22
16
  import {SystemIcon} from '@workday/canvas-kit-react/icon';
23
17
  import {checkSmallIcon} from '@workday/canvas-system-icons-web';
24
18
  import {LabelText} from '@workday/canvas-kit-react/text';
@@ -67,17 +61,10 @@ export interface CheckboxProps extends Themeable {
67
61
  variant?: 'inverse' | undefined;
68
62
  }
69
63
 
70
- const checkboxHeight = (spaceNumbers.xl - spaceNumbers.xxxs) / 2;
71
- const checkboxTapArea = space.m;
72
- const checkboxContainerHeight = checkboxTapArea;
73
- const checkboxLabelDistance = `${spaceNumbers.xs}rem`;
74
- const checkboxWidth = checkboxHeight;
75
- const rippleRadius = (spaceNumbers.l - checkboxWidth) / 2;
76
-
77
64
  const CheckboxContainer = styled('div')({
78
65
  display: 'flex',
79
66
  alignItems: 'center',
80
- minHeight: checkboxContainerHeight,
67
+ minHeight: space.m,
81
68
  position: 'relative',
82
69
  });
83
70
 
@@ -88,8 +75,8 @@ const CheckboxContainer = styled('div')({
88
75
  */
89
76
  const CheckboxInputWrapper = styled('div')<Pick<CheckboxProps, 'disabled'>>({
90
77
  display: 'flex',
91
- height: `${checkboxHeight}rem`,
92
- minWidth: `${checkboxWidth}rem`,
78
+ height: `calc(${space.s} + 2px)`,
79
+ minWidth: `calc(${space.s} + 2px)`,
93
80
  marginTop: '3px',
94
81
  alignSelf: 'flex-start',
95
82
  });
@@ -98,9 +85,9 @@ const CheckboxRipple = styled('span')<Pick<CheckboxProps, 'disabled' | 'variant'
98
85
  {
99
86
  borderRadius: borderRadius.circle,
100
87
  boxShadow: `0 0 0 0 ${colors.soap200}`,
101
- height: `${checkboxHeight}rem`,
88
+ height: `calc(${space.s} + 2px)`,
102
89
  transition: 'box-shadow 150ms ease-out',
103
- width: `${checkboxWidth}rem`,
90
+ width: `calc(${space.s} + 2px)`,
104
91
  position: 'absolute',
105
92
  pointerEvents: 'none', // This is a decorative element we don't want it to block clicks to input
106
93
  },
@@ -126,8 +113,8 @@ const CheckboxInput = styled('input')<CheckboxProps & StyledType>(
126
113
  variant,
127
114
  }) => ({
128
115
  borderRadius: borderRadius.s,
129
- width: checkboxTapArea,
130
- height: checkboxTapArea,
116
+ width: space.m,
117
+ height: space.m,
131
118
  margin: 0,
132
119
  marginTop: '-3px',
133
120
  marginLeft: '-3px',
@@ -139,11 +126,12 @@ const CheckboxInput = styled('input')<CheckboxProps & StyledType>(
139
126
  },
140
127
 
141
128
  // States
142
- '&:not(:checked):not(:indeterminate):not(:disabled):not(:focus):hover, &:not(:checked):not(:indeterminate):not(:disabled):active': {
143
- '~ div:first-of-type': {
144
- borderColor: variant === 'inverse' ? colors.soap300 : inputColors.hoverBorder,
129
+ '&:not(:checked):not(:indeterminate):not(:disabled):not(:focus):hover, &:not(:checked):not(:indeterminate):not(:disabled):active':
130
+ {
131
+ '~ div:first-of-type': {
132
+ borderColor: variant === 'inverse' ? colors.soap300 : inputColors.hoverBorder,
133
+ },
145
134
  },
146
- },
147
135
  '&:checked ~ div:first-of-type, &:indeterminate ~ div:first-of-type': {
148
136
  borderColor: variant === 'inverse' ? colors.soap300 : themePrimary.main,
149
137
  backgroundColor: variant === 'inverse' ? colors.frenchVanilla100 : themePrimary.main,
@@ -210,7 +198,9 @@ const CheckboxInput = styled('input')<CheckboxProps & StyledType>(
210
198
  }),
211
199
  ({disabled}) => ({
212
200
  '&:hover ~ span:first-of-type': {
213
- boxShadow: disabled ? undefined : `0 0 0 ${rippleRadius}rem ${colors.soap200}`,
201
+ boxShadow: disabled
202
+ ? undefined
203
+ : `0 0 0 calc((${space.l} - (${space.s} + 2px)) / 2) ${colors.soap200}`,
214
204
  },
215
205
  }),
216
206
  ({theme, error, variant}) => {
@@ -226,11 +216,12 @@ const CheckboxInput = styled('input')<CheckboxProps & StyledType>(
226
216
  variant === 'inverse' ? `1px solid ${colors.soap300}` : `1px solid ${errorColors.inner}`,
227
217
  boxShadow: `0 0 0 1px ${errorColors.inner}, 0 0 0 2px ${errorColors.outer}`,
228
218
  },
229
- '&:not(:checked):not(:indeterminate):not(:disabled):not(:focus):hover, &:not(:checked):not(:indeterminate):not(:disabled):active': {
230
- '~ div:first-of-type': {
231
- borderColor: variant === 'inverse' ? `1px solid ${colors.soap300}` : errorColors.inner,
219
+ '&:not(:checked):not(:indeterminate):not(:disabled):not(:focus):hover, &:not(:checked):not(:indeterminate):not(:disabled):active':
220
+ {
221
+ '~ div:first-of-type': {
222
+ borderColor: variant === 'inverse' ? `1px solid ${colors.soap300}` : errorColors.inner,
223
+ },
232
224
  },
233
- },
234
225
  '&:checked ~ div:first-of-type, &:indeterminate ~ div:first-of-type': {
235
226
  borderColor: variant === 'inverse' ? colors.soap300 : theme.canvas.palette.primary.main,
236
227
  boxShadow: `
@@ -260,13 +251,13 @@ const CheckboxBackground = styled('div')<CheckboxProps>(
260
251
  borderRadius: borderRadius.s,
261
252
  boxSizing: 'border-box',
262
253
  display: 'flex',
263
- height: `${checkboxHeight}rem`,
254
+ height: `calc(${space.s} + 2px)`,
264
255
  justifyContent: 'center',
265
256
  padding: '0px 2px',
266
257
  pointerEvents: 'none',
267
258
  position: 'absolute',
268
259
  transition: 'border 200ms ease, background 200ms',
269
- width: `${checkboxWidth}rem`,
260
+ width: `calc(${space.s} + 2px)`,
270
261
  },
271
262
  ({variant}) => ({
272
263
  border: `1px solid ${variant === 'inverse' ? colors.soap300 : inputColors.border}`,
@@ -373,7 +364,7 @@ export const Checkbox = createComponent('input')({
373
364
  htmlFor={inputId}
374
365
  disabled={disabled}
375
366
  variant={variant}
376
- paddingInlineStart={checkboxLabelDistance}
367
+ paddingInlineStart={space.xs}
377
368
  cursor="pointer"
378
369
  >
379
370
  {label}
@@ -1,34 +1,60 @@
1
1
  import * as React from 'react';
2
2
  import {Theme, ThemeProvider} from '@emotion/react';
3
3
  import {InputProvider} from './InputProvider';
4
- import {defaultCanvasTheme, PartialEmotionCanvasTheme} from './theming';
4
+ import {defaultCanvasTheme, PartialEmotionCanvasTheme, useTheme} from './theming';
5
+ import {brand} from '@workday/canvas-tokens-web';
5
6
 
6
7
  export interface CanvasProviderProps {
7
8
  theme: PartialEmotionCanvasTheme;
8
9
  }
9
10
 
10
- export class CanvasProvider extends React.Component<
11
- CanvasProviderProps & React.HTMLAttributes<HTMLElement>
12
- > {
13
- static defaultProps = {
14
- theme: {
15
- canvas: defaultCanvasTheme,
16
- },
17
- };
11
+ const mappedKeys = {
12
+ lightest: 'lightest',
13
+ light: 'light',
14
+ main: 'base',
15
+ dark: 'dark',
16
+ darkest: 'darkest',
17
+ contrast: 'accent',
18
+ };
18
19
 
19
- render() {
20
- const {children, theme, ...elemProps} = this.props;
20
+ const useCanvasThemeToCssVars = (
21
+ theme: PartialEmotionCanvasTheme,
22
+ elemProps: React.HTMLAttributes<HTMLElement>
23
+ ) => {
24
+ const filledTheme = useTheme(theme);
25
+ const {palette} = filledTheme.canvas;
26
+ const style = (['common', 'primary', 'error', 'alert', 'success', 'neutral'] as const).reduce(
27
+ (result, color) => {
28
+ if (color === 'common') {
29
+ // @ts-ignore
30
+ result[brand.common.focusOutline] = palette.common.focusOutline;
31
+ }
32
+ (['lightest', 'light', 'main', 'dark', 'darkest', 'contrast'] as const).forEach(key => {
33
+ // @ts-ignore
34
+ result[brand[color][mappedKeys[key]]] = palette[color][key];
35
+ });
36
+ return result;
37
+ },
38
+ elemProps.style || {}
39
+ );
40
+ return {...elemProps, style};
41
+ };
21
42
 
22
- return (
23
- <ThemeProvider theme={theme as Theme}>
24
- <InputProvider />
25
- <div
26
- dir={(theme.canvas && theme.canvas.direction) || defaultCanvasTheme.direction}
27
- {...(elemProps as React.HTMLAttributes<HTMLDivElement>)}
28
- >
29
- {children}
30
- </div>
31
- </ThemeProvider>
32
- );
33
- }
34
- }
43
+ export const CanvasProvider = ({
44
+ children,
45
+ theme,
46
+ ...props
47
+ }: CanvasProviderProps & React.HTMLAttributes<HTMLElement>) => {
48
+ const elemProps = useCanvasThemeToCssVars(theme, props);
49
+ return (
50
+ <ThemeProvider theme={theme as Theme}>
51
+ <InputProvider />
52
+ <div
53
+ dir={(theme.canvas && theme.canvas.direction) || defaultCanvasTheme.direction}
54
+ {...(elemProps as React.HTMLAttributes<HTMLDivElement>)}
55
+ >
56
+ {children}
57
+ </div>
58
+ </ThemeProvider>
59
+ );
60
+ };
@@ -1,12 +1,15 @@
1
- export { PrimaryButton, PrimaryButtonProps } from './lib/PrimaryButton';
2
- export { SecondaryButton, SecondaryButtonProps } from './lib/SecondaryButton';
3
- export { TertiaryButton, TertiaryButtonProps } from './lib/TertiaryButton';
4
- export { DeleteButton, DeleteButtonProps } from './lib/DeleteButton';
5
1
  export { DeprecatedButton as deprecated_Button, DeprecatedButtonProps, } from './lib/deprecated_Button';
6
2
  export { ToolbarIconButton, ToolbarIconButtonProps } from './lib/ToolbarIconButton';
7
3
  export { ToolbarDropdownButton, ToolbarDropdownButtonProps } from './lib/ToolbarDropdownButton';
8
4
  export { Hyperlink, HyperlinkProps } from './lib/Hyperlink';
9
- export { BaseButton, ButtonContainerProps, BaseButtonProps, getMinWidthStyles, getPaddingStyles, } from './lib/BaseButton';
10
5
  export { ExternalHyperlink, ExternalHyperlinkProps } from './lib/ExternalHyperlink';
11
6
  export * from './lib/types';
7
+ export * from './lib/PrimaryButton';
8
+ export * from './lib/SecondaryButton';
9
+ export * from './lib/TertiaryButton';
10
+ export * from './lib/DeleteButton';
11
+ export * from './lib/BaseButton';
12
+ export * from './lib/ToolbarDropdownButton';
13
+ export * from './lib/ToolbarIconButton';
14
+ export * from './lib/types';
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAC,eAAe,EAAE,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAC,YAAY,EAAE,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AACnE,OAAO,EACL,gBAAgB,IAAI,iBAAiB,EACrC,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAC,qBAAqB,EAAE,0BAA0B,EAAC,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAClF,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,IAAI,iBAAiB,EACrC,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAC,qBAAqB,EAAE,0BAA0B,EAAC,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAC,SAAS,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAE,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAClF,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC"}
@@ -10,15 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.ExternalHyperlink = exports.getPaddingStyles = exports.getMinWidthStyles = exports.BaseButton = exports.Hyperlink = exports.ToolbarDropdownButton = exports.ToolbarIconButton = exports.deprecated_Button = exports.DeleteButton = exports.TertiaryButton = exports.SecondaryButton = exports.PrimaryButton = void 0;
14
- var PrimaryButton_1 = require("./lib/PrimaryButton");
15
- Object.defineProperty(exports, "PrimaryButton", { enumerable: true, get: function () { return PrimaryButton_1.PrimaryButton; } });
16
- var SecondaryButton_1 = require("./lib/SecondaryButton");
17
- Object.defineProperty(exports, "SecondaryButton", { enumerable: true, get: function () { return SecondaryButton_1.SecondaryButton; } });
18
- var TertiaryButton_1 = require("./lib/TertiaryButton");
19
- Object.defineProperty(exports, "TertiaryButton", { enumerable: true, get: function () { return TertiaryButton_1.TertiaryButton; } });
20
- var DeleteButton_1 = require("./lib/DeleteButton");
21
- Object.defineProperty(exports, "DeleteButton", { enumerable: true, get: function () { return DeleteButton_1.DeleteButton; } });
13
+ exports.ExternalHyperlink = exports.Hyperlink = exports.ToolbarDropdownButton = exports.ToolbarIconButton = exports.deprecated_Button = void 0;
22
14
  var deprecated_Button_1 = require("./lib/deprecated_Button");
23
15
  Object.defineProperty(exports, "deprecated_Button", { enumerable: true, get: function () { return deprecated_Button_1.DeprecatedButton; } });
24
16
  var ToolbarIconButton_1 = require("./lib/ToolbarIconButton");
@@ -27,10 +19,14 @@ var ToolbarDropdownButton_1 = require("./lib/ToolbarDropdownButton");
27
19
  Object.defineProperty(exports, "ToolbarDropdownButton", { enumerable: true, get: function () { return ToolbarDropdownButton_1.ToolbarDropdownButton; } });
28
20
  var Hyperlink_1 = require("./lib/Hyperlink");
29
21
  Object.defineProperty(exports, "Hyperlink", { enumerable: true, get: function () { return Hyperlink_1.Hyperlink; } });
30
- var BaseButton_1 = require("./lib/BaseButton");
31
- Object.defineProperty(exports, "BaseButton", { enumerable: true, get: function () { return BaseButton_1.BaseButton; } });
32
- Object.defineProperty(exports, "getMinWidthStyles", { enumerable: true, get: function () { return BaseButton_1.getMinWidthStyles; } });
33
- Object.defineProperty(exports, "getPaddingStyles", { enumerable: true, get: function () { return BaseButton_1.getPaddingStyles; } });
34
22
  var ExternalHyperlink_1 = require("./lib/ExternalHyperlink");
35
23
  Object.defineProperty(exports, "ExternalHyperlink", { enumerable: true, get: function () { return ExternalHyperlink_1.ExternalHyperlink; } });
36
24
  __exportStar(require("./lib/types"), exports);
25
+ __exportStar(require("./lib/PrimaryButton"), exports);
26
+ __exportStar(require("./lib/SecondaryButton"), exports);
27
+ __exportStar(require("./lib/TertiaryButton"), exports);
28
+ __exportStar(require("./lib/DeleteButton"), exports);
29
+ __exportStar(require("./lib/BaseButton"), exports);
30
+ __exportStar(require("./lib/ToolbarDropdownButton"), exports);
31
+ __exportStar(require("./lib/ToolbarIconButton"), exports);
32
+ __exportStar(require("./lib/types"), exports);
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { GrowthBehavior } from '@workday/canvas-kit-react/common';
3
3
  import { SystemIconProps } from '@workday/canvas-kit-react/icon';
4
- import { ButtonColors, ButtonSizes, IconPositions, TertiaryButtonSizes } from './types';
4
+ import { ButtonColors, ButtonSizes, IconPositions } from './types';
5
5
  import { CanvasSystemIcon } from '@workday/design-assets-types';
6
6
  export interface ButtonContainerProps extends Partial<SystemIconProps>, GrowthBehavior {
7
7
  /**
@@ -11,13 +11,33 @@ export interface ButtonContainerProps extends Partial<SystemIconProps>, GrowthBe
11
11
  /**
12
12
  * There are four button sizes: `extraSmall`, `small`, `medium`, and `large`.
13
13
  * If no size is provided, it will default to `medium`.
14
+ *
15
+ * @default 'medium
14
16
  */
15
17
  size?: ButtonSizes;
18
+ /**
19
+ * The icon of the Button.
20
+ * Note: not displayed at `small` size
21
+ */
22
+ icon?: CanvasSystemIcon;
16
23
  /**
17
24
  * Whether the icon should received filled (colored background layer) or regular styles.
18
25
  * Corresponds to `toggled` in ToolbarIconButton
19
26
  */
20
27
  fillIcon?: boolean;
28
+ /**
29
+ * Button icon positions can either be `start` or `end`.
30
+ * If no value is provided, it defaults to `start`.
31
+ *
32
+ * @default 'start'
33
+ */
34
+ iconPosition?: IconPositions;
35
+ /**
36
+ * If set to `true`, transform the icon's x-axis to mirror the graphic
37
+ * @default false
38
+ */
39
+ shouldMirrorIcon?: boolean;
40
+ children?: React.ReactNode;
21
41
  }
22
42
  /**
23
43
  * Extends all the style properties from Box to our buttons as well as props from ButtonContainerProps.
@@ -26,10 +46,54 @@ export interface ButtonContainerProps extends Partial<SystemIconProps>, GrowthBe
26
46
  */
27
47
  export interface BaseButtonProps extends Omit<ButtonContainerProps, 'ref'> {
28
48
  }
29
- export declare const getMinWidthStyles: (children: React.ReactNode, size: ButtonSizes | TertiaryButtonSizes) => "1.5rem" | "2rem" | "2.5rem" | "5rem" | "auto" | "48px" | "112px" | "96px";
30
- export declare const getPaddingStyles: (children: React.ReactNode, size: ButtonSizes | TertiaryButtonSizes, icon: CanvasSystemIcon | undefined, iconPosition: IconPositions | undefined) => string | 0;
49
+ /**
50
+ * Temporary css variables to be used across all Buttons.
51
+ */
52
+ export declare const buttonVars: {
53
+ default: import("@workday/canvas-kit-styling").CsVars<"label" | "opacity" | "background" | "border" | "borderRadius" | "icon" | "boxShadowInner" | "boxShadowOuter", never>;
54
+ hover: import("@workday/canvas-kit-styling").CsVars<"label" | "opacity" | "background" | "border" | "borderRadius" | "icon" | "boxShadowInner" | "boxShadowOuter", never>;
55
+ active: import("@workday/canvas-kit-styling").CsVars<"label" | "opacity" | "background" | "border" | "borderRadius" | "icon" | "boxShadowInner" | "boxShadowOuter", never>;
56
+ focus: import("@workday/canvas-kit-styling").CsVars<"label" | "opacity" | "background" | "border" | "borderRadius" | "icon" | "boxShadowInner" | "boxShadowOuter", never>;
57
+ disabled: import("@workday/canvas-kit-styling").CsVars<"label" | "opacity" | "background" | "border" | "borderRadius" | "icon" | "boxShadowInner" | "boxShadowOuter", never>;
58
+ };
59
+ /**
60
+ * Button modifiers that will overwrite the base styles of Buttons.
61
+ * - `Size`: These modifiers will dictate a size of a Button and has a set of styles to associated with it.
62
+ * - `iconPosition`: These modifiers will override the existing `Size` styles. These are specific to icon locations
63
+ * within a button or if there is only an icon and no text.
64
+ */
65
+ export declare const buttonModifiers: {
66
+ size: {
67
+ large: string;
68
+ medium: string;
69
+ small: string;
70
+ extraSmall: string;
71
+ };
72
+ iconPosition: {
73
+ largeOnly: string;
74
+ largeStart: string;
75
+ largeEnd: string;
76
+ mediumOnly: string;
77
+ mediumStart: string;
78
+ mediumEnd: string;
79
+ smallOnly: string;
80
+ smallStart: string;
81
+ smallEnd: string;
82
+ extraSmallOnly: string;
83
+ extraSmallStart: string;
84
+ extraSmallEnd: string;
85
+ };
86
+ } & ((modifiers: Partial<{
87
+ size: "small" | "medium" | "large" | "extraSmall";
88
+ iconPosition: "largeOnly" | "largeStart" | "largeEnd" | "mediumOnly" | "mediumStart" | "mediumEnd" | "smallOnly" | "smallStart" | "smallEnd" | "extraSmallOnly" | "extraSmallStart" | "extraSmallEnd";
89
+ }>) => string);
90
+ export declare function capitalize(string?: string): string;
91
+ export declare function getIconPosition(size?: keyof typeof buttonModifiers.size, iconPosition?: IconPositions, children?: React.ReactNode): keyof typeof buttonModifiers.iconPosition;
92
+ /**
93
+ * The base button which all other buttons are built.
94
+ */
31
95
  export declare const BaseButton: import("@workday/canvas-kit-react/common").ElementComponent<"button", ButtonContainerProps> & {
32
- Icon: import("@workday/canvas-kit-react/common").ElementComponent<"span", import("./parts/ButtonLabelIcon").ButtonLabelIconProps>;
33
- Label: import("@workday/canvas-kit-react/common").ElementComponent<"span", import("./parts/ButtonLabel").ButtonLabelProps>;
96
+ Icon: import("@workday/canvas-kit-react/common").ElementComponent<"span", import("../lib/parts/ButtonLabelIcon").ButtonLabelIconProps>;
97
+ Label: import("@workday/canvas-kit-react/common").ElementComponent<"span", import("../lib/parts/ButtonLabel").ButtonLabelProps>;
34
98
  };
35
99
  //# sourceMappingURL=BaseButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseButton.d.ts","sourceRoot":"","sources":["../../../../button/lib/BaseButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAEL,cAAc,EAMf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAI/D,OAAO,EAAC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAGtF,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAE9D,MAAM,WAAW,oBAAqB,SAAQ,OAAO,CAAC,eAAe,CAAC,EAAE,cAAc;IACpF;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC;CAAG;AAgL7E,eAAO,MAAM,iBAAiB,aAClB,MAAM,SAAS,QACnB,WAAW,GAAG,mBAAmB,+EAcxC,CAAC;AAEF,eAAO,MAAM,gBAAgB,aACjB,MAAM,SAAS,QACnB,WAAW,GAAG,mBAAmB,QACjC,gBAAgB,GAAG,SAAS,gBACpB,aAAa,GAAG,SAAS,eAiDxC,CAAC;AAEF,eAAO,MAAM,UAAU;;;CAarB,CAAC"}
1
+ {"version":3,"file":"BaseButton.d.ts","sourceRoot":"","sources":["../../../../button/lib/BaseButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAkB,cAAc,EAAY,MAAM,kCAAkC,CAAC;AAE5F,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAI/D,OAAO,EAAC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AACjE,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAE9D,MAAM,WAAW,oBAAqB,SAAQ,OAAO,CAAC,eAAe,CAAC,EAAE,cAAc;IACpF;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC;CAAG;AAiB7E;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;CAMtB,CAAC;AAkGF;;;;;GAKG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;cA4E1B,CAAC;AAEH,wBAAgB,UAAU,CAAC,MAAM,GAAE,MAAW,UAE7C;AAED,wBAAgB,eAAe,CAC7B,IAAI,CAAC,EAAE,MAAM,OAAO,eAAe,CAAC,IAAI,EACxC,YAAY,CAAC,EAAE,aAAa,EAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GACzB,MAAM,OAAO,eAAe,CAAC,YAAY,CAE3C;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;CA8CrB,CAAC"}