@zendeskgarden/react-chrome 8.75.0 → 8.76.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.
Files changed (80) hide show
  1. package/dist/esm/elements/Chrome.js +99 -0
  2. package/dist/esm/elements/SkipNav.js +70 -0
  3. package/dist/esm/elements/body/Body.js +68 -0
  4. package/dist/esm/elements/body/Content.js +59 -0
  5. package/dist/esm/elements/body/Main.js +52 -0
  6. package/dist/esm/elements/body/Sidebar.js +52 -0
  7. package/dist/esm/elements/footer/Footer.js +52 -0
  8. package/dist/esm/elements/footer/FooterItem.js +52 -0
  9. package/dist/esm/elements/header/Header.js +56 -0
  10. package/dist/esm/elements/header/HeaderItem.js +74 -0
  11. package/dist/esm/elements/header/HeaderItemIcon.js +71 -0
  12. package/dist/esm/elements/header/HeaderItemText.js +56 -0
  13. package/dist/esm/elements/header/HeaderItemWrapper.js +52 -0
  14. package/dist/esm/elements/nav/Nav.js +74 -0
  15. package/dist/esm/elements/nav/NavItem.js +98 -0
  16. package/dist/esm/elements/nav/NavItemIcon.js +71 -0
  17. package/dist/esm/elements/nav/NavItemText.js +63 -0
  18. package/dist/esm/elements/sheet/Sheet.js +133 -0
  19. package/dist/esm/elements/sheet/components/Body.js +55 -0
  20. package/dist/esm/elements/sheet/components/Close.js +65 -0
  21. package/dist/esm/elements/sheet/components/Description.js +64 -0
  22. package/dist/esm/elements/sheet/components/Footer.js +55 -0
  23. package/dist/esm/elements/sheet/components/FooterItem.js +55 -0
  24. package/dist/esm/elements/sheet/components/Header.js +60 -0
  25. package/dist/esm/elements/sheet/components/Title.js +64 -0
  26. package/dist/esm/elements/subnav/CollapsibleSubNavItem.js +120 -0
  27. package/dist/esm/elements/subnav/SubNav.js +63 -0
  28. package/dist/esm/elements/subnav/SubNavItem.js +65 -0
  29. package/dist/esm/elements/subnav/SubNavItemText.js +56 -0
  30. package/dist/esm/index.js +29 -0
  31. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/chevron-down-stroke.svg.js +25 -0
  32. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/link-stroke.svg.js +25 -0
  33. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/x-stroke.svg.js +26 -0
  34. package/dist/esm/styled/StyledChrome.js +22 -0
  35. package/dist/esm/styled/StyledSkipNav.js +46 -0
  36. package/dist/esm/styled/StyledSkipNavIcon.js +28 -0
  37. package/dist/esm/styled/body/StyledBody.js +22 -0
  38. package/dist/esm/styled/body/StyledContent.js +25 -0
  39. package/dist/esm/styled/body/StyledMain.js +22 -0
  40. package/dist/esm/styled/body/StyledSidebar.js +22 -0
  41. package/dist/esm/styled/footer/StyledFooter.js +25 -0
  42. package/dist/esm/styled/footer/StyledFooterItem.js +22 -0
  43. package/dist/esm/styled/header/StyledBaseHeaderItem.js +35 -0
  44. package/dist/esm/styled/header/StyledHeader.js +31 -0
  45. package/dist/esm/styled/header/StyledHeaderItem.js +37 -0
  46. package/dist/esm/styled/header/StyledHeaderItemIcon.js +22 -0
  47. package/dist/esm/styled/header/StyledHeaderItemText.js +23 -0
  48. package/dist/esm/styled/header/StyledHeaderItemWrapper.js +24 -0
  49. package/dist/esm/styled/header/StyledLogoHeaderItem.js +47 -0
  50. package/dist/esm/styled/nav/StyledBaseNavItem.js +32 -0
  51. package/dist/esm/styled/nav/StyledBrandmarkNavItem.js +24 -0
  52. package/dist/esm/styled/nav/StyledLogoNavItem.js +49 -0
  53. package/dist/esm/styled/nav/StyledNav.js +34 -0
  54. package/dist/esm/styled/nav/StyledNavItem.js +65 -0
  55. package/dist/esm/styled/nav/StyledNavItemIcon.js +22 -0
  56. package/dist/esm/styled/nav/StyledNavItemText.js +34 -0
  57. package/dist/esm/styled/sheet/StyledSheet.js +41 -0
  58. package/dist/esm/styled/sheet/StyledSheetBody.js +22 -0
  59. package/dist/esm/styled/sheet/StyledSheetClose.js +34 -0
  60. package/dist/esm/styled/sheet/StyledSheetDescription.js +22 -0
  61. package/dist/esm/styled/sheet/StyledSheetFooter.js +22 -0
  62. package/dist/esm/styled/sheet/StyledSheetFooterItem.js +22 -0
  63. package/dist/esm/styled/sheet/StyledSheetHeader.js +23 -0
  64. package/dist/esm/styled/sheet/StyledSheetTitle.js +22 -0
  65. package/dist/esm/styled/sheet/StyledSheetWrapper.js +37 -0
  66. package/dist/esm/styled/subnav/StyledSubNav.js +34 -0
  67. package/dist/esm/styled/subnav/StyledSubNavItem.js +55 -0
  68. package/dist/esm/styled/subnav/StyledSubNavItemHeader.js +24 -0
  69. package/dist/esm/styled/subnav/StyledSubNavItemIcon.js +43 -0
  70. package/dist/esm/styled/subnav/StyledSubNavItemText.js +30 -0
  71. package/dist/esm/styled/subnav/StyledSubNavPanel.js +24 -0
  72. package/dist/esm/types/index.js +10 -0
  73. package/dist/esm/utils/useBodyContext.js +16 -0
  74. package/dist/esm/utils/useChromeContext.js +16 -0
  75. package/dist/esm/utils/useFocusableMount.js +31 -0
  76. package/dist/esm/utils/useNavContext.js +16 -0
  77. package/dist/esm/utils/useSheetContext.js +16 -0
  78. package/dist/index.cjs.js +78 -94
  79. package/package.json +5 -5
  80. package/dist/index.esm.js +0 -1449
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React__default, { Children, isValidElement, cloneElement } from 'react';
8
+ import '../../styled/StyledChrome.js';
9
+ import '../../styled/StyledSkipNav.js';
10
+ import '../../styled/StyledSkipNavIcon.js';
11
+ import '../../styled/body/StyledBody.js';
12
+ import '../../styled/body/StyledContent.js';
13
+ import '../../styled/body/StyledMain.js';
14
+ import '../../styled/body/StyledSidebar.js';
15
+ import '../../styled/footer/StyledFooter.js';
16
+ import '../../styled/footer/StyledFooterItem.js';
17
+ import '../../styled/header/StyledHeader.js';
18
+ import '../../styled/header/StyledBaseHeaderItem.js';
19
+ import '../../styled/header/StyledHeaderItem.js';
20
+ import { StyledHeaderItemIcon } from '../../styled/header/StyledHeaderItemIcon.js';
21
+ import '../../styled/header/StyledLogoHeaderItem.js';
22
+ import '../../styled/header/StyledHeaderItemText.js';
23
+ import '../../styled/header/StyledHeaderItemWrapper.js';
24
+ import '../../styled/nav/StyledNav.js';
25
+ import '../../styled/nav/StyledBaseNavItem.js';
26
+ import '../../styled/nav/StyledLogoNavItem.js';
27
+ import '../../styled/nav/StyledBrandmarkNavItem.js';
28
+ import '../../styled/nav/StyledNavItem.js';
29
+ import '../../styled/nav/StyledNavItemIcon.js';
30
+ import '../../styled/nav/StyledNavItemText.js';
31
+ import '../../styled/subnav/StyledSubNav.js';
32
+ import '../../styled/subnav/StyledSubNavItem.js';
33
+ import '../../styled/subnav/StyledSubNavItemText.js';
34
+ import '../../styled/subnav/StyledSubNavItemHeader.js';
35
+ import '../../styled/subnav/StyledSubNavItemIcon.js';
36
+ import '../../styled/subnav/StyledSubNavPanel.js';
37
+ import '../../styled/sheet/StyledSheet.js';
38
+ import '../../styled/sheet/StyledSheetWrapper.js';
39
+ import '../../styled/sheet/StyledSheetTitle.js';
40
+ import '../../styled/sheet/StyledSheetDescription.js';
41
+ import '../../styled/sheet/StyledSheetBody.js';
42
+ import '../../styled/sheet/StyledSheetClose.js';
43
+ import '../../styled/sheet/StyledSheetFooter.js';
44
+ import '../../styled/sheet/StyledSheetFooterItem.js';
45
+ import '../../styled/sheet/StyledSheetHeader.js';
46
+
47
+ const HeaderItemIcon = _ref => {
48
+ let {
49
+ children,
50
+ ...props
51
+ } = _ref;
52
+ const element = Children.only(children);
53
+ if ( isValidElement(element)) {
54
+ const Icon = _ref2 => {
55
+ let {
56
+ theme,
57
+ ...iconProps
58
+ } = _ref2;
59
+ return cloneElement(element, {
60
+ ...props,
61
+ ...iconProps
62
+ });
63
+ };
64
+ return React__default.createElement(StyledHeaderItemIcon, Object.assign({
65
+ as: Icon
66
+ }, props));
67
+ }
68
+ return null;
69
+ };
70
+
71
+ export { HeaderItemIcon };
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React__default from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import '../../styled/StyledChrome.js';
10
+ import '../../styled/StyledSkipNav.js';
11
+ import '../../styled/StyledSkipNavIcon.js';
12
+ import '../../styled/body/StyledBody.js';
13
+ import '../../styled/body/StyledContent.js';
14
+ import '../../styled/body/StyledMain.js';
15
+ import '../../styled/body/StyledSidebar.js';
16
+ import '../../styled/footer/StyledFooter.js';
17
+ import '../../styled/footer/StyledFooterItem.js';
18
+ import '../../styled/header/StyledHeader.js';
19
+ import '../../styled/header/StyledBaseHeaderItem.js';
20
+ import '../../styled/header/StyledHeaderItem.js';
21
+ import '../../styled/header/StyledHeaderItemIcon.js';
22
+ import '../../styled/header/StyledLogoHeaderItem.js';
23
+ import { StyledHeaderItemText } from '../../styled/header/StyledHeaderItemText.js';
24
+ import '../../styled/header/StyledHeaderItemWrapper.js';
25
+ import '../../styled/nav/StyledNav.js';
26
+ import '../../styled/nav/StyledBaseNavItem.js';
27
+ import '../../styled/nav/StyledLogoNavItem.js';
28
+ import '../../styled/nav/StyledBrandmarkNavItem.js';
29
+ import '../../styled/nav/StyledNavItem.js';
30
+ import '../../styled/nav/StyledNavItemIcon.js';
31
+ import '../../styled/nav/StyledNavItemText.js';
32
+ import '../../styled/subnav/StyledSubNav.js';
33
+ import '../../styled/subnav/StyledSubNavItem.js';
34
+ import '../../styled/subnav/StyledSubNavItemText.js';
35
+ import '../../styled/subnav/StyledSubNavItemHeader.js';
36
+ import '../../styled/subnav/StyledSubNavItemIcon.js';
37
+ import '../../styled/subnav/StyledSubNavPanel.js';
38
+ import '../../styled/sheet/StyledSheet.js';
39
+ import '../../styled/sheet/StyledSheetWrapper.js';
40
+ import '../../styled/sheet/StyledSheetTitle.js';
41
+ import '../../styled/sheet/StyledSheetDescription.js';
42
+ import '../../styled/sheet/StyledSheetBody.js';
43
+ import '../../styled/sheet/StyledSheetClose.js';
44
+ import '../../styled/sheet/StyledSheetFooter.js';
45
+ import '../../styled/sheet/StyledSheetFooterItem.js';
46
+ import '../../styled/sheet/StyledSheetHeader.js';
47
+
48
+ const HeaderItemText = React__default.forwardRef((props, ref) => React__default.createElement(StyledHeaderItemText, Object.assign({
49
+ ref: ref
50
+ }, props)));
51
+ HeaderItemText.displayName = 'HeaderItemText';
52
+ HeaderItemText.propTypes = {
53
+ isClipped: PropTypes.bool
54
+ };
55
+
56
+ export { HeaderItemText };
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React__default from 'react';
8
+ import '../../styled/StyledChrome.js';
9
+ import '../../styled/StyledSkipNav.js';
10
+ import '../../styled/StyledSkipNavIcon.js';
11
+ import '../../styled/body/StyledBody.js';
12
+ import '../../styled/body/StyledContent.js';
13
+ import '../../styled/body/StyledMain.js';
14
+ import '../../styled/body/StyledSidebar.js';
15
+ import '../../styled/footer/StyledFooter.js';
16
+ import '../../styled/footer/StyledFooterItem.js';
17
+ import '../../styled/header/StyledHeader.js';
18
+ import '../../styled/header/StyledBaseHeaderItem.js';
19
+ import '../../styled/header/StyledHeaderItem.js';
20
+ import '../../styled/header/StyledHeaderItemIcon.js';
21
+ import '../../styled/header/StyledLogoHeaderItem.js';
22
+ import '../../styled/header/StyledHeaderItemText.js';
23
+ import { StyledHeaderItemWrapper } from '../../styled/header/StyledHeaderItemWrapper.js';
24
+ import '../../styled/nav/StyledNav.js';
25
+ import '../../styled/nav/StyledBaseNavItem.js';
26
+ import '../../styled/nav/StyledLogoNavItem.js';
27
+ import '../../styled/nav/StyledBrandmarkNavItem.js';
28
+ import '../../styled/nav/StyledNavItem.js';
29
+ import '../../styled/nav/StyledNavItemIcon.js';
30
+ import '../../styled/nav/StyledNavItemText.js';
31
+ import '../../styled/subnav/StyledSubNav.js';
32
+ import '../../styled/subnav/StyledSubNavItem.js';
33
+ import '../../styled/subnav/StyledSubNavItemText.js';
34
+ import '../../styled/subnav/StyledSubNavItemHeader.js';
35
+ import '../../styled/subnav/StyledSubNavItemIcon.js';
36
+ import '../../styled/subnav/StyledSubNavPanel.js';
37
+ import '../../styled/sheet/StyledSheet.js';
38
+ import '../../styled/sheet/StyledSheetWrapper.js';
39
+ import '../../styled/sheet/StyledSheetTitle.js';
40
+ import '../../styled/sheet/StyledSheetDescription.js';
41
+ import '../../styled/sheet/StyledSheetBody.js';
42
+ import '../../styled/sheet/StyledSheetClose.js';
43
+ import '../../styled/sheet/StyledSheetFooter.js';
44
+ import '../../styled/sheet/StyledSheetFooterItem.js';
45
+ import '../../styled/sheet/StyledSheetHeader.js';
46
+
47
+ const HeaderItemWrapper = React__default.forwardRef((props, ref) => React__default.createElement(StyledHeaderItemWrapper, Object.assign({
48
+ ref: ref
49
+ }, props)));
50
+ HeaderItemWrapper.displayName = 'HeaderItemWrapper';
51
+
52
+ export { HeaderItemWrapper };
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React__default, { useMemo } from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import { useChromeContext } from '../../utils/useChromeContext.js';
10
+ import { NavContext } from '../../utils/useNavContext.js';
11
+ import '../../styled/StyledChrome.js';
12
+ import '../../styled/StyledSkipNav.js';
13
+ import '../../styled/StyledSkipNavIcon.js';
14
+ import '../../styled/body/StyledBody.js';
15
+ import '../../styled/body/StyledContent.js';
16
+ import '../../styled/body/StyledMain.js';
17
+ import '../../styled/body/StyledSidebar.js';
18
+ import '../../styled/footer/StyledFooter.js';
19
+ import '../../styled/footer/StyledFooterItem.js';
20
+ import '../../styled/header/StyledHeader.js';
21
+ import '../../styled/header/StyledBaseHeaderItem.js';
22
+ import '../../styled/header/StyledHeaderItem.js';
23
+ import '../../styled/header/StyledHeaderItemIcon.js';
24
+ import '../../styled/header/StyledLogoHeaderItem.js';
25
+ import '../../styled/header/StyledHeaderItemText.js';
26
+ import '../../styled/header/StyledHeaderItemWrapper.js';
27
+ import { StyledNav } from '../../styled/nav/StyledNav.js';
28
+ import '../../styled/nav/StyledBaseNavItem.js';
29
+ import '../../styled/nav/StyledLogoNavItem.js';
30
+ import '../../styled/nav/StyledBrandmarkNavItem.js';
31
+ import '../../styled/nav/StyledNavItem.js';
32
+ import '../../styled/nav/StyledNavItemIcon.js';
33
+ import '../../styled/nav/StyledNavItemText.js';
34
+ import '../../styled/subnav/StyledSubNav.js';
35
+ import '../../styled/subnav/StyledSubNavItem.js';
36
+ import '../../styled/subnav/StyledSubNavItemText.js';
37
+ import '../../styled/subnav/StyledSubNavItemHeader.js';
38
+ import '../../styled/subnav/StyledSubNavItemIcon.js';
39
+ import '../../styled/subnav/StyledSubNavPanel.js';
40
+ import '../../styled/sheet/StyledSheet.js';
41
+ import '../../styled/sheet/StyledSheetWrapper.js';
42
+ import '../../styled/sheet/StyledSheetTitle.js';
43
+ import '../../styled/sheet/StyledSheetDescription.js';
44
+ import '../../styled/sheet/StyledSheetBody.js';
45
+ import '../../styled/sheet/StyledSheetClose.js';
46
+ import '../../styled/sheet/StyledSheetFooter.js';
47
+ import '../../styled/sheet/StyledSheetFooterItem.js';
48
+ import '../../styled/sheet/StyledSheetHeader.js';
49
+
50
+ const Nav = React__default.forwardRef((props, ref) => {
51
+ const {
52
+ hue,
53
+ isLight,
54
+ isDark
55
+ } = useChromeContext();
56
+ const navContextValue = useMemo(() => ({
57
+ isExpanded: !!props.isExpanded
58
+ }), [props.isExpanded]);
59
+ return React__default.createElement(NavContext.Provider, {
60
+ value: navContextValue
61
+ }, React__default.createElement(StyledNav, Object.assign({
62
+ ref: ref
63
+ }, props, {
64
+ hue: hue,
65
+ isLight: isLight,
66
+ isDark: isDark
67
+ })));
68
+ });
69
+ Nav.displayName = 'Nav';
70
+ Nav.propTypes = {
71
+ isExpanded: PropTypes.bool
72
+ };
73
+
74
+ export { Nav };
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React__default from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import { PRODUCT } from '../../types/index.js';
10
+ import '../../styled/StyledChrome.js';
11
+ import '../../styled/StyledSkipNav.js';
12
+ import '../../styled/StyledSkipNavIcon.js';
13
+ import '../../styled/body/StyledBody.js';
14
+ import '../../styled/body/StyledContent.js';
15
+ import '../../styled/body/StyledMain.js';
16
+ import '../../styled/body/StyledSidebar.js';
17
+ import '../../styled/footer/StyledFooter.js';
18
+ import '../../styled/footer/StyledFooterItem.js';
19
+ import '../../styled/header/StyledHeader.js';
20
+ import '../../styled/header/StyledBaseHeaderItem.js';
21
+ import '../../styled/header/StyledHeaderItem.js';
22
+ import '../../styled/header/StyledHeaderItemIcon.js';
23
+ import '../../styled/header/StyledLogoHeaderItem.js';
24
+ import '../../styled/header/StyledHeaderItemText.js';
25
+ import '../../styled/header/StyledHeaderItemWrapper.js';
26
+ import '../../styled/nav/StyledNav.js';
27
+ import '../../styled/nav/StyledBaseNavItem.js';
28
+ import { StyledLogoNavItem } from '../../styled/nav/StyledLogoNavItem.js';
29
+ import { StyledBrandmarkNavItem } from '../../styled/nav/StyledBrandmarkNavItem.js';
30
+ import { StyledNavItem } from '../../styled/nav/StyledNavItem.js';
31
+ import '../../styled/nav/StyledNavItemIcon.js';
32
+ import '../../styled/nav/StyledNavItemText.js';
33
+ import '../../styled/subnav/StyledSubNav.js';
34
+ import '../../styled/subnav/StyledSubNavItem.js';
35
+ import '../../styled/subnav/StyledSubNavItemText.js';
36
+ import '../../styled/subnav/StyledSubNavItemHeader.js';
37
+ import '../../styled/subnav/StyledSubNavItemIcon.js';
38
+ import '../../styled/subnav/StyledSubNavPanel.js';
39
+ import '../../styled/sheet/StyledSheet.js';
40
+ import '../../styled/sheet/StyledSheetWrapper.js';
41
+ import '../../styled/sheet/StyledSheetTitle.js';
42
+ import '../../styled/sheet/StyledSheetDescription.js';
43
+ import '../../styled/sheet/StyledSheetBody.js';
44
+ import '../../styled/sheet/StyledSheetClose.js';
45
+ import '../../styled/sheet/StyledSheetFooter.js';
46
+ import '../../styled/sheet/StyledSheetFooterItem.js';
47
+ import '../../styled/sheet/StyledSheetHeader.js';
48
+ import { useNavContext } from '../../utils/useNavContext.js';
49
+ import { useChromeContext } from '../../utils/useChromeContext.js';
50
+
51
+ const NavItem = React__default.forwardRef((_ref, ref) => {
52
+ let {
53
+ hasLogo,
54
+ hasBrandmark,
55
+ product,
56
+ ...other
57
+ } = _ref;
58
+ const {
59
+ hue,
60
+ isLight,
61
+ isDark
62
+ } = useChromeContext();
63
+ const {
64
+ isExpanded
65
+ } = useNavContext();
66
+ const ariaCurrent = other.isCurrent || undefined;
67
+ if (hasLogo) {
68
+ return React__default.createElement(StyledLogoNavItem, Object.assign({
69
+ ref: ref,
70
+ isDark: isDark,
71
+ isLight: isLight,
72
+ product: product,
73
+ "aria-current": ariaCurrent
74
+ }, other));
75
+ }
76
+ if (hasBrandmark) {
77
+ return React__default.createElement(StyledBrandmarkNavItem, Object.assign({
78
+ ref: ref
79
+ }, other));
80
+ }
81
+ return React__default.createElement(StyledNavItem, Object.assign({
82
+ tabIndex: 0,
83
+ ref: ref,
84
+ isExpanded: isExpanded,
85
+ hue: hue,
86
+ isDark: isDark,
87
+ isLight: isLight,
88
+ "aria-current": ariaCurrent
89
+ }, other));
90
+ });
91
+ NavItem.displayName = 'NavItem';
92
+ NavItem.propTypes = {
93
+ product: PropTypes.oneOf(PRODUCT),
94
+ hasLogo: PropTypes.bool,
95
+ hasBrandmark: PropTypes.bool
96
+ };
97
+
98
+ export { NavItem };
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React__default, { Children, isValidElement, cloneElement } from 'react';
8
+ import '../../styled/StyledChrome.js';
9
+ import '../../styled/StyledSkipNav.js';
10
+ import '../../styled/StyledSkipNavIcon.js';
11
+ import '../../styled/body/StyledBody.js';
12
+ import '../../styled/body/StyledContent.js';
13
+ import '../../styled/body/StyledMain.js';
14
+ import '../../styled/body/StyledSidebar.js';
15
+ import '../../styled/footer/StyledFooter.js';
16
+ import '../../styled/footer/StyledFooterItem.js';
17
+ import '../../styled/header/StyledHeader.js';
18
+ import '../../styled/header/StyledBaseHeaderItem.js';
19
+ import '../../styled/header/StyledHeaderItem.js';
20
+ import '../../styled/header/StyledHeaderItemIcon.js';
21
+ import '../../styled/header/StyledLogoHeaderItem.js';
22
+ import '../../styled/header/StyledHeaderItemText.js';
23
+ import '../../styled/header/StyledHeaderItemWrapper.js';
24
+ import '../../styled/nav/StyledNav.js';
25
+ import '../../styled/nav/StyledBaseNavItem.js';
26
+ import '../../styled/nav/StyledLogoNavItem.js';
27
+ import '../../styled/nav/StyledBrandmarkNavItem.js';
28
+ import '../../styled/nav/StyledNavItem.js';
29
+ import { StyledNavItemIcon } from '../../styled/nav/StyledNavItemIcon.js';
30
+ import '../../styled/nav/StyledNavItemText.js';
31
+ import '../../styled/subnav/StyledSubNav.js';
32
+ import '../../styled/subnav/StyledSubNavItem.js';
33
+ import '../../styled/subnav/StyledSubNavItemText.js';
34
+ import '../../styled/subnav/StyledSubNavItemHeader.js';
35
+ import '../../styled/subnav/StyledSubNavItemIcon.js';
36
+ import '../../styled/subnav/StyledSubNavPanel.js';
37
+ import '../../styled/sheet/StyledSheet.js';
38
+ import '../../styled/sheet/StyledSheetWrapper.js';
39
+ import '../../styled/sheet/StyledSheetTitle.js';
40
+ import '../../styled/sheet/StyledSheetDescription.js';
41
+ import '../../styled/sheet/StyledSheetBody.js';
42
+ import '../../styled/sheet/StyledSheetClose.js';
43
+ import '../../styled/sheet/StyledSheetFooter.js';
44
+ import '../../styled/sheet/StyledSheetFooterItem.js';
45
+ import '../../styled/sheet/StyledSheetHeader.js';
46
+
47
+ const NavItemIcon = _ref => {
48
+ let {
49
+ children,
50
+ ...props
51
+ } = _ref;
52
+ const element = Children.only(children);
53
+ if ( isValidElement(element)) {
54
+ const Icon = _ref2 => {
55
+ let {
56
+ theme,
57
+ ...iconProps
58
+ } = _ref2;
59
+ return cloneElement(element, {
60
+ ...props,
61
+ ...iconProps
62
+ });
63
+ };
64
+ return React__default.createElement(StyledNavItemIcon, Object.assign({
65
+ as: Icon
66
+ }, props));
67
+ }
68
+ return null;
69
+ };
70
+
71
+ export { NavItemIcon };
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React__default from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import '../../styled/StyledChrome.js';
10
+ import '../../styled/StyledSkipNav.js';
11
+ import '../../styled/StyledSkipNavIcon.js';
12
+ import '../../styled/body/StyledBody.js';
13
+ import '../../styled/body/StyledContent.js';
14
+ import '../../styled/body/StyledMain.js';
15
+ import '../../styled/body/StyledSidebar.js';
16
+ import '../../styled/footer/StyledFooter.js';
17
+ import '../../styled/footer/StyledFooterItem.js';
18
+ import '../../styled/header/StyledHeader.js';
19
+ import '../../styled/header/StyledBaseHeaderItem.js';
20
+ import '../../styled/header/StyledHeaderItem.js';
21
+ import '../../styled/header/StyledHeaderItemIcon.js';
22
+ import '../../styled/header/StyledLogoHeaderItem.js';
23
+ import '../../styled/header/StyledHeaderItemText.js';
24
+ import '../../styled/header/StyledHeaderItemWrapper.js';
25
+ import '../../styled/nav/StyledNav.js';
26
+ import '../../styled/nav/StyledBaseNavItem.js';
27
+ import '../../styled/nav/StyledLogoNavItem.js';
28
+ import '../../styled/nav/StyledBrandmarkNavItem.js';
29
+ import '../../styled/nav/StyledNavItem.js';
30
+ import '../../styled/nav/StyledNavItemIcon.js';
31
+ import { StyledNavItemText } from '../../styled/nav/StyledNavItemText.js';
32
+ import '../../styled/subnav/StyledSubNav.js';
33
+ import '../../styled/subnav/StyledSubNavItem.js';
34
+ import '../../styled/subnav/StyledSubNavItemText.js';
35
+ import '../../styled/subnav/StyledSubNavItemHeader.js';
36
+ import '../../styled/subnav/StyledSubNavItemIcon.js';
37
+ import '../../styled/subnav/StyledSubNavPanel.js';
38
+ import '../../styled/sheet/StyledSheet.js';
39
+ import '../../styled/sheet/StyledSheetWrapper.js';
40
+ import '../../styled/sheet/StyledSheetTitle.js';
41
+ import '../../styled/sheet/StyledSheetDescription.js';
42
+ import '../../styled/sheet/StyledSheetBody.js';
43
+ import '../../styled/sheet/StyledSheetClose.js';
44
+ import '../../styled/sheet/StyledSheetFooter.js';
45
+ import '../../styled/sheet/StyledSheetFooterItem.js';
46
+ import '../../styled/sheet/StyledSheetHeader.js';
47
+ import { useNavContext } from '../../utils/useNavContext.js';
48
+
49
+ const NavItemText = React__default.forwardRef((props, ref) => {
50
+ const {
51
+ isExpanded
52
+ } = useNavContext();
53
+ return React__default.createElement(StyledNavItemText, Object.assign({
54
+ ref: ref,
55
+ isExpanded: isExpanded
56
+ }, props));
57
+ });
58
+ NavItemText.displayName = 'NavItemText';
59
+ NavItemText.propTypes = {
60
+ isWrapped: PropTypes.bool
61
+ };
62
+
63
+ export { NavItemText };
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Copyright Zendesk, Inc.
3
+ *
4
+ * Use of this source code is governed under the Apache License, Version 2.0
5
+ * found at http://www.apache.org/licenses/LICENSE-2.0.
6
+ */
7
+ import React__default, { useRef, useState, useMemo } from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import { useUIDSeed } from 'react-uid';
10
+ import mergeRefs from 'react-merge-refs';
11
+ import { PLACEMENT } from '../../types/index.js';
12
+ import '../../styled/StyledChrome.js';
13
+ import '../../styled/StyledSkipNav.js';
14
+ import '../../styled/StyledSkipNavIcon.js';
15
+ import '../../styled/body/StyledBody.js';
16
+ import '../../styled/body/StyledContent.js';
17
+ import '../../styled/body/StyledMain.js';
18
+ import '../../styled/body/StyledSidebar.js';
19
+ import '../../styled/footer/StyledFooter.js';
20
+ import '../../styled/footer/StyledFooterItem.js';
21
+ import '../../styled/header/StyledHeader.js';
22
+ import '../../styled/header/StyledBaseHeaderItem.js';
23
+ import '../../styled/header/StyledHeaderItem.js';
24
+ import '../../styled/header/StyledHeaderItemIcon.js';
25
+ import '../../styled/header/StyledLogoHeaderItem.js';
26
+ import '../../styled/header/StyledHeaderItemText.js';
27
+ import '../../styled/header/StyledHeaderItemWrapper.js';
28
+ import '../../styled/nav/StyledNav.js';
29
+ import '../../styled/nav/StyledBaseNavItem.js';
30
+ import '../../styled/nav/StyledLogoNavItem.js';
31
+ import '../../styled/nav/StyledBrandmarkNavItem.js';
32
+ import '../../styled/nav/StyledNavItem.js';
33
+ import '../../styled/nav/StyledNavItemIcon.js';
34
+ import '../../styled/nav/StyledNavItemText.js';
35
+ import '../../styled/subnav/StyledSubNav.js';
36
+ import '../../styled/subnav/StyledSubNavItem.js';
37
+ import '../../styled/subnav/StyledSubNavItemText.js';
38
+ import '../../styled/subnav/StyledSubNavItemHeader.js';
39
+ import '../../styled/subnav/StyledSubNavItemIcon.js';
40
+ import '../../styled/subnav/StyledSubNavPanel.js';
41
+ import { StyledSheet } from '../../styled/sheet/StyledSheet.js';
42
+ import { StyledSheetWrapper } from '../../styled/sheet/StyledSheetWrapper.js';
43
+ import '../../styled/sheet/StyledSheetTitle.js';
44
+ import '../../styled/sheet/StyledSheetDescription.js';
45
+ import '../../styled/sheet/StyledSheetBody.js';
46
+ import '../../styled/sheet/StyledSheetClose.js';
47
+ import '../../styled/sheet/StyledSheetFooter.js';
48
+ import '../../styled/sheet/StyledSheetFooterItem.js';
49
+ import '../../styled/sheet/StyledSheetHeader.js';
50
+ import { SheetContext } from '../../utils/useSheetContext.js';
51
+ import { useFocusableMount } from '../../utils/useFocusableMount.js';
52
+ import { Title } from './components/Title.js';
53
+ import { Description } from './components/Description.js';
54
+ import { Header } from './components/Header.js';
55
+ import { Body } from './components/Body.js';
56
+ import { Footer } from './components/Footer.js';
57
+ import { FooterItem } from './components/FooterItem.js';
58
+ import { Close } from './components/Close.js';
59
+
60
+ const SheetComponent = React__default.forwardRef((_ref, ref) => {
61
+ let {
62
+ id,
63
+ isOpen,
64
+ isAnimated,
65
+ focusOnMount,
66
+ restoreFocus,
67
+ placement,
68
+ size,
69
+ children,
70
+ ...props
71
+ } = _ref;
72
+ const sheetRef = useRef(null);
73
+ const seed = useUIDSeed();
74
+ const [isCloseButtonPresent, setIsCloseButtonPresent] = useState(false);
75
+ const idPrefix = useMemo(() => id || seed(`sheet_${'8.76.0'}`), [id, seed]);
76
+ const titleId = `${idPrefix}--title`;
77
+ const descriptionId = `${idPrefix}--description`;
78
+ const sheetContext = useMemo(() => ({
79
+ titleId,
80
+ descriptionId,
81
+ isCloseButtonPresent,
82
+ setIsCloseButtonPresent
83
+ }), [titleId, descriptionId, isCloseButtonPresent]);
84
+ useFocusableMount({
85
+ targetRef: sheetRef,
86
+ isMounted: isOpen,
87
+ focusOnMount,
88
+ restoreFocus
89
+ });
90
+ return React__default.createElement(SheetContext.Provider, {
91
+ value: sheetContext
92
+ }, React__default.createElement(StyledSheet, Object.assign({
93
+ isOpen: isOpen,
94
+ isAnimated: isAnimated,
95
+ placement: placement,
96
+ size: size,
97
+ tabIndex: -1,
98
+ id: idPrefix,
99
+ "aria-labelledby": titleId,
100
+ "aria-describedby": descriptionId,
101
+ ref: mergeRefs([sheetRef, ref])
102
+ }, props), React__default.createElement(StyledSheetWrapper, {
103
+ isOpen: isOpen,
104
+ isAnimated: isAnimated,
105
+ placement: placement,
106
+ size: size
107
+ }, children)));
108
+ });
109
+ SheetComponent.displayName = 'Sheet';
110
+ SheetComponent.propTypes = {
111
+ id: PropTypes.string,
112
+ isOpen: PropTypes.bool,
113
+ isAnimated: PropTypes.bool,
114
+ focusOnMount: PropTypes.bool,
115
+ restoreFocus: PropTypes.bool,
116
+ placement: PropTypes.oneOf(PLACEMENT),
117
+ size: PropTypes.string
118
+ };
119
+ SheetComponent.defaultProps = {
120
+ isAnimated: true,
121
+ placement: 'end',
122
+ size: '380px'
123
+ };
124
+ const Sheet = SheetComponent;
125
+ Sheet.Body = Body;
126
+ Sheet.Close = Close;
127
+ Sheet.Description = Description;
128
+ Sheet.Footer = Footer;
129
+ Sheet.FooterItem = FooterItem;
130
+ Sheet.Header = Header;
131
+ Sheet.Title = Title;
132
+
133
+ export { Sheet };