@workday/canvas-kit-docs 12.3.7 → 12.4.0-1019-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -138158,7 +138158,9 @@ export const docs = (typeof window !== 'undefined' && window.__docs) ||
138158
138158
  "filePath": "/home/runner/work/canvas-kit/canvas-kit/modules/react/common/lib/styles/hideMouseFocus.ts"
138159
138159
  }
138160
138160
  ],
138161
- "tags": {},
138161
+ "tags": {
138162
+ "deprecated": "`hideMouseFocus` is deprecated and will be removed in a future major version. Please use [`focus-visible`](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible) when applying focus styles to elements."
138163
+ },
138162
138164
  "type": {
138163
138165
  "kind": "symbol",
138164
138166
  "name": "CSSProperties",
@@ -138168,14 +138170,16 @@ export const docs = (typeof window !== 'undefined' && window.__docs) ||
138168
138170
  {
138169
138171
  "name": "mouseFocusBehavior",
138170
138172
  "fileName": "/home/runner/work/canvas-kit/canvas-kit/modules/react/common/lib/styles/hideMouseFocus.ts",
138171
- "description": "",
138173
+ "description": "A utility that simplifies focus selectors since you can't use nested syntax for some reason. Example:\n[`[data-whatinput=\"mouse\"],\n [data-whatinput=\"touch\"],\n [data-whatinput=\"pointer\"]: {\n '& .my-selector': {\n ...\n }\n},",
138172
138174
  "declarations": [
138173
138175
  {
138174
138176
  "name": "mouseFocusBehavior",
138175
138177
  "filePath": "/home/runner/work/canvas-kit/canvas-kit/modules/react/common/lib/styles/hideMouseFocus.ts"
138176
138178
  }
138177
138179
  ],
138178
- "tags": {},
138180
+ "tags": {
138181
+ "deprecated": "`mouseFocusBehavior` is deprecated and will be removed in a future major version. Please use [`focus-visible`](https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible) when applying focus styles to elements."
138182
+ },
138179
138183
  "type": {
138180
138184
  "kind": "function",
138181
138185
  "parameters": [
@@ -300235,7 +300239,7 @@ export const docs = (typeof window !== 'undefined' && window.__docs) ||
300235
300239
  "name": "ReactNode",
300236
300240
  "url": "https://reactjs.org/docs/rendering-elements.html"
300237
300241
  },
300238
- "description": "This should be a string in most cases. HTML is supported, but only text is understood\nby assistive technology. This is true for both `label` and `describe` modes.",
300242
+ "description": "This should be a string in most cases. HTML is supported, but only text is understood\nby assistive technology. This is true for both `label` and `describe` modes.\n\n**Note:** If you use `description` type and want to pass `jsx`, it **must* be inline and **not** a component to ensure the inner text is properly translated.\n\n```jsx\n// The text will be understood as: You must accept terms and conditions\n<Tooltip type=\"description\" title={<span>You<i>must</i> accept terms and conditions</span>}/>\n\n// This will render a string including the html and will not be properly understood by voice over.\nconst MyComponent = () => <span>You<i>must</i> accept terms and conditions</span>\n<Tooltip type=\"description\" title={MyComponent/>\n```",
300239
300243
  "declarations": [
300240
300244
  {
300241
300245
  "name": "title",
@@ -300331,10 +300335,14 @@ export const docs = (typeof window !== 'undefined' && window.__docs) ||
300331
300335
  {
300332
300336
  "kind": "string",
300333
300337
  "value": "muted"
300338
+ },
300339
+ {
300340
+ "kind": "string",
300341
+ "value": "description"
300334
300342
  }
300335
300343
  ]
300336
300344
  },
300337
- "description": "Determines the tooltip type for accessibility.\n\n- `label`: Sets the accessible name for the wrapped element. Use for icons or if tooltip\n `title` prop is the same as the text content of the wrapped element. E.g. TertiaryButtons that render an icon or\n Ellipsis tooltips.\n- `describe`: Sets `aria-describedby` of the wrapped element. Use if the tooltip has additional\n information about the target.\n- `muted`: No effort is made to make the tooltip accessible to screen readers. Use if the\n tooltip contents are not useful to a screen reader or if you have handled accessibility of\n the tooltip yourself.\n\n**Note**: Assistive technology may ignore `describe` techniques based on verbosity settings.\nConsider an alternate way to inform a user of additional important information.",
300345
+ "description": "Determines the tooltip type for accessibility.\n\n- `label`: Sets the accessible name for the wrapped element. Use for icons or if tooltip\n `title` prop is the same as the text content of the wrapped element. E.g. TertiaryButtons that render an icon or\n Ellipsis tooltips.\n- **Deprecated: `describe` is deprecated, please use `description`**.`describe`: Sets `aria-describedby` of the wrapped element. Use if the tooltip has additional\n information about the target.\n- `muted`: No effort is made to make the tooltip accessible to screen readers. Use if the\n tooltip contents are not useful to a screen reader or if you have handled accessibility of\n the tooltip yourself.\n\n**Note**: Assistive technology may ignore `describe` techniques based on verbosity settings.\nConsider an alternate way to inform a user of additional important information.",
300338
300346
  "declarations": [
300339
300347
  {
300340
300348
  "name": "type",
@@ -300840,10 +300848,14 @@ export const docs = (typeof window !== 'undefined' && window.__docs) ||
300840
300848
  {
300841
300849
  "kind": "string",
300842
300850
  "value": "muted"
300851
+ },
300852
+ {
300853
+ "kind": "string",
300854
+ "value": "description"
300843
300855
  }
300844
300856
  ]
300845
300857
  },
300846
- "description": "Determines the tooltip type for accessibility.\n\n- `label`: Sets the accessible name for the wrapped element. Use for icons or if tooltip\n `title` prop is the same as the text content of the wrapped element. E.g. TertiaryButton that renders an icon or\n Ellipsis tooltips.\n- `describe`: Sets `aria-describedby` of the wrapped element. Use if the tooltip has additional\n information about the target.\n- `muted`: No effort is made to make the tooltip accessible to screen readers. Use if the\n tooltip contents are not useful to a screen reader or if you have handled accessibility of\n the tooltip yourself.\n\n**Note**: Assistive technology may ignore `describe` techniques based on verbosity settings.\nConsider an alternate way to inform a user of additional important information.",
300858
+ "description": "Determines the tooltip type for accessibility.\n\n- `label`: Sets the accessible name for the wrapped element. Use for icons or if tooltip\n `title` prop is the same as the text content of the wrapped element. E.g. TertiaryButton that renders an icon or\n Ellipsis tooltips.\n- **Deprecated: `describe` is deprecated, please use `description`.**`describe`: Sets `aria-describedby` of the wrapped element. Use if the tooltip has additional information about the target\n- `muted`: No effort is made to make the tooltip accessible to screen readers. Use if the\n tooltip contents are not useful to a screen reader or if you have handled accessibility of\n the tooltip yourself.\n- `description`: Sets `aria-description` strings for the wrapped element. Use if the tooltip has additional about the target\n\n**Note**: Assistive technology may ignore `describe` techniques based on verbosity settings.\nConsider an alternate way to inform a user of additional important information.",
300847
300859
  "declarations": [
300848
300860
  {
300849
300861
  "name": "type",
@@ -300976,6 +300988,37 @@ export const docs = (typeof window !== 'undefined' && window.__docs) ||
300976
300988
  ],
300977
300989
  "tags": {}
300978
300990
  },
300991
+ {
300992
+ "kind": "property",
300993
+ "name": "aria-description",
300994
+ "defaultValue": {
300995
+ "kind": "unknown",
300996
+ "value": "unknown",
300997
+ "text": "type === 'description' ? titleText : undefined"
300998
+ },
300999
+ "type": {
301000
+ "kind": "union",
301001
+ "value": [
301002
+ {
301003
+ "kind": "primitive",
301004
+ "value": "string"
301005
+ },
301006
+ {
301007
+ "kind": "primitive",
301008
+ "value": "undefined"
301009
+ }
301010
+ ]
301011
+ },
301012
+ "required": false,
301013
+ "description": "",
301014
+ "declarations": [
301015
+ {
301016
+ "name": "aria-description",
301017
+ "filePath": "/home/runner/work/canvas-kit/canvas-kit/modules/react/tooltip/lib/useTooltip.tsx"
301018
+ }
301019
+ ],
301020
+ "tags": {}
301021
+ },
300979
301022
  {
300980
301023
  "kind": "property",
300981
301024
  "name": "aria-label",
@@ -0,0 +1,15 @@
1
+ import {Tooltip} from '@workday/canvas-kit-react/tooltip';
2
+ import ListOfUploadedFiles from './examples/Tooltips/ListOfUploadedFiles';
3
+
4
+
5
+ # Accessible Tooltip Examples
6
+
7
+ ## Using descriptive tooltips for repeated text buttons
8
+
9
+ In this example, the "Delete" buttons are used repeatedly to reference the multiple files that have
10
+ been uploaded to the web app. The text buttons already have an accessible name (a.k.a. label)
11
+ derived from the button's inner text. The `describe` tooltip can be useful for providing more
12
+ in-context description for both low vision sighted users and screen reader users without overriding
13
+ the button name "Delete".
14
+
15
+ <ExampleCodeBlock code={ListOfUploadedFiles} />
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+
3
+ import {DeleteButton} from '@workday/canvas-kit-react/button';
4
+ import {Flex} from '@workday/canvas-kit-react/layout';
5
+ import {Heading, Text} from '@workday/canvas-kit-react/text';
6
+ import {Tooltip} from '@workday/canvas-kit-react/tooltip';
7
+ import {trashIcon} from '@workday/canvas-system-icons-web';
8
+
9
+ const files = ['Cover Letter.docx', 'Resume.docx', 'Portfolio.pptx', 'Portrait.png'];
10
+
11
+ const listStyles = {
12
+ alignItems: 'center',
13
+ width: '35rem',
14
+ };
15
+
16
+ const deleteBtnStyle = {
17
+ marginLeft: 'auto',
18
+ };
19
+
20
+ export default () => {
21
+ return (
22
+ <>
23
+ <Heading size="medium">Uploaded Files:</Heading>
24
+ <Flex as="ul" gap="1rem" flexDirection="column">
25
+ {files.map(i => (
26
+ <Flex as="li" style={listStyles}>
27
+ <Text>{i}</Text>
28
+ <Tooltip type="description" title={i}>
29
+ <DeleteButton icon={trashIcon} style={deleteBtnStyle}>
30
+ Delete
31
+ </DeleteButton>
32
+ </Tooltip>
33
+ </Flex>
34
+ ))}
35
+ </Flex>
36
+ </>
37
+ );
38
+ };
@@ -1,6 +1,9 @@
1
- import {ExampleCodeBlock, SymbolDoc, Specifications} from '@workday/canvas-kit-docs';import Default from './examples/Default';
1
+ import {ExampleCodeBlock, SymbolDoc, Specifications} from '@workday/canvas-kit-docs';
2
+ import {InformationHighlight} from '@workday/canvas-kit-preview-react/information-highlight'
3
+ import {StatusIndicator} from '@workday/canvas-kit-preview-react/status-indicator'import Default from './examples/Default';
2
4
  import CustomContent from './examples/CustomContent';
3
5
  import DelayedTooltip from './examples/DelayedTooltip';
6
+ import DescriptionType from './examples/DescriptionType';
4
7
  import DescribeType from './examples/DescribeType';
5
8
  import Muted from './examples/Muted';
6
9
  import Placements from './examples/Placements';
@@ -62,6 +65,14 @@ and focus events.
62
65
 
63
66
  ### Describing an Element
64
67
 
68
+ <InformationHighlight variant={'caution'} className='sb-unstyled'>
69
+ <InformationHighlight.Icon />
70
+ <InformationHighlight.Heading> Caution: Describe type has been deprecated </InformationHighlight.Heading>
71
+ <InformationHighlight.Body>
72
+ Assistive technology may ignore <StatusIndicator variant='gray'><StatusIndicator.Label cs={{textTransform: 'lowercase'}}>type="describe"</StatusIndicator.Label></StatusIndicator> techniques based on verbosity settings. Please use <StatusIndicator cs={{textTransform: 'lowercase'}} variant='gray'><StatusIndicator.Label cs={{textTransform: 'lowercase'}}>type="description"</StatusIndicator.Label></StatusIndicator> on Tooltips.
73
+ </InformationHighlight.Body>
74
+ </InformationHighlight>
75
+
65
76
  The default mode for a tooltip is to label content via `aria-label`. If a tooltip is meant to
66
77
  provide ancillary information, the `type` can be set to `describe`. This will add `aria-describedby`
67
78
  to the target element. This will allow screen reader users to hear the name of the control that is
@@ -69,6 +80,25 @@ being focused and the ancillary tooltip information.
69
80
 
70
81
  <ExampleCodeBlock code={DescribeType} />
71
82
 
83
+ ### Description of an Element
84
+
85
+ The default mode for a tooltip is to assign a name to the target element with an `aria-label`
86
+ string. If a tooltip is meant to provide ancillary information, the `type` can be set to `description`.
87
+ This will add `aria-description` strings to the target element instead. This variant is useful on
88
+ text buttons and other components that already have a label or name. Use this type instead of `describe` to ensure proper aria attributes are added to the dom regardless if the tooltip is visible.
89
+
90
+ > **Note:** If you use `description` type and want to pass `jsx`, it **must* be inline and **not** a component to ensure the inner text is properly read by voiceover.
91
+ >
92
+ > ```jsx
93
+ > // The text will be understood as: You must accept terms and conditions
94
+ > <Tooltip type="description" title={<span>You<i>must</i> accept terms and conditions</span>}/>
95
+ >
96
+ > // This will render a string including the html and will not be properly understood by voice over.
97
+ > const MyComponent = () => <span>You<i>must</i> accept terms and conditions</span>
98
+ > <Tool
99
+
100
+ <ExampleCodeBlock code={DescriptionType} />
101
+
72
102
  ### Muted Tooltips
73
103
 
74
104
  If a tooltip does not need to be visible to screen reader users, or you handle accessibility of the
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+
3
+ import {DeleteButton, SecondaryButton, TertiaryButton} from '@workday/canvas-kit-react/button';
4
+ import {Tooltip} from '@workday/canvas-kit-react/tooltip';
5
+ import {Flex} from '@workday/canvas-kit-react/layout';
6
+ import {chartConfigIcon} from '@workday/canvas-system-icons-web';
7
+
8
+ export default () => {
9
+ return (
10
+ <Flex gap="s">
11
+ <Tooltip type="description" title="Search using additional criteria">
12
+ <TertiaryButton icon={chartConfigIcon}>Advanced Search</TertiaryButton>
13
+ </Tooltip>
14
+ <Tooltip type="description" title="Create saved search">
15
+ <SecondaryButton>Save</SecondaryButton>
16
+ </Tooltip>
17
+ <Tooltip type="description" title="The service will restart after this action">
18
+ <DeleteButton>Delete</DeleteButton>
19
+ </Tooltip>
20
+ </Flex>
21
+ );
22
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workday/canvas-kit-docs",
3
- "version": "12.3.7",
3
+ "version": "12.4.0-1019-next.0",
4
4
  "description": "Documentation components of Canvas Kit components",
5
5
  "author": "Workday, Inc. (https://www.workday.com)",
6
6
  "license": "Apache-2.0",
@@ -44,10 +44,10 @@
44
44
  "dependencies": {
45
45
  "@emotion/styled": "^11.6.0",
46
46
  "@storybook/csf": "0.0.1",
47
- "@workday/canvas-kit-labs-react": "^12.3.7",
48
- "@workday/canvas-kit-preview-react": "^12.3.7",
49
- "@workday/canvas-kit-react": "^12.3.7",
50
- "@workday/canvas-kit-styling": "^12.3.7",
47
+ "@workday/canvas-kit-labs-react": "^12.4.0-1019-next.0",
48
+ "@workday/canvas-kit-preview-react": "^12.4.0-1019-next.0",
49
+ "@workday/canvas-kit-react": "^12.4.0-1019-next.0",
50
+ "@workday/canvas-kit-styling": "^12.4.0-1019-next.0",
51
51
  "@workday/canvas-system-icons-web": "^3.0.0",
52
52
  "@workday/canvas-tokens-web": "^2.1.1",
53
53
  "markdown-to-jsx": "^7.2.0",
@@ -60,5 +60,5 @@
60
60
  "mkdirp": "^1.0.3",
61
61
  "typescript": "5.0"
62
62
  },
63
- "gitHead": "b2e77e342788ae17ef1da20f480e71bcc205f32f"
63
+ "gitHead": "76614cb77b6d16bd953592bc7d288a2a71c8f732"
64
64
  }