@workday/canvas-kit-react 7.4.9 → 7.4.11

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 (31) hide show
  1. package/collection/lib/useCursorListModel.tsx +1 -1
  2. package/collection/lib/useListItemRovingFocus.tsx +2 -5
  3. package/collection/lib/useListItemSelect.tsx +3 -4
  4. package/dist/commonjs/collection/lib/useCursorListModel.js +1 -1
  5. package/dist/commonjs/collection/lib/useListItemRovingFocus.d.ts.map +1 -1
  6. package/dist/commonjs/collection/lib/useListItemRovingFocus.js +2 -3
  7. package/dist/commonjs/collection/lib/useListItemSelect.d.ts.map +1 -1
  8. package/dist/commonjs/collection/lib/useListItemSelect.js +3 -4
  9. package/dist/commonjs/form-field/lib/FormField.d.ts.map +1 -1
  10. package/dist/commonjs/form-field/lib/FormField.js +3 -0
  11. package/dist/commonjs/form-field/lib/Label.d.ts +4 -3
  12. package/dist/commonjs/form-field/lib/Label.d.ts.map +1 -1
  13. package/dist/commonjs/form-field/lib/Label.js +4 -4
  14. package/dist/commonjs/menu/lib/MenuItem.d.ts.map +1 -1
  15. package/dist/commonjs/menu/lib/MenuItem.js +5 -2
  16. package/dist/es6/collection/lib/useCursorListModel.js +1 -1
  17. package/dist/es6/collection/lib/useListItemRovingFocus.d.ts.map +1 -1
  18. package/dist/es6/collection/lib/useListItemRovingFocus.js +2 -3
  19. package/dist/es6/collection/lib/useListItemSelect.d.ts.map +1 -1
  20. package/dist/es6/collection/lib/useListItemSelect.js +3 -4
  21. package/dist/es6/form-field/lib/FormField.d.ts.map +1 -1
  22. package/dist/es6/form-field/lib/FormField.js +3 -0
  23. package/dist/es6/form-field/lib/Label.d.ts +4 -3
  24. package/dist/es6/form-field/lib/Label.d.ts.map +1 -1
  25. package/dist/es6/form-field/lib/Label.js +4 -4
  26. package/dist/es6/menu/lib/MenuItem.d.ts.map +1 -1
  27. package/dist/es6/menu/lib/MenuItem.js +5 -2
  28. package/form-field/lib/FormField.tsx +4 -0
  29. package/form-field/lib/Label.tsx +9 -8
  30. package/menu/lib/MenuItem.tsx +5 -2
  31. package/package.json +5 -4
@@ -312,7 +312,7 @@ export const useCursorListModel = createModelHook({
312
312
  const columnCount = config.columnCount || 0;
313
313
  const list = useBaseListModel(config);
314
314
  const initialCurrentRef = React.useRef(
315
- config.initialCursorId || (config.items?.length ? getId(config.items![0]) : '')
315
+ config.initialCursorId || (config.items?.length ? getId(list.state.items![0]) : '')
316
316
  );
317
317
  const navigation = config.navigation;
318
318
 
@@ -62,11 +62,10 @@ const hasOwnKey = <T extends object>(obj: T, key: any): key is keyof T => obj.ha
62
62
  * @see https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex
63
63
  */
64
64
  export const useListItemRovingFocus = createElemPropsHook(useCursorListModel)(
65
- ({state, events, getId, navigation}, ref, elemProps: {'data-id'?: string} = {}) => {
65
+ ({state, events, navigation}, ref, elemProps: {'data-id'?: string} = {}) => {
66
66
  // Tracks when this element has focus. If this item is removed while still focused, we have to
67
67
  // inform the model to move the cursor to the next item.
68
68
  const focusRef = React.useRef(false);
69
- const getIdRef = React.useRef(getId);
70
69
 
71
70
  // Create a ref out of state. We don't want to watch state on unmount, so we use a ref to get the
72
71
  // current value at the time of unmounting. Otherwise, `state.items` would be a cached value of an
@@ -85,9 +84,7 @@ export const useListItemRovingFocus = createElemPropsHook(useCursorListModel)(
85
84
  }
86
85
  requestAnimationFrame(() => {
87
86
  document
88
- .querySelector<HTMLElement>(
89
- `[data-focus-id="${`${state.id}-${getIdRef.current(item)}`}"]`
90
- )
87
+ .querySelector<HTMLElement>(`[data-focus-id="${`${state.id}-${item.id}`}"]`)
91
88
  ?.focus();
92
89
  });
93
90
 
@@ -9,12 +9,11 @@ export const useListItemSelect = createElemPropsHook(useListModel)(
9
9
  const name = elemProps['data-id'] || '';
10
10
  const onClick = (event: React.MouseEvent<HTMLElement>) => {
11
11
  if (
12
- state.nonInteractiveIds.includes(name) ||
13
- event.currentTarget.hasAttribute('aria-disabled')
12
+ !state.nonInteractiveIds.includes(name) &&
13
+ event.currentTarget.getAttribute('aria-disabled') !== 'true'
14
14
  ) {
15
- return;
15
+ events.select({id: name});
16
16
  }
17
- events.select({id: name});
18
17
  };
19
18
 
20
19
  return {onClick};
@@ -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;;;;;GAKG;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;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkCZ,mBAAmB;;;;;;;;;OA+CzC,CAAC"}
@@ -64,12 +64,11 @@ var hasOwnKey = function (obj, key) { return obj.hasOwnProperty(key); };
64
64
  * @see https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex
65
65
  */
66
66
  exports.useListItemRovingFocus = common_1.createElemPropsHook(useCursorListModel_1.useCursorListModel)(function (_a, ref, elemProps) {
67
- var state = _a.state, events = _a.events, getId = _a.getId, navigation = _a.navigation;
67
+ var state = _a.state, events = _a.events, navigation = _a.navigation;
68
68
  if (elemProps === void 0) { elemProps = {}; }
69
69
  // Tracks when this element has focus. If this item is removed while still focused, we have to
70
70
  // inform the model to move the cursor to the next item.
71
71
  var focusRef = react_1.default.useRef(false);
72
- var getIdRef = react_1.default.useRef(getId);
73
72
  // Create a ref out of state. We don't want to watch state on unmount, so we use a ref to get the
74
73
  // current value at the time of unmounting. Otherwise, `state.items` would be a cached value of an
75
74
  // empty array
@@ -86,7 +85,7 @@ exports.useListItemRovingFocus = common_1.createElemPropsHook(useCursorListModel
86
85
  requestAnimationFrame(function () {
87
86
  var _a;
88
87
  (_a = document
89
- .querySelector("[data-focus-id=\"" + (state.id + "-" + getIdRef.current(item_1)) + "\"]")) === null || _a === void 0 ? void 0 : _a.focus();
88
+ .querySelector("[data-focus-id=\"" + (state.id + "-" + item_1.id) + "\"]")) === null || _a === void 0 ? void 0 : _a.focus();
90
89
  });
91
90
  keyDownRef.current = false;
92
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useListItemSelect.d.ts","sourceRoot":"","sources":["../../../../collection/lib/useListItemSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAGF,gBAAgB,CAAC,WAAW,CAAC;;;OAYxD,CAAC"}
1
+ {"version":3,"file":"useListItemSelect.d.ts","sourceRoot":"","sources":["../../../../collection/lib/useListItemSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAGF,gBAAgB,CAAC,WAAW,CAAC;;;OAWxD,CAAC"}
@@ -8,11 +8,10 @@ exports.useListItemSelect = common_1.createElemPropsHook(useListModel_1.useListM
8
8
  if (elemProps === void 0) { elemProps = {}; }
9
9
  var name = elemProps['data-id'] || '';
10
10
  var onClick = function (event) {
11
- if (state.nonInteractiveIds.includes(name) ||
12
- event.currentTarget.hasAttribute('aria-disabled')) {
13
- return;
11
+ if (!state.nonInteractiveIds.includes(name) &&
12
+ event.currentTarget.getAttribute('aria-disabled') !== 'true') {
13
+ events.select({ id: name });
14
14
  }
15
- events.select({ id: name });
16
15
  };
17
16
  return { onClick: onClick };
18
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../../form-field/lib/FormField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,SAAS,EAET,SAAS,EAEV,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAC,sBAAsB,EAAiC,MAAM,SAAS,CAAC;AAE/E,MAAM,WAAW,cACf,SAAQ,SAAS,EACf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EACpC,cAAc;IAChB;;;OAGG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAoED,cAAM,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;IACrD,MAAM,CAAC,aAAa,gCAA0B;IAC9C,MAAM,CAAC,SAAS,mBAAa;IAE7B,OAAO,CAAC,OAAO,CAAoD;IAEnE,OAAO,CAAC,cAAc,CA8BpB;IAEF,MAAM;CA2DP;AAKD,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../../form-field/lib/FormField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,SAAS,EAET,SAAS,EAEV,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAC,sBAAsB,EAAiC,MAAM,SAAS,CAAC;AAE/E,MAAM,WAAW,cACf,SAAQ,SAAS,EACf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EACpC,cAAc;IAChB;;;OAGG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAoED,cAAM,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;IACrD,MAAM,CAAC,aAAa,gCAA0B;IAC9C,MAAM,CAAC,SAAS,mBAAa;IAE7B,OAAO,CAAC,OAAO,CAAoD;IAEnE,OAAO,CAAC,cAAc,CAkCpB;IAEF,MAAM;CA2DP;AAKD,eAAe,SAAS,CAAC"}
@@ -138,6 +138,9 @@ var FormField = /** @class */ (function (_super) {
138
138
  props['aria-invalid'] = true;
139
139
  }
140
140
  }
141
+ if (_this.props.required) {
142
+ props.required = true;
143
+ }
141
144
  props.id = _this.inputId;
142
145
  return React.cloneElement(child, props);
143
146
  }
@@ -12,7 +12,7 @@ export interface LabelProps extends FormFieldLabelPositionBehavior {
12
12
  */
13
13
  isLegend?: boolean;
14
14
  /**
15
- * The id of a labelable form-related element. Synonymous with `for`.
15
+ * The id of the form-related element. Synonymous with `for`.
16
16
  */
17
17
  htmlFor?: string;
18
18
  /**
@@ -21,8 +21,9 @@ export interface LabelProps extends FormFieldLabelPositionBehavior {
21
21
  */
22
22
  required?: boolean;
23
23
  /**
24
- * The title of the required label.
25
- * @default required
24
+ * The required label is not visible to screen readers and should have no label. This prop will be
25
+ * ignored.
26
+ * @deprecated
26
27
  */
27
28
  requiredLabel?: string;
28
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../../form-field/lib/Label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAC,sBAAsB,EAAE,8BAA8B,EAAC,MAAM,SAAS,CAAC;AAE/E,MAAM,WAAW,UAAW,SAAQ,8BAA8B;IAChE;;;OAGG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAuDD,cAAM,KAAM,SAAQ,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;IAC7C,MAAM,CAAC,QAAQ,gCAA0B;IAElC,MAAM;CA8Bd;AAID,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../../form-field/lib/Label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAC,sBAAsB,EAAE,8BAA8B,EAAC,MAAM,SAAS,CAAC;AAE/E,MAAM,WAAW,UAAW,SAAQ,8BAA8B;IAChE;;;OAGG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAuDD,cAAM,KAAM,SAAQ,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;IAC7C,MAAM,CAAC,QAAQ,gCAA0B;IAElC,MAAM;CA8Bd;AAID,eAAe,KAAK,CAAC"}
@@ -86,7 +86,7 @@ var labelStyles = [
86
86
  }));
87
87
  },
88
88
  ];
89
- var RequiredAstrisk = common_1.styled('abbr')({
89
+ var RequiredAsterisk = common_1.styled('abbr')({
90
90
  color: tokens_1.colors.cinnamon500,
91
91
  fontSize: '16px',
92
92
  fontWeight: 400,
@@ -116,12 +116,12 @@ var Label = /** @class */ (function (_super) {
116
116
  return _super !== null && _super.apply(this, arguments) || this;
117
117
  }
118
118
  Label.prototype.render = function () {
119
- var _a = this.props, _b = _a.labelPosition, labelPosition = _b === void 0 ? Label.Position.Top : _b, _c = _a.isLegend, isLegend = _c === void 0 ? false : _c, _d = _a.requiredLabel, requiredLabel = _d === void 0 ? 'required' : _d, elemProps = __rest(_a, ["labelPosition", "isLegend", "requiredLabel"]);
120
- var children = !this.props.required
119
+ var _a = this.props, _b = _a.labelPosition, labelPosition = _b === void 0 ? Label.Position.Top : _b, _c = _a.isLegend, isLegend = _c === void 0 ? false : _c, required = _a.required, elemProps = __rest(_a, ["labelPosition", "isLegend", "required"]);
120
+ var children = !required
121
121
  ? this.props.children
122
122
  : [
123
123
  this.props.children,
124
- React.createElement(RequiredAstrisk, { key: '0', title: requiredLabel }, "*"),
124
+ React.createElement(RequiredAsterisk, { key: '0', "aria-hidden": true }, "*"),
125
125
  ];
126
126
  return (React.createElement(React.Fragment, null, isLegend ? (React.createElement(LegendComponent, __assign({ labelPosition: labelPosition, isLegend: isLegend }, elemProps, { children: children }))) : (React.createElement(LabelComponent, __assign({ labelPosition: labelPosition }, elemProps, { children: children })))));
127
127
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.d.ts","sourceRoot":"","sources":["../../../../menu/lib/MenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsB/B,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA6FD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCvB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBnB,CAAC"}
1
+ {"version":3,"file":"MenuItem.d.ts","sourceRoot":"","sources":["../../../../menu/lib/MenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsB/B,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA6FD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCvB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBnB,CAAC"}
@@ -91,7 +91,7 @@ var StyledItem = common_1.styled(layout_1.Box.as('button'))(function (_a) {
91
91
  fill: tokens_1.iconColors.hover,
92
92
  },
93
93
  },
94
- }, _b.backgroundColor = 'inherit', _b['&:disabled, &[aria-disabled]'] = {
94
+ }, _b.backgroundColor = 'inherit', _b['&:disabled, &[aria-disabled=true]'] = {
95
95
  color: tokens_1.colors.licorice100,
96
96
  cursor: 'default',
97
97
  '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
@@ -146,7 +146,10 @@ exports.useMenuItem = common_1.composeHooks(common_1.createElemPropsHook(useMenu
146
146
  role: 'menuitem',
147
147
  onClick: model.state.mode === 'single'
148
148
  ? function (event) {
149
- model.events.hide(event);
149
+ // only hide if the item isn't disabled
150
+ if (event.currentTarget.getAttribute('aria-disabled') !== 'true') {
151
+ model.events.hide(event);
152
+ }
150
153
  }
151
154
  : undefined,
152
155
  };
@@ -278,7 +278,7 @@ export var useCursorListModel = createModelHook({
278
278
  var _b = React.useState(config.initialCursorId), cursorId = _b[0], setCursorId = _b[1];
279
279
  var columnCount = config.columnCount || 0;
280
280
  var list = useBaseListModel(config);
281
- var initialCurrentRef = React.useRef(config.initialCursorId || (((_a = config.items) === null || _a === void 0 ? void 0 : _a.length) ? getId(config.items[0]) : ''));
281
+ var initialCurrentRef = React.useRef(config.initialCursorId || (((_a = config.items) === null || _a === void 0 ? void 0 : _a.length) ? getId(list.state.items[0]) : ''));
282
282
  var navigation = config.navigation;
283
283
  var state = __assign(__assign({}, list.state), {
284
284
  /** 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;;;;;GAKG;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;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkCZ,mBAAmB;;;;;;;;;OA+CzC,CAAC"}
@@ -58,12 +58,11 @@ var hasOwnKey = function (obj, key) { return obj.hasOwnProperty(key); };
58
58
  * @see https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex
59
59
  */
60
60
  export var useListItemRovingFocus = createElemPropsHook(useCursorListModel)(function (_a, ref, elemProps) {
61
- var state = _a.state, events = _a.events, getId = _a.getId, navigation = _a.navigation;
61
+ var state = _a.state, events = _a.events, navigation = _a.navigation;
62
62
  if (elemProps === void 0) { elemProps = {}; }
63
63
  // Tracks when this element has focus. If this item is removed while still focused, we have to
64
64
  // inform the model to move the cursor to the next item.
65
65
  var focusRef = React.useRef(false);
66
- var getIdRef = React.useRef(getId);
67
66
  // Create a ref out of state. We don't want to watch state on unmount, so we use a ref to get the
68
67
  // current value at the time of unmounting. Otherwise, `state.items` would be a cached value of an
69
68
  // empty array
@@ -80,7 +79,7 @@ export var useListItemRovingFocus = createElemPropsHook(useCursorListModel)(func
80
79
  requestAnimationFrame(function () {
81
80
  var _a;
82
81
  (_a = document
83
- .querySelector("[data-focus-id=\"" + (state.id + "-" + getIdRef.current(item_1)) + "\"]")) === null || _a === void 0 ? void 0 : _a.focus();
82
+ .querySelector("[data-focus-id=\"" + (state.id + "-" + item_1.id) + "\"]")) === null || _a === void 0 ? void 0 : _a.focus();
84
83
  });
85
84
  keyDownRef.current = false;
86
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useListItemSelect.d.ts","sourceRoot":"","sources":["../../../../collection/lib/useListItemSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAGF,gBAAgB,CAAC,WAAW,CAAC;;;OAYxD,CAAC"}
1
+ {"version":3,"file":"useListItemSelect.d.ts","sourceRoot":"","sources":["../../../../collection/lib/useListItemSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAGF,gBAAgB,CAAC,WAAW,CAAC;;;OAWxD,CAAC"}
@@ -5,11 +5,10 @@ export var useListItemSelect = createElemPropsHook(useListModel)(function (_a, _
5
5
  if (elemProps === void 0) { elemProps = {}; }
6
6
  var name = elemProps['data-id'] || '';
7
7
  var onClick = function (event) {
8
- if (state.nonInteractiveIds.includes(name) ||
9
- event.currentTarget.hasAttribute('aria-disabled')) {
10
- return;
8
+ if (!state.nonInteractiveIds.includes(name) &&
9
+ event.currentTarget.getAttribute('aria-disabled') !== 'true') {
10
+ events.select({ id: name });
11
11
  }
12
- events.select({ id: name });
13
12
  };
14
13
  return { onClick: onClick };
15
14
  });
@@ -1 +1 @@
1
- {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../../form-field/lib/FormField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,SAAS,EAET,SAAS,EAEV,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAC,sBAAsB,EAAiC,MAAM,SAAS,CAAC;AAE/E,MAAM,WAAW,cACf,SAAQ,SAAS,EACf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EACpC,cAAc;IAChB;;;OAGG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAoED,cAAM,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;IACrD,MAAM,CAAC,aAAa,gCAA0B;IAC9C,MAAM,CAAC,SAAS,mBAAa;IAE7B,OAAO,CAAC,OAAO,CAAoD;IAEnE,OAAO,CAAC,cAAc,CA8BpB;IAEF,MAAM;CA2DP;AAKD,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../../form-field/lib/FormField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,cAAc,EACd,SAAS,EAET,SAAS,EAEV,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAC,sBAAsB,EAAiC,MAAM,SAAS,CAAC;AAE/E,MAAM,WAAW,cACf,SAAQ,SAAS,EACf,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EACpC,cAAc;IAChB;;;OAGG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAoED,cAAM,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC;IACrD,MAAM,CAAC,aAAa,gCAA0B;IAC9C,MAAM,CAAC,SAAS,mBAAa;IAE7B,OAAO,CAAC,OAAO,CAAoD;IAEnE,OAAO,CAAC,cAAc,CAkCpB;IAEF,MAAM;CA2DP;AAKD,eAAe,SAAS,CAAC"}
@@ -114,6 +114,9 @@ var FormField = /** @class */ (function (_super) {
114
114
  props['aria-invalid'] = true;
115
115
  }
116
116
  }
117
+ if (_this.props.required) {
118
+ props.required = true;
119
+ }
117
120
  props.id = _this.inputId;
118
121
  return React.cloneElement(child, props);
119
122
  }
@@ -12,7 +12,7 @@ export interface LabelProps extends FormFieldLabelPositionBehavior {
12
12
  */
13
13
  isLegend?: boolean;
14
14
  /**
15
- * The id of a labelable form-related element. Synonymous with `for`.
15
+ * The id of the form-related element. Synonymous with `for`.
16
16
  */
17
17
  htmlFor?: string;
18
18
  /**
@@ -21,8 +21,9 @@ export interface LabelProps extends FormFieldLabelPositionBehavior {
21
21
  */
22
22
  required?: boolean;
23
23
  /**
24
- * The title of the required label.
25
- * @default required
24
+ * The required label is not visible to screen readers and should have no label. This prop will be
25
+ * ignored.
26
+ * @deprecated
26
27
  */
27
28
  requiredLabel?: string;
28
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../../form-field/lib/Label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAC,sBAAsB,EAAE,8BAA8B,EAAC,MAAM,SAAS,CAAC;AAE/E,MAAM,WAAW,UAAW,SAAQ,8BAA8B;IAChE;;;OAGG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAuDD,cAAM,KAAM,SAAQ,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;IAC7C,MAAM,CAAC,QAAQ,gCAA0B;IAElC,MAAM;CA8Bd;AAID,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../../form-field/lib/Label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAC,sBAAsB,EAAE,8BAA8B,EAAC,MAAM,SAAS,CAAC;AAE/E,MAAM,WAAW,UAAW,SAAQ,8BAA8B;IAChE;;;OAGG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAuDD,cAAM,KAAM,SAAQ,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC;IAC7C,MAAM,CAAC,QAAQ,gCAA0B;IAElC,MAAM;CA8Bd;AAID,eAAe,KAAK,CAAC"}
@@ -65,7 +65,7 @@ var labelStyles = [
65
65
  }));
66
66
  },
67
67
  ];
68
- var RequiredAstrisk = styled('abbr')({
68
+ var RequiredAsterisk = styled('abbr')({
69
69
  color: colors.cinnamon500,
70
70
  fontSize: '16px',
71
71
  fontWeight: 400,
@@ -95,12 +95,12 @@ var Label = /** @class */ (function (_super) {
95
95
  return _super !== null && _super.apply(this, arguments) || this;
96
96
  }
97
97
  Label.prototype.render = function () {
98
- var _a = this.props, _b = _a.labelPosition, labelPosition = _b === void 0 ? Label.Position.Top : _b, _c = _a.isLegend, isLegend = _c === void 0 ? false : _c, _d = _a.requiredLabel, requiredLabel = _d === void 0 ? 'required' : _d, elemProps = __rest(_a, ["labelPosition", "isLegend", "requiredLabel"]);
99
- var children = !this.props.required
98
+ var _a = this.props, _b = _a.labelPosition, labelPosition = _b === void 0 ? Label.Position.Top : _b, _c = _a.isLegend, isLegend = _c === void 0 ? false : _c, required = _a.required, elemProps = __rest(_a, ["labelPosition", "isLegend", "required"]);
99
+ var children = !required
100
100
  ? this.props.children
101
101
  : [
102
102
  this.props.children,
103
- React.createElement(RequiredAstrisk, { key: '0', title: requiredLabel }, "*"),
103
+ React.createElement(RequiredAsterisk, { key: '0', "aria-hidden": true }, "*"),
104
104
  ];
105
105
  return (React.createElement(React.Fragment, null, isLegend ? (React.createElement(LegendComponent, __assign({ labelPosition: labelPosition, isLegend: isLegend }, elemProps, { children: children }))) : (React.createElement(LabelComponent, __assign({ labelPosition: labelPosition }, elemProps, { children: children })))));
106
106
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.d.ts","sourceRoot":"","sources":["../../../../menu/lib/MenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsB/B,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA6FD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCvB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBnB,CAAC"}
1
+ {"version":3,"file":"MenuItem.d.ts","sourceRoot":"","sources":["../../../../menu/lib/MenuItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAsB/B,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA6FD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCvB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBnB,CAAC"}
@@ -69,7 +69,7 @@ var StyledItem = styled(Box.as('button'))(function (_a) {
69
69
  fill: iconColors.hover,
70
70
  },
71
71
  },
72
- }, _b.backgroundColor = 'inherit', _b['&:disabled, &[aria-disabled]'] = {
72
+ }, _b.backgroundColor = 'inherit', _b['&:disabled, &[aria-disabled=true]'] = {
73
73
  color: colors.licorice100,
74
74
  cursor: 'default',
75
75
  '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
@@ -124,7 +124,10 @@ export var useMenuItem = composeHooks(createElemPropsHook(useMenuModel)(function
124
124
  role: 'menuitem',
125
125
  onClick: model.state.mode === 'single'
126
126
  ? function (event) {
127
- model.events.hide(event);
127
+ // only hide if the item isn't disabled
128
+ if (event.currentTarget.getAttribute('aria-disabled') !== 'true') {
129
+ model.events.hide(event);
130
+ }
128
131
  }
129
132
  : undefined,
130
133
  };
@@ -166,6 +166,10 @@ class FormField extends React.Component<FormFieldProps> {
166
166
  }
167
167
  }
168
168
 
169
+ if (this.props.required) {
170
+ props.required = true;
171
+ }
172
+
169
173
  props.id = this.inputId;
170
174
 
171
175
  return React.cloneElement(child, props);
@@ -15,7 +15,7 @@ export interface LabelProps extends FormFieldLabelPositionBehavior {
15
15
  */
16
16
  isLegend?: boolean;
17
17
  /**
18
- * The id of a labelable form-related element. Synonymous with `for`.
18
+ * The id of the form-related element. Synonymous with `for`.
19
19
  */
20
20
  htmlFor?: string;
21
21
  /**
@@ -24,8 +24,9 @@ export interface LabelProps extends FormFieldLabelPositionBehavior {
24
24
  */
25
25
  required?: boolean;
26
26
  /**
27
- * The title of the required label.
28
- * @default required
27
+ * The required label is not visible to screen readers and should have no label. This prop will be
28
+ * ignored.
29
+ * @deprecated
29
30
  */
30
31
  requiredLabel?: string;
31
32
  /**
@@ -62,7 +63,7 @@ const labelStyles = [
62
63
  },
63
64
  ];
64
65
 
65
- const RequiredAstrisk = styled('abbr')({
66
+ const RequiredAsterisk = styled('abbr')({
66
67
  color: colors.cinnamon500,
67
68
  fontSize: '16px',
68
69
  fontWeight: 400,
@@ -95,16 +96,16 @@ class Label extends React.Component<LabelProps> {
95
96
  const {
96
97
  labelPosition = Label.Position.Top,
97
98
  isLegend = false,
98
- requiredLabel = 'required',
99
+ required,
99
100
  ...elemProps
100
101
  } = this.props;
101
- const children = !this.props.required
102
+ const children = !required
102
103
  ? this.props.children
103
104
  : [
104
105
  this.props.children,
105
- <RequiredAstrisk key={'0'} title={requiredLabel}>
106
+ <RequiredAsterisk key={'0'} aria-hidden>
106
107
  *
107
- </RequiredAstrisk>,
108
+ </RequiredAsterisk>,
108
109
  ];
109
110
  return (
110
111
  <>
@@ -97,7 +97,7 @@ const StyledItem = styled(Box.as('button'))<StyledType>(
97
97
  },
98
98
  },
99
99
  backgroundColor: 'inherit',
100
- '&:disabled, &[aria-disabled]': {
100
+ '&:disabled, &[aria-disabled=true]': {
101
101
  color: colors.licorice100,
102
102
  cursor: 'default',
103
103
  '.wd-icon-fill, .wd-icon-accent, .wd-icon-accent2': {
@@ -158,7 +158,10 @@ export const useMenuItem = composeHooks(
158
158
  onClick:
159
159
  model.state.mode === 'single'
160
160
  ? (event: React.SyntheticEvent) => {
161
- model.events.hide(event);
161
+ // only hide if the item isn't disabled
162
+ if (event.currentTarget.getAttribute('aria-disabled') !== 'true') {
163
+ model.events.hide(event);
164
+ }
162
165
  }
163
166
  : undefined,
164
167
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workday/canvas-kit-react",
3
- "version": "7.4.9",
3
+ "version": "7.4.11",
4
4
  "description": "The parent module that contains all Workday Canvas Kit React components",
5
5
  "author": "Workday, Inc. (https://www.workday.com)",
6
6
  "license": "Apache-2.0",
@@ -41,7 +41,8 @@
41
41
  "workday"
42
42
  ],
43
43
  "peerDependencies": {
44
- "react": "^16.8 || ^17.0"
44
+ "react": "^16.8 || ^17.0",
45
+ "react-dom": "^16.8 || ^17.0"
45
46
  },
46
47
  "dependencies": {
47
48
  "@emotion/is-prop-valid": "^1.1.1",
@@ -49,7 +50,7 @@
49
50
  "@emotion/styled": "^11.6.0",
50
51
  "@popperjs/core": "^2.5.4",
51
52
  "@workday/canvas-colors-web": "^2.0.0",
52
- "@workday/canvas-kit-popup-stack": "^7.4.9",
53
+ "@workday/canvas-kit-popup-stack": "^7.4.11",
53
54
  "@workday/canvas-system-icons-web": "^3.0.0",
54
55
  "@workday/design-assets-types": "^0.2.8",
55
56
  "chroma-js": "^2.1.0",
@@ -68,5 +69,5 @@
68
69
  "@workday/canvas-accent-icons-web": "^3.0.0",
69
70
  "@workday/canvas-applet-icons-web": "^2.0.0"
70
71
  },
71
- "gitHead": "ef4231dc82547a15ca41738f8b04731ccaa815a2"
72
+ "gitHead": "0e4657f28e4ece8a2920e99b9466a1dfb3e8d79e"
72
73
  }