@algolia/satellite 1.0.0-beta.150 → 1.0.0-beta.154

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 (87) hide show
  1. package/README.md +1 -1
  2. package/cjs/AnnouncementBadge/AnnouncementBadge.d.ts +6 -0
  3. package/cjs/AutoComplete/AutoComplete.d.ts +0 -1
  4. package/cjs/AutoComplete/AutoComplete.js +7 -11
  5. package/cjs/AutoComplete/components/AutoCompleteEmptyState.js +1 -1
  6. package/cjs/AutoComplete/types.d.ts +0 -1
  7. package/cjs/Avatars/UserAvatar.d.ts +4 -1
  8. package/cjs/Badge/Badge.js +3 -2
  9. package/cjs/Banners/Alert/Alert.d.ts +4 -0
  10. package/cjs/Banners/Alert/Alert.js +1 -1
  11. package/cjs/Banners/Promote/Promote.js +3 -3
  12. package/cjs/Card/Card.d.ts +1 -1
  13. package/cjs/Card/components/CardHeader.d.ts +5 -3
  14. package/cjs/Card/components/CardHeader.js +4 -2
  15. package/cjs/Checkbox/Checkbox.js +2 -1
  16. package/cjs/EmptyState/EmptyState.js +4 -4
  17. package/cjs/EmptyState/types.d.ts +1 -1
  18. package/cjs/Field/Field.js +1 -1
  19. package/cjs/Flag/Flag.js +2 -1
  20. package/cjs/Flag/types.d.ts +6 -1
  21. package/cjs/FlexGrid/FlexGrid.d.ts +34 -0
  22. package/cjs/Input/Input.d.ts +1 -1
  23. package/cjs/Input/Input.js +2 -2
  24. package/cjs/Modal/Modal.d.ts +8 -1
  25. package/cjs/Modal/Modal.js +1 -1
  26. package/cjs/Pagination/CompactPagination/CompactPagination.js +1 -1
  27. package/cjs/RangeSlider/RangeSlider.d.ts +22 -6
  28. package/cjs/RangeSlider/RangeSlider.js +69 -78
  29. package/cjs/Sidebar/SidebarButtonLink.js +8 -3
  30. package/cjs/Sidebar/SidebarHeading.js +1 -1
  31. package/cjs/Sidebar/SidebarLink.js +10 -5
  32. package/cjs/Sidebar/SidebarLinksGroup/SidebarGroupLink.js +9 -4
  33. package/cjs/Tables/Table/Table.js +1 -1
  34. package/cjs/Tabs/ContentTabs.js +2 -2
  35. package/cjs/Tabs/components/LinkTab.js +1 -1
  36. package/cjs/Tooltip/OverflowTooltipWrapper.js +1 -1
  37. package/cjs/Tooltip/TooltipWrapper.d.ts +1 -1
  38. package/cjs/styles/helpers/makePurgeCssExtractor.js +1 -1
  39. package/cjs/styles/tailwind.config.js +1 -1
  40. package/cjs/utils/index.d.ts +0 -1
  41. package/cjs/utils/isCssPropertySupported.d.ts +1 -1
  42. package/esm/AnnouncementBadge/AnnouncementBadge.d.ts +6 -0
  43. package/esm/AutoComplete/AutoComplete.d.ts +0 -1
  44. package/esm/AutoComplete/AutoComplete.js +7 -11
  45. package/esm/AutoComplete/components/AutoCompleteEmptyState.js +1 -1
  46. package/esm/AutoComplete/types.d.ts +0 -1
  47. package/esm/Avatars/UserAvatar.d.ts +4 -1
  48. package/esm/Badge/Badge.js +3 -2
  49. package/esm/Banners/Alert/Alert.d.ts +4 -0
  50. package/esm/Banners/Alert/Alert.js +1 -1
  51. package/esm/Banners/Promote/Promote.js +3 -3
  52. package/esm/Card/Card.d.ts +1 -1
  53. package/esm/Card/components/CardHeader.d.ts +5 -3
  54. package/esm/Card/components/CardHeader.js +4 -2
  55. package/esm/Checkbox/Checkbox.js +2 -1
  56. package/esm/EmptyState/EmptyState.js +4 -4
  57. package/esm/EmptyState/types.d.ts +1 -1
  58. package/esm/Field/Field.js +1 -1
  59. package/esm/Flag/Flag.js +2 -1
  60. package/esm/Flag/types.d.ts +6 -1
  61. package/esm/FlexGrid/FlexGrid.d.ts +34 -0
  62. package/esm/Input/Input.d.ts +1 -1
  63. package/esm/Input/Input.js +2 -2
  64. package/esm/Modal/Modal.d.ts +8 -1
  65. package/esm/Modal/Modal.js +1 -1
  66. package/esm/Pagination/CompactPagination/CompactPagination.js +1 -1
  67. package/esm/RangeSlider/RangeSlider.d.ts +22 -6
  68. package/esm/RangeSlider/RangeSlider.js +69 -78
  69. package/esm/Sidebar/SidebarButtonLink.js +8 -3
  70. package/esm/Sidebar/SidebarHeading.js +1 -1
  71. package/esm/Sidebar/SidebarLink.js +10 -5
  72. package/esm/Sidebar/SidebarLinksGroup/SidebarGroupLink.js +10 -4
  73. package/esm/Tables/Table/Table.js +1 -1
  74. package/esm/Tabs/ContentTabs.js +2 -2
  75. package/esm/Tabs/components/LinkTab.js +1 -1
  76. package/esm/Tooltip/OverflowTooltipWrapper.js +1 -1
  77. package/esm/Tooltip/TooltipWrapper.d.ts +1 -1
  78. package/esm/styles/helpers/makePurgeCssExtractor.js +1 -1
  79. package/esm/styles/tailwind.config.js +1 -1
  80. package/esm/utils/index.d.ts +0 -1
  81. package/esm/utils/isCssPropertySupported.d.ts +1 -1
  82. package/package.json +9 -8
  83. package/satellite.min.css +1 -1
  84. package/cjs/RangeSlider/RangeSlider.tailwind.d.ts +0 -5
  85. package/cjs/RangeSlider/RangeSlider.tailwind.js +0 -73
  86. package/esm/RangeSlider/RangeSlider.tailwind.d.ts +0 -5
  87. package/esm/RangeSlider/RangeSlider.tailwind.js +0 -73
@@ -17,6 +17,10 @@ export interface AlertProps {
17
17
  */
18
18
  usageContext?: AlertContextType;
19
19
  icon?: IconComponentType;
20
+ /**
21
+ * Function triggered when the dismiss button is clicked.
22
+ * Dismiss button won't be rendered if absent.
23
+ * */
20
24
  onDismiss?(): void;
21
25
  children: ReactNode;
22
26
  }
@@ -108,7 +108,7 @@ export var Alert = function Alert(_ref) {
108
108
  size: "1rem"
109
109
  }), /*#__PURE__*/_jsxs("div", {
110
110
  className: stl(_templateObject22 || (_templateObject22 = _taggedTemplateLiteral(["flex flex-1 flex-col ", ""])), onDismiss && "mr-6"),
111
- children: [title && /*#__PURE__*/_jsx("h4", {
111
+ children: [!!title && /*#__PURE__*/_jsx("h4", {
112
112
  className: stl(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["font-bold text-grey-900 mb-1"]))),
113
113
  children: title
114
114
  }), /*#__PURE__*/_jsx("div", {
@@ -67,12 +67,12 @@ export var Promote = function Promote(_ref) {
67
67
  className: stl(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["relative flex"]))),
68
68
  fullBleed: true,
69
69
  as: "section",
70
- children: [illustration && /*#__PURE__*/_jsx("div", {
70
+ children: [!!illustration && /*#__PURE__*/_jsx("div", {
71
71
  className: stl(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["w-full min-w-24 max-w-64 flex items-center justify-center bg-grey-100"]))),
72
72
  children: illustration
73
73
  }), /*#__PURE__*/_jsxs("div", {
74
74
  className: stl(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["", ""])), variant === "large" ? "p-6" : "p-4"),
75
- children: [context && /*#__PURE__*/_jsx("span", {
75
+ children: [!!context && /*#__PURE__*/_jsx("span", {
76
76
  className: stl(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["block mb-1"]))),
77
77
  children: context
78
78
  }), /*#__PURE__*/_jsx("header", {
@@ -81,7 +81,7 @@ export var Promote = function Promote(_ref) {
81
81
  }), /*#__PURE__*/_jsx("div", {
82
82
  className: BODY_VARIANT_CLASSNAMES[variant],
83
83
  children: children
84
- }), actions && /*#__PURE__*/_jsx("div", {
84
+ }), !!actions && /*#__PURE__*/_jsx("div", {
85
85
  className: cx(stl(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["flex space-x-2"]))), ACTIONS_VARIANT_CLASSNAMES[variant]),
86
86
  children: actions
87
87
  })]
@@ -11,7 +11,7 @@ export interface CardProps {
11
11
  style?: CSSProperties;
12
12
  /**
13
13
  * Specify HTML element `Card` should be presented as.
14
- * @default "div"
14
+ * @default "section"
15
15
  */
16
16
  as?: CardAs;
17
17
  /** Should the content take up full full width of the `Card`. */
@@ -1,4 +1,6 @@
1
- /// <reference types="react" />
2
- export declare type CardHeaderProps = JSX.IntrinsicElements["div"];
3
- export declare const CardHeader: ({ className, ...props }: CardHeaderProps) => JSX.Element;
1
+ import type { FunctionComponent, ReactNode } from "react";
2
+ export declare type CardHeaderProps = JSX.IntrinsicElements["div"] & {
3
+ children: ReactNode;
4
+ };
5
+ export declare const CardHeader: FunctionComponent<CardHeaderProps>;
4
6
  export default CardHeader;
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
4
  var _templateObject;
5
- var _excluded = ["className"];
5
+ var _excluded = ["className", "children"];
6
6
  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; }
7
7
  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) { _defineProperty(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; }
8
8
  import cx from "clsx";
@@ -10,9 +10,11 @@ import stl from "../../styles/helpers/satellitePrefixer";
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  export var CardHeader = function CardHeader(_ref) {
12
12
  var className = _ref.className,
13
+ children = _ref.children,
13
14
  props = _objectWithoutProperties(_ref, _excluded);
14
15
  return /*#__PURE__*/_jsx("div", _objectSpread(_objectSpread({}, props), {}, {
15
- className: cx(stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["flex justify-between"]))), className)
16
+ className: cx(stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["flex justify-between"]))), className),
17
+ children: children
16
18
  }));
17
19
  };
18
20
  export default CardHeader;
@@ -11,6 +11,7 @@ import { forwardRef, useMemo, useState } from "react";
11
11
  import { Check, Minus } from "react-feather";
12
12
  import { useFieldState } from "../Field";
13
13
  import stl from "../styles/helpers/satellitePrefixer";
14
+ import isRenderedChild from "../utils/isRenderedChild";
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
15
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
16
17
  var generateFieldId = function generateFieldId() {
@@ -78,7 +79,7 @@ export var Checkbox = /*#__PURE__*/forwardRef(function (_ref, ref) {
78
79
  checked: isChecked,
79
80
  disabled: disabled
80
81
  }))]
81
- }), children && /*#__PURE__*/_jsx("label", {
82
+ }), isRenderedChild(children) && /*#__PURE__*/_jsx("label", {
82
83
  className: stl(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display-body\n ", "\n ", "\n "])), disabled && "text-grey-300 cursor-not-allowed", textPosition === "left" ? "pr-2" : "pl-2"),
83
84
  htmlFor: id,
84
85
  children: children
@@ -63,16 +63,16 @@ var renderEmptyState = function renderEmptyState(_ref) {
63
63
  className: containerClassNames,
64
64
  children: [/*#__PURE__*/_jsxs("div", {
65
65
  className: stl(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral(["min-w-2/5"]))),
66
- children: [centered && medallion && /*#__PURE__*/_jsx("div", {
66
+ children: [centered && !!medallion && /*#__PURE__*/_jsx("div", {
67
67
  className: MEDALLION_CONTEXT_CLASSNAMES[usageContext],
68
68
  children: medallion
69
69
  }), /*#__PURE__*/_jsx("h2", {
70
70
  className: titleClassNames,
71
71
  children: title
72
- }), description && /*#__PURE__*/_jsx("p", {
72
+ }), !!description && /*#__PURE__*/_jsx("p", {
73
73
  className: descriptionClassNames,
74
74
  children: description
75
- }), actions && /*#__PURE__*/_jsx(FlexGrid, {
75
+ }), !!actions && /*#__PURE__*/_jsx(FlexGrid, {
76
76
  className: actionsClassNames,
77
77
  alignment: centered ? "center" : "leading",
78
78
  distribution: centered ? "center" : "leading",
@@ -80,7 +80,7 @@ var renderEmptyState = function renderEmptyState(_ref) {
80
80
  spacing: "sm",
81
81
  children: actions
82
82
  })]
83
- }), illustration && !centered && usageContext === "page" && /*#__PURE__*/_jsx("div", {
83
+ }), !!illustration && !centered && usageContext === "page" && /*#__PURE__*/_jsx("div", {
84
84
  className: stl(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral(["empty-state-illustration ml-16 hidden lg:flex items-center justify-center"]))),
85
85
  children: illustration
86
86
  })]
@@ -21,7 +21,7 @@ export interface EmptyStatePropsAll {
21
21
  */
22
22
  usageContext?: EmptyStateUsageContexts;
23
23
  /**
24
- * Define wether or not content should be centered
24
+ * Define whether or not content should be centered
25
25
  * @default false
26
26
  */
27
27
  centered?: boolean;
@@ -57,7 +57,7 @@ export var Field = function Field(_ref) {
57
57
  children: [/*#__PURE__*/_jsxs("label", {
58
58
  className: stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["cursor-pointer flex ", ""])), !inline && "flex-col"),
59
59
  htmlFor: labelFor,
60
- children: [label && /*#__PURE__*/_jsx("div", {
60
+ children: [!!label && /*#__PURE__*/_jsx("div", {
61
61
  className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["truncate ", ""])), inline ? "mr-2" : "mb-1"),
62
62
  children: label
63
63
  }), /*#__PURE__*/_jsx("div", {
package/esm/Flag/Flag.js CHANGED
@@ -12,6 +12,7 @@ import { Card } from "../Card";
12
12
  import ProgressSpinner from "../ProgressSpinner";
13
13
  import { useLocale } from "../Satellite";
14
14
  import stl from "../styles/helpers/satellitePrefixer";
15
+ import isRenderedChild from "../utils/isRenderedChild";
15
16
  import { jsx as _jsx } from "react/jsx-runtime";
16
17
  import { jsxs as _jsxs } from "react/jsx-runtime";
17
18
  var DEFAULT_FLAG_LOCALE = {
@@ -98,7 +99,7 @@ export var Flag = function Flag(_ref) {
98
99
  size: "small",
99
100
  onClick: onDismiss
100
101
  })]
101
- }), hasTitle && children && /*#__PURE__*/_jsx("div", {
102
+ }), hasTitle && isRenderedChild(children) && /*#__PURE__*/_jsx("div", {
102
103
  className: stl(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral(["text-grey-600 mt-2"]))),
103
104
  children: children
104
105
  })]
@@ -11,9 +11,14 @@ export interface Notification {
11
11
  icon?: IconComponentType;
12
12
  /** @default false */
13
13
  loading?: boolean;
14
- /** @default blue */
14
+ /** @default "blue" */
15
15
  variant?: ColorVariant;
16
+ /**
17
+ * Function triggered when the dismiss button is clicked.
18
+ * Dismiss button won't be rendered if absent.
19
+ * */
16
20
  onDismiss?: () => void;
21
+ /** Defines if and how long before the notification should be dismissed (in ms) */
17
22
  autoDismissAfter?: number;
18
23
  locale?: {
19
24
  dismissText?: string;
@@ -4,12 +4,46 @@ export declare type FlexGridAlignment = "leading" | "trailing" | "center" | "fil
4
4
  export declare type FlexGridDistribution = "equalSpacing" | "leading" | "trailing" | "center" | "fill" | "fillEvenly";
5
5
  export declare type FlexGridSpacing = "none" | "sm" | "md" | "lg" | "xl";
6
6
  export interface FlexGridProps {
7
+ /** @ignore */
7
8
  className?: string;
9
+ /**
10
+ * Define which direction the content should flow
11
+ * @default "row"
12
+ */
8
13
  direction?: FlexGridDirection;
14
+ /**
15
+ * Define whether or not the contents be allowed to wrap
16
+ * @default false
17
+ */
9
18
  wrap?: boolean;
19
+ /**
20
+ * Define whether or not the content be wrapped in an inline-flex container
21
+ * @default false
22
+ */
10
23
  inline?: boolean;
24
+ /**
25
+ * @default "leading"
26
+ */
11
27
  alignment?: FlexGridAlignment;
28
+ /**
29
+ * @default "leading"
30
+ */
12
31
  distribution?: FlexGridDistribution;
32
+ /**
33
+ * The spacing directly corelates to our Tailwind spacing scale
34
+ *
35
+ * none: `spacing.0 → 0px`
36
+ *
37
+ * sm: `spacing.2 → 8px`
38
+ *
39
+ * md: `spacing.4 → 16px`
40
+ *
41
+ * lg: `spacing.6 → 24px`
42
+ *
43
+ * xl: `spacing.8 → 32px`
44
+ *
45
+ * @default "none"
46
+ */
13
47
  spacing?: FlexGridSpacing;
14
48
  children: ReactNode;
15
49
  }
@@ -12,7 +12,7 @@ export interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>,
12
12
  variant?: InputVariant;
13
13
  startIcon?: IconComponentType;
14
14
  endItem?: ReactNode;
15
- /** Define wether or not a "clear input" x button should show on hover */
15
+ /** Define whether or not a "clear input" x button should show on hover */
16
16
  clearable?: boolean;
17
17
  locale?: InputPropsLocale;
18
18
  }
@@ -134,7 +134,7 @@ export var Input = /*#__PURE__*/forwardRef(function (_ref, externalRef) {
134
134
  setFocused(false);
135
135
  (_inputProps$onBlur = inputProps.onBlur) === null || _inputProps$onBlur === void 0 ? void 0 : _inputProps$onBlur.call(inputProps, evt);
136
136
  }
137
- })), clearable && !disabled && !readOnly && !isValueEmpty && /*#__PURE__*/_jsx(IconButton, {
137
+ })), clearable && !disabled && !readOnly && !isValueEmpty ? /*#__PURE__*/_jsx(IconButton, {
138
138
  className: stl(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["mr-2 ", ""])), focused ? "visible" : "invisible group-hover:visible"),
139
139
  title: locale.clearInput,
140
140
  icon: X,
@@ -146,7 +146,7 @@ export var Input = /*#__PURE__*/forwardRef(function (_ref, externalRef) {
146
146
  evt.preventDefault();
147
147
  triggerInputChange("");
148
148
  }
149
- }), endItem && /*#__PURE__*/_jsx("div", {
149
+ }) : null, !!endItem && /*#__PURE__*/_jsx("div", {
150
150
  className: stl(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["mr-4"]))),
151
151
  children: endItem
152
152
  }), /*#__PURE__*/_jsx(StatusIcon, {}), type === "number" && !disabled && /*#__PURE__*/_jsxs("div", {
@@ -5,13 +5,20 @@ export declare type ModalLocale = {
5
5
  };
6
6
  export interface ModalProps {
7
7
  open?: boolean;
8
- title?: string | JSX.Element;
8
+ /** Descriptive title for `Modal` */
9
+ title?: ReactNode;
10
+ /** @ignore */
9
11
  className?: string;
12
+ /** Should the content take up full full width of the `Modal`. */
10
13
  fullBleed?: boolean;
14
+ /** Define whether or not the modal should animate on show and hide */
11
15
  animate?: boolean;
12
16
  size?: ModalSizeVariant;
17
+ /** Define whether or not the dismiss button should be hidden */
13
18
  hideCloseIcon?: boolean;
19
+ /** Define whether or not the modal should be vertically aligned */
14
20
  centerY?: boolean;
21
+ /** Function triggered when the dismiss button is clicked */
15
22
  onDismiss?: () => void;
16
23
  children: ReactNode;
17
24
  locale?: ModalLocale;
@@ -127,7 +127,7 @@ export var Modal = function Modal(_ref) {
127
127
  "aria-label": title || "Modal",
128
128
  children: [/*#__PURE__*/_jsxs("header", {
129
129
  className: stl(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n px-8 min-h-14\n flex items-center justify-between space-x-2\n ", "\n ", "\n "])), title ? "border-b border-grey-100" : "justify-end", !title && hideCloseIcon && "hidden"),
130
- children: [title && /*#__PURE__*/_jsx("h2", {
130
+ children: [!!title && /*#__PURE__*/_jsx("h2", {
131
131
  id: modalTitleId,
132
132
  className: stl(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["flex-1 display-heading truncate"]))),
133
133
  children: title
@@ -53,7 +53,7 @@ export var CompactPagination = function CompactPagination(props) {
53
53
  return props.onChange(props.currentPage - 1);
54
54
  },
55
55
  disabled: isFirstPage
56
- }), label && /*#__PURE__*/_jsx("span", {
56
+ }), !!label && /*#__PURE__*/_jsx("span", {
57
57
  className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["inline-block text-center tabular-nums px-2"]))),
58
58
  children: label
59
59
  }), /*#__PURE__*/_jsx(IconButton, {
@@ -1,18 +1,34 @@
1
- import type { DetailedHTMLProps, InputHTMLAttributes } from "react";
2
- export interface RangeSliderProps extends Omit<DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "defaultValue" | "checked" | "defaultChecked" | "type" | "children"> {
3
- value?: number;
4
- defaultValue?: number;
1
+ /// <reference types="react" />
2
+ declare type RangeSliderValue = number | [number, number];
3
+ declare type WidenNumber<T> = T extends number ? number : T;
4
+ export interface RangeSliderProps<Value extends RangeSliderValue = number> {
5
+ value?: WidenNumber<Value>;
6
+ defaultValue?: WidenNumber<Value>;
7
+ /** Event handler called when the value changes. */
8
+ onChange?: (value: WidenNumber<Value>) => void;
9
+ /** Event handler called when the value changes at the end of an interaction. */
10
+ onCommit?: (value: WidenNumber<Value>) => void;
11
+ id?: string;
12
+ name?: string;
13
+ className?: string;
14
+ "aria-label"?: string;
15
+ disabled?: boolean;
5
16
  min?: number;
6
17
  max?: number;
18
+ step?: number;
19
+ minStepsBetweenThumbs?: number;
7
20
  track1Color?: string;
8
21
  track2Color?: string;
9
22
  }
10
23
  /**
11
- * A range slider is an input field where users select a numeric value within a given range (minimum and maximum values).
24
+ * A range slider is an input field where users select one or two numeric values within a given range (minimum and maximum values).
12
25
  *
13
26
  * - Range sliders should always be used with a label
14
27
  * - Provide min and max value whenever possible
15
28
  * - Provide text input for better accessibility
16
29
  */
17
- export declare const RangeSlider: import("react").ForwardRefExoticComponent<Pick<RangeSliderProps, "max" | "required" | "key" | "id" | "height" | "width" | "name" | "color" | "translate" | "value" | "hidden" | "dir" | "form" | "slot" | "style" | "title" | "pattern" | "accessKey" | "draggable" | "lang" | "className" | "prefix" | "contentEditable" | "enterKeyHint" | "inputMode" | "tabIndex" | "disabled" | "multiple" | "size" | "accept" | "alt" | "autoComplete" | "autoFocus" | "capture" | "crossOrigin" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "list" | "maxLength" | "min" | "minLength" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "contextMenu" | "placeholder" | "spellCheck" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "readOnly" | "src" | "step" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "track1Color" | "track2Color"> & import("react").RefAttributes<HTMLInputElement>>;
30
+ export declare const RangeSlider: {
31
+ <Value extends RangeSliderValue = number>({ className, value, defaultValue, onChange, onCommit, disabled, min, max, track1Color, track2Color, ...otherProps }: RangeSliderProps<Value>): JSX.Element;
32
+ displayName: string;
33
+ };
18
34
  export default RangeSlider;
@@ -1,104 +1,95 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
3
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
6
- var _excluded = ["className", "value", "defaultValue", "min", "max", "disabled", "track1Color", "track2Color"];
3
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
4
+ var _excluded = ["className", "value", "defaultValue", "onChange", "onCommit", "disabled", "min", "max", "track1Color", "track2Color"];
5
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
7
6
  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; }
8
7
  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) { _defineProperty(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; }
8
+ import { SliderRange, Root as SliderRoot, SliderThumb, SliderTrack } from "@radix-ui/react-slider";
9
9
  import cx from "clsx";
10
- import { forwardRef, useEffect, useState } from "react";
11
10
  import colors from "../styles/colors";
12
11
  import stl from "../styles/helpers/satellitePrefixer";
13
12
  import { jsx as _jsx } from "react/jsx-runtime";
14
13
  import { jsxs as _jsxs } from "react/jsx-runtime";
15
- var clamp = function clamp(value, lowerBound, higherBound) {
16
- if (value < lowerBound) return lowerBound;
17
- if (value > higherBound) return higherBound;
18
- return value;
14
+ var TRACK_SHADOWS_CLASSNAME = stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["shadow-[inset_0_1px_3px_0_rgb(0_0_0_/_10%),0_0.5px_0_0_rgb(255_255_255_/_5%)]"])));
15
+ var coerceToRadixValue = function coerceToRadixValue(value) {
16
+ return typeof value === "number" ? [value] : value;
19
17
  };
20
- var getScaleValues = function getScaleValues(value, min, max) {
21
- var maxScale = (value - min) / (max - min);
22
- var minScale = 1 - maxScale;
23
- return [clamp(maxScale, 0, 1), clamp(minScale, 0, 1)];
18
+ var getThumbCount = function getThumbCount(value) {
19
+ return Array.isArray(value) ? value.length : 1;
20
+ };
21
+ var ThumbGroove = function ThumbGroove(_ref) {
22
+ var className = _ref.className;
23
+ return /*#__PURE__*/_jsx("span", {
24
+ className: cx(stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["h-3 w-px bg-grey-200"]))), className)
25
+ });
24
26
  };
25
27
 
26
28
  /**
27
- * A range slider is an input field where users select a numeric value within a given range (minimum and maximum values).
29
+ * A range slider is an input field where users select one or two numeric values within a given range (minimum and maximum values).
28
30
  *
29
31
  * - Range sliders should always be used with a label
30
32
  * - Provide min and max value whenever possible
31
33
  * - Provide text input for better accessibility
32
34
  */
33
- export var RangeSlider = /*#__PURE__*/forwardRef(function (_ref, ref) {
34
- var className = _ref.className,
35
- value = _ref.value,
36
- defaultValue = _ref.defaultValue,
37
- _ref$min = _ref.min,
38
- min = _ref$min === void 0 ? 0 : _ref$min,
39
- _ref$max = _ref.max,
40
- max = _ref$max === void 0 ? 100 : _ref$max,
41
- disabled = _ref.disabled,
42
- track1Color = _ref.track1Color,
43
- track2Color = _ref.track2Color,
44
- otherProps = _objectWithoutProperties(_ref, _excluded);
45
- var _useState = useState(function () {
46
- return (typeof value !== "undefined" ? value : defaultValue) || 0;
47
- }),
48
- _useState2 = _slicedToArray(_useState, 2),
49
- internalValue = _useState2[0],
50
- setInternalValue = _useState2[1];
51
- var _getScaleValues = getScaleValues(internalValue, min, max),
52
- _getScaleValues2 = _slicedToArray(_getScaleValues, 2),
53
- track1 = _getScaleValues2[0],
54
- track2 = _getScaleValues2[1];
55
- useEffect(function () {
56
- if (typeof value !== "undefined" && value !== internalValue) {
57
- setInternalValue(value);
58
- }
59
- }, [internalValue, value]);
60
- var handleChange = function handleChange(evt) {
61
- if (otherProps.onChange) {
62
- otherProps.onChange(evt);
63
- }
64
- if (!evt.defaultPrevented) {
65
- setInternalValue(evt.currentTarget.valueAsNumber);
66
- }
67
- };
35
+ export var RangeSlider = function RangeSlider(_ref2) {
36
+ var className = _ref2.className,
37
+ value = _ref2.value,
38
+ defaultValue = _ref2.defaultValue,
39
+ onChange = _ref2.onChange,
40
+ onCommit = _ref2.onCommit,
41
+ disabled = _ref2.disabled,
42
+ _ref2$min = _ref2.min,
43
+ min = _ref2$min === void 0 ? 0 : _ref2$min,
44
+ _ref2$max = _ref2.max,
45
+ max = _ref2$max === void 0 ? 100 : _ref2$max,
46
+ track1Color = _ref2.track1Color,
47
+ track2Color = _ref2.track2Color,
48
+ otherProps = _objectWithoutProperties(_ref2, _excluded);
49
+ var thumbsCount = getThumbCount(value !== null && value !== void 0 ? value : defaultValue);
68
50
  var trackColors = {
69
51
  track1: disabled ? colors.grey[200] : track1Color,
70
52
  track2: disabled ? colors.grey[100] : track2Color
71
53
  };
72
- return /*#__PURE__*/_jsxs("div", {
73
- className: cx(stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["range-slider ", ""])), disabled && "opacity-70"), className),
74
- children: [/*#__PURE__*/_jsx("div", {
75
- className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["range-slider-track-1"]))),
54
+ return /*#__PURE__*/_jsxs(SliderRoot, _objectSpread(_objectSpread({}, otherProps), {}, {
55
+ className: cx(stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["relative h-6 min-w-[200px] flex items-center select-none touch-none aria-disabled:opacity-70 cursor-pointer aria-disabled:cursor-not-allowed"]))), className),
56
+ value: coerceToRadixValue(value),
57
+ defaultValue: coerceToRadixValue(defaultValue),
58
+ onValueChange: function onValueChange(value) {
59
+ return (// @ts-expect-error
60
+ onChange === null || onChange === void 0 ? void 0 : onChange(value.length === 1 ? value[0] : value)
61
+ );
62
+ },
63
+ onValueCommit: function onValueCommit(value) {
64
+ return (// @ts-expect-error
65
+ onCommit === null || onCommit === void 0 ? void 0 : onCommit(value.length === 1 ? value[0] : value)
66
+ );
67
+ },
68
+ disabled: disabled,
69
+ max: max,
70
+ min: min,
71
+ children: [/*#__PURE__*/_jsx(SliderTrack, {
72
+ className: cx(stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["relative h-1 flex-1 rounded bg-grey-100"]))), TRACK_SHADOWS_CLASSNAME),
76
73
  style: {
77
- width: "".concat(track1 * 100, "%"),
78
- backgroundColor: trackColors.track1
79
- }
80
- }), /*#__PURE__*/_jsx("div", {
81
- className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["range-slider-track-2"]))),
82
- style: {
83
- width: "".concat(track2 * 100, "%"),
84
74
  backgroundColor: trackColors.track2
85
- }
86
- }), /*#__PURE__*/_jsx("div", {
87
- className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["range-slider-thumb"]))),
88
- style: {
89
- left: "".concat(track1 * 100, "%")
90
- }
91
- }), /*#__PURE__*/_jsx("input", _objectSpread(_objectSpread({}, otherProps), {}, {
92
- ref: ref,
93
- className: stl(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["range-slider-input"]))),
94
- type: "range",
95
- min: min,
96
- max: max,
97
- value: internalValue,
98
- onChange: handleChange,
99
- disabled: disabled
100
- }))]
101
- });
102
- });
75
+ },
76
+ children: /*#__PURE__*/_jsx(SliderRange, {
77
+ className: cx(stl(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["absolute rounded-full h-full bg-accent-600"]))), TRACK_SHADOWS_CLASSNAME),
78
+ style: {
79
+ backgroundColor: trackColors.track1
80
+ }
81
+ })
82
+ }), Array(thumbsCount).fill(undefined).map(function (_, idx) {
83
+ return /*#__PURE__*/_jsxs(SliderThumb, {
84
+ className: stl(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n absolute -translate-x-1.5 -translate-y-3\n w-3 h-6 rounded-[2px] border border-grey-200\n bg-white bg-gradient-to-b from-white to-grey-50 shadow-[0_1px_0_0_rgb(35_38_59_/_5%)]\n "]))),
85
+ children: [/*#__PURE__*/_jsx(ThumbGroove, {
86
+ className: stl(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["absolute top-1.5 right-1.5"])))
87
+ }), /*#__PURE__*/_jsx(ThumbGroove, {
88
+ className: stl(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["absolute top-1.5 left-1.5"])))
89
+ })]
90
+ }, "thumb_".concat(idx));
91
+ })]
92
+ }));
93
+ };
103
94
  RangeSlider.displayName = "RangeSlider";
104
95
  export default RangeSlider;
@@ -1,10 +1,11 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
4
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
4
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
5
5
  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; }
6
6
  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) { _defineProperty(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; }
7
7
  import { useState } from "react";
8
+ import { ExternalLink } from "react-feather";
8
9
  import stl from "../styles/helpers/satellitePrefixer";
9
10
  import { TooltipWrapper } from "../Tooltip";
10
11
  import useLinkProps from "../utils/useLinkProps";
@@ -44,7 +45,8 @@ export var SidebarButtonLink = function SidebarButtonLink(props) {
44
45
  _useState2 = _slicedToArray(_useState, 2),
45
46
  isInteractedWith = _useState2[0],
46
47
  setIsInteractedWith = _useState2[1];
47
- var isActive = !disabled && isLinkActive(href);
48
+ var isExternalLink = linkProps.target === "_blank";
49
+ var isActive = !disabled && !isExternalLink && isLinkActive(href);
48
50
  var showColors = !disabled && (isActive || isInteractedWith);
49
51
  var Icon = "active" in icon ? showColors ? icon.active : icon.inactive : icon;
50
52
  var tooltipContent = "tooltipContent" in props ? props.tooltipContent : children;
@@ -71,8 +73,11 @@ export var SidebarButtonLink = function SidebarButtonLink(props) {
71
73
  height: 20,
72
74
  width: 20
73
75
  }), /*#__PURE__*/_jsx("span", {
74
- className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n ", "\n ", "\n ", "\n "])), collapsed && "sr-only", showColors ? "text-accent-600" : "typo-subdued", isActive && "font-bold"),
76
+ className: stl(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n ", "\n ", "\n ", "\n "])), collapsed && "sr-only", showColors ? "text-accent-600" : "typo-subdued", isActive && "font-bold"),
75
77
  children: children
78
+ }), isExternalLink && !collapsed && /*#__PURE__*/_jsx(ExternalLink, {
79
+ className: stl(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["", " !ml-1 shrink-0"])), showColors ? "text-accent-600" : "typo-subdued"),
80
+ size: "1em"
76
81
  })]
77
82
  }))
78
83
  });
@@ -12,7 +12,7 @@ export var SidebarHeading = function SidebarHeading(_ref) {
12
12
  collapsed = _useSidebarContext.collapsed;
13
13
  return /*#__PURE__*/_jsx("span", {
14
14
  id: id,
15
- className: cx(stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n h-8 block leading-[2rem]\n display-subheading typo-subdued uppercase select-none\n ", "\n "])), collapsed && "invisible"), className),
15
+ className: cx(stl(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n h-8 block leading-[2rem]\n display-subheading typo-subdued uppercase select-none\n ", "\n "])), collapsed && "sr-only"), className),
16
16
  children: children
17
17
  });
18
18
  };