@algolia/satellite 1.4.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,7 @@
1
- import type { VFC } from "react";
2
- export interface TextWrapProps extends Omit<JSX.IntrinsicElements["span"], "children"> {
1
+ import type { HTMLAttributes, VFC } from "react";
2
+ export interface TextWrapProps extends HTMLAttributes<HTMLSpanElement> {
3
3
  /** The max number of lines before the text is cut with an ellipsis */
4
4
  maxLines?: number;
5
- children: string;
6
5
  }
7
6
  /**
8
7
  * The `TextWrap` component is used to wrap text and truncate it with an ellipsis if it overflows.
@@ -5,9 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.TextWrap = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+ var _react = require("react");
11
12
  var _satellitePrefixer = _interopRequireDefault(require("../../styles/helpers/satellitePrefixer"));
12
13
  var _isCssPropertySupported = require("../../utils/isCssPropertySupported");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
@@ -26,6 +27,18 @@ var SEPARATOR_ELEMENT = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
26
27
  "aria-hidden": "true",
27
28
  children: "\u200B"
28
29
  });
30
+ var SPLIT_REGEX = /([\W_]+)/g;
31
+ var recursivelyApplyWhiteSpace = function recursivelyApplyWhiteSpace(children) {
32
+ return _react.Children.map(children, function (child) {
33
+ return /*#__PURE__*/(0, _react.isValidElement)(child) ? /*#__PURE__*/(0, _react.cloneElement)(child, _objectSpread(_objectSpread({}, child.props), {}, {
34
+ children: recursivelyApplyWhiteSpace(child.props.children)
35
+ })) : typeof child === "string" ? child.split(SPLIT_REGEX).map(function (text, index, arr) {
36
+ return text ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
37
+ children: [text, index < arr.length - 1 ? SEPARATOR_ELEMENT : null]
38
+ }, index) : null;
39
+ }) : child;
40
+ });
41
+ };
29
42
 
30
43
  /**
31
44
  * The `TextWrap` component is used to wrap text and truncate it with an ellipsis if it overflows.
@@ -33,7 +46,7 @@ var SEPARATOR_ELEMENT = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
33
46
  * See the [Text Wrap documentation page](https://satellite.algolia.com/components/misc/text-wrap) for more information.
34
47
  */
35
48
  var TextWrap = exports.TextWrap = function TextWrap(_ref) {
36
- var text = _ref.children,
49
+ var children = _ref.children,
37
50
  maxLines = _ref.maxLines,
38
51
  style = _ref.style,
39
52
  spanProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
@@ -46,13 +59,6 @@ var TextWrap = exports.TextWrap = function TextWrap(_ref) {
46
59
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", _objectSpread(_objectSpread({
47
60
  style: _objectSpread(_objectSpread({}, clampStyle), style)
48
61
  }, spanProps), {}, {
49
- children: text.split(/([\W_]+)/).flatMap(function (part, idx) {
50
- if (!part) {
51
- return null;
52
- }
53
- return idx % 2 === 0 ? part : /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
54
- children: [part, SEPARATOR_ELEMENT]
55
- }, "".concat(idx, "-").concat(part));
56
- }).filter(Boolean)
62
+ children: recursivelyApplyWhiteSpace(children)
57
63
  }));
58
64
  };
@@ -17,4 +17,4 @@ export { QueryBreakdownIcon } from "./QueryBreakdownIcon";
17
17
  export { BulbIcon } from "./BulbIcon";
18
18
  export { TestingIcon } from "./TestingIcon";
19
19
  export { RocketIcon } from "./RocketIcon";
20
- export { ActivityIcon, AirplayIcon, AlertCircleIcon, AlertOctagonIcon, AlertTriangleIcon, AlignCenterIcon, AlignJustifyIcon, AlignLeftIcon, AlignRightIcon, AnchorIcon, ApertureIcon, ArchiveIcon, ArrowDownCircleIcon, ArrowDownIcon, ArrowDownLeftIcon, ArrowDownRightIcon, ArrowLeftCircleIcon, ArrowLeftIcon, ArrowRightCircleIcon, ArrowRightIcon, ArrowUpCircleIcon, ArrowUpIcon, ArrowUpLeftIcon, ArrowUpRightIcon, AtSignIcon, AwardIcon, BanIcon, BarChart2Icon, BarChartIcon, BatteryChargingIcon, BatteryIcon, BellIcon, BellOffIcon, BluetoothIcon, BoldIcon, BookIcon, BookmarkIcon, BookOpenIcon, BoxIcon, BriefcaseIcon, CalendarIcon, CameraIcon, CameraOffIcon, CastIcon, CheckCircleIcon, CheckIcon, CheckSquareIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronsDownIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpIcon, ChevronUpIcon, ChromeIcon, CircleIcon, ClipboardIcon, ClockIcon, CloudDrizzleIcon, CloudIcon, CloudLightningIcon, CloudOffIcon, CloudRainIcon, CloudSnowIcon, CodeIcon, CodepenIcon, CodesandboxIcon, CoffeeIcon, ColumnsIcon, CommandIcon, CompassIcon, CopyIcon, CornerDownLeftIcon, CornerDownRightIcon, CornerLeftDownIcon, CornerLeftUpIcon, CornerRightDownIcon, CornerRightUpIcon, CornerUpLeftIcon, CornerUpRightIcon, CpuIcon, CreditCardIcon, CropIcon, CrosshairIcon, DatabaseIcon, DeleteIcon, DiscIcon, DivideCircleIcon, DivideIcon, DivideSquareIcon, DollarSignIcon, DownloadCloudIcon, DownloadIcon, DribbbleIcon, DropletIcon, Edit2Icon, Edit3Icon, EditIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FacebookIcon, FastForwardIcon, FeatherIcon, FigmaIcon, FileIcon, FileMinusIcon, FilePlusIcon, FileSearchIcon, FileTextIcon, FilmIcon, FilterIcon, FlagIcon, FlaskConicalIcon, FolderIcon, FolderMinusIcon, FolderPlusIcon, FramerIcon, FrownIcon, GiftIcon, GitBranchIcon, GitCommitIcon, GithubIcon, GitlabIcon, GitMergeIcon, GitPullRequestIcon, GlobeIcon, HardDriveIcon, HashIcon, HeadphonesIcon, HeartIcon, HelpCircleIcon, HexagonIcon, HomeIcon, ImageIcon, InboxIcon, InfoIcon, InstagramIcon, ItalicIcon, KeyIcon, LayersIcon, LayoutGridIcon, LayoutIcon, LifeBuoyIcon, Link2Icon, LinkedinIcon, LinkIcon, ListIcon, LoaderIcon, LockIcon, LogInIcon, LogOutIcon, MailIcon, MapIcon, MapPinIcon, Maximize2Icon, MaximizeIcon, MehIcon, MenuIcon, MessageCircleIcon, MessageSquareIcon, MicIcon, MicOffIcon, Minimize2Icon, MinimizeIcon, MinusCircleIcon, MinusIcon, MinusSquareIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoreVerticalIcon, MousePointerIcon, MoveIcon, MusicIcon, Navigation2Icon, NavigationIcon, OctagonIcon, PackageIcon, PaperclipIcon, PauseCircleIcon, PauseIcon, PenToolIcon, PercentIcon, PhoneCallIcon, PhoneForwardedIcon, PhoneIcon, PhoneIncomingIcon, PhoneMissedIcon, PhoneOffIcon, PhoneOutgoingIcon, PieChartIcon, PlayCircleIcon, PlayIcon, PlusCircleIcon, PlusIcon, PlusSquareIcon, PocketIcon, PowerIcon, PrinterIcon, RadioIcon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, RewindIcon, RotateCcwIcon, RotateCwIcon, RssIcon, SaveIcon, ScissorsIcon, SearchIcon, SendIcon, ServerIcon, SettingsIcon, Share2Icon, ShareIcon, ShieldIcon, ShieldOffIcon, ShoppingBagIcon, ShoppingCartIcon, ShuffleIcon, SidebarIcon, SkipBackIcon, SkipForwardIcon, SlackIcon, SlidersIcon, SmartphoneIcon, SmileIcon, SpeakerIcon, SquareIcon, StarIcon, StopCircleIcon, SunIcon, SunriseIcon, SunsetIcon, TableIcon, TabletIcon, TagIcon, TargetIcon, TerminalIcon, ThermometerIcon, ThumbsDownIcon, ThumbsUpIcon, ToggleLeftIcon, ToggleRightIcon, Trash2Icon, TrashIcon, TrelloIcon, TrendingDownIcon, TrendingUpIcon, TriangleIcon, TruckIcon, TvIcon, TwitchIcon, TwitterIcon, TypeIcon, UmbrellaIcon, UnderlineIcon, UnlockIcon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserMinusIcon, UserPlusIcon, UsersIcon, UserXIcon, VideoIcon, VideoOffIcon, VoicemailIcon, Volume1Icon, Volume2Icon, VolumeIcon, VolumeXIcon, WatchIcon, WifiIcon, WifiOffIcon, WindIcon, WrenchIcon, XCircleIcon, XIcon, XOctagonIcon, XSquareIcon, YoutubeIcon, ZapIcon, ZapOffIcon, ZoomInIcon, ZoomOutIcon, } from "lucide-react";
20
+ export { ActivityIcon, AirplayIcon, AlertCircleIcon, AlertOctagonIcon, AlertTriangleIcon, AlignCenterIcon, AlignJustifyIcon, AlignLeftIcon, AlignRightIcon, AnchorIcon, ApertureIcon, ArchiveIcon, ArrowDownCircleIcon, ArrowDownIcon, ArrowDownLeftIcon, ArrowDownRightIcon, ArrowLeftCircleIcon, ArrowLeftIcon, ArrowRightCircleIcon, ArrowRightIcon, ArrowUpCircleIcon, ArrowUpIcon, ArrowUpLeftIcon, ArrowUpRightIcon, AtSignIcon, AwardIcon, BanIcon, BarChart2Icon, BarChartIcon, BatteryChargingIcon, BatteryIcon, BellIcon, BellOffIcon, BluetoothIcon, BoldIcon, BookIcon, BookmarkIcon, BookOpenIcon, BoxIcon, BriefcaseIcon, CalendarIcon, CameraIcon, CameraOffIcon, CastIcon, CheckCircleIcon, CheckIcon, CheckSquareIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronsDownIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpIcon, ChevronUpIcon, ChromeIcon, CircleIcon, ClipboardIcon, ClockIcon, CloudDrizzleIcon, CloudIcon, CloudLightningIcon, CloudOffIcon, CloudRainIcon, CloudSnowIcon, CodeIcon, CodepenIcon, CodesandboxIcon, CoffeeIcon, ColumnsIcon, CommandIcon, CompassIcon, CopyIcon, CornerDownLeftIcon, CornerDownRightIcon, CornerLeftDownIcon, CornerLeftUpIcon, CornerRightDownIcon, CornerRightUpIcon, CornerUpLeftIcon, CornerUpRightIcon, CpuIcon, CreditCardIcon, CropIcon, CrosshairIcon, DatabaseIcon, DeleteIcon, DiscIcon, DivideCircleIcon, DivideIcon, DivideSquareIcon, DollarSignIcon, DownloadCloudIcon, DownloadIcon, DribbbleIcon, DropletIcon, Edit2Icon, Edit3Icon, EditIcon, ExternalLinkIcon, EyeIcon, EyeOffIcon, FacebookIcon, FastForwardIcon, FeatherIcon, FigmaIcon, FileIcon, FileMinusIcon, FilePlusIcon, FileSearchIcon, FileTextIcon, FilmIcon, FilterIcon, FlagIcon, FlaskConicalIcon, FolderIcon, FolderMinusIcon, FolderPlusIcon, FramerIcon, FrownIcon, GiftIcon, GitBranchIcon, GitCommitIcon, GithubIcon, GitlabIcon, GitMergeIcon, GitPullRequestIcon, GlobeIcon, HardDriveIcon, HashIcon, HeadphonesIcon, HeartIcon, HelpCircleIcon, HexagonIcon, HomeIcon, ImageIcon, ImageOffIcon, InboxIcon, InfoIcon, InstagramIcon, ItalicIcon, KeyIcon, LayersIcon, LayoutGridIcon, LayoutIcon, LifeBuoyIcon, Link2Icon, LinkedinIcon, LinkIcon, ListIcon, LoaderIcon, LockIcon, LogInIcon, LogOutIcon, MailIcon, MapIcon, MapPinIcon, Maximize2Icon, MaximizeIcon, MehIcon, MenuIcon, MessageCircleIcon, MessageSquareIcon, MicIcon, MicOffIcon, Minimize2Icon, MinimizeIcon, MinusCircleIcon, MinusIcon, MinusSquareIcon, MonitorIcon, MoonIcon, MoreHorizontalIcon, MoreVerticalIcon, MousePointerIcon, MoveIcon, MusicIcon, Navigation2Icon, NavigationIcon, OctagonIcon, PackageIcon, PaperclipIcon, PauseCircleIcon, PauseIcon, PenToolIcon, PercentIcon, PhoneCallIcon, PhoneForwardedIcon, PhoneIcon, PhoneIncomingIcon, PhoneMissedIcon, PhoneOffIcon, PhoneOutgoingIcon, PieChartIcon, PlayCircleIcon, PlayIcon, PlusCircleIcon, PlusIcon, PlusSquareIcon, PocketIcon, PowerIcon, PrinterIcon, RadioIcon, RefreshCcwIcon, RefreshCwIcon, RepeatIcon, RewindIcon, RotateCcwIcon, RotateCwIcon, RssIcon, SaveIcon, ScissorsIcon, SearchIcon, SearchXIcon, SendIcon, ServerCogIcon, ServerCrashIcon, ServerIcon, SettingsIcon, Share2Icon, ShareIcon, ShieldIcon, ShieldOffIcon, ShoppingBagIcon, ShoppingCartIcon, ShuffleIcon, SidebarIcon, SkipBackIcon, SkipForwardIcon, SlackIcon, SlidersIcon, SmartphoneIcon, SmileIcon, SpeakerIcon, SquareIcon, StarIcon, StopCircleIcon, SunIcon, SunriseIcon, SunsetIcon, TableIcon, TabletIcon, TagIcon, TargetIcon, TerminalIcon, ThermometerIcon, ThumbsDownIcon, ThumbsUpIcon, ToggleLeftIcon, ToggleRightIcon, Trash2Icon, TrashIcon, TrelloIcon, TrendingDownIcon, TrendingUpIcon, TriangleIcon, TruckIcon, TvIcon, TwitchIcon, TwitterIcon, TypeIcon, UmbrellaIcon, UnderlineIcon, UnlockIcon, UploadCloudIcon, UploadIcon, UserCheckIcon, UserIcon, UserMinusIcon, UserPlusIcon, UsersIcon, UserXIcon, VideoIcon, VideoOffIcon, VoicemailIcon, Volume1Icon, Volume2Icon, VolumeIcon, VolumeXIcon, WatchIcon, WifiIcon, WifiOffIcon, WindIcon, WrenchIcon, XCircleIcon, XIcon, XOctagonIcon, XSquareIcon, YoutubeIcon, ZapIcon, ZapOffIcon, ZoomInIcon, ZoomOutIcon, } from "lucide-react";
@@ -855,6 +855,12 @@ Object.defineProperty(exports, "ImageIcon", {
855
855
  return _lucideReact.ImageIcon;
856
856
  }
857
857
  });
858
+ Object.defineProperty(exports, "ImageOffIcon", {
859
+ enumerable: true,
860
+ get: function get() {
861
+ return _lucideReact.ImageOffIcon;
862
+ }
863
+ });
858
864
  Object.defineProperty(exports, "InboxIcon", {
859
865
  enumerable: true,
860
866
  get: function get() {
@@ -1341,12 +1347,30 @@ Object.defineProperty(exports, "SearchIcon", {
1341
1347
  return _lucideReact.SearchIcon;
1342
1348
  }
1343
1349
  });
1350
+ Object.defineProperty(exports, "SearchXIcon", {
1351
+ enumerable: true,
1352
+ get: function get() {
1353
+ return _lucideReact.SearchXIcon;
1354
+ }
1355
+ });
1344
1356
  Object.defineProperty(exports, "SendIcon", {
1345
1357
  enumerable: true,
1346
1358
  get: function get() {
1347
1359
  return _lucideReact.SendIcon;
1348
1360
  }
1349
1361
  });
1362
+ Object.defineProperty(exports, "ServerCogIcon", {
1363
+ enumerable: true,
1364
+ get: function get() {
1365
+ return _lucideReact.ServerCogIcon;
1366
+ }
1367
+ });
1368
+ Object.defineProperty(exports, "ServerCrashIcon", {
1369
+ enumerable: true,
1370
+ get: function get() {
1371
+ return _lucideReact.ServerCrashIcon;
1372
+ }
1373
+ });
1350
1374
  Object.defineProperty(exports, "ServerIcon", {
1351
1375
  enumerable: true,
1352
1376
  get: function get() {
@@ -275,11 +275,9 @@ export var AutoComplete = /*#__PURE__*/forwardRef(function (_ref, ref) {
275
275
  },
276
276
  // We need to make sure to define event handlers here so that they can be composed properly
277
277
  onFocus: function onFocus(evt) {
278
- var _menuPopper$update2;
279
278
  _onFocus === null || _onFocus === void 0 || _onFocus(evt);
280
279
  if (evt.defaultPrevented) return;
281
280
  setInputFocused(true);
282
- (_menuPopper$update2 = menuPopper.update) === null || _menuPopper$update2 === void 0 || _menuPopper$update2.call(menuPopper);
283
281
  },
284
282
  onBlur: function onBlur(evt) {
285
283
  _onBlur === null || _onBlur === void 0 || _onBlur(evt);
@@ -321,6 +319,12 @@ export var AutoComplete = /*#__PURE__*/forwardRef(function (_ref, ref) {
321
319
  inputValue: inputValue
322
320
  });
323
321
  }, [inputRef, internalsRef, inputValue]);
322
+ var oldHideMenu = useRef(hideMenu);
323
+ if (oldHideMenu.current !== hideMenu) {
324
+ var _menuPopper$update2;
325
+ oldHideMenu.current = hideMenu;
326
+ (_menuPopper$update2 = menuPopper.update) === null || _menuPopper$update2 === void 0 || _menuPopper$update2.call(menuPopper);
327
+ }
324
328
  return /*#__PURE__*/_jsx(AutoCompleteProvider, {
325
329
  locale: locale,
326
330
  children: /*#__PURE__*/_jsxs("div", {
@@ -3,18 +3,22 @@ import type { FieldState } from "./FieldContext";
3
3
  export interface FieldProps {
4
4
  /** @ignore */
5
5
  className?: string;
6
- /** Label to display above the nested input */
6
+ /** Define a label to display above the nested input. */
7
7
  label?: ReactChild;
8
+ /** Define the `id` of the label. */
8
9
  labelId?: string;
10
+ /** Define the `id` of the input used by the label. */
9
11
  labelFor?: string;
10
- /** Helpful description to show below the `Field` */
12
+ /** Define an helpful description to show below the `Field`. */
11
13
  description?: ReactNode;
12
- /**
13
- * An object to handle state
14
- */
14
+ /** Define the state of the `Field`. */
15
15
  state?: FieldState;
16
+ /** Define if the `Field` should be displayed inline. */
16
17
  inline?: boolean;
18
+ /** Define if the `Field` is required. */
17
19
  required?: boolean;
20
+ /** Define the visibility of the required indicator. */
21
+ hideRequiredIndicator?: boolean;
18
22
  children: ReactNode;
19
23
  }
20
24
  /**
@@ -26,6 +26,8 @@ export var Field = function Field(_ref) {
26
26
  _ref$inline = _ref.inline,
27
27
  inline = _ref$inline === void 0 ? false : _ref$inline,
28
28
  requiredProp = _ref.required,
29
+ _ref$hideRequiredIndi = _ref.hideRequiredIndicator,
30
+ hideRequiredIndicator = _ref$hideRequiredIndi === void 0 ? false : _ref$hideRequiredIndi,
29
31
  children = _ref.children;
30
32
  var hasLabel = !!label;
31
33
  var labelId = useMemo(
@@ -86,7 +88,7 @@ export var Field = function Field(_ref) {
86
88
  children: [hasLabel && /*#__PURE__*/_jsxs("div", {
87
89
  id: labelId,
88
90
  className: stl(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["truncate ", ""])), inline ? "mr-2" : "mb-1"),
89
- children: [label, (requiredProp || requiredContext) && /*#__PURE__*/_jsx("span", {
91
+ children: [label, !hideRequiredIndicator && (requiredProp || requiredContext) && /*#__PURE__*/_jsx("span", {
90
92
  className: stl(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["text-red-700 ml-0.5"]))),
91
93
  "aria-hidden": true,
92
94
  children: "*"