@raycast/api 1.30.1 → 1.31.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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <p align="center">
2
2
  <img src="https://raw.githubusercontent.com/raycast/extensions/main/images/store-logo.png" height="128">
3
- <h1 align="center">Raycast Extensions (Beta)</h1>
3
+ <h1 align="center">Raycast Extensions</h1>
4
4
  </p>
5
5
 
6
6
  <p align="center">
package/bin/arm64/ray CHANGED
Binary file
package/bin/x86/ray CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raycast/api",
3
- "version": "1.30.1",
3
+ "version": "1.31.0",
4
4
  "description": "Build extensions for Raycast with React and Node.js.",
5
5
  "author": "Raycast Technologies Ltd.",
6
6
  "homepage": "https://developers.raycast.com",
@@ -1,6 +1,7 @@
1
- import { ReactElement } from "react";
1
+ import React, { ReactElement, ReactNode } from "react";
2
2
  import { ActionsInterface, NavigationChildInterface } from "./types";
3
3
  import PropTypes from "prop-types";
4
+ import { Color, Image } from "../ui";
4
5
  /**
5
6
  * Renders a markdown (CommonMark) string.
6
7
  *
@@ -22,6 +23,108 @@ export declare namespace Detail {
22
23
  navigationTitle: PropTypes.Requireable<string>;
23
24
  isLoading: PropTypes.Requireable<boolean>;
24
25
  markdown: PropTypes.Requireable<string>;
26
+ metadata: PropTypes.Requireable<PropTypes.ReactNodeLike>;
27
+ };
28
+ var displayName: string;
29
+ }
30
+ /**
31
+ * See {@link Detail.Metadata}
32
+ */
33
+ declare function DetailMetadata(props: Detail.Metadata.Props): ReactElement<Detail.Metadata.Props>;
34
+ declare namespace DetailMetadata {
35
+ var propTypes: {};
36
+ var displayName: string;
37
+ }
38
+ /**
39
+ * See {@link Detail.Metadata.Label}
40
+ */
41
+ declare function DetailMetadataLabel(props: Detail.Metadata.Label.Props): ReactElement<Detail.Metadata.Label.Props> | null;
42
+ declare namespace DetailMetadataLabel {
43
+ var propTypes: {
44
+ title: PropTypes.Validator<string>;
45
+ icon: PropTypes.Requireable<string | Required<PropTypes.InferProps<{
46
+ fileIcon: PropTypes.Validator<string>;
47
+ }>> | PropTypes.InferProps<{
48
+ source: PropTypes.Requireable<string | PropTypes.InferProps<{
49
+ light: PropTypes.Validator<string>;
50
+ dark: PropTypes.Validator<string>;
51
+ }>>;
52
+ fallback: PropTypes.Requireable<string | PropTypes.InferProps<{
53
+ light: PropTypes.Validator<string>;
54
+ dark: PropTypes.Validator<string>;
55
+ }>>;
56
+ mask: PropTypes.Requireable<Image.Mask>;
57
+ tintColor: PropTypes.Requireable<string | PropTypes.InferProps<{
58
+ light: PropTypes.Validator<string>;
59
+ dark: PropTypes.Validator<string>;
60
+ adjustContrast: PropTypes.Requireable<boolean>;
61
+ }>>;
62
+ }>>;
63
+ text: PropTypes.Requireable<string>;
64
+ };
65
+ var displayName: string;
66
+ }
67
+ /**
68
+ * See {@link Detail.Metadata.Separator}
69
+ */
70
+ declare function DetailMetadataSeparator(props: Detail.Metadata.Separator.Props): ReactElement<Detail.Metadata.Separator.Props>;
71
+ declare namespace DetailMetadataSeparator {
72
+ var propTypes: {};
73
+ var displayName: string;
74
+ }
75
+ /**
76
+ * See {@link Detail.Metadata.Link}
77
+ */
78
+ declare function DetailMetadataLink(props: Detail.Metadata.Link.Props): ReactElement<Detail.Metadata.Link.Props>;
79
+ declare namespace DetailMetadataLink {
80
+ var propTypes: {
81
+ title: PropTypes.Validator<string>;
82
+ target: PropTypes.Validator<string>;
83
+ text: PropTypes.Validator<string>;
84
+ };
85
+ var displayName: string;
86
+ }
87
+ /**
88
+ * See {@link Detail.Metadata.TagList}
89
+ */
90
+ declare function DetailMetadataTagList(props: Detail.Metadata.TagList.Props): ReactElement<Detail.Metadata.TagList.Props>;
91
+ declare namespace DetailMetadataTagList {
92
+ var propTypes: {
93
+ title: PropTypes.Validator<string>;
94
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
95
+ };
96
+ var displayName: string;
97
+ }
98
+ /**
99
+ * See {@link Detail.Metadata.TagList.Item}
100
+ */
101
+ declare function DetailMetadataTagListItem(props: Detail.Metadata.TagList.Item.Props): ReactElement<Detail.Metadata.TagList.Item.Props>;
102
+ declare namespace DetailMetadataTagListItem {
103
+ var propTypes: {
104
+ text: PropTypes.Validator<string>;
105
+ icon: PropTypes.Requireable<string | Required<PropTypes.InferProps<{
106
+ fileIcon: PropTypes.Validator<string>;
107
+ }>> | PropTypes.InferProps<{
108
+ source: PropTypes.Requireable<string | PropTypes.InferProps<{
109
+ light: PropTypes.Validator<string>;
110
+ dark: PropTypes.Validator<string>;
111
+ }>>;
112
+ fallback: PropTypes.Requireable<string | PropTypes.InferProps<{
113
+ light: PropTypes.Validator<string>;
114
+ dark: PropTypes.Validator<string>;
115
+ }>>;
116
+ mask: PropTypes.Requireable<Image.Mask>;
117
+ tintColor: PropTypes.Requireable<string | PropTypes.InferProps<{
118
+ light: PropTypes.Validator<string>;
119
+ dark: PropTypes.Validator<string>;
120
+ adjustContrast: PropTypes.Requireable<boolean>;
121
+ }>>;
122
+ }>>;
123
+ color: PropTypes.Requireable<string | PropTypes.InferProps<{
124
+ light: PropTypes.Validator<string>;
125
+ dark: PropTypes.Validator<string>;
126
+ adjustContrast: PropTypes.Requireable<boolean>;
127
+ }>>;
25
128
  };
26
129
  var displayName: string;
27
130
  }
@@ -34,5 +137,127 @@ export declare namespace Detail {
34
137
  * The CommonMark string to be rendered.
35
138
  */
36
139
  markdown?: string | null;
140
+ /**
141
+ * The `Detail.Metadata` to be rendered in the right side area
142
+ */
143
+ metadata?: React.ReactNode;
144
+ }
145
+ /**
146
+ * A Metadata view that will be shown in the right-hand-side of the `Detail`.
147
+ *
148
+ * Use it to display additional structured data about the main content shown in the `Detail` view.
149
+ */
150
+ const Metadata: typeof DetailMetadata;
151
+ namespace Metadata {
152
+ /**
153
+ * Props of the {@link Detail.Metadata} React component.
154
+ */
155
+ interface Props {
156
+ /**
157
+ * The Detail.Metadata.Item elements of the Metadata view.
158
+ */
159
+ children: React.ReactNode;
160
+ }
161
+ /**
162
+ * Props of the Detail.Metadata.Item React component.
163
+ */
164
+ interface ItemProps {
165
+ /**
166
+ * The title shown above the item.
167
+ */
168
+ title: string;
169
+ }
170
+ namespace Label {
171
+ /**
172
+ * Props of the {@link Detail.Metadata.Label} React component.
173
+ */
174
+ interface Props extends ItemProps {
175
+ /**
176
+ * An icon to illustrate the value of the item.
177
+ */
178
+ icon?: Image.ImageLike;
179
+ /**
180
+ * The text value of the item.
181
+ */
182
+ text?: string;
183
+ }
184
+ }
185
+ namespace Separator {
186
+ /**
187
+ * Props of the {@link Detail.Metadata.Separator} React component.
188
+ */
189
+ interface Props {
190
+ }
191
+ }
192
+ namespace Link {
193
+ /**
194
+ * Props of the {@link Detail.Metadata.Link} React component.
195
+ */
196
+ interface Props extends ItemProps {
197
+ /**
198
+ * The target of the link.
199
+ */
200
+ target: string;
201
+ /**
202
+ * The text value of the item.
203
+ */
204
+ text: string;
205
+ }
206
+ }
207
+ namespace TagList {
208
+ /**
209
+ * Props of the {@link Detail.Metadata.TagList} React component.
210
+ */
211
+ interface Props extends ItemProps {
212
+ /**
213
+ * The tags contained in the TagList.
214
+ */
215
+ children: ReactNode;
216
+ }
217
+ namespace Item {
218
+ /**
219
+ * Props of the {@link Detail.Metadata.TagList.Item} React component.
220
+ */
221
+ interface Props {
222
+ /**
223
+ * An optional icon in front of the text of the tag.
224
+ */
225
+ icon?: Image.ImageLike;
226
+ /**
227
+ * The text of the tag.
228
+ */
229
+ text: string;
230
+ /**
231
+ * Changes the text color to the provided color and sets a transparent background with the same color.
232
+ */
233
+ color?: Color.ColorLike;
234
+ }
235
+ }
236
+ }
37
237
  }
38
238
  }
239
+ declare namespace DetailMetadataTagList {
240
+ /**
241
+ * A Tag in a {@link Detail.Metadata.TagList}.
242
+ */
243
+ const Item: typeof DetailMetadataTagListItem;
244
+ }
245
+ declare namespace DetailMetadata {
246
+ /**
247
+ * A single value with an optional icon.
248
+ */
249
+ const Label: typeof DetailMetadataLabel;
250
+ /**
251
+ * A metadata item that shows a separator line. Use it for grouping and visually separating metadata items.
252
+ */
253
+ const Separator: typeof DetailMetadataSeparator;
254
+ /**
255
+ * An item to display a link.
256
+ */
257
+ const Link: typeof DetailMetadataLink;
258
+ /**
259
+ * A list of {@link Detail.Metadata.TagList.Item} displayed in a row.
260
+ */
261
+ const TagList: typeof DetailMetadataTagList;
262
+ }
263
+ export {};
@@ -735,7 +735,7 @@ export declare namespace Form {
735
735
  /**
736
736
  * A form item with a simple text label.
737
737
  *
738
- * @remark Do *not* use this component to show validation messages for other form fields.
738
+ * @remarks Do *not* use this component to show validation messages for other form fields.
739
739
  *
740
740
  * @example
741
741
  * Label
@@ -957,7 +957,7 @@ export declare namespace Form {
957
957
  */
958
958
  interface Props extends Form.ItemProps<string[]> {
959
959
  /**
960
- * The list of tag picker's items.
960
+ * The list of tags.
961
961
  */
962
962
  children?: ReactNode;
963
963
  /**
@@ -971,16 +971,16 @@ export declare namespace Form {
971
971
  */
972
972
  interface Props {
973
973
  /**
974
- * Value of the tag picker item.
974
+ * Value of the tag.
975
975
  * Make sure to assign unique value for each item.
976
976
  */
977
977
  value: string;
978
978
  /**
979
- * The display title of the token.
979
+ * The display title of the tag.
980
980
  */
981
981
  title: string;
982
982
  /**
983
- * An icon to show in the token.
983
+ * An icon to show in the tag.
984
984
  */
985
985
  icon?: Image.ImageLike;
986
986
  }
@@ -64,6 +64,35 @@ export declare namespace List {
64
64
  onSearchTextChange: PropTypes.Requireable<(...args: any[]) => any>;
65
65
  isLoading: PropTypes.Requireable<boolean>;
66
66
  navigationTitle: PropTypes.Requireable<string>;
67
+ actions: PropTypes.Requireable<PropTypes.ReactNodeLike>;
68
+ };
69
+ var displayName: string;
70
+ }
71
+ declare function ListEmptyView(props: List.EmptyView.Props): ReactElement<List.EmptyView.Props>;
72
+ declare namespace ListEmptyView {
73
+ var propTypes: {
74
+ id: PropTypes.Requireable<string>;
75
+ icon: PropTypes.Requireable<string | Required<PropTypes.InferProps<{
76
+ fileIcon: PropTypes.Validator<string>;
77
+ }>> | PropTypes.InferProps<{
78
+ source: PropTypes.Requireable<string | PropTypes.InferProps<{
79
+ light: PropTypes.Validator<string>;
80
+ dark: PropTypes.Validator<string>;
81
+ }>>;
82
+ fallback: PropTypes.Requireable<string | PropTypes.InferProps<{
83
+ light: PropTypes.Validator<string>;
84
+ dark: PropTypes.Validator<string>;
85
+ }>>;
86
+ mask: PropTypes.Requireable<Image.Mask>;
87
+ tintColor: PropTypes.Requireable<string | PropTypes.InferProps<{
88
+ light: PropTypes.Validator<string>;
89
+ dark: PropTypes.Validator<string>;
90
+ adjustContrast: PropTypes.Requireable<boolean>;
91
+ }>>;
92
+ }>>;
93
+ title: PropTypes.Requireable<string>;
94
+ description: PropTypes.Requireable<string>;
95
+ actions: PropTypes.Requireable<PropTypes.ReactNodeLike>;
67
96
  };
68
97
  var displayName: string;
69
98
  }
@@ -88,7 +117,6 @@ declare namespace ListItem {
88
117
  id: PropTypes.Requireable<string>;
89
118
  title: PropTypes.Validator<string>;
90
119
  subtitle: PropTypes.Requireable<string>;
91
- accessoryTitle: PropTypes.Requireable<string>;
92
120
  keywords: PropTypes.Requireable<string[]>;
93
121
  icon: PropTypes.Requireable<string | Required<PropTypes.InferProps<{
94
122
  fileIcon: PropTypes.Validator<string>;
@@ -108,6 +136,46 @@ declare namespace ListItem {
108
136
  adjustContrast: PropTypes.Requireable<boolean>;
109
137
  }>>;
110
138
  }>>;
139
+ accessoryTitle: PropTypes.Requireable<string>;
140
+ accessoryIcon: PropTypes.Requireable<string | Required<PropTypes.InferProps<{
141
+ fileIcon: PropTypes.Validator<string>;
142
+ }>> | PropTypes.InferProps<{
143
+ source: PropTypes.Requireable<string | PropTypes.InferProps<{
144
+ light: PropTypes.Validator<string>;
145
+ dark: PropTypes.Validator<string>;
146
+ }>>;
147
+ fallback: PropTypes.Requireable<string | PropTypes.InferProps<{
148
+ light: PropTypes.Validator<string>;
149
+ dark: PropTypes.Validator<string>;
150
+ }>>;
151
+ mask: PropTypes.Requireable<Image.Mask>;
152
+ tintColor: PropTypes.Requireable<string | PropTypes.InferProps<{
153
+ light: PropTypes.Validator<string>;
154
+ dark: PropTypes.Validator<string>;
155
+ adjustContrast: PropTypes.Requireable<boolean>;
156
+ }>>;
157
+ }>>;
158
+ accessories: PropTypes.Requireable<Required<PropTypes.InferProps<{
159
+ text: PropTypes.Requireable<string>;
160
+ icon: PropTypes.Requireable<string | Required<PropTypes.InferProps<{
161
+ fileIcon: PropTypes.Validator<string>;
162
+ }>> | PropTypes.InferProps<{
163
+ source: PropTypes.Requireable<string | PropTypes.InferProps<{
164
+ light: PropTypes.Validator<string>;
165
+ dark: PropTypes.Validator<string>;
166
+ }>>;
167
+ fallback: PropTypes.Requireable<string | PropTypes.InferProps<{
168
+ light: PropTypes.Validator<string>;
169
+ dark: PropTypes.Validator<string>;
170
+ }>>;
171
+ mask: PropTypes.Requireable<Image.Mask>;
172
+ tintColor: PropTypes.Requireable<string | PropTypes.InferProps<{
173
+ light: PropTypes.Validator<string>;
174
+ dark: PropTypes.Validator<string>;
175
+ adjustContrast: PropTypes.Requireable<boolean>;
176
+ }>>;
177
+ }>>;
178
+ }>>[]>;
111
179
  };
112
180
  var displayName: string;
113
181
  }
@@ -177,6 +245,45 @@ declare namespace ListDropdownItem {
177
245
  var displayName: string;
178
246
  }
179
247
  export declare namespace List {
248
+ /**
249
+ * A view to display when there aren't any items available. Use to greet users with a friendly message if the
250
+ * extension requires user input before it can show any list items e.g. when searching for a package, an article etc.
251
+ *
252
+ * @remarks
253
+ * Raycast provides a default `EmptyView` that will be displayed if the {@link List} component either has no children,
254
+ * or if it has children, but none of them match the query in the search bar. This too can be overridden by passing
255
+ * an empty view alongside the other `List.Item`s.
256
+ *
257
+ * @example
258
+ * import { useState } from "react";
259
+ * import { List } from "@raycast/api";
260
+ *
261
+ * export default function CommandWithCustomEmptyState() {
262
+ * const [state, setState] = useState({ searchText: "", items: [] });
263
+ *
264
+ * useEffect(() => {
265
+ * // perform an API call that eventually populates `items`.
266
+ * }, [state.searchText])
267
+ *
268
+ * return (
269
+ * <List
270
+ * onSearchTextChange={(newValue) =>
271
+ * setState((previous) => ({ ...previous, searchText: newValue }))
272
+ * }
273
+ * >
274
+ * {state.searchText === "" && state.items.length === 0 ? (
275
+ * <List.EmptyView
276
+ * icon={{ source: "https://placekitten.com/500/500" }}
277
+ * title="Type something to get started"
278
+ * />
279
+ * ) : (
280
+ * state.items.map((item) => <List.Item key={item} title={item} />)
281
+ * )}
282
+ * </List>
283
+ * );
284
+ * }
285
+ */
286
+ const EmptyView: typeof ListEmptyView;
180
287
  /**
181
288
  * A item in the {@link List}.
182
289
  *
@@ -192,7 +299,7 @@ export declare namespace List {
192
299
  * export default function Command() {
193
300
  * return (
194
301
  * <List>
195
- * <List.Item icon={Icon.Star} title="Augustiner Helles" subtitle="0,5 Liter" accessoryTitle="Germany" />
302
+ * <List.Item icon={Icon.Star} title="Augustiner Helles" subtitle="0,5 Liter" accessories={[{ text: "Germany" }]} />
196
303
  * </List>
197
304
  * );
198
305
  * }
@@ -333,7 +440,55 @@ export declare namespace List {
333
440
  */
334
441
  isShowingDetail?: boolean;
335
442
  }
443
+ namespace EmptyView {
444
+ interface Props extends ActionsInterface {
445
+ /**
446
+ * An icon displayed in the center of the EmptyView.
447
+ *
448
+ * @remarks
449
+ * If an SVG is used, its longest side will be 128 pixels. Other images will be up/downscaled proportionally so that the longest side is between 64 and 256 pixels.
450
+ * If not specified, Raycast's default `EmptyView` icon will be used.
451
+ */
452
+ icon?: Image.ImageLike;
453
+ /**
454
+ * The main title displayed for the Empty View.
455
+ */
456
+ title?: string;
457
+ /**
458
+ * An optional description for why the empty view is shown.
459
+ */
460
+ description?: string;
461
+ }
462
+ }
336
463
  namespace Item {
464
+ /**
465
+ * An interface describing an accessory item in a {@link List.Item}
466
+ *
467
+ * @example
468
+ * ```typescript
469
+ * import { List } from "@raycast/api";
470
+ *
471
+ * export default function Command() {
472
+ * return (
473
+ * <List>
474
+ * <List.Item title="An Item with Accessories" accessories={[{ text: `An Accessory Text`, icon: Icon.Hammer }, { icon: Icon.Person }, { text: "Just Do It!" }]} />
475
+ * </List>
476
+ * );
477
+ * }
478
+ * ```
479
+ */
480
+ interface Accessory {
481
+ /**
482
+ * An optional text that will be used as the label.
483
+ */
484
+ text?: string;
485
+ /**
486
+ * An optional {@link Image.ImageLike} that will be used as the icon.
487
+ * @remarks
488
+ * An image will be shown in front of the text if {@link List.Item.Accessory.text} is specified.
489
+ */
490
+ icon?: Image.ImageLike;
491
+ }
337
492
  /**
338
493
  * Props of the {@link List.Item} React component.
339
494
  */
@@ -357,17 +512,21 @@ export declare namespace List {
357
512
  */
358
513
  keywords?: string[];
359
514
  /**
360
- * A optional icon displayed for the list item.
515
+ * An optional icon displayed for the list item.
361
516
  */
362
517
  icon?: Image.ImageLike;
363
518
  /**
364
- * A optional icon displayed as accessory for the list item.
519
+ * @deprecated Use "accessories={[ { icon: ... } ]}" instead.
365
520
  */
366
521
  accessoryIcon?: Image.ImageLike;
367
522
  /**
368
- * An additional title displayed for the item.
523
+ * @deprecated Use "accessories={[ { text: ... } ]}" instead.
369
524
  */
370
525
  accessoryTitle?: string;
526
+ /**
527
+ * An optional array of {@link List.Item.Accessory} items displayed on the right side in a List.Item.
528
+ */
529
+ accessories?: Accessory[];
371
530
  /**
372
531
  * An {@link ActionPanel} that will be updated for the selected list item.
373
532
  */
@@ -492,7 +651,7 @@ export declare namespace List {
492
651
  */
493
652
  title: string;
494
653
  /**
495
- * A optional icon displayed for the item.
654
+ * An optional icon displayed for the item.
496
655
  */
497
656
  icon?: Image.ImageLike;
498
657
  }
@@ -29,6 +29,10 @@ export interface Environment {
29
29
  * Indicates whether the command is a development command (vs. an installed command from the Store).
30
30
  */
31
31
  isDevelopment: boolean;
32
+ /**
33
+ * The theme used by the Raycast application.
34
+ */
35
+ theme: "light" | "dark";
32
36
  }
33
37
  /**
34
38
  * Contains environment values such as the Raycast version, extension info, and paths.
@@ -43,6 +47,7 @@ export interface Environment {
43
47
  * console.log(`Assets path: ${environment.assetsPath}`);
44
48
  * console.log(`Support path: ${environment.supportPath}`);
45
49
  * console.log(`Is development mode: ${environment.isDevelopment}`);
50
+ * console.log(`Raycast theme: ${environment.theme}`);
46
51
  * ```
47
52
  */
48
53
  export declare const environment: Environment;
@@ -1,2 +1,4 @@
1
1
  import { RaycastElement } from "./types";
2
2
  export declare function appendDetailChildElement(detailElement: RaycastElement, childElement: RaycastElement): void;
3
+ export declare function appendDetailMetadataChildElement(detailMetadataElement: RaycastElement, childElement: RaycastElement): void;
4
+ export declare function appendDetailMetadataTagListChildElement(detailMetadataTagListElement: RaycastElement, childElement: RaycastElement): void;
@@ -1,2 +1,3 @@
1
1
  import { RaycastElement } from "./types";
2
2
  export declare function appendFormChildElement(formElement: RaycastElement, childElement: RaycastElement): void;
3
+ export declare function appendFormDropdownChildElement(formDropdownElement: RaycastElement, childElement: RaycastElement): void;
@@ -1,4 +1,5 @@
1
1
  import { RaycastElement } from "./types";
2
2
  export declare function appendListChildElement(listElement: RaycastElement, childElement: RaycastElement): void;
3
+ export declare function appendListEmptyViewChildElement(listEmptyViewElement: RaycastElement, childElement: RaycastElement): void;
3
4
  export declare function appendListDropdownChildElement(listElement: RaycastElement, childElement: RaycastElement): void;
4
5
  export declare function appendListItemChildElement(listItemElement: RaycastElement, childElement: RaycastElement): void;
@@ -1 +1 @@
1
- export declare const AllPropsFromChildren: PropsFromChildren[];
1
+ export {};
@@ -1 +1,2 @@
1
- export {};
1
+ import { createInstance } from "./instance";
2
+ export { createInstance };
@@ -0,0 +1,3 @@
1
+ import { ElementNames, RaycastElement, RenderNode } from "../node-builders/types";
2
+ export declare function createInstance(nodeName: ElementNames, props: RenderNode): RaycastElement;
3
+ export declare function cloneInstance(instance: RaycastElement, _updatePayload: unknown, type: ElementNames, _oldProps: RenderNode, newProps: RenderNode, _workInProgress: unknown, childrenUnchanged: boolean): RaycastElement;
@@ -1,3 +1,4 @@
1
1
  export * from "./ids";
2
2
  export * from "./internal-children";
3
3
  export * from "./propTypes";
4
+ export * from "./invariant";
@@ -0,0 +1,4 @@
1
+ /**
2
+ * If the condition is falsy, print a warning in dev mode
3
+ */
4
+ export declare function invariant(condition: boolean, warning: string): boolean;
@@ -16,6 +16,7 @@
16
16
  */
17
17
  export declare enum Icon {
18
18
  ArrowClockwise = "arrow-clockwise-16",
19
+ TwoArrowsClockwise = "arrow-2-clockwise-16",
19
20
  ArrowRight = "arrow-right-16",
20
21
  Binoculars = "binoculars-16",
21
22
  Bubble = "bubble-left-16",