@workday/canvas-kit-docs 6.8.9 → 6.9.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/commonjs/index.js +13 -6
  2. package/dist/commonjs/lib/Specifications.d.ts.map +1 -1
  3. package/dist/commonjs/lib/Specifications.js +3 -1
  4. package/dist/commonjs/lib/docs.js +1 -0
  5. package/dist/commonjs/lib/specs.js +229 -6
  6. package/dist/es6/lib/Specifications.d.ts.map +1 -1
  7. package/dist/es6/lib/specs.js +229 -6
  8. package/dist/mdx/{4.0-MIGRATION-GUIDE.mdx → 4.0-UPGRADE-GUIDE.mdx} +1 -1
  9. package/dist/mdx/{5.0-MIGRATION-GUIDE.mdx → 5.0-UPGRADE-GUIDE.mdx} +3 -3
  10. package/dist/mdx/{6.0-MIGRATION-GUIDE.mdx → 6.0-UPGRADE-GUIDE.mdx} +4 -4
  11. package/dist/mdx/7.0-UPGRADE-GUIDE.mdx +1006 -0
  12. package/dist/mdx/COMPOUND_COMPONENTS.mdx +2 -2
  13. package/dist/mdx/CONTRIBUTING.mdx +2 -2
  14. package/dist/mdx/changelog.stories.mdx +1 -0
  15. package/dist/mdx/labs-react/search-form/examples/Basic.tsx +4 -2
  16. package/dist/mdx/labs-react/search-form/examples/CustomTheme.tsx +4 -2
  17. package/dist/mdx/labs-react/search-form/examples/Grow.tsx +4 -2
  18. package/dist/mdx/labs-react/search-form/examples/RTL.tsx +4 -2
  19. package/dist/mdx/labs-react/search-form/examples/Theming.tsx +4 -2
  20. package/dist/mdx/preview-react/_examples/SidePanelWithOverlay.mdx +8 -0
  21. package/dist/mdx/preview-react/_examples/examples/SidePanelWithOverlay.tsx +31 -0
  22. package/dist/mdx/preview-react/_examples/examples/TextInputWithFormik.tsx +3 -3
  23. package/dist/mdx/preview-react/form-field/examples/Custom.tsx +4 -5
  24. package/dist/mdx/preview-react/menu/Menu.mdx +1 -1
  25. package/dist/mdx/preview-react/menu/examples/ContextMenu.tsx +2 -2
  26. package/dist/mdx/preview-react/menu/examples/Icons.tsx +0 -1
  27. package/dist/mdx/preview-react/pill/Pill.mdx +241 -0
  28. package/dist/mdx/preview-react/pill/examples/Basic.tsx +18 -0
  29. package/dist/mdx/preview-react/pill/examples/WithAvatar.tsx +21 -0
  30. package/dist/mdx/preview-react/pill/examples/WithCount.tsx +9 -0
  31. package/dist/mdx/preview-react/pill/examples/WithList.tsx +31 -0
  32. package/dist/mdx/preview-react/pill/examples/WithReadOnly.tsx +15 -0
  33. package/dist/mdx/preview-react/pill/examples/WithRemovable.tsx +25 -0
  34. package/dist/mdx/preview-react/pill/examples/test-avatar.png +0 -0
  35. package/dist/mdx/preview-react/side-panel/SidePanel.mdx +5 -3
  36. package/dist/mdx/preview-react/side-panel/examples/AlwaysOpen.tsx +16 -22
  37. package/dist/mdx/preview-react/side-panel/examples/Basic.tsx +9 -14
  38. package/dist/mdx/preview-react/side-panel/examples/ExternalControl.tsx +9 -13
  39. package/dist/mdx/preview-react/side-panel/examples/HiddenName.tsx +1 -1
  40. package/dist/mdx/preview-react/side-panel/examples/OnExpandedChange.tsx +1 -1
  41. package/dist/mdx/preview-react/side-panel/examples/OnStateTransition.tsx +1 -1
  42. package/dist/mdx/preview-react/side-panel/examples/RightOrigin.tsx +17 -24
  43. package/dist/mdx/preview-react/side-panel/examples/Variant.tsx +9 -14
  44. package/dist/mdx/preview-react/text-area/examples/Alert.tsx +2 -1
  45. package/dist/mdx/preview-react/text-area/examples/HiddenLabel.tsx +6 -4
  46. package/dist/mdx/preview-react/text-area/examples/RefForwarding.tsx +1 -1
  47. package/dist/mdx/preview-react/text-input/examples/Alert.tsx +2 -1
  48. package/dist/mdx/preview-react/text-input/examples/HiddenLabel.tsx +6 -4
  49. package/dist/mdx/preview-react/text-input/examples/RefForwarding.tsx +1 -1
  50. package/dist/mdx/preview-react/text-input/examples/ThemedAlert.tsx +2 -1
  51. package/dist/mdx/react/_examples/SegmentedControlWithText.mdx +12 -0
  52. package/dist/mdx/react/_examples/examples/GlobalHeader.tsx +7 -6
  53. package/dist/mdx/react/_examples/examples/PageHeader.tsx +5 -5
  54. package/dist/mdx/react/_examples/examples/SegmentControlWithText.tsx +119 -0
  55. package/dist/mdx/react/action-bar/ActionBar.mdx +126 -23
  56. package/dist/mdx/react/action-bar/examples/Basic.tsx +7 -4
  57. package/dist/mdx/react/action-bar/examples/DeleteAction.tsx +15 -0
  58. package/dist/mdx/react/action-bar/examples/Icons.tsx +18 -0
  59. package/dist/mdx/react/action-bar/examples/OverflowActionBar.tsx +59 -0
  60. package/dist/mdx/react/banner/Banner.mdx +203 -19
  61. package/dist/mdx/react/banner/PropTables.splitprops.tsx +39 -0
  62. package/dist/mdx/react/banner/examples/ActionText.tsx +8 -1
  63. package/dist/mdx/react/banner/examples/Basic.tsx +8 -1
  64. package/dist/mdx/react/banner/examples/Error.tsx +8 -1
  65. package/dist/mdx/react/banner/examples/RefForwarding.tsx +25 -0
  66. package/dist/mdx/react/banner/examples/Sticky.tsx +12 -7
  67. package/dist/mdx/react/banner/examples/StickyAnimation.tsx +64 -0
  68. package/dist/mdx/react/banner/examples/StickyRTL.tsx +35 -0
  69. package/dist/mdx/react/banner/examples/ThemedAlert.tsx +28 -0
  70. package/dist/mdx/react/banner/examples/ThemedError.tsx +29 -0
  71. package/dist/mdx/react/button/button/Button.mdx +3 -3
  72. package/dist/mdx/react/button/button/Hyperlink.mdx +72 -0
  73. package/dist/mdx/react/button/button/examples/ExternalHyperlink.tsx +7 -0
  74. package/dist/mdx/react/button/button/examples/ExternalHyperlinkInverse.tsx +12 -0
  75. package/dist/mdx/react/button/button/examples/Hyperlink.tsx +5 -0
  76. package/dist/mdx/react/button/button/examples/HyperlinkInverse.tsx +12 -0
  77. package/dist/mdx/react/button/button/examples/Primary.tsx +11 -3
  78. package/dist/mdx/react/button/button/examples/PrimaryInverse.tsx +11 -3
  79. package/dist/mdx/react/button/button/examples/Secondary.tsx +11 -3
  80. package/dist/mdx/react/button/button/examples/SecondaryInverse.tsx +11 -3
  81. package/dist/mdx/react/button/button/examples/Tertiary.tsx +9 -4
  82. package/dist/mdx/react/button/button/examples/TertiaryInverse.tsx +12 -3
  83. package/dist/mdx/react/card/card.mdx +2 -2
  84. package/dist/mdx/react/card/examples/Depth.tsx +1 -1
  85. package/dist/mdx/react/checkbox/Checkbox.mdx +7 -0
  86. package/dist/mdx/react/checkbox/examples/Indeterminate.tsx +1 -1
  87. package/dist/mdx/react/checkbox/examples/Inverse.tsx +22 -0
  88. package/dist/mdx/react/checkbox/examples/RefForwarding.tsx +1 -1
  89. package/dist/mdx/react/collection/Collection.mdx +358 -0
  90. package/dist/mdx/react/collection/Collection.splitprops.tsx +19 -0
  91. package/dist/mdx/react/collection/examples/Basic.tsx +12 -0
  92. package/dist/mdx/react/collection/examples/BasicGrid.tsx +46 -0
  93. package/dist/mdx/react/collection/examples/BasicVirtual.tsx +24 -0
  94. package/dist/mdx/react/collection/examples/DynamicItems.tsx +20 -0
  95. package/dist/mdx/react/collection/examples/IdentifiedItems.tsx +12 -0
  96. package/dist/mdx/react/collection/examples/MultiSelection.tsx +56 -0
  97. package/dist/mdx/react/collection/examples/RovingFocus.tsx +39 -0
  98. package/dist/mdx/react/collection/examples/Selection.tsx +58 -0
  99. package/dist/mdx/react/collection/examples/WrappingGrid.tsx +48 -0
  100. package/dist/mdx/react/color-picker/color-input/ColorInput.mdx +2 -2
  101. package/dist/mdx/react/color-picker/color-preview/ColorPreview.mdx +2 -2
  102. package/dist/mdx/{labs-react/common → react/layout}/Box.mdx +3 -6
  103. package/dist/mdx/{labs-react → react}/layout/Flex.mdx +24 -27
  104. package/dist/mdx/{labs-react → react}/layout/Stack.mdx +98 -146
  105. package/dist/mdx/{labs-react/common → react/layout}/examples/As.tsx +1 -1
  106. package/dist/mdx/{labs-react/common → react/layout}/examples/Border.tsx +1 -1
  107. package/dist/mdx/{labs-react/common → react/layout}/examples/Color.tsx +1 -1
  108. package/dist/mdx/{labs-react/common → react/layout}/examples/Depth.tsx +9 -3
  109. package/dist/mdx/{labs-react → react}/layout/examples/Flex/FlexCard.tsx +2 -3
  110. package/dist/mdx/{labs-react → react}/layout/examples/Flex/FlexLayout.tsx +1 -1
  111. package/dist/mdx/{labs-react → react}/layout/examples/Flex/Usage.tsx +2 -3
  112. package/dist/mdx/{labs-react/common → react/layout}/examples/FlexItem.tsx +1 -2
  113. package/dist/mdx/{labs-react/common → react/layout}/examples/Layout.tsx +1 -1
  114. package/dist/mdx/{labs-react/common → react/layout}/examples/Position.tsx +1 -1
  115. package/dist/mdx/{labs-react → react}/layout/examples/PropTables.splitprops.tsx +1 -1
  116. package/dist/mdx/{labs-react/common → react/layout}/examples/Ref.tsx +1 -1
  117. package/dist/mdx/{labs-react/common → react/layout}/examples/Space.tsx +1 -1
  118. package/dist/mdx/{labs-react → react}/layout/examples/Stack/BasicStack.tsx +1 -1
  119. package/dist/mdx/{labs-react → react}/layout/examples/Stack/HStackCards.tsx +2 -3
  120. package/dist/mdx/{labs-react → react}/layout/examples/Stack/NestedStacks.tsx +1 -1
  121. package/dist/mdx/react/layout/examples/Stack/ShouldWrapChildren.tsx +28 -0
  122. package/dist/mdx/{labs-react → react}/layout/examples/Stack/StackCard.tsx +2 -2
  123. package/dist/mdx/{labs-react → react}/layout/examples/Stack/StackItems.tsx +1 -2
  124. package/dist/mdx/{labs-react → react}/layout/examples/Stack/VStackCards.tsx +2 -2
  125. package/dist/mdx/react/menu/Menu.mdx +123 -0
  126. package/dist/mdx/react/menu/examples/Basic.tsx +26 -0
  127. package/dist/mdx/react/menu/examples/ContextMenu.tsx +25 -0
  128. package/dist/mdx/react/menu/examples/Icons.tsx +41 -0
  129. package/dist/mdx/react/modal/Modal.mdx +34 -11
  130. package/dist/mdx/react/modal/examples/Basic.tsx +4 -2
  131. package/dist/mdx/react/modal/examples/BodyOverflow.tsx +56 -0
  132. package/dist/mdx/react/modal/examples/CustomFocus.tsx +4 -2
  133. package/dist/mdx/react/modal/examples/FullOverflow.tsx +55 -0
  134. package/dist/mdx/react/modal/examples/ReturnFocus.tsx +5 -3
  135. package/dist/mdx/react/modal/examples/WithoutCloseIcon.tsx +4 -2
  136. package/dist/mdx/react/pagination/PropTables.splitprops.tsx +1 -1
  137. package/dist/mdx/react/pagination/pagination.mdx +14 -14
  138. package/dist/mdx/react/popup/Popup.mdx +2 -1
  139. package/dist/mdx/react/popup/examples/Basic.tsx +1 -1
  140. package/dist/mdx/react/popup/examples/FocusRedirect.tsx +1 -1
  141. package/dist/mdx/react/popup/examples/FocusTrap.tsx +1 -1
  142. package/dist/mdx/react/popup/examples/FullScreen.tsx +1 -1
  143. package/dist/mdx/react/popup/examples/InitialFocus.tsx +4 -2
  144. package/dist/mdx/react/popup/examples/MultiplePopups.tsx +1 -1
  145. package/dist/mdx/react/popup/examples/NestedPopups.tsx +18 -18
  146. package/dist/mdx/react/popup/examples/RTL.tsx +6 -3
  147. package/dist/mdx/react/radio/Radio.mdx +7 -0
  148. package/dist/mdx/react/radio/examples/Basic.tsx +11 -2
  149. package/dist/mdx/react/radio/examples/Inverse.tsx +23 -0
  150. package/dist/mdx/react/segmented-control/SegmentedControl.mdx +2 -2
  151. package/dist/mdx/react/segmented-control/examples/Basic.tsx +13 -11
  152. package/dist/mdx/react/skeleton/examples/Basic.tsx +1 -1
  153. package/dist/mdx/react/skeleton/examples/Color.tsx +1 -2
  154. package/dist/mdx/react/skeleton/examples/Simulation.tsx +31 -30
  155. package/dist/mdx/react/status-indicator/StatusIndicator.mdx +12 -0
  156. package/dist/mdx/react/status-indicator/examples/MaxWidth.tsx +30 -0
  157. package/dist/mdx/react/tabs/Tabs.mdx +14 -17
  158. package/dist/mdx/react/tabs/TabsModel.splitprops.tsx +7 -3
  159. package/dist/mdx/react/tabs/examples/DynamicTabs.tsx +6 -13
  160. package/dist/mdx/react/tabs/examples/HoistedModel.tsx +8 -8
  161. package/dist/mdx/react/tabs/examples/Icons.tsx +4 -4
  162. package/dist/mdx/react/tabs/examples/NamedTabs.tsx +10 -10
  163. package/dist/mdx/react/tabs/examples/OverflowTabs.tsx +4 -8
  164. package/dist/mdx/react/tabs/examples/SinglePanel.tsx +3 -3
  165. package/dist/mdx/react/text-input/examples/Basic.tsx +3 -0
  166. package/dist/mdx/react/tooltip/Tooltip.mdx +2 -2
  167. package/dist/mdx/react/tooltip/examples/Default.tsx +2 -2
  168. package/dist/mdx/react/tooltip/examples/UseTooltip.tsx +2 -2
  169. package/package.json +9 -17
  170. package/dist/mdx/labs-react/common/examples/PropTables.splitprops.tsx +0 -91
  171. package/dist/mdx/labs-react/layout/examples/Stack/ShouldWrapChildren.tsx +0 -33
  172. package/dist/mdx/react/button/icon-button/IconButton.mdx +0 -103
  173. package/dist/mdx/react/button/icon-button/examples/Circle.tsx +0 -6
  174. package/dist/mdx/react/button/icon-button/examples/CircleFilled.tsx +0 -8
  175. package/dist/mdx/react/button/icon-button/examples/Inverse.tsx +0 -20
  176. package/dist/mdx/react/button/icon-button/examples/InverseFilled.tsx +0 -20
  177. package/dist/mdx/react/button/icon-button/examples/MirroredIcon.tsx +0 -11
  178. package/dist/mdx/react/button/icon-button/examples/Plain.tsx +0 -8
  179. package/dist/mdx/react/button/icon-button/examples/Square.tsx +0 -8
  180. package/dist/mdx/react/button/icon-button/examples/SquareFilled.tsx +0 -8
  181. package/dist/mdx/react/button/icon-button/examples/Toggleable.tsx +0 -20
  182. package/ts3.5/dist/commonjs/index.d.ts +0 -4
  183. package/ts3.5/dist/commonjs/lib/Specifications.d.ts +0 -6
  184. package/ts3.5/dist/commonjs/lib/docs.d.ts +0 -5
  185. package/ts3.5/dist/commonjs/lib/specs.d.ts +0 -16
  186. package/ts3.5/dist/es6/index.d.ts +0 -4
  187. package/ts3.5/dist/es6/lib/Specifications.d.ts +0 -6
  188. package/ts3.5/dist/es6/lib/docs.d.ts +0 -5
  189. package/ts3.5/dist/es6/lib/specs.d.ts +0 -16
@@ -1,38 +1,32 @@
1
- /** @jsx jsx */
2
1
  import * as React from 'react';
3
- import {jsx} from '@emotion/core';
4
2
  import {colors, space, type} from '@workday/canvas-kit-react/tokens';
5
3
  import {AccentIcon} from '@workday/canvas-kit-react/icon';
6
4
  import {rocketIcon} from '@workday/canvas-accent-icons-web';
7
5
  import {SidePanel, useSidePanel} from '@workday/canvas-kit-preview-react/side-panel';
8
- import {Flex} from '@workday/canvas-kit-labs-react/layout';
9
- import {useThemeRTL} from '@workday/canvas-kit-labs-react/common';
6
+ import {Flex, HStack} from '@workday/canvas-kit-react/layout';
7
+ import {styled} from '@workday/canvas-kit-react/common';
8
+
9
+ const StyledHeader = styled('h3')({
10
+ ...type.levels.body.large,
11
+ color: colors.licorice500,
12
+ fontWeight: type.properties.fontWeights.bold,
13
+ });
14
+
15
+ const StyledAccentIcon = styled(AccentIcon)({
16
+ marginRight: space.s,
17
+ });
10
18
 
11
19
  export default () => {
12
20
  const {panelProps, labelProps} = useSidePanel();
13
21
 
14
- const {themeRTL} = useThemeRTL();
15
- const iconStyles = themeRTL({
16
- marginRight: space.s,
17
- });
18
-
19
22
  return (
20
- <Flex height={320}>
23
+ <HStack spacing="s" height={320}>
21
24
  <SidePanel {...panelProps}>
22
25
  <Flex alignItems="center" paddingY="s" paddingX="s">
23
- <AccentIcon css={iconStyles} icon={rocketIcon} />
24
- <h3
25
- css={{
26
- ...type.levels.body.large,
27
- color: colors.licorice500,
28
- fontWeight: type.properties.fontWeights.bold,
29
- }}
30
- {...labelProps}
31
- >
32
- Tasks Panel
33
- </h3>
26
+ <StyledAccentIcon icon={rocketIcon} />
27
+ <StyledHeader {...labelProps}>Tasks Panel</StyledHeader>
34
28
  </Flex>
35
29
  </SidePanel>
36
- </Flex>
30
+ </HStack>
37
31
  );
38
32
  };
@@ -1,6 +1,4 @@
1
- /** @jsx jsx */
2
1
  import * as React from 'react';
3
- import {jsx} from '@emotion/core';
4
2
  import {colors, type} from '@workday/canvas-kit-react/tokens';
5
3
  import {SecondaryButton} from '@workday/canvas-kit-react/button';
6
4
  import {
@@ -8,13 +6,19 @@ import {
8
6
  useSidePanel,
9
7
  SidePanelTransitionStates,
10
8
  } from '@workday/canvas-kit-preview-react/side-panel';
11
- import {Flex} from '@workday/canvas-kit-labs-react/layout';
12
- import {CanvasProvider} from '@workday/canvas-kit-react/common';
9
+ import {Flex} from '@workday/canvas-kit-react/layout';
10
+ import {CanvasProvider, styled} from '@workday/canvas-kit-react/common';
13
11
  import {AccentIcon} from '@workday/canvas-kit-react/icon';
14
12
  import {rocketIcon} from '@workday/canvas-accent-icons-web';
15
13
  // local helper hook for setting content direction;
16
14
  import {useDirection} from './useDirection';
17
15
 
16
+ const StyledHeader = styled('h3')({
17
+ ...type.levels.body.large,
18
+ color: colors.licorice500,
19
+ fontWeight: type.properties.fontWeights.bold,
20
+ });
21
+
18
22
  export default () => {
19
23
  const {direction, toggleDirection} = useDirection();
20
24
  const {expanded, panelProps, labelProps, controlProps} = useSidePanel();
@@ -32,16 +36,7 @@ export default () => {
32
36
  <Flex marginInlineEnd="s">
33
37
  <AccentIcon icon={rocketIcon} />
34
38
  </Flex>
35
- <h3
36
- css={{
37
- ...type.levels.body.large,
38
- color: colors.licorice500,
39
- fontWeight: type.properties.fontWeights.bold,
40
- }}
41
- {...labelProps}
42
- >
43
- Tasks Panel
44
- </h3>
39
+ <StyledHeader {...labelProps}>Tasks Panel</StyledHeader>
45
40
  </Flex>
46
41
  )}
47
42
  </SidePanel>
@@ -1,14 +1,19 @@
1
- /** @jsx jsx */
2
1
  import * as React from 'react';
3
- import {jsx} from '@emotion/core';
4
2
  import {
5
3
  SidePanel,
6
4
  useSidePanel,
7
5
  SidePanelTransitionStates,
8
6
  } from '@workday/canvas-kit-preview-react/side-panel';
9
- import {Flex} from '@workday/canvas-kit-labs-react/layout';
7
+ import {Flex} from '@workday/canvas-kit-react/layout';
10
8
  import {SecondaryButton} from '@workday/canvas-kit-react/button';
11
9
  import {colors, type} from '@workday/canvas-kit-react/tokens';
10
+ import {styled} from '@workday/canvas-kit-react/common';
11
+
12
+ const StyledHeader = styled('h3')({
13
+ ...type.levels.body.large,
14
+ color: colors.licorice500,
15
+ fontWeight: type.properties.fontWeights.bold,
16
+ });
12
17
 
13
18
  export default () => {
14
19
  const {expanded, panelProps, labelProps, controlProps} = useSidePanel({initialExpanded: false});
@@ -28,16 +33,7 @@ export default () => {
28
33
  >
29
34
  {panelState === 'expanded' && (
30
35
  <Flex alignItems="center" paddingY="s" paddingX="s">
31
- <h3
32
- css={{
33
- ...type.levels.body.large,
34
- color: colors.licorice500,
35
- fontWeight: type.properties.fontWeights.bold,
36
- }}
37
- {...labelProps}
38
- >
39
- Tasks Panel
40
- </h3>
36
+ <StyledHeader {...labelProps}>Tasks Panel</StyledHeader>
41
37
  </Flex>
42
38
  )}
43
39
  </SidePanel>
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import {SidePanel, useSidePanel} from '@workday/canvas-kit-preview-react/side-panel';
3
- import {Flex} from '@workday/canvas-kit-labs-react/layout';
3
+ import {Flex} from '@workday/canvas-kit-react/layout';
4
4
 
5
5
  export default () => {
6
6
  const {panelProps, labelProps, controlProps} = useSidePanel();
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import {Flex} from '@workday/canvas-kit-labs-react/layout';
2
+ import {Flex} from '@workday/canvas-kit-react/layout';
3
3
  import {SidePanel, useSidePanel} from '@workday/canvas-kit-preview-react/side-panel';
4
4
 
5
5
  export default () => {
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import {Flex} from '@workday/canvas-kit-labs-react/layout';
2
+ import {Flex} from '@workday/canvas-kit-react/layout';
3
3
  import {
4
4
  SidePanel,
5
5
  useSidePanel,
@@ -1,6 +1,4 @@
1
- /** @jsx jsx */
2
1
  import * as React from 'react';
3
- import {jsx} from '@emotion/core';
4
2
  import {colors, type} from '@workday/canvas-kit-react/tokens';
5
3
  import {SecondaryButton} from '@workday/canvas-kit-react/button';
6
4
  import {
@@ -8,42 +6,36 @@ import {
8
6
  useSidePanel,
9
7
  SidePanelTransitionStates,
10
8
  } from '@workday/canvas-kit-preview-react/side-panel';
11
- import {useThemeRTL} from '@workday/canvas-kit-labs-react/common';
12
- import {Flex} from '@workday/canvas-kit-labs-react/layout';
13
- import {CanvasProvider} from '@workday/canvas-kit-react/common';
9
+ import {Flex} from '@workday/canvas-kit-react/layout';
10
+ import {CanvasProvider, styled} from '@workday/canvas-kit-react/common';
14
11
  // local helper hook for setting content direction;
15
12
  import {useDirection} from './useDirection';
16
13
 
14
+ const StyledHeader = styled('h3')({
15
+ ...type.levels.body.large,
16
+ color: colors.licorice500,
17
+ fontWeight: type.properties.fontWeights.bold,
18
+ });
19
+
20
+ const StyledSidePanel = styled(SidePanel)({
21
+ marginLeft: 'auto',
22
+ });
23
+
17
24
  const RightPanel = () => {
18
25
  const {expanded, panelProps, labelProps, controlProps} = useSidePanel();
19
26
  const [panelState, setPanelState] = React.useState<SidePanelTransitionStates>(
20
27
  expanded ? 'expanded' : 'collapsed'
21
28
  );
22
29
 
23
- const {themeRTL} = useThemeRTL();
24
- const panelStyles = themeRTL({
25
- position: 'absolute',
26
- right: 0,
27
- });
28
-
29
30
  return (
30
- <SidePanel {...panelProps} onStateTransition={setPanelState} origin="right" css={panelStyles}>
31
+ <StyledSidePanel {...panelProps} onStateTransition={setPanelState} origin="right">
31
32
  <SidePanel.ToggleButton {...controlProps} />
32
33
  {panelState === 'expanded' && (
33
34
  <Flex alignItems="center" justifyContent="flex-end" paddingY="s" paddingX="s">
34
- <h3
35
- css={{
36
- ...type.levels.body.large,
37
- color: colors.licorice500,
38
- fontWeight: type.properties.fontWeights.bold,
39
- }}
40
- {...labelProps}
41
- >
42
- Tasks Panel
43
- </h3>
35
+ <StyledHeader {...labelProps}>Tasks Panel</StyledHeader>
44
36
  </Flex>
45
37
  )}
46
- </SidePanel>
38
+ </StyledSidePanel>
47
39
  );
48
40
  };
49
41
 
@@ -53,7 +45,6 @@ export default () => {
53
45
  return (
54
46
  <CanvasProvider theme={{canvas: {direction}}}>
55
47
  <Flex height={320}>
56
- <RightPanel />
57
48
  <Flex
58
49
  as="main"
59
50
  alignItems="center"
@@ -67,6 +58,8 @@ export default () => {
67
58
  Set to {direction === 'ltr' ? 'Right-to-Left' : 'Left-to-Right'}
68
59
  </SecondaryButton>
69
60
  </Flex>
61
+
62
+ <RightPanel />
70
63
  </Flex>
71
64
  </CanvasProvider>
72
65
  );
@@ -1,6 +1,4 @@
1
- /** @jsx jsx */
2
1
  import * as React from 'react';
3
- import {jsx} from '@emotion/core';
4
2
  import {colors, type} from '@workday/canvas-kit-react/tokens';
5
3
  import {SecondaryButton} from '@workday/canvas-kit-react/button';
6
4
  import {
@@ -8,11 +6,17 @@ import {
8
6
  useSidePanel,
9
7
  SidePanelTransitionStates,
10
8
  } from '@workday/canvas-kit-preview-react/side-panel';
11
- import {Flex} from '@workday/canvas-kit-labs-react/layout';
12
- import {CanvasProvider} from '@workday/canvas-kit-react/common';
9
+ import {Flex} from '@workday/canvas-kit-react/layout';
10
+ import {CanvasProvider, styled} from '@workday/canvas-kit-react/common';
13
11
  // local helper hook for setting content direction;
14
12
  import {useDirection} from './useDirection';
15
13
 
14
+ const StyledHeader = styled('h3')({
15
+ ...type.levels.body.large,
16
+ color: colors.licorice500,
17
+ fontWeight: type.properties.fontWeights.bold,
18
+ });
19
+
16
20
  export default () => {
17
21
  const {direction, toggleDirection} = useDirection();
18
22
  const {expanded, panelProps, labelProps, controlProps} = useSidePanel();
@@ -27,16 +31,7 @@ export default () => {
27
31
  <SidePanel.ToggleButton {...controlProps} />
28
32
  {panelState === 'expanded' && (
29
33
  <Flex alignItems="center" paddingY="s" paddingX="s">
30
- <h3
31
- css={{
32
- ...type.levels.body.large,
33
- color: colors.licorice500,
34
- fontWeight: type.properties.fontWeights.bold,
35
- }}
36
- {...labelProps}
37
- >
38
- Alternate Panel
39
- </h3>
34
+ <StyledHeader {...labelProps}>Alternate Panel</StyledHeader>
40
35
  </Flex>
41
36
  )}
42
37
  </SidePanel>
@@ -1,5 +1,6 @@
1
+ /** @jsxRuntime classic */
1
2
  /** @jsx jsx */
2
- import {jsx} from '@emotion/core';
3
+ import {jsx} from '@emotion/react';
3
4
  import React from 'react';
4
5
  import {TextArea} from '@workday/canvas-kit-preview-react/text-area';
5
6
  import {useThemedRing} from '@workday/canvas-kit-labs-react/common';
@@ -1,8 +1,10 @@
1
- /** @jsx jsx */
2
- import {jsx} from '@emotion/core';
3
1
  import React from 'react';
4
2
  import {TextArea} from '@workday/canvas-kit-preview-react/text-area';
5
- import {accessibleHide} from '@workday/canvas-kit-react/common';
3
+ import {accessibleHide, styled} from '@workday/canvas-kit-react/common';
4
+
5
+ const StyledTextAreaLabel = styled(TextArea.Label)({
6
+ ...accessibleHide,
7
+ });
6
8
 
7
9
  export default () => {
8
10
  const [value, setValue] = React.useState('');
@@ -13,7 +15,7 @@ export default () => {
13
15
 
14
16
  return (
15
17
  <TextArea orientation="vertical" spacing="zero">
16
- <TextArea.Label css={{...accessibleHide}}>Email</TextArea.Label>
18
+ <StyledTextAreaLabel>Email</StyledTextAreaLabel>
17
19
  <TextArea.Field onChange={handleChange} value={value} />
18
20
  </TextArea>
19
21
  );
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import {changeFocus} from '@workday/canvas-kit-react/common';
3
- import {VStack} from '@workday/canvas-kit-labs-react/layout';
3
+ import {VStack} from '@workday/canvas-kit-react/layout';
4
4
  import {SecondaryButton} from '@workday/canvas-kit-react/button';
5
5
  import {TextArea} from '@workday/canvas-kit-preview-react/text-area';
6
6
 
@@ -1,5 +1,6 @@
1
+ /** @jsxRuntime classic */
1
2
  /** @jsx jsx */
2
- import {jsx} from '@emotion/core';
3
+ import {jsx} from '@emotion/react';
3
4
  import React from 'react';
4
5
  import {TextInput} from '@workday/canvas-kit-preview-react/text-input';
5
6
  import {useThemedRing} from '@workday/canvas-kit-labs-react/common';
@@ -1,8 +1,10 @@
1
- /** @jsx jsx */
2
- import {jsx} from '@emotion/core';
3
1
  import React from 'react';
4
2
  import {TextInput} from '@workday/canvas-kit-preview-react/text-input';
5
- import {accessibleHide} from '@workday/canvas-kit-react/common';
3
+ import {accessibleHide, styled} from '@workday/canvas-kit-react/common';
4
+
5
+ const StyledTextAreaLabel = styled(TextInput.Label)({
6
+ ...accessibleHide,
7
+ });
6
8
 
7
9
  export default () => {
8
10
  const [value, setValue] = React.useState('');
@@ -13,7 +15,7 @@ export default () => {
13
15
 
14
16
  return (
15
17
  <TextInput orientation="vertical" spacing="zero">
16
- <TextInput.Label css={{...accessibleHide}}>Email</TextInput.Label>
18
+ <StyledTextAreaLabel>Email</StyledTextAreaLabel>
17
19
  <TextInput.Field onChange={handleChange} value={value} />
18
20
  </TextInput>
19
21
  );
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import {changeFocus} from '@workday/canvas-kit-react/common';
3
- import {VStack} from '@workday/canvas-kit-labs-react/layout';
3
+ import {VStack} from '@workday/canvas-kit-react/layout';
4
4
  import {SecondaryButton} from '@workday/canvas-kit-react/button';
5
5
  import {TextInput} from '@workday/canvas-kit-preview-react/text-input';
6
6
 
@@ -1,5 +1,6 @@
1
+ /** @jsxRuntime classic */
1
2
  /** @jsx jsx */
2
- import {jsx} from '@emotion/core';
3
+ import {jsx} from '@emotion/react';
3
4
  import React from 'react';
4
5
  import {TextInput} from '@workday/canvas-kit-preview-react/text-input';
5
6
  import {useThemedRing} from '@workday/canvas-kit-labs-react/common';
@@ -0,0 +1,12 @@
1
+ import Basic from './examples/SegmentControlWithText';
2
+
3
+
4
+ # Canvas Kit Examples
5
+
6
+ ## SegmentControl With Text
7
+
8
+ As of `v7`, IconButton was removed, so SegmentControl was changed to support new buttons with
9
+ icon only. This example shows how you use SegmentControl with text until CK
10
+ starts supporting text in SegmentControl buttons. If you'd like to follow along, we have an [open issue](https://github.com/Workday/canvas-kit/issues/207) to enhance the SegmentedControl
11
+
12
+ <ExampleCodeBlock code={Basic} />
@@ -9,9 +9,10 @@ import {
9
9
  assistantIcon,
10
10
  } from '@workday/canvas-system-icons-web';
11
11
 
12
- import {IconButton, Hyperlink} from '@workday/canvas-kit-react/button';
12
+ import {TertiaryButton, Hyperlink} from '@workday/canvas-kit-react/button';
13
13
  import {Avatar} from '@workday/canvas-kit-react/avatar';
14
- import {SearchForm, HStack, HStackProps, StackSpacing} from '@workday/canvas-kit-labs-react';
14
+ import {HStack, HStackProps, StackSpacing} from '@workday/canvas-kit-react/layout';
15
+ import {SearchForm} from '@workday/canvas-kit-labs-react';
15
16
 
16
17
  interface HeaderItemProps extends Omit<HStackProps, 'spacing'> {
17
18
  spacing?: StackSpacing;
@@ -20,7 +21,7 @@ interface HeaderItemProps extends Omit<HStackProps, 'spacing'> {
20
21
  export default () => (
21
22
  <GlobalHeader>
22
23
  <GlobalHeader.Item>
23
- <IconButton aria-label="menu" icon={justifyIcon} />
24
+ <TertiaryButton aria-label="menu" icon={justifyIcon} />
24
25
  <Hyperlink>
25
26
  <WorkdayLogo dangerouslySetInnerHTML={{__html: dubLogoBlue}} />
26
27
  </Hyperlink>
@@ -29,9 +30,9 @@ export default () => (
29
30
  <SearchForm onSubmit={() => 1} />
30
31
  </GlobalHeader.Item>
31
32
  <GlobalHeader.Item>
32
- <IconButton aria-label="messages" icon={assistantIcon} />
33
- <IconButton aria-label="notifications" icon={notificationsIcon} />
34
- <IconButton aria-label="inbox" icon={inboxIcon} />
33
+ <TertiaryButton aria-label="messages" icon={assistantIcon} />
34
+ <TertiaryButton aria-label="notifications" icon={notificationsIcon} />
35
+ <TertiaryButton aria-label="inbox" icon={inboxIcon} />
35
36
  <Avatar size={Avatar.Size.m} variant={Avatar.Variant.Light} />
36
37
  </GlobalHeader.Item>
37
38
  </GlobalHeader>
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
- import {styled, createComponent} from '@workday/canvas-kit-react/common';
2
+ import {createComponent, styled} from '@workday/canvas-kit-react/common';
3
3
 
4
4
  import {colors, gradients, space, type} from '@workday/canvas-kit-react/tokens';
5
5
 
6
- import {HStack, HStackProps, StackSpacing} from '@workday/canvas-kit-labs-react';
7
- import {IconButton} from '@workday/canvas-kit-react/button';
6
+ import {HStack, HStackProps, StackSpacing} from '@workday/canvas-kit-react/layout';
7
+ import {TertiaryButton} from '@workday/canvas-kit-react/button';
8
8
  import {justifyIcon, notificationsIcon} from '@workday/canvas-system-icons-web';
9
9
 
10
10
  interface HeaderItemProps extends Omit<HStackProps, 'spacing'> {
@@ -15,8 +15,8 @@ export default () => (
15
15
  <PageHeader>
16
16
  <PageHeader.Title>Page Header</PageHeader.Title>
17
17
  <PageHeader.Item>
18
- <IconButton aria-label="notifications" icon={notificationsIcon} variant="inverse" />
19
- <IconButton aria-label="menu" icon={justifyIcon} variant="inverse" />
18
+ <TertiaryButton aria-label="notifications" icon={notificationsIcon} variant="inverse" />
19
+ <TertiaryButton aria-label="menu" icon={justifyIcon} variant="inverse" />
20
20
  </PageHeader.Item>
21
21
  </PageHeader>
22
22
  );
@@ -0,0 +1,119 @@
1
+ import * as React from 'react';
2
+
3
+ import {SegmentedControl} from '@workday/canvas-kit-react/segmented-control';
4
+ import {
5
+ styled,
6
+ StyledType,
7
+ ExtractProps,
8
+ mouseFocusBehavior,
9
+ } from '@workday/canvas-kit-react/common';
10
+ import {colors, borderRadius, space} from '@workday/canvas-kit-react/tokens';
11
+ import {BaseButton, ButtonColors} from '@workday/canvas-kit-react/button';
12
+ import {CanvasIconTypes, CanvasSystemIcon} from '@workday/design-assets-types';
13
+ const placeholderIcon: CanvasSystemIcon = {
14
+ name: '',
15
+ svg: '',
16
+ filename: '',
17
+ type: CanvasIconTypes.System,
18
+ };
19
+
20
+ const getIconButtonColors = (toggled?: boolean): ButtonColors => {
21
+ return {
22
+ default: {
23
+ background: toggled ? colors.blueberry400 : colors.soap200,
24
+ icon: toggled ? colors.frenchVanilla100 : colors.licorice200,
25
+ label: toggled ? colors.frenchVanilla100 : colors.licorice200,
26
+ },
27
+ hover: {
28
+ background: toggled ? colors.blueberry400 : colors.soap300,
29
+ icon: toggled ? colors.frenchVanilla100 : colors.licorice500,
30
+ label: toggled ? colors.frenchVanilla100 : colors.licorice500,
31
+ },
32
+ active: {
33
+ background: toggled ? colors.blueberry400 : colors.soap500,
34
+ icon: toggled ? colors.frenchVanilla100 : colors.licorice500,
35
+ label: toggled ? colors.frenchVanilla100 : colors.licorice500,
36
+ },
37
+ focus: {
38
+ background: toggled ? colors.blueberry400 : undefined,
39
+ icon: toggled ? colors.frenchVanilla100 : colors.licorice500,
40
+ label: toggled ? colors.frenchVanilla100 : colors.licorice500,
41
+ },
42
+ disabled: {
43
+ background: toggled ? colors.soap100 : colors.soap100,
44
+ icon: colors.soap600,
45
+ label: colors.soap600,
46
+ opacity: '1',
47
+ },
48
+ };
49
+ };
50
+
51
+ const StyledBaseButton = styled(BaseButton)<
52
+ ExtractProps<typeof SegmentedControl.Button> & StyledType
53
+ >({
54
+ borderRadius: borderRadius.zero,
55
+ border: `1px solid ${colors.soap500}`,
56
+ borderLeft: 'none',
57
+ minWidth: space.xxxl,
58
+ '&:first-of-type': {
59
+ borderRadius: `${borderRadius.m} 0 0 ${borderRadius.m}`,
60
+ borderLeft: `1px solid ${colors.soap500}`,
61
+ },
62
+ '&:last-of-type': {
63
+ borderRadius: `0 ${borderRadius.m} ${borderRadius.m} 0`,
64
+ },
65
+ '&[aria-pressed="true"]': {
66
+ borderColor: `${colors.blueberry400} !important`,
67
+ '&:hover, &:focus:hover': {
68
+ background: colors.blueberry400,
69
+ },
70
+ },
71
+ '&:focus': {
72
+ borderRadius: borderRadius.m,
73
+ zIndex: 1,
74
+ animation: 'none', // reset focusRing animation
75
+ transition: 'all 120ms, border-radius 1ms',
76
+ ...mouseFocusBehavior({
77
+ '&': {
78
+ borderRadius: borderRadius.zero,
79
+ '&:first-of-type': {
80
+ borderRadius: `${borderRadius.m} 0 0 ${borderRadius.m}`,
81
+ },
82
+ '&:last-of-type': {
83
+ borderRadius: `0 ${borderRadius.m} ${borderRadius.m} 0`,
84
+ },
85
+ },
86
+ }),
87
+ },
88
+ });
89
+
90
+ export default () => {
91
+ const [value, setValue] = React.useState<string | number>('day');
92
+ const handleToggle = (selectedValue: string | number) => {
93
+ setValue(selectedValue);
94
+ };
95
+
96
+ const isDayToggled = value === 'day';
97
+ const isWeekToggled = value === 'week';
98
+
99
+ return (
100
+ <SegmentedControl value={value} onChange={handleToggle}>
101
+ <StyledBaseButton
102
+ icon={{...placeholderIcon}}
103
+ colors={getIconButtonColors(isDayToggled)}
104
+ value="day"
105
+ onClick={() => setValue('day')}
106
+ >
107
+ Day
108
+ </StyledBaseButton>
109
+ <StyledBaseButton
110
+ icon={placeholderIcon}
111
+ colors={getIconButtonColors(isWeekToggled)}
112
+ value="week"
113
+ onClick={() => setValue('week')}
114
+ >
115
+ Week
116
+ </StyledBaseButton>
117
+ </SegmentedControl>
118
+ );
119
+ };