@workday/canvas-kit-react 9.0.0-alpha.359-next.4 → 9.0.0-alpha.362-next.2

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 (72) hide show
  1. package/collection/lib/useCursorListModel.tsx +1 -1
  2. package/collection/lib/useListItemRovingFocus.tsx +2 -5
  3. package/dist/commonjs/collection/lib/useCursorListModel.js +1 -1
  4. package/dist/commonjs/collection/lib/useListItemRovingFocus.d.ts.map +1 -1
  5. package/dist/commonjs/collection/lib/useListItemRovingFocus.js +2 -3
  6. package/dist/commonjs/popup/lib/PopupCloseIcon.d.ts.map +1 -1
  7. package/dist/commonjs/popup/lib/PopupCloseIcon.js +2 -7
  8. package/dist/commonjs/toast/index.d.ts +1 -0
  9. package/dist/commonjs/toast/index.d.ts.map +1 -1
  10. package/dist/commonjs/toast/index.js +1 -0
  11. package/dist/commonjs/toast/lib/Toast.d.ts +56 -22
  12. package/dist/commonjs/toast/lib/Toast.d.ts.map +1 -1
  13. package/dist/commonjs/toast/lib/Toast.js +95 -56
  14. package/dist/commonjs/toast/lib/ToastBody.d.ts +6 -0
  15. package/dist/commonjs/toast/lib/ToastBody.d.ts.map +1 -0
  16. package/dist/commonjs/toast/lib/ToastBody.js +38 -0
  17. package/dist/commonjs/toast/lib/ToastCloseIcon.d.ts +6 -0
  18. package/dist/commonjs/toast/lib/ToastCloseIcon.d.ts.map +1 -0
  19. package/dist/commonjs/toast/lib/ToastCloseIcon.js +26 -0
  20. package/dist/commonjs/toast/lib/ToastIcon.d.ts +5 -0
  21. package/dist/commonjs/toast/lib/ToastIcon.d.ts.map +1 -0
  22. package/dist/commonjs/toast/lib/ToastIcon.js +26 -0
  23. package/dist/commonjs/toast/lib/ToastLink.d.ts +5 -0
  24. package/dist/commonjs/toast/lib/ToastLink.d.ts.map +1 -0
  25. package/dist/commonjs/toast/lib/ToastLink.js +38 -0
  26. package/dist/commonjs/toast/lib/ToastMessage.d.ts +12 -0
  27. package/dist/commonjs/toast/lib/ToastMessage.d.ts.map +1 -0
  28. package/dist/commonjs/toast/lib/ToastMessage.js +38 -0
  29. package/dist/commonjs/toast/lib/hooks/useToastModel.d.ts +75 -0
  30. package/dist/commonjs/toast/lib/hooks/useToastModel.d.ts.map +1 -0
  31. package/dist/commonjs/toast/lib/hooks/useToastModel.js +37 -0
  32. package/dist/es6/collection/lib/useCursorListModel.js +1 -1
  33. package/dist/es6/collection/lib/useListItemRovingFocus.d.ts.map +1 -1
  34. package/dist/es6/collection/lib/useListItemRovingFocus.js +2 -3
  35. package/dist/es6/popup/lib/PopupCloseIcon.d.ts.map +1 -1
  36. package/dist/es6/popup/lib/PopupCloseIcon.js +3 -8
  37. package/dist/es6/toast/index.d.ts +1 -0
  38. package/dist/es6/toast/index.d.ts.map +1 -1
  39. package/dist/es6/toast/index.js +1 -0
  40. package/dist/es6/toast/lib/Toast.d.ts +56 -22
  41. package/dist/es6/toast/lib/Toast.d.ts.map +1 -1
  42. package/dist/es6/toast/lib/Toast.js +92 -37
  43. package/dist/es6/toast/lib/ToastBody.d.ts +6 -0
  44. package/dist/es6/toast/lib/ToastBody.d.ts.map +1 -0
  45. package/dist/es6/toast/lib/ToastBody.js +32 -0
  46. package/dist/es6/toast/lib/ToastCloseIcon.d.ts +6 -0
  47. package/dist/es6/toast/lib/ToastCloseIcon.d.ts.map +1 -0
  48. package/dist/es6/toast/lib/ToastCloseIcon.js +20 -0
  49. package/dist/es6/toast/lib/ToastIcon.d.ts +5 -0
  50. package/dist/es6/toast/lib/ToastIcon.d.ts.map +1 -0
  51. package/dist/es6/toast/lib/ToastIcon.js +20 -0
  52. package/dist/es6/toast/lib/ToastLink.d.ts +5 -0
  53. package/dist/es6/toast/lib/ToastLink.d.ts.map +1 -0
  54. package/dist/es6/toast/lib/ToastLink.js +32 -0
  55. package/dist/es6/toast/lib/ToastMessage.d.ts +12 -0
  56. package/dist/es6/toast/lib/ToastMessage.d.ts.map +1 -0
  57. package/dist/es6/toast/lib/ToastMessage.js +32 -0
  58. package/dist/es6/toast/lib/hooks/useToastModel.d.ts +75 -0
  59. package/dist/es6/toast/lib/hooks/useToastModel.d.ts.map +1 -0
  60. package/dist/es6/toast/lib/hooks/useToastModel.js +34 -0
  61. package/package.json +3 -3
  62. package/popup/lib/PopupCloseIcon.tsx +14 -15
  63. package/toast/LICENSE +1 -0
  64. package/toast/README.md +3 -5
  65. package/toast/index.ts +1 -0
  66. package/toast/lib/Toast.tsx +104 -109
  67. package/toast/lib/ToastBody.tsx +28 -0
  68. package/toast/lib/ToastCloseIcon.tsx +14 -0
  69. package/toast/lib/ToastIcon.tsx +23 -0
  70. package/toast/lib/ToastLink.tsx +17 -0
  71. package/toast/lib/ToastMessage.tsx +24 -0
  72. package/toast/lib/hooks/useToastModel.tsx +29 -0
@@ -319,7 +319,7 @@ export const useCursorListModel = createModelHook({
319
319
  const columnCount = config.columnCount || 0;
320
320
  const list = useBaseListModel(config);
321
321
  const initialCurrentRef = React.useRef(
322
- config.initialCursorId || (config.items?.length ? getId(config.items![0]) : '')
322
+ config.initialCursorId || (config.items?.length ? getId(list.state.items![0]) : '')
323
323
  );
324
324
  const navigation = config.navigation;
325
325
 
@@ -70,11 +70,10 @@ const hasOwnKey = <T extends object>(obj: T, key: any): key is keyof T => obj.ha
70
70
  ```
71
71
  */
72
72
  export const useListItemRovingFocus = createElemPropsHook(useCursorListModel)(
73
- ({state, events, getId, navigation}, ref, elemProps: {'data-id'?: string} = {}) => {
73
+ ({state, events, navigation}, ref, elemProps: {'data-id'?: string} = {}) => {
74
74
  // Tracks when this element has focus. If this item is removed while still focused, we have to
75
75
  // inform the model to move the cursor to the next item.
76
76
  const focusRef = React.useRef(false);
77
- const getIdRef = React.useRef(getId);
78
77
 
79
78
  // Create a ref out of state. We don't want to watch state on unmount, so we use a ref to get the
80
79
  // current value at the time of unmounting. Otherwise, `state.items` would be a cached value of an
@@ -93,9 +92,7 @@ export const useListItemRovingFocus = createElemPropsHook(useCursorListModel)(
93
92
  }
94
93
  requestAnimationFrame(() => {
95
94
  document
96
- .querySelector<HTMLElement>(
97
- `[data-focus-id="${`${state.id}-${getIdRef.current(item)}`}"]`
98
- )
95
+ .querySelector<HTMLElement>(`[data-focus-id="${`${state.id}-${item.id}`}"]`)
99
96
  ?.focus();
100
97
  });
101
98
 
@@ -293,7 +293,7 @@ exports.useCursorListModel = common_1.createModelHook({
293
293
  var _b = react_1.default.useState(config.initialCursorId), cursorId = _b[0], setCursorId = _b[1];
294
294
  var columnCount = config.columnCount || 0;
295
295
  var list = useBaseListModel_1.useBaseListModel(config);
296
- var initialCurrentRef = react_1.default.useRef(config.initialCursorId || (((_a = config.items) === null || _a === void 0 ? void 0 : _a.length) ? useBaseListModel_1.defaultGetId(config.items[0]) : ''));
296
+ var initialCurrentRef = react_1.default.useRef(config.initialCursorId || (((_a = config.items) === null || _a === void 0 ? void 0 : _a.length) ? useBaseListModel_1.defaultGetId(list.state.items[0]) : ''));
297
297
  var navigation = config.navigation;
298
298
  var state = __assign(__assign({}, list.state), {
299
299
  /** The id of the list item the cursor is pointing to */
@@ -1 +1 @@
1
- {"version":3,"file":"useListItemRovingFocus.d.ts","sourceRoot":"","sources":["../../../../collection/lib/useListItemRovingFocus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;CAqBpB,CAAC;AA+BX;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAqCZ,mBAAmB;;;;;;;;;OA+CzC,CAAC"}
1
+ {"version":3,"file":"useListItemRovingFocus.d.ts","sourceRoot":"","sources":["../../../../collection/lib/useListItemRovingFocus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;CAqBpB,CAAC;AA+BX;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkCZ,mBAAmB;;;;;;;;;OA+CzC,CAAC"}
@@ -72,12 +72,11 @@ var hasOwnKey = function (obj, key) { return obj.hasOwnProperty(key); };
72
72
  ```
73
73
  */
74
74
  exports.useListItemRovingFocus = common_1.createElemPropsHook(useCursorListModel_1.useCursorListModel)(function (_a, ref, elemProps) {
75
- var state = _a.state, events = _a.events, getId = _a.getId, navigation = _a.navigation;
75
+ var state = _a.state, events = _a.events, navigation = _a.navigation;
76
76
  if (elemProps === void 0) { elemProps = {}; }
77
77
  // Tracks when this element has focus. If this item is removed while still focused, we have to
78
78
  // inform the model to move the cursor to the next item.
79
79
  var focusRef = react_1.default.useRef(false);
80
- var getIdRef = react_1.default.useRef(getId);
81
80
  // Create a ref out of state. We don't want to watch state on unmount, so we use a ref to get the
82
81
  // current value at the time of unmounting. Otherwise, `state.items` would be a cached value of an
83
82
  // empty array
@@ -94,7 +93,7 @@ exports.useListItemRovingFocus = common_1.createElemPropsHook(useCursorListModel
94
93
  requestAnimationFrame(function () {
95
94
  var _a;
96
95
  (_a = document
97
- .querySelector("[data-focus-id=\"" + (state.id + "-" + getIdRef.current(item_1)) + "\"]")) === null || _a === void 0 ? void 0 : _a.focus();
96
+ .querySelector("[data-focus-id=\"" + (state.id + "-" + item_1.id) + "\"]")) === null || _a === void 0 ? void 0 : _a.focus();
98
97
  });
99
98
  keyDownRef.current = false;
100
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PopupCloseIcon.d.ts","sourceRoot":"","sources":["../../../../popup/lib/PopupCloseIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAIL,YAAY,EACb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,kCAAkC,CAAC;AAMhE,MAAM,WAAW,mBAAoB,SAAQ,YAAY,CAAC,OAAO,cAAc,EAAE,KAAK,CAAC;CAAG;AAQ1F,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;EAMzB,CAAC"}
1
+ {"version":3,"file":"PopupCloseIcon.d.ts","sourceRoot":"","sources":["../../../../popup/lib/PopupCloseIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAqB,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAC,cAAc,EAAC,MAAM,kCAAkC,CAAC;AAKhE,MAAM,WAAW,mBAAoB,SAAQ,YAAY,CAAC,OAAO,cAAc,EAAE,KAAK,CAAC;CAAG;AAE1F,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;EAiBzB,CAAC"}
@@ -30,18 +30,13 @@ var react_1 = __importDefault(require("react"));
30
30
  var canvas_system_icons_web_1 = require("@workday/canvas-system-icons-web");
31
31
  var common_1 = require("@workday/canvas-kit-react/common");
32
32
  var button_1 = require("@workday/canvas-kit-react/button");
33
+ var tokens_1 = require("@workday/canvas-kit-react/tokens");
33
34
  var hooks_1 = require("./hooks");
34
- var closeIconSpacing = 4;
35
- var StyledCloseIcon = common_1.styled(button_1.TertiaryButton)({
36
- position: 'absolute',
37
- right: closeIconSpacing,
38
- top: closeIconSpacing,
39
- });
40
35
  exports.PopupCloseIcon = common_1.createSubcomponent('button')({
41
36
  displayName: 'Popup.CloseIcon',
42
37
  modelHook: hooks_1.usePopupModel,
43
38
  elemPropsHook: hooks_1.usePopupCloseButton,
44
39
  })(function (_a, Element) {
45
40
  var children = _a.children, elemProps = __rest(_a, ["children"]);
46
- return react_1.default.createElement(StyledCloseIcon, __assign({ as: Element, size: "medium", icon: canvas_system_icons_web_1.xIcon, type: "button" }, elemProps));
41
+ return (react_1.default.createElement(button_1.TertiaryButton, __assign({ as: Element, size: "medium", icon: canvas_system_icons_web_1.xIcon, type: "button", position: "absolute", right: tokens_1.space.xxxs, top: tokens_1.space.xxxs }, elemProps)));
47
42
  });
@@ -1,2 +1,3 @@
1
1
  export * from './lib/Toast';
2
+ export * from './lib/hooks/useToastModel';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../toast/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../toast/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC"}
@@ -11,3 +11,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./lib/Toast"), exports);
14
+ __exportStar(require("./lib/hooks/useToastModel"), exports);
@@ -1,34 +1,68 @@
1
- import { Popup } from '@workday/canvas-kit-react/popup';
2
- import { CanvasColor } from '@workday/canvas-kit-react/tokens';
3
- import { CanvasSystemIcon } from '@workday/design-assets-types';
4
1
  import { ExtractProps } from '@workday/canvas-kit-react/common';
5
- export interface ToastProps extends ExtractProps<typeof Popup.Card, never> {
6
- /**
7
- * The icon of the Toast.
8
- * @default checkIcon
9
- */
10
- icon?: CanvasSystemIcon;
2
+ import { Popup } from '@workday/canvas-kit-react/popup';
3
+ export interface ToastProps extends Omit<ExtractProps<typeof Popup.Card, never>, 'model'> {
4
+ }
5
+ /**
6
+ * Toast is a compound component that has different modes based on its contents. The modes add the proper aria attributes for accessibility
7
+ *
8
+ * ```tsx
9
+ * import { Toast } from "@workday/canvas-kit-react/toast";
10
+ *
11
+ * const MyToast = (props: CardProps) => (
12
+ * <Toast mode="dialog" aria-label="notifcation">
13
+ * <Toast.Icon icon={checkIcon} color={colors.greenApple400} />
14
+ * <Toast.Body>
15
+ * <Toast.Message>Your workbook was successfully processed.</Toast.Message>
16
+ * <Toast.Link href="#hreflink">Custom Link</Toast.Link>
17
+ * </Toast.Body>
18
+ * <Toast.CloseIcon aria-label="Close" onClick={handleClose} />
19
+ * </Toast>
20
+ * );
21
+ *```
22
+ */
23
+ export declare const Toast: import("@workday/canvas-kit-react/common").ElementComponentM<"div", ToastProps & Partial<{
24
+ mode: import("./hooks/useToastModel").AriaRoleMode;
25
+ id: string;
26
+ }> & {} & {}, {
27
+ state: {
28
+ id: string;
29
+ mode: import("./hooks/useToastModel").AriaRoleMode;
30
+ };
31
+ events: {};
32
+ }> & {
11
33
  /**
12
- * The color of the Toast icon.
13
- * @default colors.greenApple400
34
+ * `Toast.Body` should container `Toast.Message` and `Toast.Link`. This ensures proper styling and spacing between elements.
35
+ *
36
+ * ```tsx
37
+ * <Toast.Body>
38
+ * <Toast.Message>Your workbook was successfully processed.</Toast.Message>
39
+ * <Toast.Link href="#hreflink">Custom Link</Toast.Link>
40
+ * </Toast.Body>
41
+ * ```
14
42
  */
15
- iconColor?: CanvasColor | string;
43
+ Body: import("@workday/canvas-kit-react/common").ElementComponent<"div", import("./ToastBody").ToastBodyProps>;
16
44
  /**
17
- * The text of the Toast message.
45
+ * `Toast.CloseIcon` renders a {@link PopupCloseIcon}. You can pass an `onClick` when used with `Popper` to dismiss the `Toast`.
18
46
  */
19
- children: string;
47
+ CloseIcon: import("@workday/canvas-kit-react/common").ElementComponent<"button", import("./ToastCloseIcon").ToastCloseIconProps>;
20
48
  /**
21
- * The function called when the Toast is closed.
49
+ * `ToastIcon` renders a `SystemIcon` where you have access to all styling properties from `SystemIcon`.
22
50
  */
23
- onClose?: () => void;
51
+ Icon: import("@workday/canvas-kit-react/common").ElementComponent<"div", import("./ToastIcon").ToastIconProps>;
24
52
  /**
25
- * The function called when the Toast action is clicked.
53
+ * `Toast.Message` renders our `Subtext` component where you can style however way you'd like with style properties.
54
+ * This component also has an `id` so that when the `Toast` has a prop of `mode="dialog"` the message is read out by screen readers by adding an `aria-describedby` on the main `Toast` component.
26
55
  */
27
- onActionClick?: () => void;
56
+ Message: import("@workday/canvas-kit-react/common").ElementComponentM<"p", import("./ToastMessage").ToastMessageProps, {
57
+ state: {
58
+ id: string;
59
+ mode: import("./hooks/useToastModel").AriaRoleMode;
60
+ };
61
+ events: {};
62
+ }>;
28
63
  /**
29
- * The text of the Toast action.
64
+ * `Toast.Link` renders our `Hyperlink` component. If you need to link to more information, use this component.
30
65
  */
31
- actionText?: string;
32
- }
33
- export declare const Toast: import("@workday/canvas-kit-react/common").ElementComponent<"div", ToastProps>;
66
+ Link: import("@workday/canvas-kit-react/common").ElementComponent<"a", import("./ToastLink").ToastLinkProps>;
67
+ };
34
68
  //# sourceMappingURL=Toast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../../toast/lib/Toast.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAC,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAsB,WAAW,EAAC,MAAM,kCAAkC,CAAC;AAGlF,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAkB,YAAY,EAAqB,MAAM,kCAAkC,CAAC;AAGnG,MAAM,WAAW,UAAW,SAAQ,YAAY,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;IACxE;;;OAGG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IACjC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiCD,eAAO,MAAM,KAAK,gFA+ChB,CAAC"}
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../../toast/lib/Toast.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkB,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAE/E,OAAO,EAAC,KAAK,EAAC,MAAM,iCAAiC,CAAC;AAStD,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC;CAAG;AAkC5F;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;IAId;;;;;;;;;OASG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;;OAGG;;;;;;;;IAEH;;OAEG;;CAiBL,CAAC"}
@@ -10,25 +10,6 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
- Object.defineProperty(o, "default", { enumerable: true, value: v });
22
- }) : function(o, v) {
23
- o["default"] = v;
24
- });
25
- var __importStar = (this && this.__importStar) || function (mod) {
26
- if (mod && mod.__esModule) return mod;
27
- var result = {};
28
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
- __setModuleDefault(result, mod);
30
- return result;
31
- };
32
13
  var __rest = (this && this.__rest) || function (s, e) {
33
14
  var t = {};
34
15
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -40,46 +21,104 @@ var __rest = (this && this.__rest) || function (s, e) {
40
21
  }
41
22
  return t;
42
23
  };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
43
27
  Object.defineProperty(exports, "__esModule", { value: true });
44
28
  exports.Toast = void 0;
45
- var React = __importStar(require("react"));
46
- var popup_1 = require("@workday/canvas-kit-react/popup");
47
- var tokens_1 = require("@workday/canvas-kit-react/tokens");
48
- var icon_1 = require("@workday/canvas-kit-react/icon");
49
- var canvas_system_icons_web_1 = require("@workday/canvas-system-icons-web");
29
+ var react_1 = __importDefault(require("react"));
50
30
  var common_1 = require("@workday/canvas-kit-react/common");
51
- var button_1 = require("@workday/canvas-kit-react/button");
52
- var toastWidth = 360;
53
- var ToastContentContainer = common_1.styled('div')(__assign({ display: 'flex', alignItems: 'center' }, tokens_1.type.levels.subtext.large), function (_a) {
54
- var onClose = _a.onClose;
55
- return ({
56
- marginRight: onClose ? tokens_1.space.m : undefined,
57
- });
58
- });
59
- var ToastSystemIcon = common_1.styled(icon_1.SystemIcon)({
60
- marginRight: tokens_1.space.s,
61
- alignSelf: 'start',
62
- });
63
- var _a = tokens_1.type.levels.subtext.large, color = _a.color, subTextLargeStyles = __rest(_a, ["color"]);
64
- var StyledActionButton = common_1.styled(button_1.Hyperlink)(__assign(__assign({}, subTextLargeStyles), { display: 'block', backgroundColor: 'transparent', border: 'none', marginTop: tokens_1.space.xxxs }));
65
- var Message = common_1.styled('div')({
66
- wordBreak: 'break-word',
67
- });
68
- exports.Toast = common_1.createComponent('div')({
31
+ var layout_1 = require("@workday/canvas-kit-react/layout");
32
+ var popup_1 = require("@workday/canvas-kit-react/popup");
33
+ var ToastCloseIcon_1 = require("./ToastCloseIcon");
34
+ var ToastIcon_1 = require("./ToastIcon");
35
+ var ToastMessage_1 = require("./ToastMessage");
36
+ var ToastLink_1 = require("./ToastLink");
37
+ var ToastBody_1 = require("./ToastBody");
38
+ var useToastModel_1 = require("./hooks/useToastModel");
39
+ /**
40
+ * The function helps set the correct aria attributes based on the mode
41
+ * @param mode Defines what aria attributes will be added to the main container
42
+ * @param id Used to tie the Toast to Toast.Message for screen readers
43
+ */
44
+ var getAriaAttributes = function (mode, id) {
45
+ switch (mode) {
46
+ case 'dialog':
47
+ return {
48
+ 'aria-describedby': id,
49
+ // This is added by Popup.Card, so overwriting to remove it
50
+ 'aria-labelledby': undefined,
51
+ role: 'dialog',
52
+ };
53
+ case 'alert':
54
+ return {
55
+ role: 'alert',
56
+ 'aria-live': 'assertive',
57
+ 'aria-atomic': true,
58
+ };
59
+ case 'status':
60
+ return {
61
+ role: 'status',
62
+ 'aria-live': 'polite',
63
+ 'aria-atomic': true,
64
+ };
65
+ default: {
66
+ return {};
67
+ }
68
+ }
69
+ };
70
+ /**
71
+ * Toast is a compound component that has different modes based on its contents. The modes add the proper aria attributes for accessibility
72
+ *
73
+ * ```tsx
74
+ * import { Toast } from "@workday/canvas-kit-react/toast";
75
+ *
76
+ * const MyToast = (props: CardProps) => (
77
+ * <Toast mode="dialog" aria-label="notifcation">
78
+ * <Toast.Icon icon={checkIcon} color={colors.greenApple400} />
79
+ * <Toast.Body>
80
+ * <Toast.Message>Your workbook was successfully processed.</Toast.Message>
81
+ * <Toast.Link href="#hreflink">Custom Link</Toast.Link>
82
+ * </Toast.Body>
83
+ * <Toast.CloseIcon aria-label="Close" onClick={handleClose} />
84
+ * </Toast>
85
+ * );
86
+ *```
87
+ */
88
+ exports.Toast = common_1.createContainer('div')({
69
89
  displayName: 'Toast',
70
- Component: function (_a, ref, Element) {
71
- var _b = _a.icon, icon = _b === void 0 ? canvas_system_icons_web_1.checkIcon : _b, // needed for TS2742 - https://github.com/microsoft/TypeScript/issues/29808
72
- _c = _a.iconColor, // needed for TS2742 - https://github.com/microsoft/TypeScript/issues/29808
73
- iconColor = _c === void 0 ? tokens_1.colors.greenApple400 : _c, onClose = _a.onClose, onActionClick = _a.onActionClick, actionText = _a.actionText, children = _a.children, elemProps = __rest(_a, ["icon", "iconColor", "onClose", "onActionClick", "actionText", "children"]);
74
- var isInteractive = onClose || onActionClick;
75
- var isError = iconColor === tokens_1.colors.cinnamon500 && icon === canvas_system_icons_web_1.exclamationCircleIcon;
76
- return (React.createElement(popup_1.Popup.Card, __assign({ ref: ref, as: Element, width: toastWidth, depth: 5, role: isInteractive ? 'dialog' : isError ? 'alert' : 'status', "aria-live": isInteractive ? 'off' : isError ? 'assertive' : 'polite', "aria-atomic": !isInteractive, padding: "xxs" }, elemProps),
77
- onClose && React.createElement(popup_1.Popup.CloseIcon, { "aria-label": "Close", onClick: onClose, size: "small" }),
78
- React.createElement(popup_1.Popup.Body, null,
79
- React.createElement(ToastContentContainer, { onClose: onClose },
80
- icon && React.createElement(ToastSystemIcon, { color: iconColor, colorHover: iconColor, icon: icon }),
81
- React.createElement(Message, null,
82
- children,
83
- onActionClick && (React.createElement(StyledActionButton, { as: "button", onClick: onActionClick }, actionText)))))));
90
+ modelHook: useToastModel_1.useToastModel,
91
+ subComponents: {
92
+ /**
93
+ * `Toast.Body` should container `Toast.Message` and `Toast.Link`. This ensures proper styling and spacing between elements.
94
+ *
95
+ * ```tsx
96
+ * <Toast.Body>
97
+ * <Toast.Message>Your workbook was successfully processed.</Toast.Message>
98
+ * <Toast.Link href="#hreflink">Custom Link</Toast.Link>
99
+ * </Toast.Body>
100
+ * ```
101
+ */
102
+ Body: ToastBody_1.ToastBody,
103
+ /**
104
+ * `Toast.CloseIcon` renders a {@link PopupCloseIcon}. You can pass an `onClick` when used with `Popper` to dismiss the `Toast`.
105
+ */
106
+ CloseIcon: ToastCloseIcon_1.ToastCloseIcon,
107
+ /**
108
+ * `ToastIcon` renders a `SystemIcon` where you have access to all styling properties from `SystemIcon`.
109
+ */
110
+ Icon: ToastIcon_1.ToastIcon,
111
+ /**
112
+ * `Toast.Message` renders our `Subtext` component where you can style however way you'd like with style properties.
113
+ * This component also has an `id` so that when the `Toast` has a prop of `mode="dialog"` the message is read out by screen readers by adding an `aria-describedby` on the main `Toast` component.
114
+ */
115
+ Message: ToastMessage_1.ToastMessage,
116
+ /**
117
+ * `Toast.Link` renders our `Hyperlink` component. If you need to link to more information, use this component.
118
+ */
119
+ Link: ToastLink_1.ToastLink,
84
120
  },
121
+ })(function (_a, _, model) {
122
+ var children = _a.children, elemProps = __rest(_a, ["children"]);
123
+ return (react_1.default.createElement(popup_1.Popup.Card, __assign({ as: layout_1.Flex, width: 360, padding: "0" }, getAriaAttributes(model.state.mode, model.state.id), { flexDirection: "row", gap: "xxxs" }, elemProps), children));
85
124
  });
@@ -0,0 +1,6 @@
1
+ import { ExtractProps } from '@workday/canvas-kit-react/common';
2
+ import { Popup } from '@workday/canvas-kit-react/popup';
3
+ export interface ToastBodyProps extends ExtractProps<typeof Popup.Body> {
4
+ }
5
+ export declare const ToastBody: import("@workday/canvas-kit-react/common").ElementComponent<"div", ToastBodyProps>;
6
+ //# sourceMappingURL=ToastBody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastBody.d.ts","sourceRoot":"","sources":["../../../../toast/lib/ToastBody.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkB,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAC,KAAK,EAAC,MAAM,iCAAiC,CAAC;AAGtD,MAAM,WAAW,cAAe,SAAQ,YAAY,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC;CAAG;AAE1E,eAAO,MAAM,SAAS,oFAmBpB,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.ToastBody = void 0;
29
+ var react_1 = __importDefault(require("react"));
30
+ var common_1 = require("@workday/canvas-kit-react/common");
31
+ var layout_1 = require("@workday/canvas-kit-react/layout");
32
+ exports.ToastBody = common_1.createComponent('div')({
33
+ displayName: 'Toast.Body',
34
+ Component: function (_a, ref, Element) {
35
+ var children = _a.children, elemProps = __rest(_a, ["children"]);
36
+ return (react_1.default.createElement(layout_1.Flex, __assign({ alignItems: "flex-start", flexDirection: "column", justifyContent: "center", paddingY: "s", ref: ref, as: Element, flexGrow: 1, gap: "xxxs" }, elemProps), children));
37
+ },
38
+ });
@@ -0,0 +1,6 @@
1
+ import { ExtractProps } from '@workday/canvas-kit-react/common';
2
+ import { Popup } from '@workday/canvas-kit-react/popup';
3
+ export interface ToastCloseIconProps extends ExtractProps<typeof Popup.CloseIcon, never> {
4
+ }
5
+ export declare const ToastCloseIcon: import("@workday/canvas-kit-react/common").ElementComponent<"button", ToastCloseIconProps>;
6
+ //# sourceMappingURL=ToastCloseIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastCloseIcon.d.ts","sourceRoot":"","sources":["../../../../toast/lib/ToastCloseIcon.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAC,KAAK,EAAC,MAAM,iCAAiC,CAAC;AAEtD,MAAM,WAAW,mBAAoB,SAAQ,YAAY,CAAC,OAAO,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;CAAG;AAE3F,eAAO,MAAM,cAAc,4FAOzB,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ToastCloseIcon = void 0;
18
+ var react_1 = __importDefault(require("react"));
19
+ var common_1 = require("@workday/canvas-kit-react/common");
20
+ var popup_1 = require("@workday/canvas-kit-react/popup");
21
+ exports.ToastCloseIcon = common_1.createComponent('button')({
22
+ displayName: 'Toast.CloseIcon',
23
+ Component: function (elemProps, ref, Element) {
24
+ return (react_1.default.createElement(popup_1.Popup.CloseIcon, __assign({ as: Element, ref: ref, size: "small", position: "relative" }, elemProps)));
25
+ },
26
+ });
@@ -0,0 +1,5 @@
1
+ import { SystemIconProps } from '@workday/canvas-kit-react/icon';
2
+ export interface ToastIconProps extends Omit<SystemIconProps, 'colorHover'> {
3
+ }
4
+ export declare const ToastIcon: import("@workday/canvas-kit-react/common").ElementComponent<"div", ToastIconProps>;
5
+ //# sourceMappingURL=ToastIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastIcon.d.ts","sourceRoot":"","sources":["../../../../toast/lib/ToastIcon.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAE3E,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC;CAAG;AAE9E,eAAO,MAAM,SAAS,oFAepB,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ToastIcon = void 0;
18
+ var react_1 = __importDefault(require("react"));
19
+ var common_1 = require("@workday/canvas-kit-react/common");
20
+ var icon_1 = require("@workday/canvas-kit-react/icon");
21
+ exports.ToastIcon = common_1.createComponent('div')({
22
+ displayName: 'Toast.Icon',
23
+ Component: function (elemProps, ref, Element) {
24
+ return (react_1.default.createElement(icon_1.SystemIcon, __assign({ colorHover: elemProps.color, marginY: "s", marginX: "xs", alignSelf: "start", ref: ref, as: Element }, elemProps)));
25
+ },
26
+ });
@@ -0,0 +1,5 @@
1
+ import { HyperlinkProps } from '@workday/canvas-kit-react/button';
2
+ export interface ToastLinkProps extends HyperlinkProps {
3
+ }
4
+ export declare const ToastLink: import("@workday/canvas-kit-react/common").ElementComponent<"a", ToastLinkProps>;
5
+ //# sourceMappingURL=ToastLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastLink.d.ts","sourceRoot":"","sources":["../../../../toast/lib/ToastLink.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAY,cAAc,EAAC,MAAM,kCAAkC,CAAC;AAE3E,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAG;AAEzD,eAAO,MAAM,SAAS,kFASpB,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.ToastLink = void 0;
29
+ var react_1 = __importDefault(require("react"));
30
+ var common_1 = require("@workday/canvas-kit-react/common");
31
+ var button_1 = require("@workday/canvas-kit-react/button");
32
+ exports.ToastLink = common_1.createComponent('a')({
33
+ displayName: 'Toast.Link',
34
+ Component: function (_a, ref, Element) {
35
+ var children = _a.children, href = _a.href, elemProps = __rest(_a, ["children", "href"]);
36
+ return (react_1.default.createElement(button_1.Hyperlink, __assign({ ref: ref, href: href, as: Element }, elemProps), children));
37
+ },
38
+ });
@@ -0,0 +1,12 @@
1
+ import { ExtractProps } from '@workday/canvas-kit-react/common';
2
+ import { Subtext } from '@workday/canvas-kit-react/text';
3
+ export interface ToastMessageProps extends Omit<ExtractProps<typeof Subtext>, 'size'> {
4
+ }
5
+ export declare const ToastMessage: import("@workday/canvas-kit-react/common").ElementComponentM<"p", ToastMessageProps, {
6
+ state: {
7
+ id: string;
8
+ mode: import("./hooks/useToastModel").AriaRoleMode;
9
+ };
10
+ events: {};
11
+ }>;
12
+ //# sourceMappingURL=ToastMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastMessage.d.ts","sourceRoot":"","sources":["../../../../toast/lib/ToastMessage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqB,YAAY,EAAC,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAC,OAAO,EAAC,MAAM,gCAAgC,CAAC;AAEvD,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,OAAO,CAAC,EAAE,MAAM,CAAC;CAAG;AAExF,eAAO,MAAM,YAAY;;;;;;EAevB,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.ToastMessage = void 0;
29
+ var react_1 = __importDefault(require("react"));
30
+ var common_1 = require("@workday/canvas-kit-react/common");
31
+ var useToastModel_1 = require("./hooks/useToastModel");
32
+ var text_1 = require("@workday/canvas-kit-react/text");
33
+ exports.ToastMessage = common_1.createSubcomponent('p')({
34
+ modelHook: useToastModel_1.useToastModel,
35
+ })(function (_a, Element, model) {
36
+ var children = _a.children, elemProps = __rest(_a, ["children"]);
37
+ return (react_1.default.createElement(text_1.Subtext, __assign({ size: "large", wordBreak: "break-word", marginY: "zero", id: model.state.id, as: Element }, elemProps), children));
38
+ });