@mantine/spotlight 5.10.0 → 6.0.0-alpha.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.
Files changed (58) hide show
  1. package/cjs/ActionsList/ActionsList.js +4 -3
  2. package/cjs/ActionsList/ActionsList.js.map +1 -1
  3. package/cjs/ActionsList/ActionsList.styles.js +3 -4
  4. package/cjs/ActionsList/ActionsList.styles.js.map +1 -1
  5. package/cjs/DefaultAction/DefaultAction.js +3 -2
  6. package/cjs/DefaultAction/DefaultAction.js.map +1 -1
  7. package/cjs/DefaultAction/DefaultAction.styles.js +27 -5
  8. package/cjs/DefaultAction/DefaultAction.styles.js.map +1 -1
  9. package/cjs/Spotlight/Spotlight.js +56 -84
  10. package/cjs/Spotlight/Spotlight.js.map +1 -1
  11. package/cjs/Spotlight/Spotlight.styles.js +7 -44
  12. package/cjs/Spotlight/Spotlight.styles.js.map +1 -1
  13. package/cjs/SpotlightProvider.js +20 -11
  14. package/cjs/SpotlightProvider.js.map +1 -1
  15. package/cjs/events.js +9 -0
  16. package/cjs/events.js.map +1 -1
  17. package/cjs/index.js +1 -0
  18. package/cjs/index.js.map +1 -1
  19. package/cjs/use-actions-state/use-actions-state.js +4 -13
  20. package/cjs/use-actions-state/use-actions-state.js.map +1 -1
  21. package/esm/ActionsList/ActionsList.js +4 -3
  22. package/esm/ActionsList/ActionsList.js.map +1 -1
  23. package/esm/ActionsList/ActionsList.styles.js +4 -5
  24. package/esm/ActionsList/ActionsList.styles.js.map +1 -1
  25. package/esm/DefaultAction/DefaultAction.js +3 -2
  26. package/esm/DefaultAction/DefaultAction.js.map +1 -1
  27. package/esm/DefaultAction/DefaultAction.styles.js +28 -6
  28. package/esm/DefaultAction/DefaultAction.styles.js.map +1 -1
  29. package/esm/Spotlight/Spotlight.js +58 -86
  30. package/esm/Spotlight/Spotlight.js.map +1 -1
  31. package/esm/Spotlight/Spotlight.styles.js +8 -45
  32. package/esm/Spotlight/Spotlight.styles.js.map +1 -1
  33. package/esm/SpotlightProvider.js +21 -12
  34. package/esm/SpotlightProvider.js.map +1 -1
  35. package/esm/events.js +9 -1
  36. package/esm/events.js.map +1 -1
  37. package/esm/index.js +1 -1
  38. package/esm/use-actions-state/use-actions-state.js +4 -13
  39. package/esm/use-actions-state/use-actions-state.js.map +1 -1
  40. package/lib/ActionsList/ActionsList.d.ts +3 -2
  41. package/lib/ActionsList/ActionsList.d.ts.map +1 -1
  42. package/lib/ActionsList/ActionsList.styles.d.ts.map +1 -1
  43. package/lib/DefaultAction/DefaultAction.d.ts.map +1 -1
  44. package/lib/DefaultAction/DefaultAction.styles.d.ts +0 -1
  45. package/lib/DefaultAction/DefaultAction.styles.d.ts.map +1 -1
  46. package/lib/Spotlight/Spotlight.d.ts +9 -28
  47. package/lib/Spotlight/Spotlight.d.ts.map +1 -1
  48. package/lib/Spotlight/Spotlight.styles.d.ts +2 -14
  49. package/lib/Spotlight/Spotlight.styles.d.ts.map +1 -1
  50. package/lib/SpotlightProvider.d.ts +8 -4
  51. package/lib/SpotlightProvider.d.ts.map +1 -1
  52. package/lib/events.d.ts +8 -0
  53. package/lib/events.d.ts.map +1 -1
  54. package/lib/index.d.ts +1 -1
  55. package/lib/index.d.ts.map +1 -1
  56. package/lib/use-actions-state/use-actions-state.d.ts +6 -2
  57. package/lib/use-actions-state/use-actions-state.d.ts.map +1 -1
  58. package/package.json +4 -4
@@ -1,7 +1,7 @@
1
1
  import React, { useState } from 'react';
2
- import { getDefaultZIndex, OptionalPortal, GroupedTransition, Paper, TextInput, Overlay } from '@mantine/core';
2
+ import { getDefaultZIndex, useComponentDefaultProps, Modal, TextInput, ScrollArea } from '@mantine/core';
3
3
  import { getGroupedOptions } from '@mantine/utils';
4
- import { useScrollLock, useFocusTrap, useFocusReturn, useDidUpdate } from '@mantine/hooks';
4
+ import { useDidUpdate } from '@mantine/hooks';
5
5
  import { DefaultAction } from '../DefaultAction/DefaultAction.js';
6
6
  import { ActionsList } from '../ActionsList/ActionsList.js';
7
7
  import { filterActions } from './filter-actions/filter-actions.js';
@@ -38,61 +38,60 @@ var __objRest = (source, exclude) => {
38
38
  }
39
39
  return target;
40
40
  };
41
- function Spotlight(_a) {
42
- var _b = _a, {
41
+ function SpotlightScrollArea(props) {
42
+ return /* @__PURE__ */ React.createElement(ScrollArea.Autosize, __spreadValues({
43
+ mah: "calc(100vh - 18rem)"
44
+ }, props));
45
+ }
46
+ const defaultProps = {
47
+ closeOnActionTrigger: true,
48
+ highlightQuery: false,
49
+ size: 600,
50
+ yOffset: 120,
51
+ filter: filterActions,
52
+ limit: 10,
53
+ actionComponent: DefaultAction,
54
+ scrollAreaComponent: SpotlightScrollArea,
55
+ actionsWrapperComponent: "div",
56
+ zIndex: getDefaultZIndex("max"),
57
+ overlayProps: { opacity: 0.2, blur: 7 }
58
+ };
59
+ function Spotlight(props) {
60
+ const _a = useComponentDefaultProps("Spotlight", defaultProps, props), {
43
61
  query,
44
62
  onQueryChange,
45
63
  actions,
46
64
  onClose,
47
65
  opened,
48
- withinPortal,
49
- transition = "pop",
50
- transitionDuration,
51
66
  classNames,
52
67
  styles,
53
- overlayColor = "#000",
54
- overlayOpacity = 0.25,
55
- overlayBlur = 3,
56
- shadow = "md",
57
- radius,
58
- centered = false,
59
- closeOnActionTrigger = true,
60
- highlightQuery = false,
68
+ closeOnActionTrigger,
69
+ highlightQuery,
61
70
  highlightColor,
62
- maxWidth = 600,
63
- topOffset = 120,
64
71
  className,
65
72
  searchPlaceholder,
66
73
  searchIcon,
67
- filter = filterActions,
74
+ filter,
68
75
  nothingFoundMessage,
69
- limit = 10,
70
- actionComponent = DefaultAction,
71
- actionsWrapperComponent: ActionsWrapper = "div",
72
- zIndex = getDefaultZIndex("max"),
73
- searchInputProps
74
- } = _b, others = __objRest(_b, [
76
+ limit,
77
+ actionComponent,
78
+ actionsWrapperComponent: ActionsWrapper,
79
+ scrollAreaComponent: ScrollAreaComponent,
80
+ searchInputProps,
81
+ variant,
82
+ target,
83
+ radius
84
+ } = _a, others = __objRest(_a, [
75
85
  "query",
76
86
  "onQueryChange",
77
87
  "actions",
78
88
  "onClose",
79
89
  "opened",
80
- "withinPortal",
81
- "transition",
82
- "transitionDuration",
83
90
  "classNames",
84
91
  "styles",
85
- "overlayColor",
86
- "overlayOpacity",
87
- "overlayBlur",
88
- "shadow",
89
- "radius",
90
- "centered",
91
92
  "closeOnActionTrigger",
92
93
  "highlightQuery",
93
94
  "highlightColor",
94
- "maxWidth",
95
- "topOffset",
96
95
  "className",
97
96
  "searchPlaceholder",
98
97
  "searchIcon",
@@ -101,20 +100,20 @@ function Spotlight(_a) {
101
100
  "limit",
102
101
  "actionComponent",
103
102
  "actionsWrapperComponent",
104
- "zIndex",
105
- "searchInputProps"
103
+ "scrollAreaComponent",
104
+ "searchInputProps",
105
+ "variant",
106
+ "target",
107
+ "radius"
106
108
  ]);
107
109
  const [hovered, setHovered] = useState(-1);
108
110
  const [IMEOpen, setIMEOpen] = useState(false);
109
- const { classes, cx } = useStyles({ centered, maxWidth, topOffset, radius, zIndex }, { classNames, styles, name: "Spotlight" });
110
- const [, lockScroll] = useScrollLock();
111
- const focusTrapRef = useFocusTrap(opened);
111
+ const { classes, cx } = useStyles(null, { name: "Spotlight", classNames, styles, variant });
112
112
  const resetHovered = () => setHovered(-1);
113
113
  const handleClose = () => {
114
114
  resetHovered();
115
115
  onClose();
116
116
  };
117
- useFocusReturn({ opened });
118
117
  const filteredActions = filter(query, actions).slice(0, limit);
119
118
  const groupedWithLabels = getGroupedOptions(filteredActions).items;
120
119
  const groupedActions = groupedWithLabels.map((item) => item.type === "item" ? item.item : void 0).filter((item) => item);
@@ -124,7 +123,7 @@ function Spotlight(_a) {
124
123
  }
125
124
  }, [groupedActions.length]);
126
125
  const handleInputKeyDown = (event) => {
127
- var _a2, _b2;
126
+ var _a2, _b;
128
127
  if (IMEOpen) {
129
128
  return;
130
129
  }
@@ -143,7 +142,7 @@ function Spotlight(_a) {
143
142
  event.preventDefault();
144
143
  const action = groupedActions[hovered];
145
144
  (_a2 = action == null ? void 0 : action.onTrigger) == null ? void 0 : _a2.call(action, action);
146
- if (((_b2 = action == null ? void 0 : action.closeOnTrigger) != null ? _b2 : closeOnActionTrigger) && (action == null ? void 0 : action.onTrigger)) {
145
+ if (((_b = action == null ? void 0 : action.closeOnTrigger) != null ? _b : closeOnActionTrigger) && (action == null ? void 0 : action.onTrigger)) {
147
146
  handleClose();
148
147
  }
149
148
  break;
@@ -160,37 +159,18 @@ function Spotlight(_a) {
160
159
  setHovered(0);
161
160
  }
162
161
  };
163
- return /* @__PURE__ */ React.createElement(OptionalPortal, {
164
- withinPortal
165
- }, /* @__PURE__ */ React.createElement(GroupedTransition, {
166
- onExited: () => lockScroll(false),
167
- onEntered: () => lockScroll(true),
168
- mounted: opened,
169
- transitions: {
170
- spotlight: {
171
- duration: transitionDuration,
172
- transition,
173
- timingFunction: "ease"
174
- },
175
- overlay: {
176
- duration: transitionDuration / 2,
177
- transition: "fade",
178
- timingFunction: "ease"
179
- }
180
- }
181
- }, (transitionStyles) => /* @__PURE__ */ React.createElement("div", __spreadValues({
182
- className: cx(classes.root, className)
183
- }, others), /* @__PURE__ */ React.createElement("div", {
184
- className: classes.inner,
185
- ref: focusTrapRef
186
- }, /* @__PURE__ */ React.createElement(Paper, {
187
- style: transitionStyles.spotlight,
188
- className: classes.spotlight,
189
- shadow,
162
+ return /* @__PURE__ */ React.createElement(Modal, __spreadValues({
163
+ opened,
164
+ onClose: handleClose,
165
+ padding: 0,
190
166
  radius,
191
- onMouseLeave: resetHovered
192
- }, /* @__PURE__ */ React.createElement(TextInput, __spreadProps(__spreadValues({
193
- autoComplete: "chrome-please-just-do-not-show-it-thanks",
167
+ scrollAreaComponent: Modal.NativeScrollArea,
168
+ classNames: __spreadProps(__spreadValues({}, classNames), {
169
+ content: cx(classes.content, classNames == null ? void 0 : classNames.content)
170
+ }),
171
+ styles,
172
+ withCloseButton: false
173
+ }, others), /* @__PURE__ */ React.createElement(TextInput, __spreadProps(__spreadValues({
194
174
  size: "lg"
195
175
  }, searchInputProps), {
196
176
  value: query,
@@ -202,7 +182,7 @@ function Spotlight(_a) {
202
182
  placeholder: searchPlaceholder,
203
183
  icon: searchIcon,
204
184
  onMouseEnter: resetHovered
205
- })), /* @__PURE__ */ React.createElement(ActionsWrapper, null, /* @__PURE__ */ React.createElement(ActionsList, {
185
+ })), /* @__PURE__ */ React.createElement(ActionsWrapper, null, /* @__PURE__ */ React.createElement(ScrollAreaComponent, null, /* @__PURE__ */ React.createElement(ActionsList, {
206
186
  highlightQuery,
207
187
  highlightColor,
208
188
  actions: groupedWithLabels,
@@ -210,7 +190,7 @@ function Spotlight(_a) {
210
190
  hovered,
211
191
  query,
212
192
  nothingFoundMessage,
213
- onActionHover: setHovered,
193
+ onActionHover: () => setHovered(-1),
214
194
  onActionTrigger: (action) => {
215
195
  var _a2;
216
196
  action.onTrigger(action);
@@ -218,17 +198,9 @@ function Spotlight(_a) {
218
198
  },
219
199
  styles,
220
200
  classNames,
221
- radius
222
- }))), /* @__PURE__ */ React.createElement("div", {
223
- style: transitionStyles.overlay
224
- }, /* @__PURE__ */ React.createElement(Overlay, {
225
- className: classes.overlay,
226
- zIndex: 1,
227
- onMouseDown: handleClose,
228
- color: overlayColor,
229
- opacity: overlayOpacity,
230
- blur: overlayBlur
231
- }))))));
201
+ radius,
202
+ variant
203
+ }))));
232
204
  }
233
205
  Spotlight.displayName = "@mantine/spotlight/Spotlight";
234
206
 
@@ -1 +1 @@
1
- {"version":3,"file":"Spotlight.js","sources":["../../src/Spotlight/Spotlight.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n OptionalPortal,\n GroupedTransition,\n MantineTransition,\n Overlay,\n Paper,\n DefaultProps,\n Selectors,\n MantineShadow,\n TextInput,\n getDefaultZIndex,\n MantineNumberSize,\n MantineColor,\n TextInputProps,\n} from '@mantine/core';\nimport { getGroupedOptions } from '@mantine/utils';\nimport { useScrollLock, useFocusTrap, useDidUpdate, useFocusReturn } from '@mantine/hooks';\nimport { DefaultAction, DefaultActionProps } from '../DefaultAction/DefaultAction';\nimport { ActionsList, ActionsListStylesNames } from '../ActionsList/ActionsList';\nimport type { SpotlightAction } from '../types';\nimport { filterActions } from './filter-actions/filter-actions';\nimport useStyles from './Spotlight.styles';\n\nexport type SpotlightStylesNames = Selectors<typeof useStyles> | ActionsListStylesNames;\n\nexport interface InnerSpotlightProps\n extends DefaultProps<SpotlightStylesNames>,\n React.ComponentPropsWithoutRef<'div'> {\n /** Should spotlight be rendered within Portal */\n withinPortal?: boolean;\n\n /** Premade transition or transition object */\n transition?: MantineTransition;\n\n /** Transition duration in ms, set to 0 to disable all transitions */\n transitionDuration?: number;\n\n /** Backdrop overlay color, e.g. #000 */\n overlayColor?: string;\n\n /** Backdrop overlay opacity (0-1), e.g. 0.65 */\n overlayOpacity?: number;\n\n /** Backdrop overlay blur in px */\n overlayBlur?: number;\n\n /** Value from theme.shadows or any valid css box-shadow value */\n shadow?: MantineShadow;\n\n /** Radius from theme.radius, or number to set border-radius in px, defaults to theme.defaultRadius */\n radius?: MantineNumberSize;\n\n /** Should spotlight be rendered in the center of the screen */\n centered?: boolean;\n\n /** Max spotlight width */\n maxWidth?: number;\n\n /** Top offset when spotlight is not centered */\n topOffset?: number;\n\n /** Search input placeholder */\n searchPlaceholder?: string;\n\n /** Search input icon */\n searchIcon?: React.ReactNode;\n\n /** Function used to determine how actions will be filtered based on user input */\n filter?(query: string, actions: SpotlightAction[]): SpotlightAction[];\n\n /** Message displayed when actions were not found */\n nothingFoundMessage?: React.ReactNode;\n\n /** Number of actions displayed at a time */\n limit?: number;\n\n /** Should spotlight be closed when action is triggered */\n closeOnActionTrigger?: boolean;\n\n /** Component that is used to render actions */\n actionComponent?: React.FC<DefaultActionProps>;\n\n /** Component that is used to wrap actions list */\n actionsWrapperComponent?: React.FC<{ children: React.ReactNode }> | string;\n\n /** Spotlight z-index */\n zIndex?: React.CSSProperties['zIndex'];\n\n /** Should user query be highlighted in actions title */\n highlightQuery?: boolean;\n\n /** The highlight color */\n highlightColor?: MantineColor;\n\n /** Props spread to search input */\n searchInputProps?: TextInputProps;\n}\n\ninterface SpotlightProps extends InnerSpotlightProps {\n actions: SpotlightAction[];\n onClose(): void;\n opened: boolean;\n query: string;\n onQueryChange(query: string): void;\n}\n\nexport function Spotlight({\n query,\n onQueryChange,\n actions,\n onClose,\n opened,\n withinPortal,\n transition = 'pop',\n transitionDuration,\n classNames,\n styles,\n overlayColor = '#000',\n overlayOpacity = 0.25,\n overlayBlur = 3,\n shadow = 'md',\n radius,\n centered = false,\n closeOnActionTrigger = true,\n highlightQuery = false,\n highlightColor,\n maxWidth = 600,\n topOffset = 120,\n className,\n searchPlaceholder,\n searchIcon,\n filter = filterActions,\n nothingFoundMessage,\n limit = 10,\n actionComponent = DefaultAction,\n actionsWrapperComponent: ActionsWrapper = 'div',\n zIndex = getDefaultZIndex('max'),\n searchInputProps,\n ...others\n}: SpotlightProps) {\n const [hovered, setHovered] = useState(-1);\n const [IMEOpen, setIMEOpen] = useState(false);\n const { classes, cx } = useStyles(\n { centered, maxWidth, topOffset, radius, zIndex },\n { classNames, styles, name: 'Spotlight' }\n );\n\n const [, lockScroll] = useScrollLock();\n const focusTrapRef = useFocusTrap(opened);\n\n const resetHovered = () => setHovered(-1);\n const handleClose = () => {\n resetHovered();\n onClose();\n };\n\n useFocusReturn({ opened });\n\n const filteredActions = filter(query, actions).slice(0, limit);\n const groupedWithLabels = getGroupedOptions(filteredActions).items;\n const groupedActions = groupedWithLabels\n .map((item) => (item.type === 'item' ? item.item : undefined))\n .filter((item) => item);\n\n useDidUpdate(() => {\n if (groupedActions.length - 1 < hovered) {\n setHovered(groupedActions.length - 1);\n }\n }, [groupedActions.length]);\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (IMEOpen) {\n return;\n }\n\n switch (event.key) {\n case 'ArrowDown': {\n event.preventDefault();\n setHovered((current) => (current < groupedActions.length - 1 ? current + 1 : 0));\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n setHovered((current) => (current > 0 ? current - 1 : groupedActions.length - 1));\n break;\n }\n\n case 'Enter': {\n event.preventDefault();\n const action = groupedActions[hovered];\n action?.onTrigger?.(action);\n if ((action?.closeOnTrigger ?? closeOnActionTrigger) && action?.onTrigger) {\n handleClose();\n }\n break;\n }\n\n case 'Escape': {\n event.preventDefault();\n handleClose();\n }\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onQueryChange(event.currentTarget.value);\n if (hovered === -1) {\n setHovered(0);\n }\n };\n\n return (\n <OptionalPortal withinPortal={withinPortal}>\n <GroupedTransition\n onExited={() => lockScroll(false)}\n onEntered={() => lockScroll(true)}\n mounted={opened}\n transitions={{\n spotlight: {\n duration: transitionDuration,\n transition,\n timingFunction: 'ease',\n },\n overlay: {\n duration: transitionDuration / 2,\n transition: 'fade',\n timingFunction: 'ease',\n },\n }}\n >\n {(transitionStyles) => (\n <div className={cx(classes.root, className)} {...others}>\n <div className={classes.inner} ref={focusTrapRef}>\n <Paper\n style={transitionStyles.spotlight}\n className={classes.spotlight}\n shadow={shadow}\n radius={radius}\n onMouseLeave={resetHovered}\n >\n <TextInput\n autoComplete=\"chrome-please-just-do-not-show-it-thanks\"\n size=\"lg\"\n {...searchInputProps}\n value={query}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n onCompositionStart={() => setIMEOpen(true)}\n onCompositionEnd={() => setIMEOpen(false)}\n classNames={{ input: classes.searchInput }}\n placeholder={searchPlaceholder}\n icon={searchIcon}\n onMouseEnter={resetHovered}\n />\n <ActionsWrapper>\n <ActionsList\n highlightQuery={highlightQuery}\n highlightColor={highlightColor}\n actions={groupedWithLabels}\n actionComponent={actionComponent}\n hovered={hovered}\n query={query}\n nothingFoundMessage={nothingFoundMessage}\n onActionHover={setHovered}\n onActionTrigger={(action) => {\n action.onTrigger(action);\n (action.closeOnTrigger ?? closeOnActionTrigger) && handleClose();\n }}\n styles={styles}\n classNames={classNames}\n radius={radius}\n />\n </ActionsWrapper>\n </Paper>\n\n <div style={transitionStyles.overlay}>\n <Overlay\n className={classes.overlay}\n zIndex={1}\n onMouseDown={handleClose}\n color={overlayColor}\n opacity={overlayOpacity}\n blur={overlayBlur}\n />\n </div>\n </div>\n </div>\n )}\n </GroupedTransition>\n </OptionalPortal>\n );\n}\n\nSpotlight.displayName = '@mantine/spotlight/Spotlight';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Spotlight.js","sources":["../../src/Spotlight/Spotlight.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport {\n DefaultProps,\n Selectors,\n TextInput,\n getDefaultZIndex,\n MantineColor,\n TextInputProps,\n Modal,\n ModalProps,\n ModalStylesNames,\n useComponentDefaultProps,\n ScrollArea,\n ScrollAreaAutosizeProps,\n} from '@mantine/core';\nimport { getGroupedOptions } from '@mantine/utils';\nimport { useDidUpdate } from '@mantine/hooks';\nimport { DefaultAction, DefaultActionProps } from '../DefaultAction/DefaultAction';\nimport { ActionsList, ActionsListStylesNames } from '../ActionsList/ActionsList';\nimport type { SpotlightAction } from '../types';\nimport { filterActions } from './filter-actions/filter-actions';\nimport useStyles from './Spotlight.styles';\n\nfunction SpotlightScrollArea(props: ScrollAreaAutosizeProps) {\n return <ScrollArea.Autosize mah=\"calc(100vh - 18rem)\" {...props} />;\n}\n\nexport type SpotlightStylesNames =\n | Selectors<typeof useStyles>\n | Exclude<ModalStylesNames, 'close' | 'header' | 'title'>\n | ActionsListStylesNames;\n\nexport interface InnerSpotlightProps\n extends Omit<\n ModalProps,\n 'styles' | 'classNames' | 'title' | 'withCloseButton' | 'opened' | 'onClose'\n >,\n DefaultProps<SpotlightStylesNames>,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n\n /** Search input placeholder */\n searchPlaceholder?: string;\n\n /** Search input icon */\n searchIcon?: React.ReactNode;\n\n /** Function used to determine how actions will be filtered based on user input */\n filter?(query: string, actions: SpotlightAction[]): SpotlightAction[];\n\n /** Message displayed when actions were not found */\n nothingFoundMessage?: React.ReactNode;\n\n /** Number of actions displayed at a time */\n limit?: number;\n\n /** Should spotlight be closed when action is triggered */\n closeOnActionTrigger?: boolean;\n\n /** Component that is used to render actions */\n actionComponent?: React.FC<DefaultActionProps>;\n\n /** Component that is used to wrap actions list */\n actionsWrapperComponent?: React.FC<{ children: React.ReactNode }> | string;\n\n /** Should user query be highlighted in actions title */\n highlightQuery?: boolean;\n\n /** The highlight color */\n highlightColor?: MantineColor;\n\n /** Props spread to search input */\n searchInputProps?: TextInputProps;\n\n /** Component used as scrollable container for actions list, defaults to ScrollArea.Autosize */\n scrollAreaComponent?: React.FC<{ children: React.ReactNode }>;\n}\n\ninterface SpotlightProps extends InnerSpotlightProps {\n actions: SpotlightAction[];\n onClose(): void;\n opened: boolean;\n query: string;\n onQueryChange(query: string): void;\n}\n\nconst defaultProps: Partial<SpotlightProps> = {\n closeOnActionTrigger: true,\n highlightQuery: false,\n size: 600,\n yOffset: 120,\n filter: filterActions,\n limit: 10,\n actionComponent: DefaultAction,\n scrollAreaComponent: SpotlightScrollArea,\n actionsWrapperComponent: 'div',\n zIndex: getDefaultZIndex('max'),\n overlayProps: { opacity: 0.2, blur: 7 },\n};\n\nexport function Spotlight(props: SpotlightProps) {\n const {\n query,\n onQueryChange,\n actions,\n onClose,\n opened,\n classNames,\n styles,\n closeOnActionTrigger,\n highlightQuery,\n highlightColor,\n className,\n searchPlaceholder,\n searchIcon,\n filter,\n nothingFoundMessage,\n limit,\n actionComponent,\n actionsWrapperComponent: ActionsWrapper,\n scrollAreaComponent: ScrollAreaComponent,\n searchInputProps,\n variant,\n target,\n radius,\n ...others\n } = useComponentDefaultProps('Spotlight', defaultProps, props);\n\n const [hovered, setHovered] = useState(-1);\n const [IMEOpen, setIMEOpen] = useState(false);\n const { classes, cx } = useStyles(null, { name: 'Spotlight', classNames, styles, variant });\n\n const resetHovered = () => setHovered(-1);\n const handleClose = () => {\n resetHovered();\n onClose();\n };\n\n const filteredActions = filter(query, actions).slice(0, limit);\n const groupedWithLabels = getGroupedOptions(filteredActions).items;\n const groupedActions = groupedWithLabels\n .map((item) => (item.type === 'item' ? item.item : undefined))\n .filter((item) => item);\n\n useDidUpdate(() => {\n if (groupedActions.length - 1 < hovered) {\n setHovered(groupedActions.length - 1);\n }\n }, [groupedActions.length]);\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (IMEOpen) {\n return;\n }\n\n switch (event.key) {\n case 'ArrowDown': {\n event.preventDefault();\n setHovered((current) => (current < groupedActions.length - 1 ? current + 1 : 0));\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n setHovered((current) => (current > 0 ? current - 1 : groupedActions.length - 1));\n break;\n }\n\n case 'Enter': {\n event.preventDefault();\n const action = groupedActions[hovered];\n action?.onTrigger?.(action);\n if ((action?.closeOnTrigger ?? closeOnActionTrigger) && action?.onTrigger) {\n handleClose();\n }\n break;\n }\n\n case 'Escape': {\n event.preventDefault();\n handleClose();\n }\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onQueryChange(event.currentTarget.value);\n if (hovered === -1) {\n setHovered(0);\n }\n };\n\n return (\n <Modal\n opened={opened}\n onClose={handleClose}\n padding={0}\n radius={radius}\n scrollAreaComponent={Modal.NativeScrollArea}\n classNames={{\n ...classNames,\n content: cx(classes.content, classNames?.content),\n }}\n styles={styles}\n withCloseButton={false}\n {...others}\n >\n <TextInput\n size=\"lg\"\n {...searchInputProps}\n value={query}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n onCompositionStart={() => setIMEOpen(true)}\n onCompositionEnd={() => setIMEOpen(false)}\n classNames={{ input: classes.searchInput }}\n placeholder={searchPlaceholder}\n icon={searchIcon}\n onMouseEnter={resetHovered}\n />\n <ActionsWrapper>\n <ScrollAreaComponent>\n <ActionsList\n highlightQuery={highlightQuery}\n highlightColor={highlightColor}\n actions={groupedWithLabels}\n actionComponent={actionComponent}\n hovered={hovered}\n query={query}\n nothingFoundMessage={nothingFoundMessage}\n onActionHover={() => setHovered(-1)}\n onActionTrigger={(action) => {\n action.onTrigger(action);\n (action.closeOnTrigger ?? closeOnActionTrigger) && handleClose();\n }}\n styles={styles}\n classNames={classNames}\n radius={radius}\n variant={variant}\n />\n </ScrollAreaComponent>\n </ActionsWrapper>\n </Modal>\n );\n}\n\nSpotlight.displayName = '@mantine/spotlight/Spotlight';\n"],"names":[],"mappings":"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"}
@@ -1,55 +1,18 @@
1
- import { createStyles } from '@mantine/core';
1
+ import { createStyles, rem } from '@mantine/core';
2
2
 
3
- var __defProp = Object.defineProperty;
4
- var __defProps = Object.defineProperties;
5
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __spreadValues = (a, b) => {
11
- for (var prop in b || (b = {}))
12
- if (__hasOwnProp.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- if (__getOwnPropSymbols)
15
- for (var prop of __getOwnPropSymbols(b)) {
16
- if (__propIsEnum.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- }
19
- return a;
20
- };
21
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
- var useStyles = createStyles((theme, { centered, maxWidth, topOffset, radius, zIndex }) => ({
23
- root: __spreadProps(__spreadValues({}, theme.fn.cover()), {
24
- position: "fixed",
25
- zIndex
26
- }),
27
- spotlight: {
3
+ var useStyles = createStyles((theme) => ({
4
+ content: {
28
5
  position: "relative",
29
- zIndex: 2,
30
- backgroundColor: theme.colorScheme === "dark" ? theme.colors.dark[6] : theme.white,
31
- borderRadius: theme.fn.radius(radius),
32
- width: "100%",
33
- maxWidth,
34
- overflow: "auto",
35
- marginLeft: "calc(var(--removed-scroll-width, 0px) * -1)"
36
- },
37
- overlay: __spreadProps(__spreadValues({}, theme.fn.cover()), {
38
- position: "fixed"
39
- }),
40
- inner: {
41
- height: "100vh",
42
- display: "flex",
43
- flexDirection: "column",
44
- paddingTop: centered ? theme.spacing.md : topOffset,
45
- justifyContent: centered ? "center" : "flex-start",
46
- alignItems: "center"
6
+ overflow: "hidden"
47
7
  },
48
8
  searchInput: {
49
9
  border: 0,
50
10
  borderBottomRightRadius: 0,
51
11
  borderBottomLeftRadius: 0,
52
- backgroundColor: theme.colorScheme === "dark" ? theme.colors.dark[6] : theme.white
12
+ backgroundColor: theme.colorScheme === "dark" ? theme.colors.dark[7] : theme.white,
13
+ "&, &:focus-within": {
14
+ borderBottom: `${rem(1)} solid ${theme.colorScheme === "dark" ? theme.colors.dark[5] : theme.colors.gray[2]}`
15
+ }
53
16
  }
54
17
  }));
55
18
 
@@ -1 +1 @@
1
- {"version":3,"file":"Spotlight.styles.js","sources":["../../src/Spotlight/Spotlight.styles.ts"],"sourcesContent":["import { createStyles, MantineNumberSize } from '@mantine/core';\n\nexport interface SpotlightStylesParams {\n centered: boolean;\n maxWidth: number;\n topOffset: number;\n radius: MantineNumberSize;\n zIndex: React.CSSProperties['zIndex'];\n}\n\nexport default createStyles(\n (theme, { centered, maxWidth, topOffset, radius, zIndex }: SpotlightStylesParams) => ({\n root: {\n ...theme.fn.cover(),\n position: 'fixed',\n zIndex,\n },\n\n spotlight: {\n position: 'relative',\n zIndex: 2,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.white,\n borderRadius: theme.fn.radius(radius),\n width: '100%',\n maxWidth,\n overflow: 'auto',\n marginLeft: 'calc(var(--removed-scroll-width, 0px) * -1)',\n },\n\n overlay: {\n ...theme.fn.cover(),\n position: 'fixed',\n },\n\n inner: {\n height: '100vh',\n display: 'flex',\n flexDirection: 'column',\n paddingTop: centered ? theme.spacing.md : topOffset,\n justifyContent: centered ? 'center' : 'flex-start',\n alignItems: 'center',\n },\n\n searchInput: {\n border: 0,\n borderBottomRightRadius: 0,\n borderBottomLeftRadius: 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.white,\n },\n })\n);\n"],"names":[],"mappings":";;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACzC,IAAI,iBAAiB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AACzD,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAElE,gBAAe,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;AAC3F,EAAE,IAAI,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE;AAC5D,IAAI,QAAQ,EAAE,OAAO;AACrB,IAAI,MAAM;AACV,GAAG,CAAC;AACJ,EAAE,SAAS,EAAE;AACb,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,eAAe,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK;AACtF,IAAI,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;AACzC,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,QAAQ;AACZ,IAAI,QAAQ,EAAE,MAAM;AACpB,IAAI,UAAU,EAAE,6CAA6C;AAC7D,GAAG;AACH,EAAE,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE;AAC/D,IAAI,QAAQ,EAAE,OAAO;AACrB,GAAG,CAAC;AACJ,EAAE,KAAK,EAAE;AACT,IAAI,MAAM,EAAE,OAAO;AACnB,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,aAAa,EAAE,QAAQ;AAC3B,IAAI,UAAU,EAAE,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS;AACvD,IAAI,cAAc,EAAE,QAAQ,GAAG,QAAQ,GAAG,YAAY;AACtD,IAAI,UAAU,EAAE,QAAQ;AACxB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,uBAAuB,EAAE,CAAC;AAC9B,IAAI,sBAAsB,EAAE,CAAC;AAC7B,IAAI,eAAe,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK;AACtF,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
1
+ {"version":3,"file":"Spotlight.styles.js","sources":["../../src/Spotlight/Spotlight.styles.ts"],"sourcesContent":["import { createStyles, rem } from '@mantine/core';\n\nexport default createStyles((theme) => ({\n content: {\n position: 'relative',\n overflow: 'hidden',\n },\n\n searchInput: {\n border: 0,\n borderBottomRightRadius: 0,\n borderBottomLeftRadius: 0,\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white,\n\n '&, &:focus-within': {\n borderBottom: `${rem(1)} solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[5] : theme.colors.gray[2]\n }`,\n },\n },\n}));\n"],"names":[],"mappings":";;AACA,gBAAe,YAAY,CAAC,CAAC,KAAK,MAAM;AACxC,EAAE,OAAO,EAAE;AACX,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,QAAQ,EAAE,QAAQ;AACtB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,uBAAuB,EAAE,CAAC;AAC9B,IAAI,sBAAsB,EAAE,CAAC;AAC7B,IAAI,eAAe,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK;AACtF,IAAI,mBAAmB,EAAE;AACzB,MAAM,YAAY,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnH,KAAK;AACL,GAAG;AACH,CAAC,CAAC,CAAC;;;;"}
@@ -1,5 +1,5 @@
1
- import { useDidUpdate, useDisclosure } from '@mantine/hooks';
2
- import React, { useRef, useState } from 'react';
1
+ import React, { useRef } from 'react';
2
+ import { useUncontrolled, useDisclosure } from '@mantine/hooks';
3
3
  import { useSpotlightEvents } from './events.js';
4
4
  import { SpotlightContext } from './Spotlight.context.js';
5
5
  import { Spotlight } from './Spotlight/Spotlight.js';
@@ -36,12 +36,14 @@ var __objRest = (source, exclude) => {
36
36
  };
37
37
  function SpotlightProvider(_a) {
38
38
  var _b = _a, {
39
- actions: initialActions,
39
+ actions,
40
40
  children,
41
41
  shortcut = "mod + K",
42
+ query,
42
43
  onSpotlightClose,
43
44
  onSpotlightOpen,
44
45
  onQueryChange,
46
+ onActionsChange,
45
47
  cleanQueryOnClose = true,
46
48
  transitionDuration = 150,
47
49
  disabled = false,
@@ -50,20 +52,27 @@ function SpotlightProvider(_a) {
50
52
  "actions",
51
53
  "children",
52
54
  "shortcut",
55
+ "query",
53
56
  "onSpotlightClose",
54
57
  "onSpotlightOpen",
55
58
  "onQueryChange",
59
+ "onActionsChange",
56
60
  "cleanQueryOnClose",
57
61
  "transitionDuration",
58
62
  "disabled",
59
63
  "tagsToIgnore"
60
64
  ]);
61
65
  const timeoutRef = useRef(-1);
62
- const [query, setQuery] = useState("");
63
- const [actions, { registerActions, updateActions, removeActions, triggerAction }] = useActionsState(initialActions, query);
64
- useDidUpdate(() => {
65
- updateActions(initialActions);
66
- }, [initialActions]);
66
+ const [_query, setQuery] = useUncontrolled({
67
+ value: query,
68
+ defaultValue: "",
69
+ finalValue: "",
70
+ onChange: onQueryChange
71
+ });
72
+ const [_actions, { registerActions, removeActions, triggerAction }] = useActionsState({
73
+ actions,
74
+ onActionsChange
75
+ });
67
76
  const handleQueryChange = (value) => {
68
77
  setQuery(value);
69
78
  onQueryChange == null ? void 0 : onQueryChange(value);
@@ -90,18 +99,18 @@ function SpotlightProvider(_a) {
90
99
  removeActions,
91
100
  triggerAction,
92
101
  opened,
93
- actions,
94
- query
102
+ actions: _actions,
103
+ query: _query
95
104
  };
96
105
  useSpotlightShortcuts(shortcut, open, tagsToIgnore);
97
106
  useSpotlightEvents({ open, close, toggle, registerActions, removeActions, triggerAction });
98
107
  return /* @__PURE__ */ React.createElement(SpotlightContext.Provider, {
99
108
  value: ctx
100
109
  }, !disabled && /* @__PURE__ */ React.createElement(Spotlight, __spreadValues({
101
- actions,
110
+ actions: _actions,
102
111
  onClose: close,
103
112
  opened,
104
- query,
113
+ query: _query,
105
114
  onQueryChange: handleQueryChange,
106
115
  transitionDuration
107
116
  }, others)), children);
@@ -1 +1 @@
1
- {"version":3,"file":"SpotlightProvider.js","sources":["../src/SpotlightProvider.tsx"],"sourcesContent":["import { useDidUpdate, useDisclosure } from '@mantine/hooks';\nimport React, { useRef, useState } from 'react';\nimport { useSpotlightEvents } from './events';\nimport { SpotlightContext } from './Spotlight.context';\nimport { InnerSpotlightProps, Spotlight } from './Spotlight/Spotlight';\nimport type { SpotlightAction } from './types';\nimport { useActionsState } from './use-actions-state/use-actions-state';\nimport { useSpotlightShortcuts } from './use-spotlight-shortcuts/use-spotlight-shortcuts';\n\nexport interface SpotlightProviderProps extends InnerSpotlightProps {\n /** Actions list */\n actions: SpotlightAction[] | ((query: string) => SpotlightAction[]);\n\n /** Your application */\n children?: React.ReactNode;\n\n /** Called when spotlight opens */\n onSpotlightOpen?(): void;\n\n /** Called when spotlight closes */\n onSpotlightClose?(): void;\n\n /** Called when user enters text in search input */\n onQueryChange?(query: string): void;\n\n /** Keyboard shortcut or list of shortcuts to trigger spotlight */\n shortcut?: string | string[] | null;\n\n /** Should search be cleared when spotlight closes */\n cleanQueryOnClose?: boolean;\n\n /** Spotlight will not render if disabled is set to true */\n disabled?: boolean;\n\n /** Tags to ignore shortcut hotkeys on. */\n tagsToIgnore?: string[];\n}\n\nexport function SpotlightProvider({\n actions: initialActions,\n children,\n shortcut = 'mod + K',\n onSpotlightClose,\n onSpotlightOpen,\n onQueryChange,\n cleanQueryOnClose = true,\n transitionDuration = 150,\n disabled = false,\n tagsToIgnore = ['INPUT', 'TEXTAREA', 'SELECT'],\n ...others\n}: SpotlightProviderProps) {\n const timeoutRef = useRef<number>(-1);\n const [query, setQuery] = useState('');\n const [actions, { registerActions, updateActions, removeActions, triggerAction }] =\n useActionsState(initialActions, query);\n\n useDidUpdate(() => {\n updateActions(initialActions);\n }, [initialActions]);\n\n const handleQueryChange = (value: string) => {\n setQuery(value);\n onQueryChange?.(value);\n };\n\n const [opened, { open, close, toggle }] = useDisclosure(false, {\n onClose: () => {\n onSpotlightClose?.();\n if (cleanQueryOnClose) {\n timeoutRef.current = window.setTimeout(() => {\n handleQueryChange('');\n }, transitionDuration);\n }\n },\n onOpen: () => {\n onSpotlightOpen?.();\n window.clearTimeout(timeoutRef.current);\n },\n });\n\n const ctx = {\n openSpotlight: open,\n closeSpotlight: close,\n toggleSpotlight: toggle,\n registerActions,\n removeActions,\n triggerAction,\n opened,\n actions,\n query,\n };\n\n useSpotlightShortcuts(shortcut, open, tagsToIgnore);\n useSpotlightEvents({ open, close, toggle, registerActions, removeActions, triggerAction });\n\n return (\n <SpotlightContext.Provider value={ctx}>\n {!disabled && (\n <Spotlight\n actions={actions}\n onClose={close}\n opened={opened}\n query={query}\n onQueryChange={handleQueryChange}\n transitionDuration={transitionDuration}\n {...others}\n />\n )}\n {children}\n </SpotlightContext.Provider>\n );\n}\n\nSpotlightProvider.displayName = '@mantine/spotlight/SpotlightProvider';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpotlightProvider.js","sources":["../src/SpotlightProvider.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { useDisclosure, useUncontrolled } from '@mantine/hooks';\nimport { useSpotlightEvents } from './events';\nimport { SpotlightContext } from './Spotlight.context';\nimport { InnerSpotlightProps, Spotlight } from './Spotlight/Spotlight';\nimport type { SpotlightAction } from './types';\nimport { useActionsState } from './use-actions-state/use-actions-state';\nimport { useSpotlightShortcuts } from './use-spotlight-shortcuts/use-spotlight-shortcuts';\n\nexport interface SpotlightProviderProps extends InnerSpotlightProps {\n /** Actions list */\n actions: SpotlightAction[];\n\n /** Called when actions change (registered or removed) */\n onActionsChange?(actions: SpotlightAction[]): void;\n\n /** Controlled search query */\n query?: string;\n\n /** Called when user enters text in search input */\n onQueryChange?(query: string): void;\n\n /** Your application */\n children?: React.ReactNode;\n\n /** Called when spotlight opens */\n onSpotlightOpen?(): void;\n\n /** Called when spotlight closes */\n onSpotlightClose?(): void;\n\n /** Keyboard shortcut or list of shortcuts to trigger spotlight */\n shortcut?: string | string[] | null;\n\n /** Should search be cleared when spotlight closes */\n cleanQueryOnClose?: boolean;\n\n /** Spotlight will not render if disabled is set to true */\n disabled?: boolean;\n\n /** Tags to ignore shortcut hotkeys on. */\n tagsToIgnore?: string[];\n}\n\nexport function SpotlightProvider({\n actions,\n children,\n shortcut = 'mod + K',\n query,\n onSpotlightClose,\n onSpotlightOpen,\n onQueryChange,\n onActionsChange,\n cleanQueryOnClose = true,\n transitionDuration = 150,\n disabled = false,\n tagsToIgnore = ['INPUT', 'TEXTAREA', 'SELECT'],\n ...others\n}: SpotlightProviderProps) {\n const timeoutRef = useRef<number>(-1);\n\n const [_query, setQuery] = useUncontrolled({\n value: query,\n defaultValue: '',\n finalValue: '',\n onChange: onQueryChange,\n });\n\n const [_actions, { registerActions, removeActions, triggerAction }] = useActionsState({\n actions,\n onActionsChange,\n });\n\n const handleQueryChange = (value: string) => {\n setQuery(value);\n onQueryChange?.(value);\n };\n\n const [opened, { open, close, toggle }] = useDisclosure(false, {\n onClose: () => {\n onSpotlightClose?.();\n if (cleanQueryOnClose) {\n timeoutRef.current = window.setTimeout(() => {\n handleQueryChange('');\n }, transitionDuration);\n }\n },\n onOpen: () => {\n onSpotlightOpen?.();\n window.clearTimeout(timeoutRef.current);\n },\n });\n\n const ctx = {\n openSpotlight: open,\n closeSpotlight: close,\n toggleSpotlight: toggle,\n registerActions,\n removeActions,\n triggerAction,\n opened,\n actions: _actions,\n query: _query,\n };\n\n useSpotlightShortcuts(shortcut, open, tagsToIgnore);\n useSpotlightEvents({ open, close, toggle, registerActions, removeActions, triggerAction });\n\n return (\n <SpotlightContext.Provider value={ctx}>\n {!disabled && (\n <Spotlight\n actions={_actions}\n onClose={close}\n opened={opened}\n query={_query}\n onQueryChange={handleQueryChange}\n transitionDuration={transitionDuration}\n {...others}\n />\n )}\n {children}\n </SpotlightContext.Provider>\n );\n}\n\nSpotlightProvider.displayName = '@mantine/spotlight/SpotlightProvider';\n"],"names":[],"mappings":"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"}
package/esm/events.js CHANGED
@@ -7,6 +7,14 @@ const toggleSpotlight = createEvent("toggle");
7
7
  const triggerSpotlightAction = createEvent("triggerAction");
8
8
  const registerSpotlightActions = createEvent("registerActions");
9
9
  const removeSpotlightActions = createEvent("removeActions");
10
+ const spotlight = {
11
+ open: openSpotlight,
12
+ close: closeSpotlight,
13
+ toggle: toggleSpotlight,
14
+ triggerAction: triggerSpotlightAction,
15
+ registerActions: registerSpotlightActions,
16
+ removeActions: removeSpotlightActions
17
+ };
10
18
 
11
- export { closeSpotlight, createEvent, openSpotlight, registerSpotlightActions, removeSpotlightActions, toggleSpotlight, triggerSpotlightAction, useSpotlightEvents };
19
+ export { closeSpotlight, createEvent, openSpotlight, registerSpotlightActions, removeSpotlightActions, spotlight, toggleSpotlight, triggerSpotlightAction, useSpotlightEvents };
12
20
  //# sourceMappingURL=events.js.map
package/esm/events.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sources":["../src/events.ts"],"sourcesContent":["import { createUseExternalEvents } from '@mantine/utils';\nimport type { SpotlightAction } from './types';\n\nexport type SpotlightEvents = {\n open(): void;\n close(): void;\n toggle(): void;\n triggerAction(id: string): void;\n registerActions(actions: SpotlightAction[]): void;\n removeActions(ids: string[]): void;\n};\n\nexport const [useSpotlightEvents, createEvent] =\n createUseExternalEvents<SpotlightEvents>('mantine-spotlight');\n\nexport const openSpotlight = createEvent('open');\nexport const closeSpotlight = createEvent('close');\nexport const toggleSpotlight = createEvent('toggle');\nexport const triggerSpotlightAction = createEvent('triggerAction');\nexport const registerSpotlightActions = createEvent('registerActions');\nexport const removeSpotlightActions = createEvent('removeActions');\n"],"names":[],"mappings":";;AACY,MAAC,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,uBAAuB,CAAC,mBAAmB,EAAE;AAClF,MAAC,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE;AACrC,MAAC,cAAc,GAAG,WAAW,CAAC,OAAO,EAAE;AACvC,MAAC,eAAe,GAAG,WAAW,CAAC,QAAQ,EAAE;AACzC,MAAC,sBAAsB,GAAG,WAAW,CAAC,eAAe,EAAE;AACvD,MAAC,wBAAwB,GAAG,WAAW,CAAC,iBAAiB,EAAE;AAC3D,MAAC,sBAAsB,GAAG,WAAW,CAAC,eAAe;;;;"}
1
+ {"version":3,"file":"events.js","sources":["../src/events.ts"],"sourcesContent":["import { createUseExternalEvents } from '@mantine/utils';\nimport type { SpotlightAction } from './types';\n\nexport type SpotlightEvents = {\n open(): void;\n close(): void;\n toggle(): void;\n triggerAction(id: string): void;\n registerActions(actions: SpotlightAction[]): void;\n removeActions(ids: string[]): void;\n};\n\nexport const [useSpotlightEvents, createEvent] =\n createUseExternalEvents<SpotlightEvents>('mantine-spotlight');\n\nexport const openSpotlight = createEvent('open');\nexport const closeSpotlight = createEvent('close');\nexport const toggleSpotlight = createEvent('toggle');\nexport const triggerSpotlightAction = createEvent('triggerAction');\nexport const registerSpotlightActions = createEvent('registerActions');\nexport const removeSpotlightActions = createEvent('removeActions');\n\nexport const spotlight = {\n open: openSpotlight,\n close: closeSpotlight,\n toggle: toggleSpotlight,\n triggerAction: triggerSpotlightAction,\n registerActions: registerSpotlightActions,\n removeActions: removeSpotlightActions,\n};\n"],"names":[],"mappings":";;AACY,MAAC,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,uBAAuB,CAAC,mBAAmB,EAAE;AAClF,MAAC,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE;AACrC,MAAC,cAAc,GAAG,WAAW,CAAC,OAAO,EAAE;AACvC,MAAC,eAAe,GAAG,WAAW,CAAC,QAAQ,EAAE;AACzC,MAAC,sBAAsB,GAAG,WAAW,CAAC,eAAe,EAAE;AACvD,MAAC,wBAAwB,GAAG,WAAW,CAAC,iBAAiB,EAAE;AAC3D,MAAC,sBAAsB,GAAG,WAAW,CAAC,eAAe,EAAE;AACvD,MAAC,SAAS,GAAG;AACzB,EAAE,IAAI,EAAE,aAAa;AACrB,EAAE,KAAK,EAAE,cAAc;AACvB,EAAE,MAAM,EAAE,eAAe;AACzB,EAAE,aAAa,EAAE,sBAAsB;AACvC,EAAE,eAAe,EAAE,wBAAwB;AAC3C,EAAE,aAAa,EAAE,sBAAsB;AACvC;;;;"}
package/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { useSpotlight } from './Spotlight.context.js';
2
2
  export { SpotlightProvider } from './SpotlightProvider.js';
3
- export { closeSpotlight, openSpotlight, registerSpotlightActions, removeSpotlightActions, toggleSpotlight, triggerSpotlightAction } from './events.js';
3
+ export { closeSpotlight, openSpotlight, registerSpotlightActions, removeSpotlightActions, spotlight, toggleSpotlight, triggerSpotlightAction } from './events.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,3 @@
1
- import { useState, useEffect } from 'react';
2
1
  import { randomId } from '@mantine/hooks';
3
2
 
4
3
  var __defProp = Object.defineProperty;
@@ -36,26 +35,18 @@ function filterDuplicateActions(actions) {
36
35
  function prepareActions(initialActions) {
37
36
  return filterDuplicateActions(initialActions.map((action) => prepareAction(action)));
38
37
  }
39
- function useActionsState(initialActions, query) {
40
- const [actions, setActions] = useState(prepareActions(typeof initialActions === "function" ? initialActions(query) : initialActions));
41
- useEffect(() => {
42
- if (typeof initialActions === "function") {
43
- setActions(prepareActions(initialActions(query)));
44
- }
45
- }, [query]);
46
- const updateActions = (payload) => setActions(prepareActions(typeof payload === "function" ? payload(query) : payload));
47
- const registerActions = (payload) => setActions((current) => prepareActions([...current, ...payload]));
48
- const removeActions = (ids) => setActions((current) => current.filter((action) => !ids.includes(action.id)));
38
+ function useActionsState({ actions, onActionsChange }) {
39
+ const registerActions = (payload) => onActionsChange == null ? void 0 : onActionsChange(prepareActions([...actions, ...payload]));
40
+ const removeActions = (ids) => onActionsChange == null ? void 0 : onActionsChange(actions.filter((action) => !ids.includes(action.id)));
49
41
  const triggerAction = (id) => {
50
42
  var _a;
51
43
  const action = actions.find((item) => item.id === id);
52
44
  (_a = action == null ? void 0 : action.onTrigger) == null ? void 0 : _a.call(action, action);
53
45
  };
54
46
  return [
55
- actions,
47
+ prepareActions(actions),
56
48
  {
57
49
  registerActions,
58
- updateActions,
59
50
  removeActions,
60
51
  triggerAction
61
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-actions-state.js","sources":["../../src/use-actions-state/use-actions-state.ts"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { randomId } from '@mantine/hooks';\nimport type { SpotlightAction } from '../types';\n\nfunction prepareAction(action: SpotlightAction) {\n return { ...action, id: action.id || randomId() };\n}\n\nfunction filterDuplicateActions(actions: SpotlightAction[]) {\n const ids = [];\n\n return actions\n .reduceRight<SpotlightAction[]>((acc, action) => {\n if (!ids.includes(action.id)) {\n ids.push(action.id);\n acc.push(action);\n }\n\n return acc;\n }, [])\n .reverse();\n}\n\nfunction prepareActions(initialActions: SpotlightAction[]) {\n return filterDuplicateActions(initialActions.map((action) => prepareAction(action)));\n}\n\nexport function useActionsState(\n initialActions: SpotlightAction[] | ((query: string) => SpotlightAction[]),\n query: string\n) {\n const [actions, setActions] = useState(\n prepareActions(typeof initialActions === 'function' ? initialActions(query) : initialActions)\n );\n\n useEffect(() => {\n if (typeof initialActions === 'function') {\n setActions(prepareActions(initialActions(query)));\n }\n }, [query]);\n\n const updateActions = (payload: SpotlightAction[] | ((query: string) => SpotlightAction[])) =>\n setActions(prepareActions(typeof payload === 'function' ? payload(query) : payload));\n\n const registerActions = (payload: SpotlightAction[]) =>\n setActions((current) => prepareActions([...current, ...payload]));\n\n const removeActions = (ids: string[]) =>\n setActions((current) => current.filter((action) => !ids.includes(action.id)));\n\n const triggerAction = (id: string) => {\n const action = actions.find((item) => item.id === id);\n action?.onTrigger?.(action);\n };\n\n return [\n actions,\n {\n registerActions,\n updateActions,\n removeActions,\n triggerAction,\n },\n ] as const;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-actions-state.js","sources":["../../src/use-actions-state/use-actions-state.ts"],"sourcesContent":["import { randomId } from '@mantine/hooks';\nimport type { SpotlightAction } from '../types';\n\nfunction prepareAction(action: SpotlightAction) {\n return { ...action, id: action.id || randomId() };\n}\n\nfunction filterDuplicateActions(actions: SpotlightAction[]) {\n const ids = [];\n\n return actions\n .reduceRight<SpotlightAction[]>((acc, action) => {\n if (!ids.includes(action.id)) {\n ids.push(action.id);\n acc.push(action);\n }\n\n return acc;\n }, [])\n .reverse();\n}\n\nfunction prepareActions(initialActions: SpotlightAction[]) {\n return filterDuplicateActions(initialActions.map((action) => prepareAction(action)));\n}\n\ninterface UseActionsState {\n actions: SpotlightAction[];\n onActionsChange: (actions: SpotlightAction[]) => void;\n}\n\nexport function useActionsState({ actions, onActionsChange }: UseActionsState) {\n const registerActions = (payload: SpotlightAction[]) =>\n onActionsChange?.(prepareActions([...actions, ...payload]));\n\n const removeActions = (ids: string[]) =>\n onActionsChange?.(actions.filter((action) => !ids.includes(action.id)));\n\n const triggerAction = (id: string) => {\n const action = actions.find((item) => item.id === id);\n action?.onTrigger?.(action);\n };\n\n return [\n prepareActions(actions),\n {\n registerActions,\n removeActions,\n triggerAction,\n },\n ] as const;\n}\n"],"names":[],"mappings":"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"}
@@ -19,13 +19,14 @@ export interface ActionsListProps extends DefaultProps<ActionsListStylesNames> {
19
19
  hovered: number;
20
20
  query: string;
21
21
  nothingFoundMessage?: React.ReactNode;
22
- onActionHover(index: number): void;
22
+ onActionHover(): void;
23
23
  onActionTrigger(action: SpotlightAction): void;
24
24
  highlightQuery: boolean;
25
25
  highlightColor: MantineColor;
26
26
  radius: MantineNumberSize;
27
+ variant: string;
27
28
  }
28
- export declare function ActionsList({ actions, styles, classNames, actionComponent: Action, hovered, onActionHover, onActionTrigger, query, nothingFoundMessage, highlightQuery, highlightColor, radius, }: ActionsListProps): JSX.Element;
29
+ export declare function ActionsList({ actions, styles, classNames, actionComponent: Action, hovered, onActionHover, onActionTrigger, query, nothingFoundMessage, highlightQuery, highlightColor, radius, variant, }: ActionsListProps): JSX.Element;
29
30
  export declare namespace ActionsList {
30
31
  var displayName: string;
31
32
  }