@algolia/satellite 1.0.0-beta.173 → 1.0.0-beta.175

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 (210) hide show
  1. package/cjs/AutoComplete/AutoComplete.js +4 -9
  2. package/cjs/AutoComplete/components/AutoCompleteContext.d.ts +10 -0
  3. package/cjs/AutoComplete/components/AutoCompleteContext.js +29 -0
  4. package/cjs/AutoComplete/components/AutoCompleteEmptyState.d.ts +1 -1
  5. package/cjs/AutoComplete/components/DefaultOptionItem.js +8 -2
  6. package/cjs/AutoComplete/index.d.ts +1 -1
  7. package/cjs/AutoComplete/index.js +4 -4
  8. package/cjs/AutoComplete/types.d.ts +1 -1
  9. package/cjs/Badge/Badge.d.ts +2 -1
  10. package/cjs/Banners/Alert/Alert.d.ts +2 -1
  11. package/cjs/Banners/BigBertha/BigBertha.d.ts +1 -1
  12. package/cjs/Button/PolymorphicIconButton.d.ts +1 -1
  13. package/cjs/Button/types.d.ts +1 -1
  14. package/cjs/Dropdown/components/DropdownButtonItem.d.ts +1 -1
  15. package/cjs/Dropdown/components/DropdownLinkItem.d.ts +1 -1
  16. package/cjs/Dropdown/components/DropdownToggleItem.d.ts +1 -1
  17. package/cjs/Flag/types.d.ts +1 -1
  18. package/cjs/Icons/AlgoliaRecommendIcon.d.ts +3 -0
  19. package/cjs/Icons/AlgoliaRecommendIcon.js +46 -0
  20. package/cjs/Icons/AlgoliaSearchIcon.d.ts +3 -0
  21. package/cjs/Icons/AlgoliaSearchIcon.js +49 -0
  22. package/cjs/Icons/BulbIcon.d.ts +3 -0
  23. package/cjs/Icons/BulbIcon.js +37 -0
  24. package/cjs/Icons/ContextIcon.d.ts +3 -0
  25. package/cjs/Icons/ContextIcon.js +51 -0
  26. package/cjs/Icons/CrawlerIcon.d.ts +3 -0
  27. package/cjs/Icons/CrawlerIcon.js +40 -0
  28. package/cjs/Icons/DragHandleIcon.d.ts +3 -0
  29. package/cjs/Icons/DragHandleIcon.js +58 -0
  30. package/cjs/Icons/NeuralSearchIcon.d.ts +3 -0
  31. package/cjs/Icons/NeuralSearchIcon.js +34 -0
  32. package/cjs/Icons/NoFiltersIcon.d.ts +3 -0
  33. package/cjs/Icons/NoFiltersIcon.js +59 -0
  34. package/cjs/Icons/PinIcon.d.ts +3 -0
  35. package/cjs/Icons/PinIcon.js +60 -0
  36. package/cjs/Icons/QueryBreakdownIcon.d.ts +3 -0
  37. package/cjs/Icons/QueryBreakdownIcon.js +39 -0
  38. package/cjs/Icons/RocketIcon.d.ts +3 -0
  39. package/cjs/Icons/RocketIcon.js +36 -0
  40. package/cjs/Icons/SettingsCategoryPagesIcon.d.ts +3 -0
  41. package/cjs/Icons/SettingsCategoryPagesIcon.js +36 -0
  42. package/cjs/Icons/SettingsConsequencesIcon.d.ts +3 -0
  43. package/cjs/Icons/SettingsConsequencesIcon.js +70 -0
  44. package/cjs/Icons/TestingIcon.d.ts +3 -0
  45. package/cjs/Icons/TestingIcon.js +36 -0
  46. package/cjs/Icons/UnpinIcon.d.ts +3 -0
  47. package/cjs/Icons/UnpinIcon.js +60 -0
  48. package/cjs/Icons/WorkspaceSwitcherIcon.d.ts +3 -0
  49. package/cjs/Icons/WorkspaceSwitcherIcon.js +34 -0
  50. package/cjs/Icons/index.d.ts +20 -0
  51. package/cjs/Icons/index.js +1840 -0
  52. package/cjs/Icons/utils.d.ts +1 -0
  53. package/cjs/Icons/utils.js +10 -0
  54. package/cjs/Input/Input.d.ts +1 -1
  55. package/cjs/Link/Link.d.ts +1 -1
  56. package/cjs/Medallion/Medallion.d.ts +1 -1
  57. package/cjs/MenuButton/MenuButton.d.ts +25 -0
  58. package/cjs/MenuButton/MenuButton.js +72 -0
  59. package/cjs/MenuButton/components/CustomTrigger.d.ts +5 -0
  60. package/cjs/MenuButton/components/CustomTrigger.js +24 -0
  61. package/cjs/MenuButton/components/DefaultTrigger.d.ts +5 -0
  62. package/cjs/MenuButton/components/DefaultTrigger.js +32 -0
  63. package/cjs/MenuButton/components/Divider.d.ts +3 -0
  64. package/cjs/MenuButton/components/Divider.js +21 -0
  65. package/cjs/MenuButton/components/Label.d.ts +4 -0
  66. package/cjs/MenuButton/components/Label.js +32 -0
  67. package/cjs/MenuButton/components/collapsible/CollapsibleItem.d.ts +9 -0
  68. package/cjs/MenuButton/components/collapsible/CollapsibleItem.js +64 -0
  69. package/cjs/MenuButton/components/collapsible/CollapsibleItemsGroup.d.ts +6 -0
  70. package/cjs/MenuButton/components/collapsible/CollapsibleItemsGroup.js +20 -0
  71. package/cjs/MenuButton/components/collapsible/CollapsibleItemsGroupContext.d.ts +7 -0
  72. package/cjs/MenuButton/components/collapsible/CollapsibleItemsGroupContext.js +15 -0
  73. package/cjs/MenuButton/components/collapsible/CollapsibleItemsMultipleGroup.d.ts +8 -0
  74. package/cjs/MenuButton/components/collapsible/CollapsibleItemsMultipleGroup.js +36 -0
  75. package/cjs/MenuButton/components/collapsible/CollapsibleItemsSingleGroup.d.ts +8 -0
  76. package/cjs/MenuButton/components/collapsible/CollapsibleItemsSingleGroup.js +33 -0
  77. package/cjs/MenuButton/components/collapsible/index.d.ts +5 -0
  78. package/cjs/MenuButton/components/collapsible/index.js +60 -0
  79. package/cjs/MenuButton/components/items/ButtonItem.d.ts +14 -0
  80. package/cjs/MenuButton/components/items/ButtonItem.js +46 -0
  81. package/cjs/MenuButton/components/items/LinkItem.d.ts +10 -0
  82. package/cjs/MenuButton/components/items/LinkItem.js +69 -0
  83. package/cjs/MenuButton/components/items/RadioItem.d.ts +6 -0
  84. package/cjs/MenuButton/components/items/RadioItem.js +50 -0
  85. package/cjs/MenuButton/components/items/ToggleItem.d.ts +9 -0
  86. package/cjs/MenuButton/components/items/ToggleItem.js +72 -0
  87. package/cjs/MenuButton/components/items/index.d.ts +4 -0
  88. package/cjs/MenuButton/components/items/index.js +49 -0
  89. package/cjs/MenuButton/index.d.ts +1 -0
  90. package/cjs/MenuButton/index.js +13 -0
  91. package/cjs/MenuButton/useMenuItemProps.d.ts +11 -0
  92. package/cjs/MenuButton/useMenuItemProps.js +19 -0
  93. package/cjs/Sidebar/SidebarButtonLink.d.ts +1 -1
  94. package/cjs/Sidebar/SidebarLink.d.ts +1 -1
  95. package/cjs/Sidebar/SidebarLinksGroup/SidebarLinksGroup.d.ts +1 -1
  96. package/cjs/Tag/Tag.js +2 -2
  97. package/cjs/index.d.ts +2 -0
  98. package/cjs/index.js +24 -0
  99. package/cjs/styles/helpers/icons.js +1 -1
  100. package/cjs/types.d.ts +0 -3
  101. package/cjs/utils/sortObjectAlphabetically.d.ts +1 -0
  102. package/cjs/utils/sortObjectAlphabetically.js +18 -0
  103. package/esm/AutoComplete/AutoComplete.js +4 -9
  104. package/esm/AutoComplete/components/AutoCompleteContext.d.ts +10 -0
  105. package/esm/AutoComplete/components/AutoCompleteContext.js +23 -0
  106. package/esm/AutoComplete/components/AutoCompleteEmptyState.d.ts +1 -1
  107. package/esm/AutoComplete/components/DefaultOptionItem.js +8 -2
  108. package/esm/AutoComplete/index.d.ts +1 -1
  109. package/esm/AutoComplete/index.js +1 -1
  110. package/esm/AutoComplete/types.d.ts +1 -1
  111. package/esm/Badge/Badge.d.ts +2 -1
  112. package/esm/Banners/Alert/Alert.d.ts +2 -1
  113. package/esm/Banners/BigBertha/BigBertha.d.ts +1 -1
  114. package/esm/Button/PolymorphicIconButton.d.ts +1 -1
  115. package/esm/Button/types.d.ts +1 -1
  116. package/esm/Dropdown/components/DropdownButtonItem.d.ts +1 -1
  117. package/esm/Dropdown/components/DropdownLinkItem.d.ts +1 -1
  118. package/esm/Dropdown/components/DropdownToggleItem.d.ts +1 -1
  119. package/esm/Flag/types.d.ts +1 -1
  120. package/esm/Icons/AlgoliaRecommendIcon.d.ts +3 -0
  121. package/esm/Icons/AlgoliaRecommendIcon.js +40 -0
  122. package/esm/Icons/AlgoliaSearchIcon.d.ts +3 -0
  123. package/esm/Icons/AlgoliaSearchIcon.js +43 -0
  124. package/esm/Icons/BulbIcon.d.ts +3 -0
  125. package/esm/Icons/BulbIcon.js +30 -0
  126. package/esm/Icons/ContextIcon.d.ts +3 -0
  127. package/esm/Icons/ContextIcon.js +45 -0
  128. package/esm/Icons/CrawlerIcon.d.ts +3 -0
  129. package/esm/Icons/CrawlerIcon.js +34 -0
  130. package/esm/Icons/DragHandleIcon.d.ts +3 -0
  131. package/esm/Icons/DragHandleIcon.js +52 -0
  132. package/esm/Icons/NeuralSearchIcon.d.ts +3 -0
  133. package/esm/Icons/NeuralSearchIcon.js +27 -0
  134. package/esm/Icons/NoFiltersIcon.d.ts +3 -0
  135. package/esm/Icons/NoFiltersIcon.js +53 -0
  136. package/esm/Icons/PinIcon.d.ts +3 -0
  137. package/esm/Icons/PinIcon.js +54 -0
  138. package/esm/Icons/QueryBreakdownIcon.d.ts +3 -0
  139. package/esm/Icons/QueryBreakdownIcon.js +33 -0
  140. package/esm/Icons/RocketIcon.d.ts +3 -0
  141. package/esm/Icons/RocketIcon.js +29 -0
  142. package/esm/Icons/SettingsCategoryPagesIcon.d.ts +3 -0
  143. package/esm/Icons/SettingsCategoryPagesIcon.js +29 -0
  144. package/esm/Icons/SettingsConsequencesIcon.d.ts +3 -0
  145. package/esm/Icons/SettingsConsequencesIcon.js +64 -0
  146. package/esm/Icons/TestingIcon.d.ts +3 -0
  147. package/esm/Icons/TestingIcon.js +29 -0
  148. package/esm/Icons/UnpinIcon.d.ts +3 -0
  149. package/esm/Icons/UnpinIcon.js +54 -0
  150. package/esm/Icons/WorkspaceSwitcherIcon.d.ts +3 -0
  151. package/esm/Icons/WorkspaceSwitcherIcon.js +27 -0
  152. package/esm/Icons/index.d.ts +20 -0
  153. package/esm/Icons/index.js +22 -0
  154. package/esm/Icons/utils.d.ts +1 -0
  155. package/esm/Icons/utils.js +4 -0
  156. package/esm/Input/Input.d.ts +1 -1
  157. package/esm/Link/Link.d.ts +1 -1
  158. package/esm/Medallion/Medallion.d.ts +1 -1
  159. package/esm/MenuButton/MenuButton.d.ts +25 -0
  160. package/esm/MenuButton/MenuButton.js +62 -0
  161. package/esm/MenuButton/components/CustomTrigger.d.ts +5 -0
  162. package/esm/MenuButton/components/CustomTrigger.js +14 -0
  163. package/esm/MenuButton/components/DefaultTrigger.d.ts +5 -0
  164. package/esm/MenuButton/components/DefaultTrigger.js +22 -0
  165. package/esm/MenuButton/components/Divider.d.ts +3 -0
  166. package/esm/MenuButton/components/Divider.js +11 -0
  167. package/esm/MenuButton/components/Label.d.ts +4 -0
  168. package/esm/MenuButton/components/Label.js +22 -0
  169. package/esm/MenuButton/components/collapsible/CollapsibleItem.d.ts +9 -0
  170. package/esm/MenuButton/components/collapsible/CollapsibleItem.js +55 -0
  171. package/esm/MenuButton/components/collapsible/CollapsibleItemsGroup.d.ts +6 -0
  172. package/esm/MenuButton/components/collapsible/CollapsibleItemsGroup.js +14 -0
  173. package/esm/MenuButton/components/collapsible/CollapsibleItemsGroupContext.d.ts +7 -0
  174. package/esm/MenuButton/components/collapsible/CollapsibleItemsGroupContext.js +9 -0
  175. package/esm/MenuButton/components/collapsible/CollapsibleItemsMultipleGroup.d.ts +8 -0
  176. package/esm/MenuButton/components/collapsible/CollapsibleItemsMultipleGroup.js +29 -0
  177. package/esm/MenuButton/components/collapsible/CollapsibleItemsSingleGroup.d.ts +8 -0
  178. package/esm/MenuButton/components/collapsible/CollapsibleItemsSingleGroup.js +26 -0
  179. package/esm/MenuButton/components/collapsible/index.d.ts +5 -0
  180. package/esm/MenuButton/components/collapsible/index.js +5 -0
  181. package/esm/MenuButton/components/items/ButtonItem.d.ts +14 -0
  182. package/esm/MenuButton/components/items/ButtonItem.js +37 -0
  183. package/esm/MenuButton/components/items/LinkItem.d.ts +10 -0
  184. package/esm/MenuButton/components/items/LinkItem.js +60 -0
  185. package/esm/MenuButton/components/items/RadioItem.d.ts +6 -0
  186. package/esm/MenuButton/components/items/RadioItem.js +41 -0
  187. package/esm/MenuButton/components/items/ToggleItem.d.ts +9 -0
  188. package/esm/MenuButton/components/items/ToggleItem.js +63 -0
  189. package/esm/MenuButton/components/items/index.d.ts +4 -0
  190. package/esm/MenuButton/components/items/index.js +4 -0
  191. package/esm/MenuButton/index.d.ts +1 -0
  192. package/esm/MenuButton/index.js +1 -0
  193. package/esm/MenuButton/useMenuItemProps.d.ts +11 -0
  194. package/esm/MenuButton/useMenuItemProps.js +12 -0
  195. package/esm/Sidebar/SidebarButtonLink.d.ts +1 -1
  196. package/esm/Sidebar/SidebarLink.d.ts +1 -1
  197. package/esm/Sidebar/SidebarLinksGroup/SidebarLinksGroup.d.ts +1 -1
  198. package/esm/Tag/Tag.js +3 -3
  199. package/esm/index.d.ts +2 -0
  200. package/esm/index.js +2 -0
  201. package/esm/styles/helpers/icons.js +2 -2
  202. package/esm/types.d.ts +0 -3
  203. package/esm/utils/sortObjectAlphabetically.d.ts +1 -0
  204. package/esm/utils/sortObjectAlphabetically.js +11 -0
  205. package/package.json +3 -2
  206. package/satellite.min.css +1 -1
  207. package/cjs/AutoComplete/components/AutocompleteContext.d.ts +0 -5
  208. package/cjs/AutoComplete/components/AutocompleteContext.js +0 -19
  209. package/esm/AutoComplete/components/AutocompleteContext.d.ts +0 -5
  210. package/esm/AutoComplete/components/AutocompleteContext.js +0 -13
@@ -0,0 +1,14 @@
1
+ import { CollapsibleItemsGroupContext } from "./CollapsibleItemsGroupContext";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ export var CollapsibleItemsGroup = function CollapsibleItemsGroup(_ref) {
4
+ var expandedItems = _ref.expandedItems,
5
+ onItemClick = _ref.onItemClick,
6
+ children = _ref.children;
7
+ return /*#__PURE__*/_jsx(CollapsibleItemsGroupContext.Provider, {
8
+ value: {
9
+ expandedItems: expandedItems,
10
+ onItemClick: onItemClick
11
+ },
12
+ children: children
13
+ });
14
+ };
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export interface CollapsibleItemsGroupContextInterface {
3
+ expandedItems: readonly string[];
4
+ onItemClick(name: string): void;
5
+ }
6
+ export declare const CollapsibleItemsGroupContext: import("react").Context<CollapsibleItemsGroupContextInterface | null>;
7
+ export declare const useCollapsibleItemsGroup: () => CollapsibleItemsGroupContextInterface;
@@ -0,0 +1,9 @@
1
+ import { createContext, useContext } from "react";
2
+ export var CollapsibleItemsGroupContext = /*#__PURE__*/createContext(null);
3
+ export var useCollapsibleItemsGroup = function useCollapsibleItemsGroup() {
4
+ var context = useContext(CollapsibleItemsGroupContext);
5
+ if (!context) {
6
+ throw new Error("useCollapsibleItemsGroupContext used outside CollapsibleItemsGroupContext");
7
+ }
8
+ return context;
9
+ };
@@ -0,0 +1,8 @@
1
+ import type { FC } from "react";
2
+ export declare type CollapsibleItemsMultiGroupProps = {
3
+ initialExpandedItems?: string[];
4
+ };
5
+ /**
6
+ * Multiple collapsible item can be open at a given time
7
+ */
8
+ export declare const CollapsibleItemsMultipleGroup: FC<CollapsibleItemsMultiGroupProps>;
@@ -0,0 +1,29 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import { useState } from "react";
4
+ import { CollapsibleItemsGroup } from "./CollapsibleItemsGroup";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ /**
7
+ * Multiple collapsible item can be open at a given time
8
+ */
9
+ export var CollapsibleItemsMultipleGroup = function CollapsibleItemsMultipleGroup(_ref) {
10
+ var initialExpandedItems = _ref.initialExpandedItems,
11
+ children = _ref.children;
12
+ var _useState = useState(function () {
13
+ return initialExpandedItems !== null && initialExpandedItems !== void 0 ? initialExpandedItems : [];
14
+ }),
15
+ _useState2 = _slicedToArray(_useState, 2),
16
+ expandedItems = _useState2[0],
17
+ setExpandedItems = _useState2[1];
18
+ return /*#__PURE__*/_jsx(CollapsibleItemsGroup, {
19
+ expandedItems: expandedItems,
20
+ onItemClick: function onItemClick(name) {
21
+ return setExpandedItems(function (items) {
22
+ return items.includes(name) ? items.filter(function (i) {
23
+ return i !== name;
24
+ }) : [].concat(_toConsumableArray(items), [name]);
25
+ });
26
+ },
27
+ children: children
28
+ });
29
+ };
@@ -0,0 +1,8 @@
1
+ import type { FC } from "react";
2
+ export declare type CollapsibleItemsExclusiveGroupProps = {
3
+ initialExpandedItem?: string;
4
+ };
5
+ /**
6
+ * Only one collapsible item can be open at a given time (unless you manually override)
7
+ */
8
+ export declare const CollapsibleItemsSingleGroup: FC<CollapsibleItemsExclusiveGroupProps>;
@@ -0,0 +1,26 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { useState } from "react";
3
+ import { CollapsibleItemsGroup } from "./CollapsibleItemsGroup";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ /**
6
+ * Only one collapsible item can be open at a given time (unless you manually override)
7
+ */
8
+ export var CollapsibleItemsSingleGroup = function CollapsibleItemsSingleGroup(_ref) {
9
+ var initialExpandedItem = _ref.initialExpandedItem,
10
+ children = _ref.children;
11
+ var _useState = useState(function () {
12
+ return initialExpandedItem ? [initialExpandedItem] : [];
13
+ }),
14
+ _useState2 = _slicedToArray(_useState, 2),
15
+ expandedItems = _useState2[0],
16
+ setExpandedItems = _useState2[1];
17
+ return /*#__PURE__*/_jsx(CollapsibleItemsGroup, {
18
+ expandedItems: expandedItems,
19
+ onItemClick: function onItemClick(name) {
20
+ return setExpandedItems(function (items) {
21
+ return items.includes(name) ? [] : [name];
22
+ });
23
+ },
24
+ children: children
25
+ });
26
+ };
@@ -0,0 +1,5 @@
1
+ export * from "./CollapsibleItem";
2
+ export * from "./CollapsibleItemsGroup";
3
+ export * from "./CollapsibleItemsGroupContext";
4
+ export * from "./CollapsibleItemsMultipleGroup";
5
+ export * from "./CollapsibleItemsSingleGroup";
@@ -0,0 +1,5 @@
1
+ export * from "./CollapsibleItem";
2
+ export * from "./CollapsibleItemsGroup";
3
+ export * from "./CollapsibleItemsGroupContext";
4
+ export * from "./CollapsibleItemsMultipleGroup";
5
+ export * from "./CollapsibleItemsSingleGroup";
@@ -0,0 +1,14 @@
1
+ import type { IconComponentType } from "Icons";
2
+ import type { FC } from "react";
3
+ import type { BaseItemProps } from "../../useMenuItemProps";
4
+ export declare type ButtonItemProps = BaseItemProps<HTMLButtonElement> & JSX.IntrinsicElements["button"] & {
5
+ /** Left aligned icon */
6
+ startIcon?: IconComponentType;
7
+ /**
8
+ * Variant of the item
9
+ * @default "default"
10
+ */
11
+ variant?: "default" | "destructive";
12
+ };
13
+ export declare const ButtonItem: FC<ButtonItemProps>;
14
+ export default ButtonItem;
@@ -0,0 +1,37 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _templateObject, _templateObject2, _templateObject3;
5
+ var _excluded = ["children", "variant", "startIcon"];
6
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
+ import * as DropdownMenu from "@radix-ui/react-dropdown-menu";
9
+ import cx from "clsx";
10
+ import stl from "../../../styles/helpers/satellitePrefixer";
11
+ import { useMenuItemProps } from "../../useMenuItemProps";
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { jsxs as _jsxs } from "react/jsx-runtime";
14
+ export var ButtonItem = function ButtonItem(props) {
15
+ var itemProps = useMenuItemProps(props);
16
+ var _props$itemProps = _objectSpread(_objectSpread({}, props), itemProps),
17
+ children = _props$itemProps.children,
18
+ variant = _props$itemProps.variant,
19
+ StartIcon = _props$itemProps.startIcon,
20
+ mergedProps = _objectWithoutProperties(_props$itemProps, _excluded);
21
+ var showDestructiveVariant = !props.disabled && variant === "destructive";
22
+ return /*#__PURE__*/_jsx(DropdownMenu.Item, {
23
+ asChild: true,
24
+ children: /*#__PURE__*/_jsxs("button", _objectSpread(_objectSpread({}, mergedProps), {}, {
25
+ className: cx(mergedProps.className, stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["w-full"])))),
26
+ children: [StartIcon && /*#__PURE__*/_jsx(StartIcon, {
27
+ className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["mr-2 shrink-0 ", ""])), showDestructiveVariant ? "text-red-700" : "text-inherit"),
28
+ width: "1rem",
29
+ height: "1rem"
30
+ }), /*#__PURE__*/_jsx("span", {
31
+ className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["w-full truncate ", ""])), showDestructiveVariant && "text-red-700"),
32
+ children: children
33
+ })]
34
+ }))
35
+ });
36
+ };
37
+ export default ButtonItem;
@@ -0,0 +1,10 @@
1
+ import type { IconComponentType } from "Icons";
2
+ import type { FC } from "react";
3
+ import type { BaseItemProps } from "../../useMenuItemProps";
4
+ export declare type LinkItemProps = BaseItemProps & {
5
+ href: string;
6
+ /** Left aligned icon */
7
+ startIcon?: IconComponentType;
8
+ };
9
+ export declare const LinkItem: FC<LinkItemProps>;
10
+ export default LinkItem;
@@ -0,0 +1,60 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
5
+ var _excluded = ["startIcon", "className", "children", "onClick"];
6
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
+ import * as DropdownMenu from "@radix-ui/react-dropdown-menu";
9
+ import cx from "clsx";
10
+ import { useMemo } from "react";
11
+ import { ExternalLink } from "react-feather";
12
+ import { useSatelliteContext } from "../../../Satellite";
13
+ import stl from "../../../styles/helpers/satellitePrefixer";
14
+ import parseURL from "../../../utils/parseUrl";
15
+ import { useMenuItemProps } from "../../useMenuItemProps";
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
+ import { jsxs as _jsxs } from "react/jsx-runtime";
18
+ export var LinkItem = function LinkItem(props) {
19
+ var _useSatelliteContext = useSatelliteContext(),
20
+ router = _useSatelliteContext.router;
21
+ var itemProps = useMenuItemProps(props);
22
+ var _props$itemProps = _objectSpread(_objectSpread({}, props), itemProps),
23
+ StartIcon = _props$itemProps.startIcon,
24
+ className = _props$itemProps.className,
25
+ children = _props$itemProps.children,
26
+ onClick = _props$itemProps.onClick,
27
+ mergedProps = _objectWithoutProperties(_props$itemProps, _excluded);
28
+ var href = router.transformHref(props.href || "");
29
+ var parsedLocation = useMemo(function () {
30
+ return parseURL(href);
31
+ }, [href]);
32
+ var isExternalLink = router.isExternalLocation(parsedLocation);
33
+ var onItemClick = function onItemClick(event) {
34
+ onClick === null || onClick === void 0 || onClick(event);
35
+ event.preventDefault();
36
+ if (router.shouldOpenInNewTab(parsedLocation)) {
37
+ window.open(href, "_blank");
38
+ } else {
39
+ router.push({
40
+ url: href
41
+ });
42
+ }
43
+ };
44
+ return /*#__PURE__*/_jsxs(DropdownMenu.Item, _objectSpread(_objectSpread({}, mergedProps), {}, {
45
+ className: cx(stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["flex items-center"]))), className),
46
+ onClick: onItemClick,
47
+ children: [StartIcon && /*#__PURE__*/_jsx(StartIcon, {
48
+ className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["mr-2 shrink-0 text-grey-500"]))),
49
+ width: "1rem",
50
+ height: "1rem"
51
+ }), /*#__PURE__*/_jsx("span", {
52
+ className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["w-full truncate"]))),
53
+ children: children
54
+ }), isExternalLink && /*#__PURE__*/_jsx(ExternalLink, {
55
+ className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["ml-1 shrink-0"]))),
56
+ size: "1em"
57
+ })]
58
+ }));
59
+ };
60
+ export default LinkItem;
@@ -0,0 +1,6 @@
1
+ import type { DropdownMenuRadioItemProps } from "@radix-ui/react-dropdown-menu";
2
+ import type { FC } from "react";
3
+ import type { BaseItemProps } from "../../useMenuItemProps";
4
+ export declare type RadioItemProps = Pick<DropdownMenuRadioItemProps, "value" | "defaultChecked"> & BaseItemProps<HTMLDivElement>;
5
+ export declare const RadioItem: FC<RadioItemProps>;
6
+ export default RadioItem;
@@ -0,0 +1,41 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
5
+ var _excluded = ["children", "className"];
6
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
7
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
+ import * as DropdownMenu from "@radix-ui/react-dropdown-menu";
9
+ import cx from "clsx";
10
+ import { Check } from "react-feather";
11
+ import stl from "../../../styles/helpers/satellitePrefixer";
12
+ import useMenuItemProps from "../../useMenuItemProps";
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import { jsxs as _jsxs } from "react/jsx-runtime";
15
+ export var RadioItem = function RadioItem(props) {
16
+ var itemProps = useMenuItemProps(props);
17
+ var _props$itemProps = _objectSpread(_objectSpread({}, props), itemProps),
18
+ children = _props$itemProps.children,
19
+ className = _props$itemProps.className,
20
+ radioProps = _objectWithoutProperties(_props$itemProps, _excluded);
21
+ return /*#__PURE__*/_jsx(DropdownMenu.RadioItem, _objectSpread(_objectSpread({}, radioProps), {}, {
22
+ className: cx(className, stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["data-[state=checked]:bg-xenon-100"])))),
23
+ onSelect: function onSelect(e) {
24
+ return e.preventDefault();
25
+ },
26
+ children: /*#__PURE__*/_jsxs("div", {
27
+ className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["flex-1 flex items-start relative py-2 pr-5 overflow-hidden"]))),
28
+ children: [/*#__PURE__*/_jsx("span", {
29
+ className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["flex-1 truncate mr-4"]))),
30
+ children: children
31
+ }), /*#__PURE__*/_jsx(DropdownMenu.ItemIndicator, {
32
+ asChild: true,
33
+ children: /*#__PURE__*/_jsx(Check, {
34
+ className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["absolute right-0 text-accent-600 h-5"])))
35
+ })
36
+ })]
37
+ })
38
+ }));
39
+ };
40
+ RadioItem.displayName = "RadioItem";
41
+ export default RadioItem;
@@ -0,0 +1,9 @@
1
+ import type { IconComponentType } from "Icons";
2
+ import type { FC } from "react";
3
+ import type { ToggleProps } from "../../../Toggle";
4
+ export interface ToggleItemProps extends Omit<ToggleProps, "onSelect"> {
5
+ startIcon?: IconComponentType;
6
+ onSelect?: (event: Event) => void;
7
+ }
8
+ export declare const ToggleItem: FC<ToggleItemProps>;
9
+ export default ToggleItem;
@@ -0,0 +1,63 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
6
+ var _excluded = ["className", "checked", "startIcon", "children", "onSelect"];
7
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9
+ import * as DropdownMenu from "@radix-ui/react-dropdown-menu";
10
+ import cx from "clsx";
11
+ import { useState } from "react";
12
+ import stl from "../../../styles/helpers/satellitePrefixer";
13
+ import { Toggle } from "../../../Toggle";
14
+ import useMenuItemProps from "../../useMenuItemProps";
15
+ import { jsx as _jsx } from "react/jsx-runtime";
16
+ import { jsxs as _jsxs } from "react/jsx-runtime";
17
+ export var ToggleItem = function ToggleItem(props) {
18
+ var itemProps = useMenuItemProps(props);
19
+ var _props$itemProps = _objectSpread(_objectSpread({}, props), itemProps),
20
+ className = _props$itemProps.className,
21
+ checked = _props$itemProps.checked,
22
+ StartIcon = _props$itemProps.startIcon,
23
+ children = _props$itemProps.children,
24
+ _onSelect = _props$itemProps.onSelect,
25
+ toggleProps = _objectWithoutProperties(_props$itemProps, _excluded);
26
+ var isControlled = typeof checked === "boolean";
27
+ var _useState = useState(isControlled ? checked : toggleProps.defaultChecked),
28
+ _useState2 = _slicedToArray(_useState, 2),
29
+ internalChecked = _useState2[0],
30
+ setInternalChecked = _useState2[1];
31
+ var isChecked = isControlled ? checked : internalChecked;
32
+ return /*#__PURE__*/_jsx(DropdownMenu.CheckboxItem, {
33
+ asChild: true,
34
+ onSelect: function onSelect(event) {
35
+ // we prevent the default behavior from Radix which consist in closing
36
+ // the menu when clicking on an item list while we want to keep it open
37
+ event.preventDefault();
38
+ _onSelect === null || _onSelect === void 0 || _onSelect(event);
39
+ if (!isControlled) {
40
+ setInternalChecked(!internalChecked);
41
+ }
42
+ },
43
+ checked: isChecked,
44
+ disabled: toggleProps.disabled,
45
+ children: /*#__PURE__*/_jsxs("div", {
46
+ className: cx(stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["flex items-center"]))), className),
47
+ children: [StartIcon && /*#__PURE__*/_jsx(StartIcon, {
48
+ className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["mr-2 shrink-0 text-grey-500"]))),
49
+ width: "1rem",
50
+ height: "1rem"
51
+ }), /*#__PURE__*/_jsx("span", {
52
+ className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["flex-1 truncate mr-4"]))),
53
+ children: children
54
+ }), /*#__PURE__*/_jsx(Toggle, _objectSpread(_objectSpread({
55
+ decorative: true,
56
+ className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["shrink-0"])))
57
+ }, toggleProps), {}, {
58
+ checked: isChecked
59
+ }))]
60
+ })
61
+ });
62
+ };
63
+ export default ToggleItem;
@@ -0,0 +1,4 @@
1
+ export * from "./ButtonItem";
2
+ export * from "./LinkItem";
3
+ export * from "./RadioItem";
4
+ export * from "./ToggleItem";
@@ -0,0 +1,4 @@
1
+ export * from "./ButtonItem";
2
+ export * from "./LinkItem";
3
+ export * from "./RadioItem";
4
+ export * from "./ToggleItem";
@@ -0,0 +1 @@
1
+ export { default as ExperimentalMenuButton } from "./MenuButton";
@@ -0,0 +1 @@
1
+ export { default as ExperimentalMenuButton } from "./MenuButton";
@@ -0,0 +1,11 @@
1
+ import type { EventHandler, MouseEvent } from "react";
2
+ export interface BaseItemProps<T extends HTMLElement = HTMLElement> {
3
+ className?: string;
4
+ disabled?: boolean;
5
+ onClick?: EventHandler<MouseEvent<T>>;
6
+ }
7
+ export declare const useMenuItemProps: <T extends HTMLElement = HTMLElement>(props: BaseItemProps<T>) => {
8
+ className: string;
9
+ onClick: ((event: MouseEvent<T, globalThis.MouseEvent>) => void) | undefined;
10
+ };
11
+ export default useMenuItemProps;
@@ -0,0 +1,12 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
+ var _templateObject;
3
+ import cx from "clsx";
4
+ import stl from "../styles/helpers/satellitePrefixer";
5
+ export var useMenuItemProps = function useMenuItemProps(props) {
6
+ var className = cx(stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n flex items-center\n min-h-10 px-4 text-left\n focus:no-underline hover:no-underline\n ", "\n "])), props.disabled ? "text-grey-300 cursor-not-allowed outline-none" : "text-inherit hover:bg-grey-100 focus:bg-grey-100 focus:outline-none cursor-pointer"), props.className);
7
+ return {
8
+ className: className,
9
+ onClick: props.onClick
10
+ };
11
+ };
12
+ export default useMenuItemProps;
@@ -1,5 +1,5 @@
1
1
  import type { MouseEventHandler, ReactNode, VFC } from "react";
2
- import type { IconComponentType } from "../types";
2
+ import type { IconComponentType } from "../Icons";
3
3
  export declare type SidebarButtonLinkIcon = IconComponentType | {
4
4
  active: IconComponentType;
5
5
  inactive: IconComponentType;
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode, VFC } from "react";
2
- import type { IconComponentType } from "../types";
2
+ import type { IconComponentType } from "../Icons";
3
3
  export declare type SidebarLinkProps = {
4
4
  icon: IconComponentType;
5
5
  href: string;
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode, VFC } from "react";
2
- import type { IconComponentType } from "../../types";
2
+ import type { IconComponentType } from "../../Icons";
3
3
  import type { SidebarLinksGroupLink } from "./types";
4
4
  declare type SidebarLinksGroupBaseProps = {
5
5
  id?: string;
package/esm/Tag/Tag.js CHANGED
@@ -8,7 +8,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
8
8
  import cx from "clsx";
9
9
  import { forwardRef } from "react";
10
10
  import { Plus, X } from "react-feather";
11
- import { useIsInsideAutocomplete } from "../AutoComplete";
11
+ import { useIsInsideAutoComplete } from "../AutoComplete";
12
12
  import { useLocale } from "../Satellite";
13
13
  import stl from "../styles/helpers/satellitePrefixer";
14
14
  import { TooltipWrapper } from "../Tooltip";
@@ -61,8 +61,8 @@ export var Tag = /*#__PURE__*/forwardRef(function (_ref, ref) {
61
61
  var contextLocale = useLocale("tag");
62
62
  var locale = _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_TAG_LOCALE), contextLocale), propsLocale);
63
63
  var tagClassName = cx(stl(_templateObject15 || (_templateObject15 = _taggedTemplateLiteral(["tag"]))), VARIANT_CLASSNAMES[variant], className);
64
- var isInsideAutocomplete = useIsInsideAutocomplete();
65
- var tabIndexProps = isInsideAutocomplete ? {
64
+ var isInsideAutoComplete = useIsInsideAutoComplete();
65
+ var tabIndexProps = isInsideAutoComplete ? {
66
66
  tabIndex: -1
67
67
  } : {};
68
68
  var addable = Boolean(onAdd);
package/esm/index.d.ts CHANGED
@@ -23,11 +23,13 @@ export * from "./Field";
23
23
  export * from "./Flag";
24
24
  export * from "./FlexGrid";
25
25
  export * from "./HelpUnderline";
26
+ export * from "./Icons";
26
27
  export * from "./Input";
27
28
  export * from "./Insert";
28
29
  export * from "./KeyboardKey";
29
30
  export * from "./Link";
30
31
  export * from "./Medallion";
32
+ export * from "./MenuButton";
31
33
  export * from "./Modal";
32
34
  export * from "./Pagination";
33
35
  export * from "./Popover";
package/esm/index.js CHANGED
@@ -23,11 +23,13 @@ export * from "./Field";
23
23
  export * from "./Flag";
24
24
  export * from "./FlexGrid";
25
25
  export * from "./HelpUnderline";
26
+ export * from "./Icons";
26
27
  export * from "./Input";
27
28
  export * from "./Insert";
28
29
  export * from "./KeyboardKey";
29
30
  export * from "./Link";
30
31
  export * from "./Medallion";
32
+ export * from "./MenuButton";
31
33
  export * from "./Modal";
32
34
  export * from "./Pagination";
33
35
  export * from "./Popover";
@@ -1,11 +1,11 @@
1
+ import _Icon from "react-feather";
1
2
  import _require4 from "react-dom/server";
2
3
  import _require2 from "react";
3
- import _Icon from "react-feather";
4
- var Icon = _Icon;
5
4
  var _require = _require2,
6
5
  createElement = _require.createElement;
7
6
  var _require3 = _require4,
8
7
  renderToStaticMarkup = _require3.renderToStaticMarkup;
8
+ var Icon = _Icon;
9
9
 
10
10
  /**
11
11
  * Render inline SVG for a Feather icon
package/esm/types.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- import type { ComponentClass, SVGAttributes, VoidFunctionComponent } from "react";
2
- export declare type IconProps = SVGAttributes<SVGElement>;
3
- export declare type IconComponentType = VoidFunctionComponent<IconProps> | ComponentClass<IconProps>;
4
1
  export declare type ColorVariant = "accent" | "grey" | "green" | "blue" | "orange" | "red";
5
2
  /**
6
3
  * Ensures at least one type is required
@@ -0,0 +1 @@
1
+ export declare function sortObjectAlphabetically(obj: Record<string, any>): Record<string, any>;
@@ -0,0 +1,11 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ export function sortObjectAlphabetically(obj) {
3
+ var sortedEntries = Object.entries(obj).sort(function (_ref, _ref2) {
4
+ var _ref3 = _slicedToArray(_ref, 1),
5
+ keyA = _ref3[0];
6
+ var _ref4 = _slicedToArray(_ref2, 1),
7
+ keyB = _ref4[0];
8
+ return keyA.localeCompare(keyB);
9
+ });
10
+ return Object.fromEntries(sortedEntries);
11
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@algolia/satellite",
3
- "version": "1.0.0-beta.173",
3
+ "version": "1.0.0-beta.175",
4
4
  "description": "Algolia design system React components",
5
5
  "sideEffects": false,
6
6
  "scripts": {
@@ -66,7 +66,6 @@
66
66
  "peerDependencies": {
67
67
  "react": "^17.0.0",
68
68
  "react-dom": "^17.0.0",
69
- "react-feather": "^2",
70
69
  "react-instantsearch-dom": "^6.1.0"
71
70
  },
72
71
  "dependencies": {
@@ -74,6 +73,7 @@
74
73
  "@popperjs/core": "^2.4.4",
75
74
  "@radix-ui/react-avatar": "^1.0.3",
76
75
  "@radix-ui/react-dialog": "^1.0.4",
76
+ "@radix-ui/react-dropdown-menu": "^2.0.5",
77
77
  "@radix-ui/react-popover": "^1.0.7",
78
78
  "@radix-ui/react-progress": "^1.0.3",
79
79
  "@radix-ui/react-separator": "^1.0.3",
@@ -89,6 +89,7 @@
89
89
  "lodash": "^4.17.21",
90
90
  "react-day-picker": "^8.0.7",
91
91
  "react-dropzone": "^11.5.1",
92
+ "react-feather": "^2.0.10",
92
93
  "react-popper": "^2.2.5",
93
94
  "react-transition-group": "^4.4.5",
94
95
  "react-use": "^15.3.8",