@workday/canvas-kit-react 10.0.0-alpha.537-next.0 → 10.0.0-alpha.539-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 (117) 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/common/lib/CanvasProvider.tsx +50 -24
  13. package/common/lib/utils/slugify.ts +4 -1
  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/common/lib/CanvasProvider.d.ts +1 -8
  47. package/dist/commonjs/common/lib/CanvasProvider.d.ts.map +1 -1
  48. package/dist/commonjs/common/lib/CanvasProvider.js +31 -13
  49. package/dist/commonjs/common/lib/utils/slugify.d.ts.map +1 -1
  50. package/dist/commonjs/common/lib/utils/slugify.js +4 -1
  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/segmented-control/lib/SegmentedControlButton.d.ts.map +1 -1
  62. package/dist/commonjs/segmented-control/lib/SegmentedControlButton.js +3 -1
  63. package/dist/commonjs/tabs/lib/TabsItem.d.ts +1 -1
  64. package/dist/es6/button/index.d.ts +8 -5
  65. package/dist/es6/button/index.d.ts.map +1 -1
  66. package/dist/es6/button/index.js +8 -5
  67. package/dist/es6/button/lib/BaseButton.d.ts +69 -5
  68. package/dist/es6/button/lib/BaseButton.d.ts.map +1 -1
  69. package/dist/es6/button/lib/BaseButton.js +199 -192
  70. package/dist/es6/button/lib/Button.d.ts +17 -0
  71. package/dist/es6/button/lib/Button.d.ts.map +1 -0
  72. package/dist/es6/button/lib/Button.js +20 -0
  73. package/dist/es6/button/lib/DeleteButton.d.ts +7 -9
  74. package/dist/es6/button/lib/DeleteButton.d.ts.map +1 -1
  75. package/dist/es6/button/lib/DeleteButton.js +31 -21
  76. package/dist/es6/button/lib/PrimaryButton.d.ts +15 -36
  77. package/dist/es6/button/lib/PrimaryButton.d.ts.map +1 -1
  78. package/dist/es6/button/lib/PrimaryButton.js +67 -79
  79. package/dist/es6/button/lib/SecondaryButton.d.ts +16 -43
  80. package/dist/es6/button/lib/SecondaryButton.d.ts.map +1 -1
  81. package/dist/es6/button/lib/SecondaryButton.js +71 -95
  82. package/dist/es6/button/lib/TertiaryButton.d.ts +35 -47
  83. package/dist/es6/button/lib/TertiaryButton.d.ts.map +1 -1
  84. package/dist/es6/button/lib/TertiaryButton.js +137 -135
  85. package/dist/es6/button/lib/ToolbarDropdownButton.d.ts.map +1 -1
  86. package/dist/es6/button/lib/ToolbarDropdownButton.js +11 -2
  87. package/dist/es6/button/lib/ToolbarIconButton.d.ts.map +1 -1
  88. package/dist/es6/button/lib/ToolbarIconButton.js +10 -2
  89. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts +1 -7
  90. package/dist/es6/button/lib/parts/ButtonLabelIcon.d.ts.map +1 -1
  91. package/dist/es6/button/lib/types.d.ts +6 -7
  92. package/dist/es6/button/lib/types.d.ts.map +1 -1
  93. package/dist/es6/card/lib/Card.d.ts +1 -1
  94. package/dist/es6/card/lib/CardBody.d.ts +1 -1
  95. package/dist/es6/card/lib/CardBody.d.ts.map +1 -1
  96. package/dist/es6/common/lib/CanvasProvider.d.ts +1 -8
  97. package/dist/es6/common/lib/CanvasProvider.d.ts.map +1 -1
  98. package/dist/es6/common/lib/CanvasProvider.js +31 -13
  99. package/dist/es6/common/lib/utils/slugify.d.ts.map +1 -1
  100. package/dist/es6/common/lib/utils/slugify.js +4 -1
  101. package/dist/es6/dialog/lib/Dialog.d.ts +1 -1
  102. package/dist/es6/layout/lib/Box.d.ts +3 -2
  103. package/dist/es6/layout/lib/Box.d.ts.map +1 -1
  104. package/dist/es6/layout/lib/Box.js +2 -1
  105. package/dist/es6/layout/lib/Flex.d.ts +1 -1
  106. package/dist/es6/layout/lib/Grid.d.ts +1 -1
  107. package/dist/es6/menu/lib/MenuItem.d.ts +1 -1
  108. package/dist/es6/popup/lib/Popup.d.ts +1 -1
  109. package/dist/es6/popup/lib/PopupBody.d.ts +1 -1
  110. package/dist/es6/popup/lib/PopupCloseIcon.js +1 -1
  111. package/dist/es6/segmented-control/lib/SegmentedControlButton.d.ts.map +1 -1
  112. package/dist/es6/segmented-control/lib/SegmentedControlButton.js +3 -1
  113. package/dist/es6/tabs/lib/TabsItem.d.ts +1 -1
  114. package/layout/lib/Box.tsx +6 -4
  115. package/package.json +5 -3
  116. package/popup/lib/PopupCloseIcon.tsx +1 -1
  117. package/segmented-control/lib/SegmentedControlButton.tsx +3 -1
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.Button = void 0;
23
+ const React = __importStar(require("react"));
24
+ const BaseButton_1 = require("./BaseButton");
25
+ const common_1 = require("@workday/canvas-kit-react/common");
26
+ exports.Button = common_1.createComponent('button')({
27
+ displayName: 'Button',
28
+ Component: ({ children, icon, colors, iconPosition, shouldMirrorIcon, size = 'medium', ...elemProps }, ref, Element) => {
29
+ const baseIconPosition = iconPosition
30
+ ? iconPosition
31
+ : icon
32
+ ? children
33
+ ? 'start'
34
+ : 'only'
35
+ : undefined;
36
+ return (React.createElement(BaseButton_1.BaseButton, Object.assign({ as: Element, ref: ref, size: size, icon: icon, iconPosition: baseIconPosition }, elemProps),
37
+ icon && baseIconPosition === 'start' && (React.createElement(BaseButton_1.BaseButton.Icon, { size: size, icon: icon, shouldMirrorIcon: shouldMirrorIcon })),
38
+ children && React.createElement(BaseButton_1.BaseButton.Label, null, children),
39
+ icon && baseIconPosition === 'only' && (React.createElement(BaseButton_1.BaseButton.Icon, { size: size, icon: icon, shouldMirrorIcon: shouldMirrorIcon })),
40
+ icon && baseIconPosition === 'end' && (React.createElement(BaseButton_1.BaseButton.Icon, { size: size, icon: icon, shouldMirrorIcon: shouldMirrorIcon }))));
41
+ },
42
+ });
@@ -1,12 +1,10 @@
1
- import * as React from 'react';
2
- import { BaseButtonProps } from './BaseButton';
3
- import { GrowthBehavior, Themeable } from '@workday/canvas-kit-react/common';
4
- export interface DeleteButtonProps extends Themeable, GrowthBehavior, BaseButtonProps {
5
- /**
6
- * The size of the Button.
7
- */
8
- size?: 'small' | 'medium' | 'large';
9
- children?: React.ReactNode;
1
+ import { ButtonProps } from './Button';
2
+ /**
3
+ * Extends all the style properties from Box to our buttons as well as props from ButtonProps.
4
+ * We omit `ref` since all of our buttons use `createComponent` and already give access to `ref`.
5
+ * Use this type to extend and customize any one off buttons that you want full control over styling.
6
+ */
7
+ export interface DeleteButtonProps extends ButtonProps {
10
8
  }
11
9
  /**
12
10
  * Use sparingly for destructive actions that will result in data loss, can’t be undone, or will
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteButton.d.ts","sourceRoot":"","sources":["../../../../button/lib/DeleteButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAa,eAAe,EAAsC,MAAM,cAAc,CAAC;AAC9F,OAAO,EACL,cAAc,EAEd,SAAS,EAGV,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,iBAAkB,SAAQ,SAAS,EAAE,cAAc,EAAE,eAAe;IACnF;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AA0BD;;;;GAIG;AACH,eAAO,MAAM,YAAY,0FA0BvB,CAAC"}
1
+ {"version":3,"file":"DeleteButton.d.ts","sourceRoot":"","sources":["../../../../button/lib/DeleteButton.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAS,WAAW,EAAC,MAAM,UAAU,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;CAAG;AA+BzD;;;;GAIG;AACH,eAAO,MAAM,YAAY,0FASvB,CAAC"}
@@ -23,23 +23,35 @@ exports.DeleteButton = void 0;
23
23
  const React = __importStar(require("react"));
24
24
  const BaseButton_1 = require("./BaseButton");
25
25
  const common_1 = require("@workday/canvas-kit-react/common");
26
- const getDeleteButtonColors = ({ canvas: { palette: { error: themeError }, }, }) => ({
27
- default: {
28
- background: themeError.main,
29
- label: themeError.contrast,
26
+ const canvas_kit_styling_1 = require("@workday/canvas-kit-styling");
27
+ const canvas_tokens_web_1 = require("@workday/canvas-tokens-web");
28
+ const Button_1 = require("./Button");
29
+ const deleteStyles = canvas_kit_styling_1.createStyles({
30
+ [BaseButton_1.buttonVars.default.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.error.base),
31
+ [BaseButton_1.buttonVars.default.border]: 'transparent',
32
+ [BaseButton_1.buttonVars.default.borderRadius]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.system.shape.circle),
33
+ [BaseButton_1.buttonVars.default.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.error.accent),
34
+ '&:hover, &.hover': {
35
+ [BaseButton_1.buttonVars.hover.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.error.dark),
36
+ [BaseButton_1.buttonVars.hover.border]: 'transparent',
37
+ [BaseButton_1.buttonVars.hover.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.error.accent),
30
38
  },
31
- hover: {
32
- background: themeError.dark,
39
+ '&:focus-visible, &.focus': {
40
+ [BaseButton_1.buttonVars.focus.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.error.base),
41
+ [BaseButton_1.buttonVars.focus.border]: 'transparent',
42
+ [BaseButton_1.buttonVars.focus.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.error.accent),
43
+ [BaseButton_1.buttonVars.focus.boxShadowInner]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
44
+ [BaseButton_1.buttonVars.focus.boxShadowOuter]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.common.focusOutline),
33
45
  },
34
- active: {
35
- background: themeError.darkest,
46
+ '&:active, &.active': {
47
+ [BaseButton_1.buttonVars.active.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.error.darkest),
48
+ [BaseButton_1.buttonVars.active.border]: 'transparent',
49
+ [BaseButton_1.buttonVars.active.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.error.accent),
36
50
  },
37
- focus: {
38
- background: themeError.main,
39
- },
40
- disabled: {
41
- background: themeError.light,
42
- opacity: '1', // allows for overriding the default opacity of 0.4
51
+ '&:disabled, &:active:disabled, &:focus:disabled, &:hover:disabled': {
52
+ [BaseButton_1.buttonVars.disabled.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.error.light),
53
+ [BaseButton_1.buttonVars.disabled.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.error.accent),
54
+ opacity: 1,
43
55
  },
44
56
  });
45
57
  /**
@@ -49,9 +61,7 @@ const getDeleteButtonColors = ({ canvas: { palette: { error: themeError }, }, })
49
61
  */
50
62
  exports.DeleteButton = common_1.createComponent('button')({
51
63
  displayName: 'DeleteButton',
52
- Component: ({
53
- // TODO: Fix useTheme and make it a real hook
54
- // eslint-disable-next-line react-hooks/rules-of-hooks
55
- theme = common_1.useTheme(), size = 'medium', children, ...elemProps }, ref, Element) => (React.createElement(BaseButton_1.BaseButton, Object.assign({ padding: BaseButton_1.getPaddingStyles(children, size, undefined, undefined), minWidth: BaseButton_1.getMinWidthStyles(children, size), ref: ref, as: Element, colors: getDeleteButtonColors(theme), size: size }, elemProps),
56
- React.createElement(BaseButton_1.BaseButton.Label, null, children))),
64
+ Component: ({ children, cs, size, ...elemProps }, ref, Element) => {
65
+ return (React.createElement(Button_1.Button, Object.assign({ as: Element, ref: ref, size: size, cs: [deleteStyles, cs] }, elemProps), children));
66
+ },
57
67
  });
@@ -1,42 +1,21 @@
1
- import * as React from 'react';
2
- import { GrowthBehavior, Themeable } from '@workday/canvas-kit-react/common';
3
- import { CanvasSystemIcon } from '@workday/design-assets-types';
4
- import { ButtonSizes, IconPositions } from './types';
5
- import { BaseButtonProps } from './BaseButton';
6
- export interface PrimaryButtonProps extends Themeable, GrowthBehavior, BaseButtonProps {
1
+ import { ButtonProps } from './Button';
2
+ /**
3
+ * Extends all the style properties from Box to our buttons as well as props from ButtonProps.
4
+ * We omit `ref` since all of our buttons use `createComponent` and already give access to `ref`.
5
+ * Use this type to extend and customize any one off buttons that you want full control over styling.
6
+ */
7
+ export interface PrimaryButtonProps extends ButtonProps {
7
8
  /**
8
- * The variant of the PrimaryButton.
9
+ * Variant has an option for `inverse` which will inverse the styling
9
10
  */
10
11
  variant?: 'inverse';
11
- /**
12
- * There are four button sizes: `extraSmall`, `small`, `medium`, and `large`.
13
- * If no size is provided, it will default to `medium`.
14
- */
15
- size?: ButtonSizes;
16
- /**
17
- * The icon of the Button.
18
- * Note: not displayed at `small` size
19
- */
20
- icon?: CanvasSystemIcon;
21
- /**
22
- * Button icon positions can either be `start` or `end`.
23
- * If no value is provided, it defaults to `start`.
24
- */
25
- iconPosition?: IconPositions;
26
- /**
27
- * If set to `true`, transform the icon's x-axis to mirror the graphic
28
- */
29
- shouldMirrorIcon?: boolean;
30
- children?: React.ReactNode;
31
12
  }
32
- /**
33
- * Primary Buttons are high emphasis. Use once per screen to draw attention to the highest priority
34
- * action. Multiple primary buttons make it confusing for the user to understand what action they
35
- * should take. Not all screens require a Primary Button.
36
- *
37
- * Primary Buttons have four sizes: `extraSmall`, `small`, `medium`, and `large`. Icons are
38
- * supported for every size and can be positioned at the `start` or `end` with the `iconPosition`
39
- * prop.
40
- */
13
+ export declare const primaryButtonModifiers: {
14
+ variant: {
15
+ inverse: string;
16
+ };
17
+ } & ((modifiers: Partial<{
18
+ variant: "inverse";
19
+ }>) => string);
41
20
  export declare const PrimaryButton: import("@workday/canvas-kit-react/common").ElementComponent<"button", PrimaryButtonProps>;
42
21
  //# sourceMappingURL=PrimaryButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PrimaryButton.d.ts","sourceRoot":"","sources":["../../../../button/lib/PrimaryButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,cAAc,EAEd,SAAS,EAIV,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AACnD,OAAO,EAAa,eAAe,EAAsC,MAAM,cAAc,CAAC;AA0E9F,MAAM,WAAW,kBAAmB,SAAQ,SAAS,EAAE,cAAc,EAAE,eAAe;IACpF;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,2FA+CxB,CAAC"}
1
+ {"version":3,"file":"PrimaryButton.d.ts","sourceRoot":"","sources":["../../../../button/lib/PrimaryButton.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAS,WAAW,EAAC,MAAM,UAAU,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAkCD,eAAO,MAAM,sBAAsB;;;;;;cA4BjC,CAAC;AAEH,eAAO,MAAM,aAAa,2FAqBxB,CAAC"}
@@ -19,88 +19,76 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
19
  return result;
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.PrimaryButton = void 0;
22
+ exports.PrimaryButton = exports.primaryButtonModifiers = void 0;
23
23
  const React = __importStar(require("react"));
24
- const common_1 = require("@workday/canvas-kit-react/common");
25
- const tokens_1 = require("@workday/canvas-kit-react/tokens");
26
24
  const BaseButton_1 = require("./BaseButton");
27
- const getPrimaryButtonColors = (variant, theme) => {
28
- const { canvas: { palette: { primary: themePrimary }, }, } = theme;
29
- switch (variant) {
30
- case undefined:
31
- default:
32
- return {
33
- default: {
34
- background: themePrimary.main,
35
- icon: themePrimary.contrast,
36
- label: themePrimary.contrast,
37
- },
38
- hover: {
39
- background: themePrimary.dark,
40
- },
41
- active: {
42
- background: themePrimary.darkest,
43
- },
44
- focus: {
45
- background: themePrimary.main,
46
- },
47
- disabled: {
48
- background: themePrimary.main,
49
- },
50
- };
51
- case 'inverse':
52
- return {
53
- default: {
54
- background: tokens_1.colors.frenchVanilla100,
55
- icon: tokens_1.colors.blackPepper400,
56
- label: tokens_1.colors.blackPepper400,
57
- },
58
- hover: {
59
- background: tokens_1.colors.soap300,
60
- icon: tokens_1.colors.blackPepper500,
61
- label: tokens_1.colors.blackPepper500,
62
- },
63
- active: {
64
- background: tokens_1.colors.soap400,
65
- icon: tokens_1.colors.blackPepper500,
66
- label: tokens_1.colors.blackPepper500,
67
- },
68
- focus: {
69
- background: tokens_1.colors.frenchVanilla100,
70
- border: tokens_1.colors.blackPepper400,
71
- icon: tokens_1.colors.blackPepper400,
72
- label: tokens_1.colors.blackPepper400,
73
- focusRing: common_1.focusRing({
74
- separation: 1,
75
- innerColor: tokens_1.colors.blackPepper400,
76
- outerColor: tokens_1.colors.frenchVanilla100,
77
- }, theme),
78
- },
79
- // Identical to inverse 'default' styles. ButtonContainer will set opacity to 40%
80
- disabled: {
81
- background: tokens_1.colors.frenchVanilla100,
82
- icon: tokens_1.colors.blackPepper400,
83
- label: tokens_1.colors.blackPepper400,
84
- },
85
- };
86
- }
87
- };
88
- /**
89
- * Primary Buttons are high emphasis. Use once per screen to draw attention to the highest priority
90
- * action. Multiple primary buttons make it confusing for the user to understand what action they
91
- * should take. Not all screens require a Primary Button.
92
- *
93
- * Primary Buttons have four sizes: `extraSmall`, `small`, `medium`, and `large`. Icons are
94
- * supported for every size and can be positioned at the `start` or `end` with the `iconPosition`
95
- * prop.
96
- */
25
+ const common_1 = require("@workday/canvas-kit-react/common");
26
+ const canvas_kit_styling_1 = require("@workday/canvas-kit-styling");
27
+ const canvas_tokens_web_1 = require("@workday/canvas-tokens-web");
28
+ const Button_1 = require("./Button");
29
+ const primaryStyles = canvas_kit_styling_1.createStyles({
30
+ // Default Styles
31
+ [BaseButton_1.buttonVars.default.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.base, canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blueberry400)),
32
+ [BaseButton_1.buttonVars.default.border]: 'transparent',
33
+ [BaseButton_1.buttonVars.default.borderRadius]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.system.shape.circle),
34
+ [BaseButton_1.buttonVars.default.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
35
+ [BaseButton_1.buttonVars.default.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
36
+ // Hover Styles
37
+ [BaseButton_1.buttonVars.hover.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.dark),
38
+ [BaseButton_1.buttonVars.hover.border]: 'transparent',
39
+ [BaseButton_1.buttonVars.hover.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
40
+ [BaseButton_1.buttonVars.hover.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
41
+ // Focus Styles
42
+ [BaseButton_1.buttonVars.focus.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.base),
43
+ [BaseButton_1.buttonVars.focus.border]: 'transparent',
44
+ [BaseButton_1.buttonVars.focus.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
45
+ [BaseButton_1.buttonVars.focus.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
46
+ [BaseButton_1.buttonVars.focus.boxShadowInner]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
47
+ [BaseButton_1.buttonVars.focus.boxShadowOuter]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.common.focusOutline),
48
+ // Active Styles
49
+ [BaseButton_1.buttonVars.active.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.darkest),
50
+ [BaseButton_1.buttonVars.active.border]: 'transparent',
51
+ [BaseButton_1.buttonVars.active.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
52
+ [BaseButton_1.buttonVars.active.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
53
+ // Disabled Styles
54
+ [BaseButton_1.buttonVars.disabled.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.base),
55
+ [BaseButton_1.buttonVars.disabled.border]: 'transparent',
56
+ [BaseButton_1.buttonVars.disabled.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
57
+ [BaseButton_1.buttonVars.disabled.opacity]: '0.4',
58
+ [BaseButton_1.buttonVars.disabled.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
59
+ });
60
+ exports.primaryButtonModifiers = canvas_kit_styling_1.createModifiers({
61
+ variant: {
62
+ inverse: canvas_kit_styling_1.createStyles({
63
+ // Default Styles
64
+ [BaseButton_1.buttonVars.default.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
65
+ [BaseButton_1.buttonVars.default.borderRadius]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.system.shape.circle),
66
+ [BaseButton_1.buttonVars.default.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
67
+ [BaseButton_1.buttonVars.default.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
68
+ // Hover Styles
69
+ [BaseButton_1.buttonVars.hover.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.soap300),
70
+ [BaseButton_1.buttonVars.hover.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
71
+ [BaseButton_1.buttonVars.hover.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
72
+ // Focus Styles
73
+ [BaseButton_1.buttonVars.focus.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
74
+ [BaseButton_1.buttonVars.focus.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
75
+ [BaseButton_1.buttonVars.focus.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
76
+ [BaseButton_1.buttonVars.focus.boxShadowInner]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
77
+ [BaseButton_1.buttonVars.focus.boxShadowOuter]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
78
+ // Active Styles
79
+ [BaseButton_1.buttonVars.active.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.soap400),
80
+ [BaseButton_1.buttonVars.active.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
81
+ [BaseButton_1.buttonVars.active.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
82
+ // Disabled Styles
83
+ [BaseButton_1.buttonVars.disabled.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
84
+ [BaseButton_1.buttonVars.disabled.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
85
+ [BaseButton_1.buttonVars.disabled.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
86
+ }),
87
+ },
88
+ });
97
89
  exports.PrimaryButton = common_1.createComponent('button')({
98
90
  displayName: 'PrimaryButton',
99
- Component: ({ size = 'medium', iconPosition = 'start', variant, icon, shouldMirrorIcon = false, children, ...elemProps }, ref, Element) => {
100
- const theme = common_1.useTheme();
101
- return (React.createElement(BaseButton_1.BaseButton, Object.assign({ ref: ref, size: size, colors: getPrimaryButtonColors(variant, theme), padding: BaseButton_1.getPaddingStyles(children, size, icon, iconPosition), minWidth: BaseButton_1.getMinWidthStyles(children, size), as: Element }, elemProps),
102
- icon && iconPosition === 'start' && (React.createElement(BaseButton_1.BaseButton.Icon, { size: size, iconPosition: iconPosition, icon: icon, shouldMirrorIcon: shouldMirrorIcon })),
103
- children && React.createElement(BaseButton_1.BaseButton.Label, null, children),
104
- icon && iconPosition === 'end' && (React.createElement(BaseButton_1.BaseButton.Icon, { size: size, iconPosition: iconPosition, icon: icon, shouldMirrorIcon: shouldMirrorIcon }))));
91
+ Component: ({ children, icon, cs, iconPosition, variant, size, ...elemProps }, ref, Element) => {
92
+ return (React.createElement(Button_1.Button, Object.assign({ as: Element, ref: ref, size: size, icon: icon, iconPosition: iconPosition, cs: [primaryStyles, exports.primaryButtonModifiers({ variant: variant }), cs] }, elemProps), children));
105
93
  },
106
94
  });
@@ -1,48 +1,21 @@
1
- import * as React from 'react';
2
- import { GrowthBehavior, Themeable, EmotionCanvasTheme } from '@workday/canvas-kit-react/common';
3
- import { CanvasSystemIcon } from '@workday/design-assets-types';
4
- import { ButtonColors, ButtonSizes, IconPositions } from './types';
5
- import { BaseButtonProps } from './BaseButton';
6
- export interface SecondaryButtonProps extends Themeable, GrowthBehavior, BaseButtonProps {
7
- /**
8
- * The variant of the SecondaryButton.
9
- * @default undefined
10
- */
11
- variant?: 'inverse' | undefined;
12
- /**
13
- * There are four button sizes: `extraSmall`, `small`, `medium`, and `large`.
14
- * If no size is provided, it will default to `medium`.
15
- *
16
- * @default 'medium'
17
- */
18
- size?: ButtonSizes;
19
- /**
20
- * The icon of the Button.
21
- * Note: not displayed at `small` size
22
- */
23
- icon?: CanvasSystemIcon;
24
- /**
25
- * Button icon positions can either be `start` or `end`.
26
- * If no value is provided, it defaults to `start`.
27
- * @default 'start'
28
- */
29
- iconPosition?: IconPositions;
1
+ import { ButtonProps } from './Button';
2
+ /**
3
+ * Extends all the style properties from Box to our buttons as well as props from ButtonProps.
4
+ * We omit `ref` since all of our buttons use `createComponent` and already give access to `ref`.
5
+ * Use this type to extend and customize any one off buttons that you want full control over styling.
6
+ */
7
+ export interface SecondaryButtonProps extends ButtonProps {
30
8
  /**
31
- * If set to `true`, transform the icon's x-axis to mirror the graphic
32
- * @default false
9
+ * Variant has an option for `inverse` which will inverse the styling
33
10
  */
34
- shouldMirrorIcon?: boolean;
35
- children?: React.ReactNode;
11
+ variant?: 'inverse';
36
12
  }
37
- /**
38
- * Secondary Buttons have a medium level of emphasis. Use them for non-critical actions. Secondary
39
- * Buttons can be used on most pages without restrictions and work well for multiple actions of
40
- * equal weight. They can be used in conjunction with a Primary Button or independently.
41
- *
42
- * Secondary Buttons have four sizes: `extraSmall`, `small`, `medium`, and `large`. Icons are
43
- * supported for every size and can be positioned at the `start` or `end` with the `iconPosition`
44
- * prop.
45
- */
13
+ export declare const secondaryButtonModifiers: {
14
+ variant: {
15
+ inverse: string;
16
+ };
17
+ } & ((modifiers: Partial<{
18
+ variant: "inverse";
19
+ }>) => string);
46
20
  export declare const SecondaryButton: import("@workday/canvas-kit-react/common").ElementComponent<"button", SecondaryButtonProps>;
47
- export declare const getSecondaryButtonColors: (variant: 'inverse' | undefined, theme: EmotionCanvasTheme) => ButtonColors;
48
21
  //# sourceMappingURL=SecondaryButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SecondaryButton.d.ts","sourceRoot":"","sources":["../../../../button/lib/SecondaryButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EACL,cAAc,EAEd,SAAS,EACT,kBAAkB,EAGnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AACjE,OAAO,EAAa,eAAe,EAAsC,MAAM,cAAc,CAAC;AAE9F,MAAM,WAAW,oBAAqB,SAAQ,SAAS,EAAE,cAAc,EAAE,eAAe;IACtF;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,6FA+C1B,CAAC;AAEH,eAAO,MAAM,wBAAwB,YAC1B,SAAS,GAAG,SAAS,SACvB,kBAAkB,KACxB,YAoFF,CAAC"}
1
+ {"version":3,"file":"SecondaryButton.d.ts","sourceRoot":"","sources":["../../../../button/lib/SecondaryButton.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAS,WAAW,EAAC,MAAM,UAAU,CAAC;AAE7C;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAkCD,eAAO,MAAM,wBAAwB;;;;;;cAgCnC,CAAC;AAEH,eAAO,MAAM,eAAe,6FAoB1B,CAAC"}
@@ -19,105 +19,80 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
19
  return result;
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.getSecondaryButtonColors = exports.SecondaryButton = void 0;
22
+ exports.SecondaryButton = exports.secondaryButtonModifiers = void 0;
23
23
  const React = __importStar(require("react"));
24
- const tokens_1 = require("@workday/canvas-kit-react/tokens");
25
- const common_1 = require("@workday/canvas-kit-react/common");
26
24
  const BaseButton_1 = require("./BaseButton");
27
- /**
28
- * Secondary Buttons have a medium level of emphasis. Use them for non-critical actions. Secondary
29
- * Buttons can be used on most pages without restrictions and work well for multiple actions of
30
- * equal weight. They can be used in conjunction with a Primary Button or independently.
31
- *
32
- * Secondary Buttons have four sizes: `extraSmall`, `small`, `medium`, and `large`. Icons are
33
- * supported for every size and can be positioned at the `start` or `end` with the `iconPosition`
34
- * prop.
35
- */
25
+ const common_1 = require("@workday/canvas-kit-react/common");
26
+ const canvas_kit_styling_1 = require("@workday/canvas-kit-styling");
27
+ const canvas_tokens_web_1 = require("@workday/canvas-tokens-web");
28
+ const Button_1 = require("./Button");
29
+ const secondaryStyles = canvas_kit_styling_1.createStyles({
30
+ // Default Styles
31
+ [BaseButton_1.buttonVars.default.background]: 'transparent',
32
+ [BaseButton_1.buttonVars.default.border]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
33
+ [BaseButton_1.buttonVars.default.borderRadius]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.system.shape.circle),
34
+ [BaseButton_1.buttonVars.default.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
35
+ [BaseButton_1.buttonVars.default.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
36
+ // Hover Styles
37
+ [BaseButton_1.buttonVars.hover.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
38
+ [BaseButton_1.buttonVars.hover.border]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
39
+ [BaseButton_1.buttonVars.hover.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
40
+ [BaseButton_1.buttonVars.hover.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
41
+ // Focus Styles
42
+ [BaseButton_1.buttonVars.focus.background]: 'transparent',
43
+ [BaseButton_1.buttonVars.focus.border]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
44
+ [BaseButton_1.buttonVars.focus.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
45
+ [BaseButton_1.buttonVars.focus.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
46
+ [BaseButton_1.buttonVars.focus.boxShadowInner]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
47
+ [BaseButton_1.buttonVars.focus.boxShadowOuter]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.common.focusOutline),
48
+ // Active Styles
49
+ [BaseButton_1.buttonVars.active.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
50
+ [BaseButton_1.buttonVars.active.border]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
51
+ [BaseButton_1.buttonVars.active.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
52
+ [BaseButton_1.buttonVars.active.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.brand.primary.accent),
53
+ // Disabled Styles
54
+ [BaseButton_1.buttonVars.disabled.background]: 'transparent',
55
+ [BaseButton_1.buttonVars.disabled.border]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
56
+ [BaseButton_1.buttonVars.disabled.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
57
+ [BaseButton_1.buttonVars.disabled.opacity]: '0.4',
58
+ [BaseButton_1.buttonVars.disabled.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper400),
59
+ });
60
+ exports.secondaryButtonModifiers = canvas_kit_styling_1.createModifiers({
61
+ variant: {
62
+ inverse: canvas_kit_styling_1.createStyles({
63
+ // Default Styles
64
+ [BaseButton_1.buttonVars.default.background]: 'transparent',
65
+ [BaseButton_1.buttonVars.default.border]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
66
+ [BaseButton_1.buttonVars.default.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
67
+ [BaseButton_1.buttonVars.default.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
68
+ // Hover Styles
69
+ [BaseButton_1.buttonVars.hover.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.soap300),
70
+ [BaseButton_1.buttonVars.hover.border]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.soap300),
71
+ [BaseButton_1.buttonVars.hover.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
72
+ [BaseButton_1.buttonVars.hover.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
73
+ // Focus Styles
74
+ [BaseButton_1.buttonVars.focus.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
75
+ [BaseButton_1.buttonVars.focus.border]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
76
+ [BaseButton_1.buttonVars.focus.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
77
+ [BaseButton_1.buttonVars.focus.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
78
+ [BaseButton_1.buttonVars.focus.boxShadowInner]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
79
+ [BaseButton_1.buttonVars.focus.boxShadowOuter]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
80
+ // Active Styles
81
+ [BaseButton_1.buttonVars.active.background]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.soap400),
82
+ [BaseButton_1.buttonVars.active.border]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.soap400),
83
+ [BaseButton_1.buttonVars.active.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
84
+ [BaseButton_1.buttonVars.active.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.blackPepper500),
85
+ // Disabled Styles
86
+ [BaseButton_1.buttonVars.disabled.background]: 'transparent',
87
+ [BaseButton_1.buttonVars.disabled.border]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
88
+ [BaseButton_1.buttonVars.disabled.label]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
89
+ [BaseButton_1.buttonVars.disabled.icon]: canvas_kit_styling_1.cssVar(canvas_tokens_web_1.base.frenchVanilla100),
90
+ }),
91
+ },
92
+ });
36
93
  exports.SecondaryButton = common_1.createComponent('button')({
37
94
  displayName: 'SecondaryButton',
38
- Component: ({ size = 'medium', iconPosition = 'start', variant, icon, shouldMirrorIcon = false, children, ...elemProps }, ref, Element) => {
39
- const theme = common_1.useTheme();
40
- return (React.createElement(BaseButton_1.BaseButton, Object.assign({ ref: ref, size: size, colors: exports.getSecondaryButtonColors(variant, theme), padding: BaseButton_1.getPaddingStyles(children, size, icon, iconPosition), minWidth: BaseButton_1.getMinWidthStyles(children, size), as: Element }, elemProps),
41
- icon && iconPosition === 'start' && (React.createElement(BaseButton_1.BaseButton.Icon, { size: size, iconPosition: iconPosition, icon: icon, shouldMirrorIcon: shouldMirrorIcon })),
42
- children && React.createElement(BaseButton_1.BaseButton.Label, null, children),
43
- icon && iconPosition === 'end' && (React.createElement(BaseButton_1.BaseButton.Icon, { size: size, iconPosition: iconPosition, icon: icon, shouldMirrorIcon: shouldMirrorIcon }))));
95
+ Component: ({ children, icon, cs, iconPosition, variant, ...elemProps }, ref, Element) => {
96
+ return (React.createElement(Button_1.Button, Object.assign({ as: Element, ref: ref, icon: icon, iconPosition: iconPosition, cs: [secondaryStyles, exports.secondaryButtonModifiers({ variant: variant }), cs] }, elemProps), children));
44
97
  },
45
98
  });
46
- const getSecondaryButtonColors = (variant, theme) => {
47
- const { canvas: { palette: { primary: themePrimary }, }, } = theme;
48
- switch (variant) {
49
- case undefined:
50
- default:
51
- return {
52
- default: {
53
- background: 'transparent',
54
- border: tokens_1.colors.blackPepper400,
55
- icon: tokens_1.colors.blackPepper400,
56
- label: tokens_1.colors.blackPepper400,
57
- },
58
- hover: {
59
- background: tokens_1.colors.blackPepper400,
60
- border: tokens_1.colors.blackPepper400,
61
- icon: themePrimary.contrast,
62
- label: themePrimary.contrast,
63
- },
64
- active: {
65
- background: tokens_1.colors.blackPepper500,
66
- border: tokens_1.colors.blackPepper500,
67
- icon: themePrimary.contrast,
68
- label: themePrimary.contrast,
69
- },
70
- focus: {
71
- border: tokens_1.colors.blackPepper400,
72
- icon: tokens_1.colors.blackPepper400,
73
- label: tokens_1.colors.blackPepper400,
74
- },
75
- // Identical to 'default' styles. ButtonContainer will set opacity to 40%
76
- disabled: {
77
- background: 'transparent',
78
- border: tokens_1.colors.blackPepper400,
79
- icon: tokens_1.colors.blackPepper400,
80
- label: tokens_1.colors.blackPepper400,
81
- },
82
- };
83
- case 'inverse':
84
- return {
85
- default: {
86
- background: 'transparent',
87
- border: tokens_1.colors.frenchVanilla100,
88
- icon: tokens_1.colors.frenchVanilla100,
89
- label: tokens_1.colors.frenchVanilla100,
90
- },
91
- hover: {
92
- background: tokens_1.colors.soap300,
93
- border: tokens_1.colors.soap300,
94
- icon: tokens_1.colors.blackPepper500,
95
- label: tokens_1.colors.blackPepper500,
96
- },
97
- active: {
98
- background: tokens_1.colors.soap400,
99
- border: tokens_1.colors.soap400,
100
- icon: tokens_1.colors.blackPepper500,
101
- label: tokens_1.colors.blackPepper500,
102
- },
103
- focus: {
104
- background: tokens_1.colors.frenchVanilla100,
105
- icon: tokens_1.colors.blackPepper500,
106
- label: tokens_1.colors.blackPepper500,
107
- focusRing: common_1.focusRing({
108
- separation: 2,
109
- innerColor: 'currentColor',
110
- outerColor: tokens_1.colors.frenchVanilla100,
111
- }, theme),
112
- },
113
- // Identical to inverse 'default' styles. ButtonContainer will set opacity to 40%
114
- disabled: {
115
- background: 'transparent',
116
- border: tokens_1.colors.frenchVanilla100,
117
- icon: tokens_1.colors.frenchVanilla100,
118
- label: tokens_1.colors.frenchVanilla100,
119
- },
120
- };
121
- }
122
- };
123
- exports.getSecondaryButtonColors = getSecondaryButtonColors;