@algolia/satellite 1.0.0-beta.134 → 1.0.0-beta.135

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 (134) hide show
  1. package/cjs/AutoComplete/AutoComplete.js +3 -1
  2. package/cjs/DatePicker/components/Modal.js +5 -4
  3. package/cjs/Dropdown/Dropdown.js +5 -4
  4. package/cjs/Dropdown/components/DropdownButtonItem.js +2 -2
  5. package/cjs/Dropdown/components/DropdownLinkItem.js +0 -1
  6. package/cjs/Dropdown/useDropdownItemProps.d.ts +9 -1
  7. package/cjs/Dropdown/useDropdownItemProps.js +16 -7
  8. package/cjs/Flag/Flags.d.ts +1 -1
  9. package/cjs/Flag/Flags.js +5 -4
  10. package/cjs/Link/ButtonLink.js +1 -10
  11. package/cjs/Modal/Modal.d.ts +1 -1
  12. package/cjs/Modal/Modal.js +3 -4
  13. package/cjs/Satellite/Satellite.d.ts +1 -0
  14. package/cjs/Satellite/Satellite.js +3 -1
  15. package/cjs/Satellite/SatelliteContext.d.ts +1 -0
  16. package/cjs/Satellite/index.d.ts +1 -0
  17. package/cjs/Satellite/index.js +14 -0
  18. package/cjs/Satellite/locale.d.ts +5 -3
  19. package/cjs/Satellite/useCreatePortal.d.ts +4 -0
  20. package/cjs/Satellite/useCreatePortal.js +29 -0
  21. package/cjs/ScrollIndicator/ScrollIndicator.js +2 -1
  22. package/cjs/Sidebar/Sidebar.d.ts +33 -12
  23. package/cjs/Sidebar/Sidebar.js +48 -38
  24. package/cjs/Sidebar/SidebarButtonLink.d.ts +14 -0
  25. package/cjs/Sidebar/SidebarButtonLink.js +110 -0
  26. package/cjs/Sidebar/SidebarContext.d.ts +7 -8
  27. package/cjs/Sidebar/SidebarContext.js +10 -11
  28. package/cjs/Sidebar/SidebarHeader.d.ts +6 -0
  29. package/cjs/Sidebar/SidebarHeader.js +29 -0
  30. package/cjs/Sidebar/SidebarHeading.d.ts +6 -0
  31. package/cjs/Sidebar/SidebarHeading.js +35 -0
  32. package/cjs/Sidebar/SidebarLink.d.ts +8 -0
  33. package/cjs/Sidebar/SidebarLink.js +58 -0
  34. package/cjs/Sidebar/SidebarLinksGroup/ActiveLinkIndicator.d.ts +8 -0
  35. package/cjs/Sidebar/SidebarLinksGroup/ActiveLinkIndicator.js +47 -0
  36. package/cjs/Sidebar/SidebarLinksGroup/SidebarGroupLink.d.ts +7 -0
  37. package/cjs/Sidebar/{components/SidebarHeader.js → SidebarLinksGroup/SidebarGroupLink.js} +14 -23
  38. package/cjs/Sidebar/SidebarLinksGroup/SidebarLinksGroup.d.ts +23 -0
  39. package/cjs/Sidebar/SidebarLinksGroup/SidebarLinksGroup.js +120 -0
  40. package/cjs/Sidebar/SidebarLinksGroup/index.d.ts +2 -0
  41. package/cjs/Sidebar/SidebarLinksGroup/index.js +18 -0
  42. package/cjs/Sidebar/SidebarLinksGroup/types.d.ts +10 -0
  43. package/cjs/Sidebar/SidebarLinksGroup/types.js +5 -0
  44. package/cjs/Sidebar/SidebarNav.d.ts +9 -0
  45. package/cjs/Sidebar/SidebarNav.js +46 -0
  46. package/cjs/Sidebar/index.d.ts +7 -4
  47. package/cjs/Sidebar/index.js +61 -21
  48. package/cjs/Sidebar/types.d.ts +6 -2
  49. package/cjs/Tabs/Tabs.tailwind.js +8 -8
  50. package/cjs/Tabs/components/LinkTab.js +7 -9
  51. package/cjs/Tooltip/OverflowTooltipWrapper.js +5 -4
  52. package/cjs/Tooltip/TooltipWrapper.js +5 -4
  53. package/cjs/index.d.ts +0 -1
  54. package/cjs/index.js +0 -14
  55. package/cjs/styles/tailwind.config.js +1 -1
  56. package/cjs/utils/useLinkProps.d.ts +5 -2
  57. package/cjs/utils/useLinkProps.js +9 -2
  58. package/esm/AutoComplete/AutoComplete.js +3 -1
  59. package/esm/DatePicker/components/Modal.js +4 -3
  60. package/esm/Dropdown/Dropdown.js +4 -3
  61. package/esm/Dropdown/components/DropdownButtonItem.js +2 -2
  62. package/esm/Dropdown/components/DropdownLinkItem.js +0 -1
  63. package/esm/Dropdown/useDropdownItemProps.d.ts +9 -1
  64. package/esm/Dropdown/useDropdownItemProps.js +15 -7
  65. package/esm/Flag/Flags.d.ts +1 -1
  66. package/esm/Flag/Flags.js +4 -3
  67. package/esm/Link/ButtonLink.js +1 -10
  68. package/esm/Modal/Modal.d.ts +1 -1
  69. package/esm/Modal/Modal.js +4 -4
  70. package/esm/Satellite/Satellite.d.ts +1 -0
  71. package/esm/Satellite/Satellite.js +3 -1
  72. package/esm/Satellite/SatelliteContext.d.ts +1 -0
  73. package/esm/Satellite/index.d.ts +1 -0
  74. package/esm/Satellite/index.js +1 -0
  75. package/esm/Satellite/locale.d.ts +5 -3
  76. package/esm/Satellite/useCreatePortal.d.ts +4 -0
  77. package/esm/Satellite/useCreatePortal.js +16 -0
  78. package/esm/ScrollIndicator/ScrollIndicator.js +2 -1
  79. package/esm/Sidebar/Sidebar.d.ts +33 -12
  80. package/esm/Sidebar/Sidebar.js +44 -29
  81. package/esm/Sidebar/SidebarButtonLink.d.ts +14 -0
  82. package/esm/Sidebar/SidebarButtonLink.js +92 -0
  83. package/esm/Sidebar/SidebarContext.d.ts +7 -8
  84. package/esm/Sidebar/SidebarContext.js +9 -8
  85. package/esm/Sidebar/SidebarHeader.d.ts +6 -0
  86. package/esm/Sidebar/SidebarHeader.js +15 -0
  87. package/esm/Sidebar/SidebarHeading.d.ts +6 -0
  88. package/esm/Sidebar/SidebarHeading.js +20 -0
  89. package/esm/Sidebar/SidebarLink.d.ts +8 -0
  90. package/esm/Sidebar/SidebarLink.js +42 -0
  91. package/esm/Sidebar/SidebarLinksGroup/ActiveLinkIndicator.d.ts +8 -0
  92. package/esm/Sidebar/SidebarLinksGroup/ActiveLinkIndicator.js +32 -0
  93. package/esm/Sidebar/SidebarLinksGroup/SidebarGroupLink.d.ts +7 -0
  94. package/esm/Sidebar/{components/SidebarHeader.js → SidebarLinksGroup/SidebarGroupLink.js} +13 -19
  95. package/esm/Sidebar/SidebarLinksGroup/SidebarLinksGroup.d.ts +23 -0
  96. package/esm/Sidebar/SidebarLinksGroup/SidebarLinksGroup.js +100 -0
  97. package/esm/Sidebar/SidebarLinksGroup/index.d.ts +2 -0
  98. package/esm/Sidebar/SidebarLinksGroup/index.js +2 -0
  99. package/esm/Sidebar/SidebarLinksGroup/types.d.ts +10 -0
  100. package/esm/Sidebar/SidebarLinksGroup/types.js +1 -0
  101. package/esm/Sidebar/SidebarNav.d.ts +9 -0
  102. package/esm/Sidebar/SidebarNav.js +31 -0
  103. package/esm/Sidebar/index.d.ts +7 -4
  104. package/esm/Sidebar/index.js +7 -4
  105. package/esm/Sidebar/types.d.ts +6 -2
  106. package/esm/Tabs/Tabs.tailwind.js +8 -8
  107. package/esm/Tabs/components/LinkTab.js +7 -9
  108. package/esm/Tooltip/OverflowTooltipWrapper.js +4 -3
  109. package/esm/Tooltip/TooltipWrapper.js +4 -3
  110. package/esm/index.d.ts +0 -1
  111. package/esm/index.js +0 -1
  112. package/esm/styles/tailwind.config.js +1 -1
  113. package/esm/utils/useLinkProps.d.ts +5 -2
  114. package/esm/utils/useLinkProps.js +9 -2
  115. package/package.json +1 -1
  116. package/satellite.min.css +1 -1
  117. package/cjs/Banner/Banner.d.ts +0 -86
  118. package/cjs/Banner/Banner.js +0 -176
  119. package/cjs/Banner/index.d.ts +0 -2
  120. package/cjs/Banner/index.js +0 -32
  121. package/cjs/Sidebar/Sidebar.tailwind.d.ts +0 -5
  122. package/cjs/Sidebar/Sidebar.tailwind.js +0 -66
  123. package/cjs/Sidebar/components/SidebarHeader.d.ts +0 -5
  124. package/cjs/Sidebar/components/SidebarLink.d.ts +0 -10
  125. package/cjs/Sidebar/components/SidebarLink.js +0 -98
  126. package/esm/Banner/Banner.d.ts +0 -86
  127. package/esm/Banner/Banner.js +0 -161
  128. package/esm/Banner/index.d.ts +0 -2
  129. package/esm/Banner/index.js +0 -2
  130. package/esm/Sidebar/Sidebar.tailwind.d.ts +0 -5
  131. package/esm/Sidebar/Sidebar.tailwind.js +0 -64
  132. package/esm/Sidebar/components/SidebarHeader.d.ts +0 -5
  133. package/esm/Sidebar/components/SidebarLink.d.ts +0 -10
  134. package/esm/Sidebar/components/SidebarLink.js +0 -78
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SidebarButtonLink = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
+ var _react = require("react");
17
+
18
+ var _Link = require("../Link");
19
+
20
+ var _satellitePrefixer = _interopRequireDefault(require("../styles/helpers/satellitePrefixer"));
21
+
22
+ var _Tooltip = require("../Tooltip");
23
+
24
+ var _useLinkProps = _interopRequireDefault(require("../utils/useLinkProps"));
25
+
26
+ var _SidebarContext = require("./SidebarContext");
27
+
28
+ var _jsxRuntime = require("react/jsx-runtime");
29
+
30
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
31
+
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
+
36
+ var Tooltip = function Tooltip(_ref) {
37
+ var title = _ref.title,
38
+ children = _ref.children;
39
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.TooltipWrapper, {
40
+ placement: "right",
41
+ delay: 0,
42
+ hideDelay: 0,
43
+ modifiers: [{
44
+ name: "offset",
45
+ options: {
46
+ offset: [0, 32]
47
+ }
48
+ }],
49
+ content: title,
50
+ wrapperClassName: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["block"]))),
51
+ interactive: false,
52
+ children: children
53
+ });
54
+ };
55
+
56
+ var SidebarButtonLink = function SidebarButtonLink(_ref2) {
57
+ var id = _ref2.id,
58
+ icon = _ref2.icon,
59
+ href = _ref2.href,
60
+ children = _ref2.children,
61
+ onClick = _ref2.onClick;
62
+
63
+ var _useSidebarContext = (0, _SidebarContext.useSidebarContext)(),
64
+ isLinkActive = _useSidebarContext.isLinkActive,
65
+ collapsed = _useSidebarContext.collapsed;
66
+
67
+ var linkProps = (0, _useLinkProps["default"])({
68
+ href: href,
69
+ onClick: onClick
70
+ });
71
+
72
+ var _useState = (0, _react.useState)(false),
73
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
74
+ isInteractedWith = _useState2[0],
75
+ setIsInteractedWith = _useState2[1];
76
+
77
+ var isActive = isLinkActive(href);
78
+ var showColors = isActive || isInteractedWith;
79
+ var Icon = "active" in icon ? showColors ? icon.active : icon.inactive : icon;
80
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, {
81
+ title: collapsed ? children : null,
82
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Link.BaseLink, _objectSpread(_objectSpread({}, linkProps), {}, {
83
+ id: id,
84
+ onMouseEnter: function onMouseEnter() {
85
+ return setIsInteractedWith(true);
86
+ },
87
+ onFocus: function onFocus() {
88
+ return setIsInteractedWith(true);
89
+ },
90
+ onMouseLeave: function onMouseLeave() {
91
+ return setIsInteractedWith(false);
92
+ },
93
+ onBlur: function onBlur() {
94
+ return setIsInteractedWith(false);
95
+ },
96
+ className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n h-8 min-w-8 w-full rounded\n flex items-center space-x-3\n border border-transparent\n display-body hover:no-underline\n focus:outline-none focus:border-grey-500\n ", "\n ", "\n ", "\n "])), isActive ? "shadow-z100" : "hover:border-grey-200", isActive && "bg-gradient-to-b from-white to-grey-50", collapsed ? "pl-2" : "px-2"),
97
+ "aria-current": isActive,
98
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, {
99
+ className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["", " ml-[-3px]"])), showColors ? "text-accent-600" : "text-grey-400"),
100
+ height: 20,
101
+ width: 20
102
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
103
+ className: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n ", "\n ", "\n "])), collapsed && "sr-only", showColors ? "text-accent-600" : "typo-subdued", isActive && "font-bold"),
104
+ children: children
105
+ })]
106
+ }))
107
+ });
108
+ };
109
+
110
+ exports.SidebarButtonLink = SidebarButtonLink;
@@ -1,10 +1,9 @@
1
1
  /// <reference types="react" />
2
- import type { SidebarCollapsed, SidebarVariant } from "./types";
3
- export interface SideBarContextType {
2
+ import type { SidebarVariant } from "./types";
3
+ export declare type SidebarContextType = {
4
4
  variant: SidebarVariant;
5
- collapsed: SidebarCollapsed;
6
- }
7
- export declare const SIDEBAR_CONTEXT_DEFAULT: SideBarContextType;
8
- export declare const SidebarContext: import("react").Context<SideBarContextType>;
9
- export declare const useSidebarContext: () => SideBarContextType;
10
- export default SidebarContext;
5
+ collapsed: boolean;
6
+ isLinkActive: (href: string) => boolean;
7
+ };
8
+ export declare const SidebarContext: import("react").Context<SidebarContextType | null>;
9
+ export declare const useSidebarContext: () => SidebarContextType;
@@ -3,22 +3,21 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useSidebarContext = exports["default"] = exports.SidebarContext = exports.SIDEBAR_CONTEXT_DEFAULT = void 0;
6
+ exports.useSidebarContext = exports.SidebarContext = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
10
- var SIDEBAR_CONTEXT_DEFAULT = {
11
- variant: "dark",
12
- collapsed: false
13
- };
14
- exports.SIDEBAR_CONTEXT_DEFAULT = SIDEBAR_CONTEXT_DEFAULT;
15
- var SidebarContext = /*#__PURE__*/(0, _react.createContext)(SIDEBAR_CONTEXT_DEFAULT);
10
+ var SidebarContext = /*#__PURE__*/(0, _react.createContext)(null);
16
11
  exports.SidebarContext = SidebarContext;
17
12
 
18
13
  var useSidebarContext = function useSidebarContext() {
19
- return (0, _react.useContext)(SidebarContext);
14
+ var context = (0, _react.useContext)(SidebarContext);
15
+
16
+ if (!context) {
17
+ throw new Error("useSidebarContext used outside of Sidebar");
18
+ }
19
+
20
+ return context;
20
21
  };
21
22
 
22
- exports.useSidebarContext = useSidebarContext;
23
- var _default = SidebarContext;
24
- exports["default"] = _default;
23
+ exports.useSidebarContext = useSidebarContext;
@@ -0,0 +1,6 @@
1
+ import type { FC, ReactNode } from "react";
2
+ export declare type SidebarHeaderProps = {
3
+ className?: string;
4
+ children?: ReactNode;
5
+ };
6
+ export declare const SidebarHeader: FC<SidebarHeaderProps>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SidebarHeader = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _satellitePrefixer = _interopRequireDefault(require("../styles/helpers/satellitePrefixer"));
15
+
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+
18
+ var _templateObject;
19
+
20
+ var SidebarHeader = function SidebarHeader(_ref) {
21
+ var className = _ref.className,
22
+ children = _ref.children;
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("header", {
24
+ className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["h-[72px] shrink-0 border-b border-grey-200/50"]))), className),
25
+ children: children
26
+ });
27
+ };
28
+
29
+ exports.SidebarHeader = SidebarHeader;
@@ -0,0 +1,6 @@
1
+ import type { FC, ReactNode } from "react";
2
+ export declare type SidebarHeadingProps = {
3
+ className?: string;
4
+ children: ReactNode;
5
+ };
6
+ export declare const SidebarHeading: FC<SidebarHeadingProps>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SidebarHeading = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _satellitePrefixer = _interopRequireDefault(require("../styles/helpers/satellitePrefixer"));
15
+
16
+ var _SidebarContext = require("./SidebarContext");
17
+
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+
20
+ var _templateObject;
21
+
22
+ var SidebarHeading = function SidebarHeading(_ref) {
23
+ var className = _ref.className,
24
+ children = _ref.children;
25
+
26
+ var _useSidebarContext = (0, _SidebarContext.useSidebarContext)(),
27
+ collapsed = _useSidebarContext.collapsed;
28
+
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
30
+ className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n h-8 pl-2 block leading-[2rem]\n display-subheading typo-subdued uppercase select-none\n ", "\n "])), collapsed && "invisible"), className),
31
+ children: children
32
+ });
33
+ };
34
+
35
+ exports.SidebarHeading = SidebarHeading;
@@ -0,0 +1,8 @@
1
+ import type { FC, ReactNode } from "react";
2
+ import type { IconComponentType } from "../types";
3
+ export declare type SidebarLinkProps = {
4
+ icon: IconComponentType;
5
+ disabled?: boolean;
6
+ children: ReactNode;
7
+ } & Pick<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "id" | "className" | "href" | "target" | "rel" | "aria-label" | "onClick">;
8
+ export declare const SidebarLink: FC<SidebarLinkProps>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SidebarLink = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
16
+ var _satellitePrefixer = _interopRequireDefault(require("../styles/helpers/satellitePrefixer"));
17
+
18
+ var _useLinkProps = _interopRequireDefault(require("../utils/useLinkProps"));
19
+
20
+ var _SidebarContext = require("./SidebarContext");
21
+
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+
24
+ var _templateObject, _templateObject2, _templateObject3;
25
+
26
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
+
30
+ var SidebarLink = function SidebarLink(props) {
31
+ var _linkProps$href;
32
+
33
+ var _useSidebarContext = (0, _SidebarContext.useSidebarContext)(),
34
+ isLinkActive = _useSidebarContext.isLinkActive;
35
+
36
+ var id = props.id,
37
+ className = props.className,
38
+ disabled = props.disabled,
39
+ Icon = props.icon,
40
+ children = props.children;
41
+ var linkProps = (0, _useLinkProps["default"])(props);
42
+ var isActive = !disabled && isLinkActive((_linkProps$href = linkProps.href) !== null && _linkProps$href !== void 0 ? _linkProps$href : "");
43
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("a", _objectSpread(_objectSpread({}, linkProps), {}, {
44
+ id: id,
45
+ className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n flex items-center\n group hover:no-underline focus:outline-none\n ", "\n "])), disabled ? "cursor-not-allowed" : "cursor-pointer"), className),
46
+ "aria-current": isActive,
47
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, {
48
+ className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["shrink-0 mr-3 ", ""])), disabled ? "text-grey-300" : "text-grey-500"),
49
+ width: "1rem",
50
+ height: "1rem"
51
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
52
+ className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n flex-1 truncate\n ", ""])), disabled ? "text-grey-300" : isActive ? "font-semibold text-accent-600" : "typo-subdued focus:text-accent-600 group-hover:text-accent-600"),
53
+ children: children
54
+ })]
55
+ }));
56
+ };
57
+
58
+ exports.SidebarLink = SidebarLink;
@@ -0,0 +1,8 @@
1
+ import type { FC } from "react";
2
+ declare type ActiveLinkIndicatorProps = {
3
+ className?: string;
4
+ activeIndex?: number;
5
+ linksCount: number;
6
+ };
7
+ export declare const ActiveLinkIndicator: FC<ActiveLinkIndicatorProps>;
8
+ export {};
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.ActiveLinkIndicator = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _satellitePrefixer = _interopRequireDefault(require("../../styles/helpers/satellitePrefixer"));
15
+
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+
18
+ var _templateObject, _templateObject2, _templateObject3;
19
+
20
+ var LINK_HEIGHT_PX = 24;
21
+ var LINKS_SPACING_PX = 8;
22
+
23
+ var ActiveLinkIndicator = function ActiveLinkIndicator(_ref) {
24
+ var className = _ref.className,
25
+ activeIndex = _ref.activeIndex,
26
+ linksCount = _ref.linksCount;
27
+ var showIndicator = typeof activeIndex === "number" && activeIndex >= 0;
28
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
29
+ className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["w-4 flex justify-center"]))), className),
30
+ style: {
31
+ height: linksCount * LINK_HEIGHT_PX + (linksCount - 1) * LINKS_SPACING_PX
32
+ },
33
+ "aria-hidden": true,
34
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
35
+ className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["w-px h-full bg-grey-200"]))),
36
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
37
+ className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n w-px bg-accent-500\n transition-transform duration-100 ease-in-out\n ", "\n "])), showIndicator ? "visible" : "hidden"),
38
+ style: {
39
+ height: LINK_HEIGHT_PX,
40
+ transform: typeof activeIndex === "number" ? "translateY(".concat(activeIndex * (LINK_HEIGHT_PX + LINKS_SPACING_PX), "px)") : undefined
41
+ }
42
+ })
43
+ })
44
+ });
45
+ };
46
+
47
+ exports.ActiveLinkIndicator = ActiveLinkIndicator;
@@ -0,0 +1,7 @@
1
+ import type { FC } from "react";
2
+ import type { SidebarLinksGroupLink } from "./types";
3
+ declare type LinkProps = SidebarLinksGroupLink & {
4
+ active: boolean;
5
+ };
6
+ export declare const SidebarGroupLink: FC<LinkProps>;
7
+ export {};
@@ -5,45 +5,36 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = exports.SidebarHeader = void 0;
8
+ exports.SidebarGroupLink = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
12
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
13
 
14
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
-
16
- var _classnames = _interopRequireDefault(require("classnames"));
17
-
18
14
  var _satellitePrefixer = _interopRequireDefault(require("../../styles/helpers/satellitePrefixer"));
19
15
 
20
- var _SidebarContext = require("../SidebarContext");
16
+ var _useLinkProps = _interopRequireDefault(require("../../utils/useLinkProps"));
21
17
 
22
18
  var _jsxRuntime = require("react/jsx-runtime");
23
19
 
24
20
  var _templateObject;
25
21
 
26
- var _excluded = ["className", "children"];
27
-
28
22
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
29
23
 
30
24
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
31
25
 
32
- var SidebarHeader = function SidebarHeader(_ref) {
33
- var className = _ref.className,
34
- children = _ref.children,
35
- headingProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
36
-
37
- var _useSidebarContext = (0, _SidebarContext.useSidebarContext)(),
38
- variant = _useSidebarContext.variant,
39
- collapsed = _useSidebarContext.collapsed;
40
-
41
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("h3", _objectSpread(_objectSpread({}, headingProps), {}, {
42
- className: (0, _classnames["default"])((0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n h-10 pl-8\n flex items-center\n display-subheading uppercase\n ", "\n ", "\n "])), variant === "dark" ? "text-white" : "text-grey-900", collapsed && "invisible overflow-hidden"), className),
43
- children: children
26
+ var SidebarGroupLink = function SidebarGroupLink(props) {
27
+ var label = props.label,
28
+ active = props.active,
29
+ id = props.id,
30
+ disabled = props.disabled;
31
+ var linkProps = (0, _useLinkProps["default"])(props);
32
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("a", _objectSpread(_objectSpread({}, linkProps), {}, {
33
+ id: id,
34
+ className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n block hover:no-underline focus:outline-none leading-md\n ", "\n ", ""])), disabled ? "cursor-not-allowed" : "cursor-pointer", disabled ? "text-grey-300" : active ? "font-semibold text-accent-600" : "typo-subdued hover:text-accent-600 focus:text-accent-600"),
35
+ "aria-current": active,
36
+ children: label
44
37
  }));
45
38
  };
46
39
 
47
- exports.SidebarHeader = SidebarHeader;
48
- var _default = SidebarHeader;
49
- exports["default"] = _default;
40
+ exports.SidebarGroupLink = SidebarGroupLink;
@@ -0,0 +1,23 @@
1
+ import type { ReactNode } from "react";
2
+ import type { IconComponentType } from "../../types";
3
+ import type { SidebarLinksGroupLink } from "./types";
4
+ declare type SidebarLinksGroupBaseProps = {
5
+ id?: string;
6
+ className?: string;
7
+ links: SidebarLinksGroupLink[];
8
+ };
9
+ export declare type StaticSidebarLinksGroupProps = SidebarLinksGroupBaseProps & {
10
+ title?: never;
11
+ icon?: never;
12
+ initialIsOpen?: never;
13
+ onGroupToggle?: never;
14
+ };
15
+ export declare type CollapsibleSidebarLinksGroupProps = SidebarLinksGroupBaseProps & {
16
+ title: ReactNode;
17
+ icon: IconComponentType;
18
+ initialIsOpen?: boolean;
19
+ onGroupToggle?: (open: boolean) => void;
20
+ };
21
+ export declare type SidebarLinksGroupProps = StaticSidebarLinksGroupProps | CollapsibleSidebarLinksGroupProps;
22
+ export declare const SidebarLinksGroup: (props: SidebarLinksGroupProps) => JSX.Element;
23
+ export {};
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.SidebarLinksGroup = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _lodash = require("lodash");
17
+
18
+ var _react = require("react");
19
+
20
+ var _reactFeather = require("react-feather");
21
+
22
+ var _usePrevious = _interopRequireDefault(require("react-use/lib/usePrevious"));
23
+
24
+ var _satellitePrefixer = _interopRequireDefault(require("../../styles/helpers/satellitePrefixer"));
25
+
26
+ var _SidebarContext = require("../SidebarContext");
27
+
28
+ var _ActiveLinkIndicator = require("./ActiveLinkIndicator");
29
+
30
+ var _SidebarGroupLink = require("./SidebarGroupLink");
31
+
32
+ var _jsxRuntime = require("react/jsx-runtime");
33
+
34
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
35
+
36
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
+
38
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
+
40
+ var isCollapsibleSidebarLinksGroupProps = function isCollapsibleSidebarLinksGroupProps(props) {
41
+ return "title" in props && "icon" in props;
42
+ };
43
+
44
+ var SidebarLinksGroup = function SidebarLinksGroup(props) {
45
+ var _useSidebarContext = (0, _SidebarContext.useSidebarContext)(),
46
+ isLinkActive = _useSidebarContext.isLinkActive;
47
+
48
+ var id = props.id,
49
+ className = props.className,
50
+ links = props.links;
51
+ var contentId = (0, _react.useMemo)(function () {
52
+ return (0, _lodash.uniqueId)("links-group-");
53
+ }, []);
54
+ var activeLinkIndex = links.findIndex(function (link) {
55
+ return !link.disabled && isLinkActive(link.href);
56
+ });
57
+ var previousActiveLinkIndex = (0, _usePrevious["default"])(activeLinkIndex);
58
+ var hasMatchingLink = activeLinkIndex >= 0;
59
+
60
+ var _useState = (0, _react.useState)(!isCollapsibleSidebarLinksGroupProps(props) || hasMatchingLink || props.initialIsOpen !== false),
61
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
62
+ isOpen = _useState2[0],
63
+ setIsOpen = _useState2[1];
64
+
65
+ (0, _react.useEffect)(function () {
66
+ if (isCollapsibleSidebarLinksGroupProps(props)) {
67
+ var _props$onGroupToggle;
68
+
69
+ (_props$onGroupToggle = props.onGroupToggle) === null || _props$onGroupToggle === void 0 ? void 0 : _props$onGroupToggle.call(props, isOpen);
70
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
71
+
72
+ }, [isOpen]);
73
+ (0, _react.useEffect)(function () {
74
+ if (!isOpen && activeLinkIndex >= 0 && typeof previousActiveLinkIndex === "number" && activeLinkIndex !== previousActiveLinkIndex) {
75
+ setIsOpen(true);
76
+ }
77
+ }, [activeLinkIndex, previousActiveLinkIndex, isOpen]);
78
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
79
+ id: id,
80
+ className: className,
81
+ children: [isCollapsibleSidebarLinksGroupProps(props) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("button", {
82
+ className: (0, _satellitePrefixer["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n flex w-full text-left items-center mb-4 overflow-hidden focus:outline-none group cursor-pointer"]))),
83
+ onClick: function onClick() {
84
+ return setIsOpen(!isOpen);
85
+ },
86
+ "aria-expanded": isOpen,
87
+ "aria-controls": contentId,
88
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(props.icon, {
89
+ className: (0, _satellitePrefixer["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["shrink-0 text-grey-500 mr-3"]))),
90
+ size: "1rem"
91
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
92
+ className: (0, _satellitePrefixer["default"])(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["truncate display-subheading uppercase text-grey-800 group-hover:text-accent-500 mr-2"]))),
93
+ children: props.title
94
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFeather.ChevronRight, {
95
+ className: (0, _satellitePrefixer["default"])(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["shrink-0 text-grey-500 transition-all duration-150 ease-in-out ", ""])), isOpen && "rotate-90"),
96
+ size: "1rem"
97
+ })]
98
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
99
+ id: contentId,
100
+ className: (0, _satellitePrefixer["default"])(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["flex ", ""])), !isOpen && "hidden"),
101
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ActiveLinkIndicator.ActiveLinkIndicator, {
102
+ className: (0, _satellitePrefixer["default"])(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["shrink-0 mr-3"]))),
103
+ activeIndex: activeLinkIndex,
104
+ linksCount: links.length
105
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("ul", {
106
+ className: (0, _satellitePrefixer["default"])(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["flex-1 space-y-2 overflow-hidden"]))),
107
+ children: links.map(function (link, idx) {
108
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
109
+ className: (0, _satellitePrefixer["default"])(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["truncate"]))),
110
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SidebarGroupLink.SidebarGroupLink, _objectSpread(_objectSpread({}, link), {}, {
111
+ active: activeLinkIndex === idx
112
+ }))
113
+ }, "".concat(idx, "-").concat(link.href));
114
+ })
115
+ })]
116
+ })]
117
+ });
118
+ };
119
+
120
+ exports.SidebarLinksGroup = SidebarLinksGroup;
@@ -0,0 +1,2 @@
1
+ export * from "./SidebarLinksGroup";
2
+ export type { SidebarLinksGroupLink } from "./types";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _SidebarLinksGroup = require("./SidebarLinksGroup");
8
+
9
+ Object.keys(_SidebarLinksGroup).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _SidebarLinksGroup[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _SidebarLinksGroup[key];
16
+ }
17
+ });
18
+ });
@@ -0,0 +1,10 @@
1
+ import type { MouseEventHandler, ReactNode } from "react";
2
+ export declare type SidebarLinksGroupLink = {
3
+ id?: string;
4
+ href: string;
5
+ target?: string;
6
+ rel?: string;
7
+ onClick?: MouseEventHandler<HTMLAnchorElement>;
8
+ disabled?: boolean;
9
+ label: ReactNode;
10
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,9 @@
1
+ import type { FC, ReactNode } from "react";
2
+ export declare type SidebarNavSpacing = "small" | "large";
3
+ export declare type SidebarNavProps = {
4
+ className?: string;
5
+ spacing?: SidebarNavSpacing;
6
+ label: string;
7
+ children: ReactNode;
8
+ };
9
+ export declare const SidebarNav: FC<SidebarNavProps>;