@workday/canvas-kit-preview-react 12.6.9 → 12.6.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 (46) hide show
  1. package/dist/commonjs/divider/lib/Divider.js +1 -1
  2. package/dist/commonjs/information-highlight/lib/InformationHighlight.js +7 -7
  3. package/dist/commonjs/information-highlight/lib/parts/Body.js +1 -1
  4. package/dist/commonjs/information-highlight/lib/parts/Heading.js +1 -1
  5. package/dist/commonjs/information-highlight/lib/parts/Link.js +1 -1
  6. package/dist/commonjs/loading-sparkles/lib/LoadingSparkles.js +3 -3
  7. package/dist/commonjs/multi-select/lib/MultiSelectInput.d.ts +57 -3
  8. package/dist/commonjs/multi-select/lib/MultiSelectInput.d.ts.map +1 -1
  9. package/dist/commonjs/multi-select/lib/MultiSelectInput.js +21 -12
  10. package/dist/commonjs/multi-select/lib/MultiSelectedItem.d.ts +4 -0
  11. package/dist/commonjs/multi-select/lib/MultiSelectedItem.d.ts.map +1 -1
  12. package/dist/commonjs/multi-select/lib/MultiSelectedItem.js +2 -2
  13. package/dist/commonjs/multi-select/lib/MultiSelectedList.d.ts +5 -0
  14. package/dist/commonjs/multi-select/lib/MultiSelectedList.d.ts.map +1 -1
  15. package/dist/commonjs/multi-select/lib/MultiSelectedList.js +2 -2
  16. package/dist/commonjs/radio/lib/RadioGroup.js +3 -3
  17. package/dist/commonjs/radio/lib/RadioLabel.js +1 -1
  18. package/dist/commonjs/radio/lib/RadioText.js +4 -4
  19. package/dist/commonjs/radio/lib/StyledRadioButton.js +5 -5
  20. package/dist/commonjs/status-indicator/lib/StatusIndicator.js +13 -13
  21. package/dist/commonjs/status-indicator/lib/StatusIndicatorLabel.js +1 -1
  22. package/dist/es6/divider/lib/Divider.js +1 -1
  23. package/dist/es6/information-highlight/lib/InformationHighlight.js +7 -7
  24. package/dist/es6/information-highlight/lib/parts/Body.js +1 -1
  25. package/dist/es6/information-highlight/lib/parts/Heading.js +1 -1
  26. package/dist/es6/information-highlight/lib/parts/Link.js +1 -1
  27. package/dist/es6/loading-sparkles/lib/LoadingSparkles.js +3 -3
  28. package/dist/es6/multi-select/lib/MultiSelectInput.d.ts +57 -3
  29. package/dist/es6/multi-select/lib/MultiSelectInput.d.ts.map +1 -1
  30. package/dist/es6/multi-select/lib/MultiSelectInput.js +23 -14
  31. package/dist/es6/multi-select/lib/MultiSelectedItem.d.ts +4 -0
  32. package/dist/es6/multi-select/lib/MultiSelectedItem.d.ts.map +1 -1
  33. package/dist/es6/multi-select/lib/MultiSelectedItem.js +2 -2
  34. package/dist/es6/multi-select/lib/MultiSelectedList.d.ts +5 -0
  35. package/dist/es6/multi-select/lib/MultiSelectedList.d.ts.map +1 -1
  36. package/dist/es6/multi-select/lib/MultiSelectedList.js +2 -2
  37. package/dist/es6/radio/lib/RadioGroup.js +3 -3
  38. package/dist/es6/radio/lib/RadioLabel.js +1 -1
  39. package/dist/es6/radio/lib/RadioText.js +4 -4
  40. package/dist/es6/radio/lib/StyledRadioButton.js +5 -5
  41. package/dist/es6/status-indicator/lib/StatusIndicator.js +13 -13
  42. package/dist/es6/status-indicator/lib/StatusIndicatorLabel.js +1 -1
  43. package/multi-select/lib/MultiSelectInput.tsx +71 -14
  44. package/multi-select/lib/MultiSelectedItem.tsx +6 -2
  45. package/multi-select/lib/MultiSelectedList.tsx +29 -17
  46. package/package.json +4 -4
@@ -23,15 +23,15 @@ const AI_COLORS = {
23
23
  /**
24
24
  * The animation for the sparkle.
25
25
  */
26
- const LOADING_ANIMATION = keyframes({ name: "nhdk3", styles: "0%, 79%, 100%{opacity:0.2;transform:scale(0.55);}27%{opacity:1;transform:scale(1);}53%{opacity:0.6;transform:scale(0.7);}" });
27
- const loadingSparklesIconStyles = createStyles({ name: "nhdk4", styles: "animation-duration:1230ms;animation-fill-mode:both;animation-iteration-count:infinite;animation-name:animation-nhdk3;animation-timing-function:ease-in-out;.wd-sparkle-fill{fill:#8C17D2;}&:nth-child(1){animation-delay:0ms;}&:nth-child(2){animation-delay:calc(1230ms * (1/3));}&:nth-child(3){animation-delay:calc(1230ms * (2/3));}@media (prefers-contrast: more){.wd-sparkle-fill{color:currentColor;fill:currentColor;}}" });
26
+ const LOADING_ANIMATION = keyframes({ name: "vfis3", styles: "0%, 79%, 100%{opacity:0.2;transform:scale(0.55);}27%{opacity:1;transform:scale(1);}53%{opacity:0.6;transform:scale(0.7);}" });
27
+ const loadingSparklesIconStyles = createStyles({ name: "vfis4", styles: "animation-duration:1230ms;animation-fill-mode:both;animation-iteration-count:infinite;animation-name:animation-vfis3;animation-timing-function:ease-in-out;.wd-sparkle-fill{fill:#8C17D2;}&:nth-child(1){animation-delay:0ms;}&:nth-child(2){animation-delay:calc(1230ms * (1/3));}&:nth-child(3){animation-delay:calc(1230ms * (2/3));}@media (prefers-contrast: more){.wd-sparkle-fill{color:currentColor;fill:currentColor;}}" });
28
28
  /**
29
29
  * An individual loading sparkle. ✨
30
30
  */
31
31
  const Sparkle = () => {
32
32
  return (React.createElement(SystemIcon, { icon: sparkleIcon, cs: [loadingSparklesIconStyles], size: cssVar(system.space.x3) }));
33
33
  };
34
- const loadingSparklesStyles = createStyles({ name: "nhdk5", styles: "display:inline-flex;gap:0.0625rem;" });
34
+ const loadingSparklesStyles = createStyles({ name: "vfis5", styles: "display:inline-flex;gap:0.0625rem;" });
35
35
  /**
36
36
  * A simple component that displays three horizontal sparkles, to be used when an AI operation is in progress.
37
37
  */
@@ -1,7 +1,60 @@
1
1
  import React from 'react';
2
+ import { ErrorType } from '@workday/canvas-kit-react/common';
2
3
  import { CSProps } from '@workday/canvas-kit-styling';
3
4
  import { MultiSelectedItemProps } from './MultiSelectedItem';
4
- export declare const multiSelectStencil: import("@workday/canvas-kit-styling").Stencil<import("@workday/canvas-kit-styling").StencilModifierConfig<{}, {}, never>, {}, {}, never, never>;
5
+ export declare const multiSelectInputStencil: import("@workday/canvas-kit-styling").Stencil<{
6
+ error: {
7
+ error: {
8
+ borderColor: "--cnvs-brand-error-base";
9
+ boxShadow: `inset 0 0 0 ${string} --cnvs-brand-error-base`;
10
+ '&:has(:hover, :disabled, :focus-visible), &:is(.hover, .disabled, .focus)': {
11
+ borderColor: "--cnvs-brand-error-base";
12
+ };
13
+ '&:has(:focus-visible:not([disabled])), &.focus': {
14
+ boxShadow: `inset 0 0 0 ${string} --cnvs-brand-error-base, 0 0 0 2px --cnvs-sys-color-border-inverse, 0 0 0 4px --cnvs-brand-common-focus-outline`;
15
+ outlineOffset: string;
16
+ };
17
+ };
18
+ alert: {
19
+ borderColor: "--cnvs-brand-alert-darkest";
20
+ boxShadow: `inset 0 0 0 ${string} --cnvs-brand-alert-base`;
21
+ '&:has(:hover, .hover, :disabled, .disabled, :focus-visible:not([disabled])), .focus:not(:has([disabled]))': {
22
+ borderColor: "--cnvs-brand-alert-darkest";
23
+ };
24
+ '&:has(:focus-visible, .focus):not(:has([disabled]))': {
25
+ boxShadow: `inset 0 0 0 ${string} --cnvs-brand-alert-base,\n 0 0 0 2px --cnvs-sys-color-border-inverse,\n 0 0 0 4px --cnvs-brand-common-focus-outline`;
26
+ };
27
+ outlineOffset: string;
28
+ };
29
+ };
30
+ }, {}, {}, never, never>;
31
+ /** @deprecated use `multiSelectInputStencil` instead. This will be removed in a future version. */
32
+ export declare const multiSelectStencil: import("@workday/canvas-kit-styling").Stencil<{
33
+ error: {
34
+ error: {
35
+ borderColor: "--cnvs-brand-error-base";
36
+ boxShadow: `inset 0 0 0 ${string} --cnvs-brand-error-base`;
37
+ '&:has(:hover, :disabled, :focus-visible), &:is(.hover, .disabled, .focus)': {
38
+ borderColor: "--cnvs-brand-error-base";
39
+ };
40
+ '&:has(:focus-visible:not([disabled])), &.focus': {
41
+ boxShadow: `inset 0 0 0 ${string} --cnvs-brand-error-base, 0 0 0 2px --cnvs-sys-color-border-inverse, 0 0 0 4px --cnvs-brand-common-focus-outline`;
42
+ outlineOffset: string;
43
+ };
44
+ };
45
+ alert: {
46
+ borderColor: "--cnvs-brand-alert-darkest";
47
+ boxShadow: `inset 0 0 0 ${string} --cnvs-brand-alert-base`;
48
+ '&:has(:hover, .hover, :disabled, .disabled, :focus-visible:not([disabled])), .focus:not(:has([disabled]))': {
49
+ borderColor: "--cnvs-brand-alert-darkest";
50
+ };
51
+ '&:has(:focus-visible, .focus):not(:has([disabled]))': {
52
+ boxShadow: `inset 0 0 0 ${string} --cnvs-brand-alert-base,\n 0 0 0 2px --cnvs-sys-color-border-inverse,\n 0 0 0 4px --cnvs-brand-common-focus-outline`;
53
+ };
54
+ outlineOffset: string;
55
+ };
56
+ };
57
+ }, {}, {}, never, never>;
5
58
  export declare const useMultiSelectInput: import("@workday/canvas-kit-react/common").BehaviorHook<{
6
59
  state: {
7
60
  stackRef: React.RefObject<HTMLDivElement>;
@@ -192,9 +245,10 @@ export declare const useMultiSelectInput: import("@workday/canvas-kit-react/comm
192
245
  readonly onClick: (event: React.MouseEvent<Element, MouseEvent>) => void;
193
246
  }, {}>>>>>>>, import("@workday/canvas-kit-react/common").MergeProps<{}, import("@workday/canvas-kit-react/common").MergeProps<{}, import("@workday/canvas-kit-react/common").MergeProps<{}, {}>>>>>>>>;
194
247
  export interface MultiSelectInputProps extends CSProps, Pick<React.InputHTMLAttributes<HTMLInputElement>, 'disabled' | 'className' | 'style' | 'aria-labelledby'>, Pick<MultiSelectedItemProps, 'removeLabel'> {
248
+ error?: ErrorType;
195
249
  }
196
250
  export declare const MultiSelectInput: import("@workday/canvas-kit-react/common").ElementComponentM<import("@workday/canvas-kit-react/common").ElementComponent<"input", import("@workday/canvas-kit-react/text-input").TextInputProps> & {
197
- ErrorType: typeof import("@workday/canvas-kit-react/common").ErrorType;
251
+ ErrorType: typeof ErrorType;
198
252
  }, MultiSelectInputProps, {
199
253
  state: {
200
254
  stackRef: React.RefObject<HTMLDivElement>;
@@ -346,7 +400,7 @@ export declare const MultiSelectInput: import("@workday/canvas-kit-react/common"
346
400
  };
347
401
  }>;
348
402
  export declare const MultiSelectSearchInput: import("@workday/canvas-kit-react/common").ElementComponentM<import("@workday/canvas-kit-react/common").ElementComponent<"input", import("@workday/canvas-kit-react/text-input").TextInputProps> & {
349
- ErrorType: typeof import("@workday/canvas-kit-react/common").ErrorType;
403
+ ErrorType: typeof ErrorType;
350
404
  }, MultiSelectInputProps, {
351
405
  state: {
352
406
  stackRef: React.RefObject<HTMLDivElement>;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectInput.d.ts","sourceRoot":"","sources":["../../../../multi-select/lib/MultiSelectInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,EAAgB,OAAO,EAAe,MAAM,6BAA6B,CAAC;AAMjF,OAAO,EAAC,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAG3D,eAAO,MAAM,kBAAkB,iJAiE7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAGT,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sMA2BzC,CAAC;AAEF,MAAM,WAAW,qBACf,SAAQ,OAAO,EACb,IAAI,CACF,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,iBAAiB,CACvD,EACD,IAAI,CAAC,sBAAsB,EAAE,aAAa,CAAC;CAAG;AAElD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoC5B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8ClC,CAAC"}
1
+ {"version":3,"file":"MultiSelectInput.d.ts","sourceRoot":"","sources":["../../../../multi-select/lib/MultiSelectInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EACL,SAAS,EAIV,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAgB,OAAO,EAA6B,MAAM,6BAA6B,CAAC;AAM/F,OAAO,EAAC,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAG3D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;wBA8GlC,CAAC;AAEH,mGAAmG;AACnG,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;wBAA0B,CAAC;AAE1D,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAGT,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sMA2BzC,CAAC;AAEF,MAAM,WAAW,qBACf,SAAQ,OAAO,EACb,IAAI,CACF,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,iBAAiB,CACvD,EACD,IAAI,CAAC,sBAAsB,EAAE,aAAa,CAAC;IAC7C,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuC5B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDlC,CAAC"}
@@ -1,16 +1,25 @@
1
1
  import React from 'react';
2
- import { system } from '@workday/canvas-tokens-web';
2
+ import { brand, system } from '@workday/canvas-tokens-web';
3
3
  import { caretDownSmallIcon, searchIcon } from '@workday/canvas-system-icons-web';
4
4
  import { composeHooks, createElemPropsHook, createSubcomponent, } from '@workday/canvas-kit-react/common';
5
- import { createStencil, handleCsProp } from '@workday/canvas-kit-styling';
6
- import { InputGroup, TextInput } from '@workday/canvas-kit-react/text-input';
5
+ import { createStencil, handleCsProp, px2rem, calc } from '@workday/canvas-kit-styling';
6
+ import { InputGroup, TextInput, textInputStencil } from '@workday/canvas-kit-react/text-input';
7
7
  import { SystemIcon } from '@workday/canvas-kit-react/icon';
8
8
  import { useComboboxInput, useComboboxInputConstrained } from '@workday/canvas-kit-react/combobox';
9
9
  import { useMultiSelectModel } from './useMultiSelectModel';
10
10
  import { MultiSelectedList } from './MultiSelectedList';
11
- export const multiSelectStencil = createStencil({
12
- base: { name: "nhdk26", styles: "box-sizing:border-box;border:1px solid var(--cnvs-sys-color-border-input-default);display:flex;flex-direction:column;background-color:var(--cnvs-sys-color-bg-default);border-radius:var(--cnvs-sys-shape-x1);min-height:var(--cnvs-sys-space-x10);transition:0.2s box-shadow, 0.2s border-color;margin:0;&:hover, &.hover{border-color:var(--cnvs-sys-color-border-input-strong);}&:focus-within{border-color:var(--cnvs-sys-color-border-primary-default);box-shadow:inset 0 0 0 1px var(--cnvs-sys-color-border-primary-default);}& [data-part=\"user-input\"]{font-family:var(--cnvs-sys-font-family-default);font-weight:var(--cnvs-sys-font-weight-normal);line-height:var(--cnvs-sys-line-height-subtext-large);font-size:var(--cnvs-sys-font-size-subtext-large);letter-spacing:var(--cnvs-base-letter-spacing-150);background-color:var(--cnvs-sys-color-bg-transparent);border-radius:var(--cnvs-sys-shape-x1);border:none !important;box-shadow:none !important;outline-width:0px;&:where(:not([aria-autocomplete])){caret-color:transparent;cursor:default;&::selection{background-color:transparent;}}}& :where([data-part=\"form-input\"]){position:absolute;top:var(--cnvs-sys-space-zero);bottom:var(--cnvs-sys-space-zero);left:var(--cnvs-sys-space-zero);right:var(--cnvs-sys-space-zero);opacity:var(--cnvs-sys-opacity-zero);cursor:default;pointer-events:none;}& :where([data-part=\"separator\"]){background-color:var(--cnvs-sys-color-border-divider);height:1px;margin:var(--cnvs-sys-space-zero) var(--cnvs-sys-space-x2);}& :where([data-part=\"list\"]){display:flex;gap:var(--cnvs-sys-space-x2);padding:var(--cnvs-sys-space-x2);flex-wrap:wrap;}" }
13
- }, "multi-select-5f5351");
11
+ export const multiSelectInputStencil = createStencil({
12
+ //@ts-ignore Types don't like defining a variable in `base` and using a variable in a nested selector. One or the other is fine, but not both.
13
+ base: { name: "vfis2b", styles: "box-sizing:border-box;border:1px solid var(--cnvs-sys-color-border-input-default);display:flex;flex-direction:column;background-color:var(--cnvs-sys-color-bg-default);border-radius:var(--cnvs-sys-shape-x1);min-height:var(--cnvs-sys-space-x10);transition:0.2s box-shadow, 0.2s border-color;margin:0;--width-text-input-d81f49:100%;&:hover, &.hover{border-color:var(--cnvs-sys-color-border-input-strong);}&:has(:focus-visible:not([disabled])), &.focus{border-color:var(--cnvs-sys-color-border-primary-default);box-shadow:inset 0 0 0 1px var(--cnvs-sys-color-border-primary-default);}& [data-part=\"user-input\"]{font-family:var(--cnvs-sys-font-family-default);font-weight:var(--cnvs-sys-font-weight-normal);line-height:var(--cnvs-sys-line-height-subtext-large);font-size:var(--cnvs-sys-font-size-subtext-large);letter-spacing:var(--cnvs-base-letter-spacing-150);background-color:var(--cnvs-sys-color-bg-transparent);border-radius:var(--cnvs-sys-shape-x1);&:where([data-part=\"user-input\"], [data-part=\"form-input\"]){height:calc(var(--cnvs-sys-space-x10) - 0.125rem);}border:none !important;box-shadow:none !important;outline-width:0px;&:where(:not([aria-autocomplete])){caret-color:transparent;cursor:default;&::selection{background-color:transparent;}}}&:has(:disabled, .disabled){border-color:var(--cnvs-sys-color-border-input-disabled);color:var(--cnvs-sys-color-text-disabled);}& :where([data-part=\"form-input\"]){position:absolute;top:var(--cnvs-sys-space-zero);bottom:var(--cnvs-sys-space-zero);left:var(--cnvs-sys-space-zero);right:var(--cnvs-sys-space-zero);opacity:var(--cnvs-sys-opacity-zero);cursor:default;pointer-events:none;}& :where([data-part=\"separator\"]){background-color:var(--cnvs-sys-color-border-divider);height:1px;margin:var(--cnvs-sys-space-zero) var(--cnvs-sys-space-x2);}& :where([data-part=\"list\"]){display:flex;gap:var(--cnvs-sys-space-x2);padding:var(--cnvs-sys-space-x2);flex-wrap:wrap;}" },
14
+ modifiers: {
15
+ error: {
16
+ error: { name: "vfis2c", styles: "border-color:var(--cnvs-brand-error-base);box-shadow:inset 0 0 0 0.0625rem var(--cnvs-brand-error-base);&:has(:hover, :disabled, :focus-visible), &:is(.hover, .disabled, .focus){border-color:var(--cnvs-brand-error-base);}&:has(:focus-visible:not([disabled])), &.focus{box-shadow:inset 0 0 0 0.0625rem var(--cnvs-brand-error-base), 0 0 0 2px var(--cnvs-sys-color-border-inverse), 0 0 0 4px var(--cnvs-brand-common-focus-outline);outline-offset:0.125rem;}" },
17
+ alert: { name: "vfis2d", styles: "border-color:var(--cnvs-brand-alert-darkest);box-shadow:inset 0 0 0 0.125rem var(--cnvs-brand-alert-base);&:has(:hover, .hover, :disabled, .disabled, :focus-visible:not([disabled])), .focus:not(:has([disabled])){border-color:var(--cnvs-brand-alert-darkest);}&:has(:focus-visible, .focus):not(:has([disabled])){box-shadow:inset 0 0 0 0.125rem var(--cnvs-brand-alert-base),\n 0 0 0 2px var(--cnvs-sys-color-border-inverse),\n 0 0 0 4px var(--cnvs-brand-common-focus-outline);}outline-offset:0.125rem;" }
18
+ }
19
+ }
20
+ }, "multi-select-input-36ec84");
21
+ /** @deprecated use `multiSelectInputStencil` instead. This will be removed in a future version. */
22
+ export const multiSelectStencil = multiSelectInputStencil;
14
23
  export const useMultiSelectInput = composeHooks(createElemPropsHook(useMultiSelectModel)((model, ref) => {
15
24
  return {
16
25
  onKeyDown(event) {
@@ -38,28 +47,28 @@ export const useMultiSelectInput = composeHooks(createElemPropsHook(useMultiSele
38
47
  export const MultiSelectInput = createSubcomponent(TextInput)({
39
48
  modelHook: useMultiSelectModel,
40
49
  elemPropsHook: useMultiSelectInput,
41
- })(({ className, cs, style, 'aria-labelledby': ariaLabelledBy, removeLabel, formInputProps, ...elemProps }, Element, model) => {
42
- return (React.createElement("div", { ...handleCsProp({ className, cs, style }, multiSelectStencil({})) },
50
+ })(({ className, cs, style, error, 'aria-labelledby': ariaLabelledBy, removeLabel, disabled, formInputProps, ...elemProps }, Element) => {
51
+ return (React.createElement("div", { ...handleCsProp({ className, cs, style }, multiSelectInputStencil({ error })) },
43
52
  React.createElement(InputGroup, null,
44
53
  React.createElement(InputGroup.Input, { "data-part": "form-input", ...formInputProps }),
45
- React.createElement(InputGroup.Input, { "data-part": "user-input", as: Element, "aria-labelledby": ariaLabelledBy, readOnly: true, ...elemProps }),
54
+ React.createElement(InputGroup.Input, { "data-part": "user-input", as: Element, "aria-labelledby": ariaLabelledBy, readOnly: true, disabled: disabled, error: error, ...elemProps }),
46
55
  React.createElement(InputGroup.InnerEnd, { pointerEvents: "none" },
47
56
  React.createElement(SystemIcon, { icon: caretDownSmallIcon }))),
48
- React.createElement(MultiSelectedList, { removeLabel: removeLabel })));
57
+ React.createElement(MultiSelectedList, { disabled: disabled, removeLabel: removeLabel })));
49
58
  });
50
59
  export const MultiSelectSearchInput = createSubcomponent(TextInput)({
51
60
  modelHook: useMultiSelectModel,
52
61
  elemPropsHook: useMultiSelectInput,
53
- })(({ className, cs, style, 'aria-labelledby': ariaLabelledBy, removeLabel, formInputProps, ref, ...elemProps }, Element, model) => {
54
- return (React.createElement("div", { ...handleCsProp({ className, cs, style }, multiSelectStencil({})) },
62
+ })(({ className, cs, style, 'aria-labelledby': ariaLabelledBy, removeLabel, formInputProps, ref, disabled, error, ...elemProps }, Element) => {
63
+ return (React.createElement("div", { ...handleCsProp({ className, cs, style }, multiSelectInputStencil({})) },
55
64
  React.createElement(InputGroup, null,
56
65
  React.createElement(InputGroup.InnerStart, { pointerEvents: "none", width: system.space.x8 },
57
66
  React.createElement(SystemIcon, { icon: searchIcon, size: system.space.x4 })),
58
67
  React.createElement(InputGroup.Input, { "data-part": "form-input", placeholder: null, ...formInputProps }),
59
- React.createElement(InputGroup.Input, { "data-part": "user-input", as: Element, "aria-labelledby": ariaLabelledBy, ...elemProps }),
68
+ React.createElement(InputGroup.Input, { "data-part": "user-input", as: Element, "aria-labelledby": ariaLabelledBy, disabled: disabled, error: error, ...elemProps }),
60
69
  React.createElement(InputGroup.InnerEnd, { width: system.space.x4 },
61
70
  React.createElement(InputGroup.ClearButton, null)),
62
71
  React.createElement(InputGroup.InnerEnd, { pointerEvents: "none" },
63
72
  React.createElement(SystemIcon, { icon: caretDownSmallIcon }))),
64
- React.createElement(MultiSelectedList, { removeLabel: removeLabel })));
73
+ React.createElement(MultiSelectedList, { removeLabel: removeLabel, disabled: disabled })));
65
74
  });
@@ -1,5 +1,9 @@
1
1
  import React from 'react';
2
2
  export interface MultiSelectedItemProps {
3
+ /**
4
+ * Disabled on the `Pill` component.
5
+ */
6
+ disabled?: boolean;
3
7
  /**
4
8
  * Remove label on a MultiSelectedItem. In English, the label may be "Remove" and the screen
5
9
  * reader will read out "Remove {option}".
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectedItem.d.ts","sourceRoot":"","sources":["../../../../multi-select/lib/MultiSelectedItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iIAShC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU5B,CAAC"}
1
+ {"version":3,"file":"MultiSelectedItem.d.ts","sourceRoot":"","sources":["../../../../multi-select/lib/MultiSelectedItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iIAShC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU5B,CAAC"}
@@ -12,8 +12,8 @@ export const useMultiSelectedItem = composeHooks(createElemPropsHook(useMultiSel
12
12
  export const MultiSelectedItem = createSubcomponent('span')({
13
13
  modelHook: useMultiSelectModel,
14
14
  elemPropsHook: useMultiSelectedItem,
15
- })(({ children, removeLabel, ref, ...elemProps }, Element) => {
16
- return (React.createElement(Pill, { as: Element, variant: "removable" },
15
+ })(({ children, removeLabel, disabled, ref, ...elemProps }, Element) => {
16
+ return (React.createElement(Pill, { as: Element, disabled: disabled, variant: "removable" },
17
17
  children,
18
18
  React.createElement(Pill.IconButton, { "aria-label": removeLabel, ref: ref, ...elemProps })));
19
19
  });
@@ -1,6 +1,11 @@
1
1
  import React from 'react';
2
2
  import { MultiSelectedItemProps } from './MultiSelectedItem';
3
3
  export interface MultiSelectedListProps extends MultiSelectedItemProps, React.HTMLAttributes<HTMLDivElement> {
4
+ /**
5
+ * Disabled is forwarded to the MultiSelectedItem component to make sure each item is also
6
+ * disabled.
7
+ */
8
+ disabled?: boolean;
4
9
  }
5
10
  export declare const MultiSelectedList: import("@workday/canvas-kit-react/common").ElementComponentM<"div", MultiSelectedListProps, {
6
11
  state: {
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectedList.d.ts","sourceRoot":"","sources":["../../../../multi-select/lib/MultiSelectedList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAoB,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAE9E,MAAM,WAAW,sBACf,SAAQ,sBAAsB,EAC5B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAE3C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB5B,CAAC"}
1
+ {"version":3,"file":"MultiSelectedList.d.ts","sourceRoot":"","sources":["../../../../multi-select/lib/MultiSelectedList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAoB,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAE9E,MAAM,WAAW,sBACf,SAAQ,sBAAsB,EAC5B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuB7B,CAAC"}
@@ -5,8 +5,8 @@ import { useMultiSelectModel } from './useMultiSelectModel';
5
5
  import { MultiSelectedItem } from './MultiSelectedItem';
6
6
  export const MultiSelectedList = createSubcomponent('div')({
7
7
  modelHook: useMultiSelectModel,
8
- })(({ 'aria-labelledby': ariaLabelledBy, removeLabel }, Element, model) => {
8
+ })(({ 'aria-labelledby': ariaLabelledBy, disabled, removeLabel }, Element, model) => {
9
9
  return model.selected.state.items.length ? (React.createElement(React.Fragment, null,
10
10
  React.createElement("div", { "data-part": "separator" }),
11
- React.createElement(ListBox, { model: model.selected, as: Element, role: "listbox", "aria-orientation": "horizontal", "aria-labelledby": ariaLabelledBy }, item => React.createElement(MultiSelectedItem, { removeLabel: removeLabel }, item.textValue)))) : null;
11
+ React.createElement(ListBox, { model: model.selected, as: Element, role: "listbox", "aria-orientation": "horizontal", "aria-labelledby": ariaLabelledBy }, item => (React.createElement(MultiSelectedItem, { disabled: disabled, removeLabel: removeLabel }, item.textValue))))) : null;
12
12
  });
@@ -10,11 +10,11 @@ import { brand, system } from '@workday/canvas-tokens-web';
10
10
  * Styles for RadioGroup
11
11
  */
12
12
  const radioGroupStencil = createStencil({
13
- base: { name: "nhdkw", styles: "box-sizing:border-box;display:flex;flex-direction:column;border-radius:var(--cnvs-sys-shape-x1);gap:var(--cnvs-sys-space-x2);padding:0.625rem var(--cnvs-sys-space-x3) var(--cnvs-sys-space-x2);margin:0 calc(var(--cnvs-sys-space-x3) * -1);transition:100ms box-shadow;width:fit-content;" },
13
+ base: { name: "vfisw", styles: "box-sizing:border-box;display:flex;flex-direction:column;border-radius:var(--cnvs-sys-shape-x1);gap:var(--cnvs-sys-space-x2);padding:0.625rem var(--cnvs-sys-space-x3) var(--cnvs-sys-space-x2);margin:0 calc(var(--cnvs-sys-space-x3) * -1);transition:100ms box-shadow;width:fit-content;" },
14
14
  modifiers: {
15
15
  error: {
16
- error: { name: "nhdkx", styles: "box-shadow:inset 0 0 0 0.125rem var(--cnvs-brand-error-base);" },
17
- alert: { name: "nhdky", styles: "box-shadow:inset 0 0 0 0.0625rem var(--cnvs-brand-alert-darkest), inset 0 0 0 0.1875rem var(--cnvs-brand-alert-base);" }
16
+ error: { name: "vfisx", styles: "box-shadow:inset 0 0 0 0.125rem var(--cnvs-brand-error-base);" },
17
+ alert: { name: "vfisy", styles: "box-shadow:inset 0 0 0 0.0625rem var(--cnvs-brand-alert-darkest), inset 0 0 0 0.1875rem var(--cnvs-brand-alert-base);" }
18
18
  }
19
19
  }
20
20
  }, "radio-group-ce2b62");
@@ -7,7 +7,7 @@ import { RadioText } from './RadioText';
7
7
  import { createStencil } from '@workday/canvas-kit-styling';
8
8
  import { system } from '@workday/canvas-tokens-web';
9
9
  const radioLabelStencil = createStencil({
10
- base: { name: "nhdkv", styles: "box-sizing:border-box;align-items:flex-start;min-height:var(--cnvs-sys-space-x6);position:relative;gap:var(--cnvs-sys-space-x3);" }
10
+ base: { name: "vfisv", styles: "box-sizing:border-box;align-items:flex-start;min-height:var(--cnvs-sys-space-x6);position:relative;gap:var(--cnvs-sys-space-x3);" }
11
11
  }, "radio-label-0cca27");
12
12
  export const RadioLabelContext = React.createContext({});
13
13
  export const RadioLabel = createSubcomponent('label')({
@@ -8,19 +8,19 @@ import { system } from '@workday/canvas-tokens-web';
8
8
  import { mergeStyles } from '@workday/canvas-kit-react/layout';
9
9
  const radioTextStencil = createStencil({
10
10
  extends: textStencil,
11
- base: { name: "nhdkr", styles: "box-sizing:border-box;cursor:pointer;" },
11
+ base: { name: "vfisr", styles: "box-sizing:border-box;cursor:pointer;" },
12
12
  modifiers: {
13
13
  variant: {
14
- inverse: { name: "nhdks", styles: "color:var(--cnvs-sys-color-text-inverse);" }
14
+ inverse: { name: "vfiss", styles: "color:var(--cnvs-sys-color-text-inverse);" }
15
15
  },
16
16
  disabled: {
17
- true: { name: "nhdkt", styles: "cursor:default;color:var(--cnvs-sys-color-text-disabled);" }
17
+ true: { name: "vfist", styles: "cursor:default;color:var(--cnvs-sys-color-text-disabled);" }
18
18
  }
19
19
  },
20
20
  compound: [
21
21
  {
22
22
  modifiers: { variant: 'inverse', disabled: true },
23
- styles: { name: "nhdku", styles: "color:var(--cnvs-sys-color-text-inverse);opacity:var(--cnvs-sys-opacity-disabled);" }
23
+ styles: { name: "vfisu", styles: "color:var(--cnvs-sys-color-text-inverse);opacity:var(--cnvs-sys-opacity-disabled);" }
24
24
  }
25
25
  ],
26
26
  defaultModifiers: {
@@ -7,10 +7,10 @@ import { RadioLabelContext } from './RadioLabel';
7
7
  const radioWidth = 18;
8
8
  const radioHeight = 18;
9
9
  const radioInputStencil = createStencil({
10
- base: { name: "nhdk6", styles: "box-sizing:border-box;cursor:pointer;height:1.125rem;width:1.125rem;border-radius:var(--cnvs-sys-shape-round);position:absolute;margin:var(--cnvs-sys-space-zero);&:focus-visible, &.focus, &:active{outline:transparent;}&:disabled, &.disabled{cursor:auto;+ .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-input-disabled);background-color:var(--cnvs-sys-color-bg-alt-softer);}&:hover + .cnvs-radio-check, &.hover + .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-input-disabled);}&:checked + .cnvs-radio-check, &.checked + .cnvs-radio-check{background-color:var(--cnvs-brand-primary-accent);border:0.3125rem solid var(--cnvs-brand-primary-base);}}+ .cnvs-radio-check{display:flex;flex-direction:column;align-items:center;background-color:var(--cnvs-sys-color-bg-default);border-radius:var(--cnvs-sys-shape-round);box-sizing:border-box;border:0.0625rem solid var(--cnvs-sys-color-border-input-default);height:1.125rem;width:1.125rem;justify-content:center;pointer-events:none;position:absolute;transition:border 200ms ease, background 200ms;opacity:var(--cnvs-sys-opacity-full);}&:hover + .cnvs-radio-check, &.hover + .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-input-strong);}&:focus-visible + .cnvs-radio-check, &.focus + .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-primary-default);box-shadow:0 0 0 0px var(--cnvs-sys-color-border-inverse), 0 0 0 1px var(--cnvs-brand-common-focus-outline);}&:focus-visible:hover + .cnvs-radio-check, &.focus:hover + .cnvs-radio-check{outline:transparent;}&:checked + .cnvs-radio-check, &.checked + .cnvs-radio-check{background-color:var(--cnvs-brand-primary-accent);border:0.3125rem solid var(--cnvs-brand-primary-base);}&:focus-visible:checked + .cnvs-radio-check, &:focus-visible:hover:checked + .cnvs-radio-check, &.focus:checked + .cnvs-radio-check, &.focus:hover:checked + .cnvs-radio-check{outline:transparent;box-shadow:0 0 0 2px var(--cnvs-sys-color-border-inverse), 0 0 0 4px var(--cnvs-brand-common-focus-outline);}" },
10
+ base: { name: "vfis6", styles: "box-sizing:border-box;cursor:pointer;height:1.125rem;width:1.125rem;border-radius:var(--cnvs-sys-shape-round);position:absolute;margin:var(--cnvs-sys-space-zero);&:focus-visible, &.focus, &:active{outline:transparent;}&:disabled, &.disabled{cursor:auto;+ .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-input-disabled);background-color:var(--cnvs-sys-color-bg-alt-softer);}&:hover + .cnvs-radio-check, &.hover + .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-input-disabled);}&:checked + .cnvs-radio-check, &.checked + .cnvs-radio-check{background-color:var(--cnvs-brand-primary-accent);border:0.3125rem solid var(--cnvs-brand-primary-base);}}+ .cnvs-radio-check{display:flex;flex-direction:column;align-items:center;background-color:var(--cnvs-sys-color-bg-default);border-radius:var(--cnvs-sys-shape-round);box-sizing:border-box;border:0.0625rem solid var(--cnvs-sys-color-border-input-default);height:1.125rem;width:1.125rem;justify-content:center;pointer-events:none;position:absolute;transition:border 200ms ease, background 200ms;opacity:var(--cnvs-sys-opacity-full);}&:hover + .cnvs-radio-check, &.hover + .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-input-strong);}&:focus-visible + .cnvs-radio-check, &.focus + .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-primary-default);box-shadow:0 0 0 0px var(--cnvs-sys-color-border-inverse), 0 0 0 1px var(--cnvs-brand-common-focus-outline);}&:focus-visible:hover + .cnvs-radio-check, &.focus:hover + .cnvs-radio-check{outline:transparent;}&:checked + .cnvs-radio-check, &.checked + .cnvs-radio-check{background-color:var(--cnvs-brand-primary-accent);border:0.3125rem solid var(--cnvs-brand-primary-base);}&:focus-visible:checked + .cnvs-radio-check, &:focus-visible:hover:checked + .cnvs-radio-check, &.focus:checked + .cnvs-radio-check, &.focus:hover:checked + .cnvs-radio-check{outline:transparent;box-shadow:0 0 0 2px var(--cnvs-sys-color-border-inverse), 0 0 0 4px var(--cnvs-brand-common-focus-outline);}" },
11
11
  modifiers: {
12
12
  variant: {
13
- inverse: { name: "nhdk7", styles: "+ .cnvs-radio-check{background-color:var(--cnvs-sys-color-bg-alt-softer);border-color:var(--cnvs-sys-color-border-input-inverse);}&:disabled, &.disabled{opacity:var(--cnvs-sys-opacity-disabled);+ .cnvs-radio-check{background-color:var(--cnvs-sys-color-bg-alt-softer);border-color:var(--cnvs-sys-color-border-input-disabled);opacity:var(--cnvs-sys-opacity-disabled);}&:checked + .cnvs-radio-check, &.checked + .cnvs-radio-check{background-color:var(--cnvs-brand-primary-base);border-color:var(--cnvs-sys-color-border-inverse);}}&:hover + .cnvs-radio-check, &.hover + .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-input-inverse);}&:focus-visible + .cnvs-radio-check, &.focus + .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-input-inverse);}&:checked + .cnvs-radio-check, &.checked + .cnvs-radio-check{background-color:var(--cnvs-brand-primary-base);border-color:var(--cnvs-sys-color-border-inverse);}&:focus-visible + .cnvs-radio-check, &:focus-visible:hover + .cnvs-radio-check, &.focus + .cnvs-radio-check, &.focus:hover + .cnvs-radio-check{box-shadow:0 0 0 0px var(--cnvs-sys-color-border-contrast-default), 0 0 0 2px var(--cnvs-sys-color-border-inverse);}&:focus-visible:checked + .cnvs-radio-check, &:focus-visible:hover:checked + .cnvs-radio-check, &.focus:checked + .cnvs-radio-check, &.focus:hover:checked + .cnvs-radio-check{box-shadow:0 0 0 2px var(--cnvs-sys-color-border-contrast-default), 0 0 0 4px var(--cnvs-sys-color-border-inverse);}" }
13
+ inverse: { name: "vfis7", styles: "+ .cnvs-radio-check{background-color:var(--cnvs-sys-color-bg-alt-softer);border-color:var(--cnvs-sys-color-border-input-inverse);}&:disabled, &.disabled{opacity:var(--cnvs-sys-opacity-disabled);+ .cnvs-radio-check{background-color:var(--cnvs-sys-color-bg-alt-softer);border-color:var(--cnvs-sys-color-border-input-disabled);opacity:var(--cnvs-sys-opacity-disabled);}&:checked + .cnvs-radio-check, &.checked + .cnvs-radio-check{background-color:var(--cnvs-brand-primary-base);border-color:var(--cnvs-sys-color-border-inverse);}}&:hover + .cnvs-radio-check, &.hover + .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-input-inverse);}&:focus-visible + .cnvs-radio-check, &.focus + .cnvs-radio-check{border-color:var(--cnvs-sys-color-border-input-inverse);}&:checked + .cnvs-radio-check, &.checked + .cnvs-radio-check{background-color:var(--cnvs-brand-primary-base);border-color:var(--cnvs-sys-color-border-inverse);}&:focus-visible + .cnvs-radio-check, &:focus-visible:hover + .cnvs-radio-check, &.focus + .cnvs-radio-check, &.focus:hover + .cnvs-radio-check{box-shadow:0 0 0 0px var(--cnvs-sys-color-border-contrast-default), 0 0 0 2px var(--cnvs-sys-color-border-inverse);}&:focus-visible:checked + .cnvs-radio-check, &:focus-visible:hover:checked + .cnvs-radio-check, &.focus:checked + .cnvs-radio-check, &.focus:hover:checked + .cnvs-radio-check{box-shadow:0 0 0 2px var(--cnvs-sys-color-border-contrast-default), 0 0 0 4px var(--cnvs-sys-color-border-inverse);}" }
14
14
  }
15
15
  }
16
16
  }, "radio-input-f05aaa");
@@ -21,13 +21,13 @@ const StyledRadioInput = createComponent('input')({
21
21
  },
22
22
  });
23
23
  const radioInputWrapperStyles = createStencil({
24
- base: { name: "nhdk8", styles: "box-sizing:border-box;height:1.125rem;width:1.125rem;flex:0 0 auto;::before{content:'';position:absolute;border-radius:var(--cnvs-sys-shape-round);height:1.125rem;transition:box-shadow 150ms ease-out;width:1.125rem;pointer-events:none;opacity:var(--cnvs-sys-opacity-full);}&:hover:before, &.hover:before{box-shadow:0 0 0 calc(var(--cnvs-sys-space-x2) - 0.0625rem) var(--cnvs-sys-color-bg-alt-soft);}" },
24
+ base: { name: "vfis8", styles: "box-sizing:border-box;height:1.125rem;width:1.125rem;flex:0 0 auto;::before{content:'';position:absolute;border-radius:var(--cnvs-sys-shape-round);height:1.125rem;transition:box-shadow 150ms ease-out;width:1.125rem;pointer-events:none;opacity:var(--cnvs-sys-opacity-full);}&:hover:before, &.hover:before{box-shadow:0 0 0 calc(var(--cnvs-sys-space-x2) - 0.0625rem) var(--cnvs-sys-color-bg-alt-soft);}" },
25
25
  modifiers: {
26
26
  variant: {
27
- inverse: { name: "nhdk9", styles: "::before{opacity:var(--cnvs-sys-opacity-disabled);}" }
27
+ inverse: { name: "vfis9", styles: "::before{opacity:var(--cnvs-sys-opacity-disabled);}" }
28
28
  },
29
29
  disabled: {
30
- true: { name: "nhdka", styles: "&:hover:before, &.hover:before{box-shadow:none;cursor:auto;}" }
30
+ true: { name: "vfisa", styles: "&:hover:before, &.hover:before{box-shadow:none;cursor:auto;}" }
31
31
  }
32
32
  }
33
33
  }, "radio-input-wrapper-styles-fce2c4");
@@ -7,31 +7,31 @@ import { systemIconStencil } from '@workday/canvas-kit-react/icon';
7
7
  import { StatusIndicatorIcon } from './StatusIndicatorIcon';
8
8
  import { StatusIndicatorLabel } from './StatusIndicatorLabel';
9
9
  const statusIndicatorStencil = createStencil({
10
- base: { name: "nhdk1g", styles: "box-sizing:border-box;display:inline-flex;gap:var(--cnvs-sys-space-x1);max-width:12.5rem;align-items:center;border-radius:var(--cnvs-sys-shape-half);height:1.25rem;padding:var(--cnvs-sys-space-zero) var(--cnvs-sys-space-x1);outline:0.0625rem solid transparent;" },
10
+ base: { name: "vfis1g", styles: "box-sizing:border-box;display:inline-flex;gap:var(--cnvs-sys-space-x1);max-width:12.5rem;align-items:center;border-radius:var(--cnvs-sys-shape-half);height:1.25rem;padding:var(--cnvs-sys-space-zero) var(--cnvs-sys-space-x1);outline:0.0625rem solid transparent;" },
11
11
  modifiers: {
12
12
  gray: {
13
- high: { name: "nhdk1k", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-static-gray-default);" },
14
- low: { name: "nhdk1l", styles: "color:var(--cnvs-sys-color-static-gray-strong);--color-system-icon-212f69:var(--cnvs-sys-color-static-gray-strong);background:var(--cnvs-sys-color-static-gray-soft);" }
13
+ high: { name: "vfis1k", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-static-gray-default);" },
14
+ low: { name: "vfis1l", styles: "color:var(--cnvs-sys-color-static-gray-strong);--color-system-icon-212f69:var(--cnvs-sys-color-static-gray-strong);background:var(--cnvs-sys-color-static-gray-soft);" }
15
15
  },
16
16
  orange: {
17
- high: { name: "nhdk1m", styles: "color:var(--cnvs-sys-color-static-gray-stronger);--color-system-icon-212f69:var(--cnvs-sys-color-static-gray-stronger);background:var(--cnvs-sys-color-static-orange-default);" },
18
- low: { name: "nhdk1n", styles: "color:var(--cnvs-sys-color-static-gold-stronger);--color-system-icon-212f69:var(--cnvs-sys-color-static-gold-stronger);background:var(--cnvs-sys-color-static-orange-soft);" }
17
+ high: { name: "vfis1m", styles: "color:var(--cnvs-sys-color-static-gray-stronger);--color-system-icon-212f69:var(--cnvs-sys-color-static-gray-stronger);background:var(--cnvs-sys-color-static-orange-default);" },
18
+ low: { name: "vfis1n", styles: "color:var(--cnvs-sys-color-static-gold-stronger);--color-system-icon-212f69:var(--cnvs-sys-color-static-gold-stronger);background:var(--cnvs-sys-color-static-orange-soft);" }
19
19
  },
20
20
  blue: {
21
- high: { name: "nhdk1o", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-static-blue-default);" },
22
- low: { name: "nhdk1p", styles: "color:var(--cnvs-sys-color-static-blue-strong);--color-system-icon-212f69:var(--cnvs-sys-color-static-blue-strong);background:var(--cnvs-sys-color-static-blue-soft);" }
21
+ high: { name: "vfis1o", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-static-blue-default);" },
22
+ low: { name: "vfis1p", styles: "color:var(--cnvs-sys-color-static-blue-strong);--color-system-icon-212f69:var(--cnvs-sys-color-static-blue-strong);background:var(--cnvs-sys-color-static-blue-soft);" }
23
23
  },
24
24
  green: {
25
- high: { name: "nhdk1q", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-static-green-strong);" },
26
- low: { name: "nhdk1r", styles: "color:var(--cnvs-sys-color-static-green-strong);--color-system-icon-212f69:var(--cnvs-sys-color-static-green-strong);background:var(--cnvs-sys-color-static-green-soft);" }
25
+ high: { name: "vfis1q", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-static-green-strong);" },
26
+ low: { name: "vfis1r", styles: "color:var(--cnvs-sys-color-static-green-strong);--color-system-icon-212f69:var(--cnvs-sys-color-static-green-strong);background:var(--cnvs-sys-color-static-green-soft);" }
27
27
  },
28
28
  red: {
29
- high: { name: "nhdk1s", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-static-red-default);" },
30
- low: { name: "nhdk1t", styles: "color:var(--cnvs-sys-color-static-red-strong);--color-system-icon-212f69:var(--cnvs-sys-color-static-red-strong);background:var(--cnvs-sys-color-static-red-soft);" }
29
+ high: { name: "vfis1s", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-static-red-default);" },
30
+ low: { name: "vfis1t", styles: "color:var(--cnvs-sys-color-static-red-strong);--color-system-icon-212f69:var(--cnvs-sys-color-static-red-strong);background:var(--cnvs-sys-color-static-red-soft);" }
31
31
  },
32
32
  transparent: {
33
- high: { name: "nhdk1u", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-bg-translucent);" },
34
- low: { name: "nhdk1v", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-bg-translucent);" }
33
+ high: { name: "vfis1u", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-bg-translucent);" },
34
+ low: { name: "vfis1v", styles: "color:var(--cnvs-sys-color-static-white);--color-system-icon-212f69:var(--cnvs-sys-color-static-white);background:var(--cnvs-sys-color-bg-translucent);" }
35
35
  }
36
36
  }
37
37
  }, "status-indicator-1a565e");
@@ -6,7 +6,7 @@ import { mergeStyles } from '@workday/canvas-kit-react/layout';
6
6
  import { system } from '@workday/canvas-tokens-web';
7
7
  const statusIndicatorLabelStencil = createStencil({
8
8
  extends: textStencil,
9
- base: { name: "nhdk1f", styles: "box-sizing:border-box;font-weight:var(--cnvs-sys-font-weight-bold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize;color:inherit;" },
9
+ base: { name: "vfis1f", styles: "box-sizing:border-box;font-weight:var(--cnvs-sys-font-weight-bold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize;color:inherit;" },
10
10
  defaultModifiers: { typeLevel: 'subtext.large' }
11
11
  }, "status-indicator-label-fbd39a");
12
12
  export const StatusIndicatorLabel = createComponent('span')({
@@ -1,15 +1,16 @@
1
1
  import React from 'react';
2
2
 
3
- import {system} from '@workday/canvas-tokens-web';
3
+ import {brand, system} from '@workday/canvas-tokens-web';
4
4
  import {caretDownSmallIcon, searchIcon} from '@workday/canvas-system-icons-web';
5
5
 
6
6
  import {
7
+ ErrorType,
7
8
  composeHooks,
8
9
  createElemPropsHook,
9
10
  createSubcomponent,
10
11
  } from '@workday/canvas-kit-react/common';
11
- import {createStencil, CSProps, handleCsProp} from '@workday/canvas-kit-styling';
12
- import {InputGroup, TextInput} from '@workday/canvas-kit-react/text-input';
12
+ import {createStencil, CSProps, handleCsProp, px2rem, calc} from '@workday/canvas-kit-styling';
13
+ import {InputGroup, TextInput, textInputStencil} from '@workday/canvas-kit-react/text-input';
13
14
  import {SystemIcon} from '@workday/canvas-kit-react/icon';
14
15
  import {useComboboxInput, useComboboxInputConstrained} from '@workday/canvas-kit-react/combobox';
15
16
 
@@ -17,7 +18,8 @@ import {useMultiSelectModel} from './useMultiSelectModel';
17
18
  import {MultiSelectedItemProps} from './MultiSelectedItem';
18
19
  import {MultiSelectedList} from './MultiSelectedList';
19
20
 
20
- export const multiSelectStencil = createStencil({
21
+ export const multiSelectInputStencil = createStencil({
22
+ //@ts-ignore Types don't like defining a variable in `base` and using a variable in a nested selector. One or the other is fine, but not both.
21
23
  base: {
22
24
  border: `1px solid ${system.color.border.input.default}`,
23
25
  display: 'flex',
@@ -28,12 +30,13 @@ export const multiSelectStencil = createStencil({
28
30
  minHeight: system.space.x10,
29
31
  transition: '0.2s box-shadow, 0.2s border-color',
30
32
  margin: 0, // Fix Safari
33
+ [textInputStencil.vars.width]: '100%',
31
34
 
32
35
  '&:hover, &.hover': {
33
36
  borderColor: system.color.border.input.strong,
34
37
  },
35
38
 
36
- '&:focus-within': {
39
+ '&:has(:focus-visible:not([disabled])), &.focus': {
37
40
  borderColor: system.color.border.primary.default,
38
41
  boxShadow: `inset 0 0 0 1px ${system.color.border.primary.default}`,
39
42
  },
@@ -44,6 +47,12 @@ export const multiSelectStencil = createStencil({
44
47
  backgroundColor: system.color.bg.transparent,
45
48
  borderRadius: system.shape.x1,
46
49
 
50
+ // collapse the height of the input by the border width so that an empty multi-select
51
+ // is the same height as a `TextInput`
52
+ '&:where([data-part="user-input"], [data-part="form-input"])': {
53
+ height: calc.subtract(system.space.x10, px2rem(2)),
54
+ },
55
+
47
56
  // Remove the focus ring - it is handled at the container level
48
57
  border: 'none !important',
49
58
  boxShadow: 'none !important',
@@ -58,6 +67,11 @@ export const multiSelectStencil = createStencil({
58
67
  },
59
68
  },
60
69
 
70
+ '&:has(:disabled, .disabled)': {
71
+ borderColor: system.color.border.input.disabled,
72
+ color: system.color.text.disabled,
73
+ },
74
+
61
75
  '& :where([data-part="form-input"])': {
62
76
  position: 'absolute',
63
77
  top: system.space.zero,
@@ -82,8 +96,43 @@ export const multiSelectStencil = createStencil({
82
96
  flexWrap: 'wrap',
83
97
  },
84
98
  },
99
+ modifiers: {
100
+ error: {
101
+ error: {
102
+ borderColor: brand.error.base,
103
+ boxShadow: `inset 0 0 0 ${px2rem(1)} ${brand.error.base}`,
104
+ '&:has(:hover, :disabled, :focus-visible), &:is(.hover, .disabled, .focus)': {
105
+ borderColor: brand.error.base,
106
+ },
107
+ '&:has(:focus-visible:not([disabled])), &.focus': {
108
+ boxShadow: `inset 0 0 0 ${px2rem(1)} ${brand.error.base}, 0 0 0 2px ${
109
+ system.color.border.inverse
110
+ }, 0 0 0 4px ${brand.common.focusOutline}`,
111
+ outlineOffset: px2rem(2),
112
+ },
113
+ },
114
+ alert: {
115
+ borderColor: brand.alert.darkest,
116
+ boxShadow: `inset 0 0 0 ${px2rem(2)} ${brand.alert.base}`,
117
+ '&:has(:hover, .hover, :disabled, .disabled, :focus-visible:not([disabled])), .focus:not(:has([disabled]))':
118
+ {
119
+ borderColor: brand.alert.darkest,
120
+ },
121
+
122
+ '&:has(:focus-visible, .focus):not(:has([disabled]))': {
123
+ boxShadow: `inset 0 0 0 ${px2rem(2)} ${brand.alert.base},
124
+ 0 0 0 2px ${system.color.border.inverse},
125
+ 0 0 0 4px ${brand.common.focusOutline}`,
126
+ },
127
+ outlineOffset: px2rem(2),
128
+ },
129
+ },
130
+ },
85
131
  });
86
132
 
133
+ /** @deprecated use `multiSelectInputStencil` instead. This will be removed in a future version. */
134
+ export const multiSelectStencil = multiSelectInputStencil;
135
+
87
136
  export const useMultiSelectInput = composeHooks(
88
137
  createElemPropsHook(useMultiSelectModel)((model, ref) => {
89
138
  return {
@@ -122,7 +171,9 @@ export interface MultiSelectInputProps
122
171
  React.InputHTMLAttributes<HTMLInputElement>,
123
172
  'disabled' | 'className' | 'style' | 'aria-labelledby'
124
173
  >,
125
- Pick<MultiSelectedItemProps, 'removeLabel'> {}
174
+ Pick<MultiSelectedItemProps, 'removeLabel'> {
175
+ error?: ErrorType;
176
+ }
126
177
 
127
178
  export const MultiSelectInput = createSubcomponent(TextInput)({
128
179
  modelHook: useMultiSelectModel,
@@ -133,16 +184,17 @@ export const MultiSelectInput = createSubcomponent(TextInput)({
133
184
  className,
134
185
  cs,
135
186
  style,
187
+ error,
136
188
  'aria-labelledby': ariaLabelledBy,
137
189
  removeLabel,
190
+ disabled,
138
191
  formInputProps,
139
192
  ...elemProps
140
193
  },
141
- Element,
142
- model
194
+ Element
143
195
  ) => {
144
196
  return (
145
- <div {...handleCsProp({className, cs, style}, multiSelectStencil({}))}>
197
+ <div {...handleCsProp({className, cs, style}, multiSelectInputStencil({error}))}>
146
198
  <InputGroup>
147
199
  <InputGroup.Input data-part="form-input" {...formInputProps} />
148
200
  <InputGroup.Input
@@ -150,13 +202,15 @@ export const MultiSelectInput = createSubcomponent(TextInput)({
150
202
  as={Element}
151
203
  aria-labelledby={ariaLabelledBy}
152
204
  readOnly
205
+ disabled={disabled}
206
+ error={error}
153
207
  {...elemProps}
154
208
  />
155
209
  <InputGroup.InnerEnd pointerEvents="none">
156
210
  <SystemIcon icon={caretDownSmallIcon} />
157
211
  </InputGroup.InnerEnd>
158
212
  </InputGroup>
159
- <MultiSelectedList removeLabel={removeLabel} />
213
+ <MultiSelectedList disabled={disabled} removeLabel={removeLabel} />
160
214
  </div>
161
215
  );
162
216
  }
@@ -175,13 +229,14 @@ export const MultiSelectSearchInput = createSubcomponent(TextInput)({
175
229
  removeLabel,
176
230
  formInputProps,
177
231
  ref,
232
+ disabled,
233
+ error,
178
234
  ...elemProps
179
235
  },
180
- Element,
181
- model
236
+ Element
182
237
  ) => {
183
238
  return (
184
- <div {...handleCsProp({className, cs, style}, multiSelectStencil({}))}>
239
+ <div {...handleCsProp({className, cs, style}, multiSelectInputStencil({}))}>
185
240
  <InputGroup>
186
241
  <InputGroup.InnerStart pointerEvents="none" width={system.space.x8}>
187
242
  <SystemIcon icon={searchIcon} size={system.space.x4} />
@@ -195,6 +250,8 @@ export const MultiSelectSearchInput = createSubcomponent(TextInput)({
195
250
  data-part="user-input"
196
251
  as={Element}
197
252
  aria-labelledby={ariaLabelledBy}
253
+ disabled={disabled}
254
+ error={error}
198
255
  {...elemProps}
199
256
  />
200
257
  <InputGroup.InnerEnd width={system.space.x4}>
@@ -204,7 +261,7 @@ export const MultiSelectSearchInput = createSubcomponent(TextInput)({
204
261
  <SystemIcon icon={caretDownSmallIcon} />
205
262
  </InputGroup.InnerEnd>
206
263
  </InputGroup>
207
- <MultiSelectedList removeLabel={removeLabel} />
264
+ <MultiSelectedList removeLabel={removeLabel} disabled={disabled} />
208
265
  </div>
209
266
  );
210
267
  }