@mantine/spotlight 7.1.2 → 7.1.4

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 +1 @@
1
- {"version":3,"file":"Spotlight.context.js","sources":["../src/Spotlight.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '@mantine/core';\nimport type { SpotlightRootFactory } from './SpotlightRoot';\nimport { SpotlightStore } from './spotlight.store';\n\ninterface SpotlightContextValue {\n query: string;\n setQuery(query: string): void;\n getStyles: GetStylesApi<SpotlightRootFactory>;\n store: SpotlightStore;\n closeOnActionTrigger: boolean | undefined;\n}\n\nexport const [SpotlightProvider, useSpotlightContext] = createSafeContext<SpotlightContextValue>(\n 'Spotlight component was not found in tree'\n);\n"],"names":["createSafeContext"],"mappings":";;;;;;;AACY,MAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,GAAGA,sBAAiB;AACzE,EAAE,2CAA2C;AAC7C;;;"}
1
+ {"version":3,"file":"Spotlight.context.js","sources":["../src/Spotlight.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '@mantine/core';\nimport type { SpotlightRootFactory } from './SpotlightRoot';\nimport { SpotlightStore } from './spotlight.store';\n\ninterface SpotlightContextValue {\n query: string;\n setQuery: (query: string) => void;\n getStyles: GetStylesApi<SpotlightRootFactory>;\n store: SpotlightStore;\n closeOnActionTrigger: boolean | undefined;\n}\n\nexport const [SpotlightProvider, useSpotlightContext] = createSafeContext<SpotlightContextValue>(\n 'Spotlight component was not found in tree'\n);\n"],"names":["createSafeContext"],"mappings":";;;;;;;AACY,MAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,GAAGA,sBAAiB;AACzE,EAAE,2CAA2C;AAC7C;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpotlightRoot.js","sources":["../src/SpotlightRoot.tsx"],"sourcesContent":["import React from 'react';\nimport {\n StylesApiProps,\n factory,\n useProps,\n useStyles,\n Factory,\n Modal,\n ModalProps,\n ModalStylesNames,\n getDefaultZIndex,\n resolveClassNames,\n useMantineTheme,\n resolveStyles,\n rem,\n} from '@mantine/core';\nimport { useDidUpdate, useHotkeys } from '@mantine/hooks';\nimport { SpotlightProvider } from './Spotlight.context';\nimport { useSpotlight, SpotlightStore, spotlightStore, spotlightActions } from './spotlight.store';\nimport { getHotkeys } from './get-hotkeys';\nimport classes from './Spotlight.module.css';\n\nexport type SpotlightRootStylesNames =\n | ModalStylesNames\n | 'search'\n | 'actionsList'\n | 'action'\n | 'empty'\n | 'footer'\n | 'actionBody'\n | 'actionLabel'\n | 'actionDescription'\n | 'actionSection'\n | 'actionsGroup';\n\nexport interface SpotlightRootProps\n extends StylesApiProps<SpotlightRootFactory>,\n Omit<\n ModalProps,\n | 'styles'\n | 'classNames'\n | 'vars'\n | 'variant'\n | 'opened'\n | 'onClose'\n | 'closeButtonProps'\n | 'withCloseButton'\n > {\n /** Spotlight store, can be used to create multiple instances of spotlight */\n store?: SpotlightStore;\n\n /** Controlled Spotlight search query */\n query?: string;\n\n /** Called when query changes */\n onQueryChange?(query: string): void;\n\n /** Determines whether the search query should be cleared when the spotlight is closed, `true` by default */\n clearQueryOnClose?: boolean;\n\n /** Keyboard shortcut or a list of shortcuts to trigger spotlight, `'mod + K'` by default */\n shortcut?: string | string[] | null;\n\n /** A list of tags which when focused will be ignored by shortcut, `['input', 'textarea', 'select']` by default */\n tagsToIgnore?: string[];\n\n /** Determines whether shortcut should trigger based in contentEditable, `false` by default */\n triggerOnContentEditable?: boolean;\n\n /** If set, spotlight will not be rendered */\n disabled?: boolean;\n\n /** Called when spotlight opens */\n onSpotlightOpen?(): void;\n\n /** Called when spotlight closes */\n onSpotlightClose?(): void;\n\n /** Forces opened state, useful for tests */\n forceOpened?: boolean;\n\n /** Determines whether spotlight should be closed when one of the actions is triggered, `true` by default */\n closeOnActionTrigger?: boolean;\n\n /** Spotlight content max-height. Ignored unless `scrollable` prop is set. `400` by default */\n maxHeight?: React.CSSProperties['maxHeight'];\n\n /** Determines whether the actions list should be scrollable. If not set, `maxHeight` is ignored, `false` by default */\n scrollable?: boolean;\n}\n\nexport type SpotlightRootFactory = Factory<{\n props: SpotlightRootProps;\n ref: HTMLDivElement;\n stylesNames: SpotlightRootStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<SpotlightRootProps> = {\n size: 600,\n yOffset: 80,\n zIndex: getDefaultZIndex('max'),\n overlayProps: { backgroundOpacity: 0.35, blur: 7 },\n transitionProps: { duration: 200, transition: 'pop' },\n store: spotlightStore,\n clearQueryOnClose: true,\n closeOnActionTrigger: true,\n shortcut: 'mod + K',\n maxHeight: 400,\n scrollable: false,\n};\n\nexport const SpotlightRoot = factory<SpotlightRootFactory>((_props, ref) => {\n const props = useProps('SpotlightRoot', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n store,\n children,\n query,\n onQueryChange,\n transitionProps,\n clearQueryOnClose,\n shortcut,\n tagsToIgnore,\n triggerOnContentEditable,\n disabled,\n onSpotlightOpen,\n onSpotlightClose,\n forceOpened,\n closeOnActionTrigger,\n maxHeight,\n scrollable,\n ...others\n } = props;\n\n const theme = useMantineTheme();\n const { opened, query: storeQuery } = useSpotlight(store!);\n const _query = query || storeQuery;\n const setQuery = (q: string) => {\n onQueryChange?.(q);\n spotlightActions.setQuery(q, store!);\n };\n\n const getStyles = useStyles<SpotlightRootFactory>({\n name: 'Spotlight',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n useHotkeys(getHotkeys(shortcut, store!), tagsToIgnore, triggerOnContentEditable);\n\n useDidUpdate(() => {\n opened ? onSpotlightOpen?.() : onSpotlightClose?.();\n }, [opened]);\n\n if (disabled) {\n return null;\n }\n\n return (\n <SpotlightProvider\n value={{\n getStyles,\n query: _query,\n setQuery,\n store: store!,\n closeOnActionTrigger,\n }}\n >\n <Modal\n ref={ref}\n {...others}\n withCloseButton={false}\n opened={opened || !!forceOpened}\n padding={0}\n onClose={() => spotlightActions.close(store!)}\n className={className}\n style={style}\n classNames={resolveClassNames({\n theme,\n classNames: [classes, classNames],\n props,\n stylesCtx: undefined,\n })}\n styles={resolveStyles({ theme, styles, props, stylesCtx: undefined })}\n transitionProps={{\n ...transitionProps,\n onExited: () => {\n clearQueryOnClose && setQuery('');\n spotlightActions.clearSpotlightState({ clearQuery: clearQueryOnClose }, store!);\n transitionProps?.onExited?.();\n },\n }}\n __vars={{ '--spotlight-max-height': scrollable ? rem(maxHeight) : undefined }}\n __staticSelector=\"Spotlight\"\n data-scrollable={scrollable || undefined}\n >\n {children}\n </Modal>\n </SpotlightProvider>\n );\n});\n\nSpotlightRoot.classes = classes;\nSpotlightRoot.displayName = '@mantine/spotlight/SpotlightRoot';\n"],"names":["getDefaultZIndex","spotlightStore","factory","useProps","useMantineTheme","useSpotlight","spotlightActions","useStyles","classes","useHotkeys","getHotkeys","useDidUpdate","React","SpotlightProvider","Modal","resolveClassNames","resolveStyles","rem"],"mappings":"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"}
1
+ {"version":3,"file":"SpotlightRoot.js","sources":["../src/SpotlightRoot.tsx"],"sourcesContent":["import React from 'react';\nimport {\n StylesApiProps,\n factory,\n useProps,\n useStyles,\n Factory,\n Modal,\n ModalProps,\n ModalStylesNames,\n getDefaultZIndex,\n resolveClassNames,\n useMantineTheme,\n resolveStyles,\n rem,\n} from '@mantine/core';\nimport { useDidUpdate, useHotkeys } from '@mantine/hooks';\nimport { SpotlightProvider } from './Spotlight.context';\nimport { useSpotlight, SpotlightStore, spotlightStore, spotlightActions } from './spotlight.store';\nimport { getHotkeys } from './get-hotkeys';\nimport classes from './Spotlight.module.css';\n\nexport type SpotlightRootStylesNames =\n | ModalStylesNames\n | 'search'\n | 'actionsList'\n | 'action'\n | 'empty'\n | 'footer'\n | 'actionBody'\n | 'actionLabel'\n | 'actionDescription'\n | 'actionSection'\n | 'actionsGroup';\n\nexport interface SpotlightRootProps\n extends StylesApiProps<SpotlightRootFactory>,\n Omit<\n ModalProps,\n | 'styles'\n | 'classNames'\n | 'vars'\n | 'variant'\n | 'opened'\n | 'onClose'\n | 'closeButtonProps'\n | 'withCloseButton'\n > {\n /** Spotlight store, can be used to create multiple instances of spotlight */\n store?: SpotlightStore;\n\n /** Controlled Spotlight search query */\n query?: string;\n\n /** Called when query changes */\n onQueryChange?: (query: string) => void;\n\n /** Determines whether the search query should be cleared when the spotlight is closed, `true` by default */\n clearQueryOnClose?: boolean;\n\n /** Keyboard shortcut or a list of shortcuts to trigger spotlight, `'mod + K'` by default */\n shortcut?: string | string[] | null;\n\n /** A list of tags which when focused will be ignored by shortcut, `['input', 'textarea', 'select']` by default */\n tagsToIgnore?: string[];\n\n /** Determines whether shortcut should trigger based in contentEditable, `false` by default */\n triggerOnContentEditable?: boolean;\n\n /** If set, spotlight will not be rendered */\n disabled?: boolean;\n\n /** Called when spotlight opens */\n onSpotlightOpen?: () => void;\n\n /** Called when spotlight closes */\n onSpotlightClose?: () => void;\n\n /** Forces opened state, useful for tests */\n forceOpened?: boolean;\n\n /** Determines whether spotlight should be closed when one of the actions is triggered, `true` by default */\n closeOnActionTrigger?: boolean;\n\n /** Spotlight content max-height. Ignored unless `scrollable` prop is set. `400` by default */\n maxHeight?: React.CSSProperties['maxHeight'];\n\n /** Determines whether the actions list should be scrollable. If not set, `maxHeight` is ignored, `false` by default */\n scrollable?: boolean;\n}\n\nexport type SpotlightRootFactory = Factory<{\n props: SpotlightRootProps;\n ref: HTMLDivElement;\n stylesNames: SpotlightRootStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<SpotlightRootProps> = {\n size: 600,\n yOffset: 80,\n zIndex: getDefaultZIndex('max'),\n overlayProps: { backgroundOpacity: 0.35, blur: 7 },\n transitionProps: { duration: 200, transition: 'pop' },\n store: spotlightStore,\n clearQueryOnClose: true,\n closeOnActionTrigger: true,\n shortcut: 'mod + K',\n maxHeight: 400,\n scrollable: false,\n};\n\nexport const SpotlightRoot = factory<SpotlightRootFactory>((_props, ref) => {\n const props = useProps('SpotlightRoot', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n store,\n children,\n query,\n onQueryChange,\n transitionProps,\n clearQueryOnClose,\n shortcut,\n tagsToIgnore,\n triggerOnContentEditable,\n disabled,\n onSpotlightOpen,\n onSpotlightClose,\n forceOpened,\n closeOnActionTrigger,\n maxHeight,\n scrollable,\n ...others\n } = props;\n\n const theme = useMantineTheme();\n const { opened, query: storeQuery } = useSpotlight(store!);\n const _query = query || storeQuery;\n const setQuery = (q: string) => {\n onQueryChange?.(q);\n spotlightActions.setQuery(q, store!);\n };\n\n const getStyles = useStyles<SpotlightRootFactory>({\n name: 'Spotlight',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n useHotkeys(getHotkeys(shortcut, store!), tagsToIgnore, triggerOnContentEditable);\n\n useDidUpdate(() => {\n opened ? onSpotlightOpen?.() : onSpotlightClose?.();\n }, [opened]);\n\n if (disabled) {\n return null;\n }\n\n return (\n <SpotlightProvider\n value={{\n getStyles,\n query: _query,\n setQuery,\n store: store!,\n closeOnActionTrigger,\n }}\n >\n <Modal\n ref={ref}\n {...others}\n withCloseButton={false}\n opened={opened || !!forceOpened}\n padding={0}\n onClose={() => spotlightActions.close(store!)}\n className={className}\n style={style}\n classNames={resolveClassNames({\n theme,\n classNames: [classes, classNames],\n props,\n stylesCtx: undefined,\n })}\n styles={resolveStyles({ theme, styles, props, stylesCtx: undefined })}\n transitionProps={{\n ...transitionProps,\n onExited: () => {\n clearQueryOnClose && setQuery('');\n spotlightActions.clearSpotlightState({ clearQuery: clearQueryOnClose }, store!);\n transitionProps?.onExited?.();\n },\n }}\n __vars={{ '--spotlight-max-height': scrollable ? rem(maxHeight) : undefined }}\n __staticSelector=\"Spotlight\"\n data-scrollable={scrollable || undefined}\n >\n {children}\n </Modal>\n </SpotlightProvider>\n );\n});\n\nSpotlightRoot.classes = classes;\nSpotlightRoot.displayName = '@mantine/spotlight/SpotlightRoot';\n"],"names":["getDefaultZIndex","spotlightStore","factory","useProps","useMantineTheme","useSpotlight","spotlightActions","useStyles","classes","useHotkeys","getHotkeys","useDidUpdate","React","SpotlightProvider","Modal","resolveClassNames","resolveStyles","rem"],"mappings":"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"}
@@ -54,16 +54,16 @@ function setListId(id, store) {
54
54
  store.updateState((state) => __spreadProps(__spreadValues({}, state), { listId: id }));
55
55
  }
56
56
  function selectAction(index, store) {
57
- var _a, _b;
57
+ var _a, _b, _c;
58
58
  const state = store.getState();
59
59
  const actionsList = document.getElementById(state.listId);
60
- const selected = actionsList.querySelector("[data-selected]");
61
- const actions = actionsList.querySelectorAll("[data-action]");
60
+ const selected = actionsList == null ? void 0 : actionsList.querySelector("[data-selected]");
61
+ const actions = (_a = actionsList == null ? void 0 : actionsList.querySelectorAll("[data-action]")) != null ? _a : [];
62
62
  const nextIndex = index === -1 ? actions.length - 1 : index === actions.length ? 0 : index;
63
63
  const selectedIndex = hooks.clamp(nextIndex, 0, actions.length - 1);
64
64
  selected == null ? void 0 : selected.removeAttribute("data-selected");
65
- (_a = actions[selectedIndex]) == null ? void 0 : _a.scrollIntoView({ block: "nearest" });
66
- (_b = actions[selectedIndex]) == null ? void 0 : _b.setAttribute("data-selected", "true");
65
+ (_b = actions[selectedIndex]) == null ? void 0 : _b.scrollIntoView({ block: "nearest" });
66
+ (_c = actions[selectedIndex]) == null ? void 0 : _c.setAttribute("data-selected", "true");
67
67
  setSelectedAction(selectedIndex, store);
68
68
  return selectedIndex;
69
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spotlight.store.js","sources":["../src/spotlight.store.ts"],"sourcesContent":["import { clamp } from '@mantine/hooks';\nimport { createStore, useStore, MantineStore } from '@mantine/store';\n\nexport interface SpotlightState {\n opened: boolean;\n selected: number;\n listId: string;\n query: string;\n empty: boolean;\n registeredActions: Set<string>;\n}\n\nexport type SpotlightStore = MantineStore<SpotlightState>;\n\nexport const createSpotlightStore = () =>\n createStore<SpotlightState>({\n opened: false,\n empty: false,\n selected: -1,\n listId: '',\n query: '',\n registeredActions: new Set(),\n });\n\nexport const useSpotlight = (store: SpotlightStore) => useStore(store);\n\nexport function updateSpotlightStateAction(\n update: (state: SpotlightState) => Partial<SpotlightState>,\n store: SpotlightStore\n) {\n const state = store.getState();\n store.setState({ ...state, ...update(store.getState()) });\n}\n\nexport function openSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ opened: true }), store);\n}\n\nexport function closeSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ opened: false }), store);\n}\n\nexport function toggleSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction((state) => ({ opened: !state.opened }), store);\n}\n\nexport function setSelectedAction(index: number, store: SpotlightStore) {\n store.updateState((state) => ({ ...state, selected: index }));\n}\n\nexport function setListId(id: string, store: SpotlightStore) {\n store.updateState((state) => ({ ...state, listId: id }));\n}\n\nexport function selectAction(index: number, store: SpotlightStore): number {\n const state = store.getState();\n const actionsList = document.getElementById(state.listId)!;\n const selected = actionsList.querySelector<HTMLButtonElement>('[data-selected]');\n const actions = actionsList.querySelectorAll<HTMLButtonElement>('[data-action]');\n const nextIndex = index === -1 ? actions.length - 1 : index === actions.length ? 0 : index;\n\n const selectedIndex = clamp(nextIndex, 0, actions.length - 1);\n selected?.removeAttribute('data-selected');\n actions[selectedIndex]?.scrollIntoView({ block: 'nearest' });\n actions[selectedIndex]?.setAttribute('data-selected', 'true');\n setSelectedAction(selectedIndex, store);\n\n return selectedIndex;\n}\n\nexport function selectNextAction(store: SpotlightStore) {\n return selectAction(store.getState().selected + 1, store);\n}\n\nexport function selectPreviousAction(store: SpotlightStore) {\n return selectAction(store.getState().selected - 1, store);\n}\n\nexport function triggerSelectedAction(store: SpotlightStore) {\n const state = store.getState();\n const selected = document.querySelector<HTMLButtonElement>(`#${state.listId} [data-selected]`);\n selected?.click();\n}\n\nexport function registerAction(id: string, store: SpotlightStore) {\n const state = store.getState();\n state.registeredActions.add(id);\n return () => {\n state.registeredActions.delete(id);\n };\n}\n\nexport function setQuery(query: string, store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ query }), store);\n Promise.resolve().then(() => {\n selectAction(0, store);\n updateSpotlightStateAction(\n (state) => ({\n empty: (state.query.trim().length > 0 && state.registeredActions.size === 0) || false,\n }),\n store\n );\n });\n}\n\nexport function clearSpotlightState(\n { clearQuery }: { clearQuery: boolean | undefined },\n store: SpotlightStore\n) {\n store.updateState((state) => ({\n ...state,\n selected: -1,\n query: clearQuery ? '' : state.query,\n empty: clearQuery ? false : state.empty,\n }));\n}\n\nexport const spotlightActions = {\n open: openSpotlightAction,\n close: closeSpotlightAction,\n toggle: toggleSpotlightAction,\n updateState: updateSpotlightStateAction,\n setSelectedAction,\n setListId,\n selectAction,\n selectNextAction,\n selectPreviousAction,\n triggerSelectedAction,\n registerAction,\n setQuery,\n clearSpotlightState,\n};\n\nexport function createSpotlight() {\n const store = createSpotlightStore();\n const actions = {\n open: () => openSpotlightAction(store),\n close: () => closeSpotlightAction(store),\n toggle: () => toggleSpotlightAction(store),\n };\n\n return [store, actions] as const;\n}\n\nexport const [spotlightStore, spotlight] = createSpotlight();\nexport const { open: openSpotlight, close: closeSpotlight, toggle: toggleSpotlight } = spotlight;\n"],"names":["createStore","store","useStore","clamp"],"mappings":"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"}
1
+ {"version":3,"file":"spotlight.store.js","sources":["../src/spotlight.store.ts"],"sourcesContent":["import { clamp } from '@mantine/hooks';\nimport { createStore, useStore, MantineStore } from '@mantine/store';\n\nexport interface SpotlightState {\n opened: boolean;\n selected: number;\n listId: string;\n query: string;\n empty: boolean;\n registeredActions: Set<string>;\n}\n\nexport type SpotlightStore = MantineStore<SpotlightState>;\n\nexport const createSpotlightStore = () =>\n createStore<SpotlightState>({\n opened: false,\n empty: false,\n selected: -1,\n listId: '',\n query: '',\n registeredActions: new Set(),\n });\n\nexport const useSpotlight = (store: SpotlightStore) => useStore(store);\n\nexport function updateSpotlightStateAction(\n update: (state: SpotlightState) => Partial<SpotlightState>,\n store: SpotlightStore\n) {\n const state = store.getState();\n store.setState({ ...state, ...update(store.getState()) });\n}\n\nexport function openSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ opened: true }), store);\n}\n\nexport function closeSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ opened: false }), store);\n}\n\nexport function toggleSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction((state) => ({ opened: !state.opened }), store);\n}\n\nexport function setSelectedAction(index: number, store: SpotlightStore) {\n store.updateState((state) => ({ ...state, selected: index }));\n}\n\nexport function setListId(id: string, store: SpotlightStore) {\n store.updateState((state) => ({ ...state, listId: id }));\n}\n\nexport function selectAction(index: number, store: SpotlightStore): number {\n const state = store.getState();\n const actionsList = document.getElementById(state.listId);\n const selected = actionsList?.querySelector<HTMLButtonElement>('[data-selected]');\n const actions = actionsList?.querySelectorAll<HTMLButtonElement>('[data-action]') ?? [];\n const nextIndex = index === -1 ? actions.length - 1 : index === actions.length ? 0 : index;\n\n const selectedIndex = clamp(nextIndex, 0, actions.length - 1);\n selected?.removeAttribute('data-selected');\n actions[selectedIndex]?.scrollIntoView({ block: 'nearest' });\n actions[selectedIndex]?.setAttribute('data-selected', 'true');\n setSelectedAction(selectedIndex, store);\n\n return selectedIndex;\n}\n\nexport function selectNextAction(store: SpotlightStore) {\n return selectAction(store.getState().selected + 1, store);\n}\n\nexport function selectPreviousAction(store: SpotlightStore) {\n return selectAction(store.getState().selected - 1, store);\n}\n\nexport function triggerSelectedAction(store: SpotlightStore) {\n const state = store.getState();\n const selected = document.querySelector<HTMLButtonElement>(`#${state.listId} [data-selected]`);\n selected?.click();\n}\n\nexport function registerAction(id: string, store: SpotlightStore) {\n const state = store.getState();\n state.registeredActions.add(id);\n return () => {\n state.registeredActions.delete(id);\n };\n}\n\nexport function setQuery(query: string, store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ query }), store);\n Promise.resolve().then(() => {\n selectAction(0, store);\n updateSpotlightStateAction(\n (state) => ({\n empty: (state.query.trim().length > 0 && state.registeredActions.size === 0) || false,\n }),\n store\n );\n });\n}\n\nexport function clearSpotlightState(\n { clearQuery }: { clearQuery: boolean | undefined },\n store: SpotlightStore\n) {\n store.updateState((state) => ({\n ...state,\n selected: -1,\n query: clearQuery ? '' : state.query,\n empty: clearQuery ? false : state.empty,\n }));\n}\n\nexport const spotlightActions = {\n open: openSpotlightAction,\n close: closeSpotlightAction,\n toggle: toggleSpotlightAction,\n updateState: updateSpotlightStateAction,\n setSelectedAction,\n setListId,\n selectAction,\n selectNextAction,\n selectPreviousAction,\n triggerSelectedAction,\n registerAction,\n setQuery,\n clearSpotlightState,\n};\n\nexport function createSpotlight() {\n const store = createSpotlightStore();\n const actions = {\n open: () => openSpotlightAction(store),\n close: () => closeSpotlightAction(store),\n toggle: () => toggleSpotlightAction(store),\n };\n\n return [store, actions] as const;\n}\n\nexport const [spotlightStore, spotlight] = createSpotlight();\nexport const { open: openSpotlight, close: closeSpotlight, toggle: toggleSpotlight } = spotlight;\n"],"names":["createStore","store","useStore","clamp"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Spotlight.context.mjs","sources":["../src/Spotlight.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '@mantine/core';\nimport type { SpotlightRootFactory } from './SpotlightRoot';\nimport { SpotlightStore } from './spotlight.store';\n\ninterface SpotlightContextValue {\n query: string;\n setQuery(query: string): void;\n getStyles: GetStylesApi<SpotlightRootFactory>;\n store: SpotlightStore;\n closeOnActionTrigger: boolean | undefined;\n}\n\nexport const [SpotlightProvider, useSpotlightContext] = createSafeContext<SpotlightContextValue>(\n 'Spotlight component was not found in tree'\n);\n"],"names":[],"mappings":";;;AACY,MAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,GAAG,iBAAiB;AACzE,EAAE,2CAA2C;AAC7C;;"}
1
+ {"version":3,"file":"Spotlight.context.mjs","sources":["../src/Spotlight.context.ts"],"sourcesContent":["import { createSafeContext, GetStylesApi } from '@mantine/core';\nimport type { SpotlightRootFactory } from './SpotlightRoot';\nimport { SpotlightStore } from './spotlight.store';\n\ninterface SpotlightContextValue {\n query: string;\n setQuery: (query: string) => void;\n getStyles: GetStylesApi<SpotlightRootFactory>;\n store: SpotlightStore;\n closeOnActionTrigger: boolean | undefined;\n}\n\nexport const [SpotlightProvider, useSpotlightContext] = createSafeContext<SpotlightContextValue>(\n 'Spotlight component was not found in tree'\n);\n"],"names":[],"mappings":";;;AACY,MAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,GAAG,iBAAiB;AACzE,EAAE,2CAA2C;AAC7C;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpotlightRoot.mjs","sources":["../src/SpotlightRoot.tsx"],"sourcesContent":["import React from 'react';\nimport {\n StylesApiProps,\n factory,\n useProps,\n useStyles,\n Factory,\n Modal,\n ModalProps,\n ModalStylesNames,\n getDefaultZIndex,\n resolveClassNames,\n useMantineTheme,\n resolveStyles,\n rem,\n} from '@mantine/core';\nimport { useDidUpdate, useHotkeys } from '@mantine/hooks';\nimport { SpotlightProvider } from './Spotlight.context';\nimport { useSpotlight, SpotlightStore, spotlightStore, spotlightActions } from './spotlight.store';\nimport { getHotkeys } from './get-hotkeys';\nimport classes from './Spotlight.module.css';\n\nexport type SpotlightRootStylesNames =\n | ModalStylesNames\n | 'search'\n | 'actionsList'\n | 'action'\n | 'empty'\n | 'footer'\n | 'actionBody'\n | 'actionLabel'\n | 'actionDescription'\n | 'actionSection'\n | 'actionsGroup';\n\nexport interface SpotlightRootProps\n extends StylesApiProps<SpotlightRootFactory>,\n Omit<\n ModalProps,\n | 'styles'\n | 'classNames'\n | 'vars'\n | 'variant'\n | 'opened'\n | 'onClose'\n | 'closeButtonProps'\n | 'withCloseButton'\n > {\n /** Spotlight store, can be used to create multiple instances of spotlight */\n store?: SpotlightStore;\n\n /** Controlled Spotlight search query */\n query?: string;\n\n /** Called when query changes */\n onQueryChange?(query: string): void;\n\n /** Determines whether the search query should be cleared when the spotlight is closed, `true` by default */\n clearQueryOnClose?: boolean;\n\n /** Keyboard shortcut or a list of shortcuts to trigger spotlight, `'mod + K'` by default */\n shortcut?: string | string[] | null;\n\n /** A list of tags which when focused will be ignored by shortcut, `['input', 'textarea', 'select']` by default */\n tagsToIgnore?: string[];\n\n /** Determines whether shortcut should trigger based in contentEditable, `false` by default */\n triggerOnContentEditable?: boolean;\n\n /** If set, spotlight will not be rendered */\n disabled?: boolean;\n\n /** Called when spotlight opens */\n onSpotlightOpen?(): void;\n\n /** Called when spotlight closes */\n onSpotlightClose?(): void;\n\n /** Forces opened state, useful for tests */\n forceOpened?: boolean;\n\n /** Determines whether spotlight should be closed when one of the actions is triggered, `true` by default */\n closeOnActionTrigger?: boolean;\n\n /** Spotlight content max-height. Ignored unless `scrollable` prop is set. `400` by default */\n maxHeight?: React.CSSProperties['maxHeight'];\n\n /** Determines whether the actions list should be scrollable. If not set, `maxHeight` is ignored, `false` by default */\n scrollable?: boolean;\n}\n\nexport type SpotlightRootFactory = Factory<{\n props: SpotlightRootProps;\n ref: HTMLDivElement;\n stylesNames: SpotlightRootStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<SpotlightRootProps> = {\n size: 600,\n yOffset: 80,\n zIndex: getDefaultZIndex('max'),\n overlayProps: { backgroundOpacity: 0.35, blur: 7 },\n transitionProps: { duration: 200, transition: 'pop' },\n store: spotlightStore,\n clearQueryOnClose: true,\n closeOnActionTrigger: true,\n shortcut: 'mod + K',\n maxHeight: 400,\n scrollable: false,\n};\n\nexport const SpotlightRoot = factory<SpotlightRootFactory>((_props, ref) => {\n const props = useProps('SpotlightRoot', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n store,\n children,\n query,\n onQueryChange,\n transitionProps,\n clearQueryOnClose,\n shortcut,\n tagsToIgnore,\n triggerOnContentEditable,\n disabled,\n onSpotlightOpen,\n onSpotlightClose,\n forceOpened,\n closeOnActionTrigger,\n maxHeight,\n scrollable,\n ...others\n } = props;\n\n const theme = useMantineTheme();\n const { opened, query: storeQuery } = useSpotlight(store!);\n const _query = query || storeQuery;\n const setQuery = (q: string) => {\n onQueryChange?.(q);\n spotlightActions.setQuery(q, store!);\n };\n\n const getStyles = useStyles<SpotlightRootFactory>({\n name: 'Spotlight',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n useHotkeys(getHotkeys(shortcut, store!), tagsToIgnore, triggerOnContentEditable);\n\n useDidUpdate(() => {\n opened ? onSpotlightOpen?.() : onSpotlightClose?.();\n }, [opened]);\n\n if (disabled) {\n return null;\n }\n\n return (\n <SpotlightProvider\n value={{\n getStyles,\n query: _query,\n setQuery,\n store: store!,\n closeOnActionTrigger,\n }}\n >\n <Modal\n ref={ref}\n {...others}\n withCloseButton={false}\n opened={opened || !!forceOpened}\n padding={0}\n onClose={() => spotlightActions.close(store!)}\n className={className}\n style={style}\n classNames={resolveClassNames({\n theme,\n classNames: [classes, classNames],\n props,\n stylesCtx: undefined,\n })}\n styles={resolveStyles({ theme, styles, props, stylesCtx: undefined })}\n transitionProps={{\n ...transitionProps,\n onExited: () => {\n clearQueryOnClose && setQuery('');\n spotlightActions.clearSpotlightState({ clearQuery: clearQueryOnClose }, store!);\n transitionProps?.onExited?.();\n },\n }}\n __vars={{ '--spotlight-max-height': scrollable ? rem(maxHeight) : undefined }}\n __staticSelector=\"Spotlight\"\n data-scrollable={scrollable || undefined}\n >\n {children}\n </Modal>\n </SpotlightProvider>\n );\n});\n\nSpotlightRoot.classes = classes;\nSpotlightRoot.displayName = '@mantine/spotlight/SpotlightRoot';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpotlightRoot.mjs","sources":["../src/SpotlightRoot.tsx"],"sourcesContent":["import React from 'react';\nimport {\n StylesApiProps,\n factory,\n useProps,\n useStyles,\n Factory,\n Modal,\n ModalProps,\n ModalStylesNames,\n getDefaultZIndex,\n resolveClassNames,\n useMantineTheme,\n resolveStyles,\n rem,\n} from '@mantine/core';\nimport { useDidUpdate, useHotkeys } from '@mantine/hooks';\nimport { SpotlightProvider } from './Spotlight.context';\nimport { useSpotlight, SpotlightStore, spotlightStore, spotlightActions } from './spotlight.store';\nimport { getHotkeys } from './get-hotkeys';\nimport classes from './Spotlight.module.css';\n\nexport type SpotlightRootStylesNames =\n | ModalStylesNames\n | 'search'\n | 'actionsList'\n | 'action'\n | 'empty'\n | 'footer'\n | 'actionBody'\n | 'actionLabel'\n | 'actionDescription'\n | 'actionSection'\n | 'actionsGroup';\n\nexport interface SpotlightRootProps\n extends StylesApiProps<SpotlightRootFactory>,\n Omit<\n ModalProps,\n | 'styles'\n | 'classNames'\n | 'vars'\n | 'variant'\n | 'opened'\n | 'onClose'\n | 'closeButtonProps'\n | 'withCloseButton'\n > {\n /** Spotlight store, can be used to create multiple instances of spotlight */\n store?: SpotlightStore;\n\n /** Controlled Spotlight search query */\n query?: string;\n\n /** Called when query changes */\n onQueryChange?: (query: string) => void;\n\n /** Determines whether the search query should be cleared when the spotlight is closed, `true` by default */\n clearQueryOnClose?: boolean;\n\n /** Keyboard shortcut or a list of shortcuts to trigger spotlight, `'mod + K'` by default */\n shortcut?: string | string[] | null;\n\n /** A list of tags which when focused will be ignored by shortcut, `['input', 'textarea', 'select']` by default */\n tagsToIgnore?: string[];\n\n /** Determines whether shortcut should trigger based in contentEditable, `false` by default */\n triggerOnContentEditable?: boolean;\n\n /** If set, spotlight will not be rendered */\n disabled?: boolean;\n\n /** Called when spotlight opens */\n onSpotlightOpen?: () => void;\n\n /** Called when spotlight closes */\n onSpotlightClose?: () => void;\n\n /** Forces opened state, useful for tests */\n forceOpened?: boolean;\n\n /** Determines whether spotlight should be closed when one of the actions is triggered, `true` by default */\n closeOnActionTrigger?: boolean;\n\n /** Spotlight content max-height. Ignored unless `scrollable` prop is set. `400` by default */\n maxHeight?: React.CSSProperties['maxHeight'];\n\n /** Determines whether the actions list should be scrollable. If not set, `maxHeight` is ignored, `false` by default */\n scrollable?: boolean;\n}\n\nexport type SpotlightRootFactory = Factory<{\n props: SpotlightRootProps;\n ref: HTMLDivElement;\n stylesNames: SpotlightRootStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<SpotlightRootProps> = {\n size: 600,\n yOffset: 80,\n zIndex: getDefaultZIndex('max'),\n overlayProps: { backgroundOpacity: 0.35, blur: 7 },\n transitionProps: { duration: 200, transition: 'pop' },\n store: spotlightStore,\n clearQueryOnClose: true,\n closeOnActionTrigger: true,\n shortcut: 'mod + K',\n maxHeight: 400,\n scrollable: false,\n};\n\nexport const SpotlightRoot = factory<SpotlightRootFactory>((_props, ref) => {\n const props = useProps('SpotlightRoot', defaultProps, _props);\n const {\n classNames,\n className,\n style,\n styles,\n unstyled,\n vars,\n store,\n children,\n query,\n onQueryChange,\n transitionProps,\n clearQueryOnClose,\n shortcut,\n tagsToIgnore,\n triggerOnContentEditable,\n disabled,\n onSpotlightOpen,\n onSpotlightClose,\n forceOpened,\n closeOnActionTrigger,\n maxHeight,\n scrollable,\n ...others\n } = props;\n\n const theme = useMantineTheme();\n const { opened, query: storeQuery } = useSpotlight(store!);\n const _query = query || storeQuery;\n const setQuery = (q: string) => {\n onQueryChange?.(q);\n spotlightActions.setQuery(q, store!);\n };\n\n const getStyles = useStyles<SpotlightRootFactory>({\n name: 'Spotlight',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n\n useHotkeys(getHotkeys(shortcut, store!), tagsToIgnore, triggerOnContentEditable);\n\n useDidUpdate(() => {\n opened ? onSpotlightOpen?.() : onSpotlightClose?.();\n }, [opened]);\n\n if (disabled) {\n return null;\n }\n\n return (\n <SpotlightProvider\n value={{\n getStyles,\n query: _query,\n setQuery,\n store: store!,\n closeOnActionTrigger,\n }}\n >\n <Modal\n ref={ref}\n {...others}\n withCloseButton={false}\n opened={opened || !!forceOpened}\n padding={0}\n onClose={() => spotlightActions.close(store!)}\n className={className}\n style={style}\n classNames={resolveClassNames({\n theme,\n classNames: [classes, classNames],\n props,\n stylesCtx: undefined,\n })}\n styles={resolveStyles({ theme, styles, props, stylesCtx: undefined })}\n transitionProps={{\n ...transitionProps,\n onExited: () => {\n clearQueryOnClose && setQuery('');\n spotlightActions.clearSpotlightState({ clearQuery: clearQueryOnClose }, store!);\n transitionProps?.onExited?.();\n },\n }}\n __vars={{ '--spotlight-max-height': scrollable ? rem(maxHeight) : undefined }}\n __staticSelector=\"Spotlight\"\n data-scrollable={scrollable || undefined}\n >\n {children}\n </Modal>\n </SpotlightProvider>\n );\n});\n\nSpotlightRoot.classes = classes;\nSpotlightRoot.displayName = '@mantine/spotlight/SpotlightRoot';\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;AAClE,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAkBF,MAAM,YAAY,GAAG;AACrB,EAAE,IAAI,EAAE,GAAG;AACX,EAAE,OAAO,EAAE,EAAE;AACb,EAAE,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC;AACjC,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;AACpD,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE;AACvD,EAAE,KAAK,EAAE,cAAc;AACvB,EAAE,iBAAiB,EAAE,IAAI;AACzB,EAAE,oBAAoB,EAAE,IAAI;AAC5B,EAAE,QAAQ,EAAE,SAAS;AACrB,EAAE,SAAS,EAAE,GAAG;AAChB,EAAE,UAAU,EAAE,KAAK;AACnB,CAAC,CAAC;AACU,MAAC,aAAa,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AACtD,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AAChE,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;AACpB,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,KAAK;AACT,IAAI,aAAa;AACjB,IAAI,eAAe;AACnB,IAAI,iBAAiB;AACrB,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI,wBAAwB;AAC5B,IAAI,QAAQ;AACZ,IAAI,eAAe;AACnB,IAAI,gBAAgB;AACpB,IAAI,WAAW;AACf,IAAI,oBAAoB;AACxB,IAAI,SAAS;AACb,IAAI,UAAU;AACd,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,YAAY;AAChB,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,eAAe;AACnB,IAAI,iBAAiB;AACrB,IAAI,mBAAmB;AACvB,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,0BAA0B;AAC9B,IAAI,UAAU;AACd,IAAI,iBAAiB;AACrB,IAAI,kBAAkB;AACtB,IAAI,aAAa;AACjB,IAAI,sBAAsB;AAC1B,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;AAClC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5D,EAAE,MAAM,MAAM,GAAG,KAAK,IAAI,UAAU,CAAC;AACrC,EAAE,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AAC1B,IAAI,aAAa,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AACtD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACxC,GAAG,CAAC;AACJ,EAAE,MAAM,SAAS,GAAG,SAAS,CAAC;AAC9B,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,GAAG,CAAC,CAAC;AACL,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAC;AAClF,EAAE,YAAY,CAAC,MAAM;AACrB,IAAI,MAAM,GAAG,eAAe,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,eAAe,EAAE,GAAG,gBAAgB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,gBAAgB,EAAE,CAAC;AAC3H,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,uBAAuB,KAAK,CAAC,aAAa;AAC5C,IAAI,iBAAiB;AACrB,IAAI;AACJ,MAAM,KAAK,EAAE;AACb,QAAQ,SAAS;AACjB,QAAQ,KAAK,EAAE,MAAM;AACrB,QAAQ,QAAQ;AAChB,QAAQ,KAAK;AACb,QAAQ,oBAAoB;AAC5B,OAAO;AACP,KAAK;AACL,oBAAoB,KAAK,CAAC,aAAa;AACvC,MAAM,KAAK;AACX,MAAM,aAAa,CAAC,cAAc,CAAC;AACnC,QAAQ,GAAG;AACX,OAAO,EAAE,MAAM,CAAC,EAAE;AAClB,QAAQ,eAAe,EAAE,KAAK;AAC9B,QAAQ,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,WAAW;AACvC,QAAQ,OAAO,EAAE,CAAC;AAClB,QAAQ,OAAO,EAAE,MAAM,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;AACpD,QAAQ,SAAS;AACjB,QAAQ,KAAK;AACb,QAAQ,UAAU,EAAE,iBAAiB,CAAC;AACtC,UAAU,KAAK;AACf,UAAU,UAAU,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;AAC3C,UAAU,KAAK;AACf,UAAU,SAAS,EAAE,KAAK,CAAC;AAC3B,SAAS,CAAC;AACV,QAAQ,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;AAC1E,QAAQ,eAAe,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,eAAe,CAAC,EAAE;AAC5E,UAAU,QAAQ,EAAE,MAAM;AAC1B,YAAY,IAAI,GAAG,CAAC;AACpB,YAAY,iBAAiB,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9C,YAAY,gBAAgB,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAC,CAAC;AAC3F,YAAY,CAAC,GAAG,GAAG,eAAe,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC,QAAQ,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC7H,WAAW;AACX,SAAS,CAAC;AACV,QAAQ,MAAM,EAAE,EAAE,wBAAwB,EAAE,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,EAAE;AAClF,QAAQ,gBAAgB,EAAE,WAAW;AACrC,QAAQ,iBAAiB,EAAE,UAAU,IAAI,KAAK,CAAC;AAC/C,OAAO,CAAC;AACR,MAAM,QAAQ;AACd,KAAK;AACL,GAAG,CAAC;AACJ,CAAC,EAAE;AACH,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC;AAChC,aAAa,CAAC,WAAW,GAAG,kCAAkC;;"}
@@ -50,16 +50,16 @@ function setListId(id, store) {
50
50
  store.updateState((state) => __spreadProps(__spreadValues({}, state), { listId: id }));
51
51
  }
52
52
  function selectAction(index, store) {
53
- var _a, _b;
53
+ var _a, _b, _c;
54
54
  const state = store.getState();
55
55
  const actionsList = document.getElementById(state.listId);
56
- const selected = actionsList.querySelector("[data-selected]");
57
- const actions = actionsList.querySelectorAll("[data-action]");
56
+ const selected = actionsList == null ? void 0 : actionsList.querySelector("[data-selected]");
57
+ const actions = (_a = actionsList == null ? void 0 : actionsList.querySelectorAll("[data-action]")) != null ? _a : [];
58
58
  const nextIndex = index === -1 ? actions.length - 1 : index === actions.length ? 0 : index;
59
59
  const selectedIndex = clamp(nextIndex, 0, actions.length - 1);
60
60
  selected == null ? void 0 : selected.removeAttribute("data-selected");
61
- (_a = actions[selectedIndex]) == null ? void 0 : _a.scrollIntoView({ block: "nearest" });
62
- (_b = actions[selectedIndex]) == null ? void 0 : _b.setAttribute("data-selected", "true");
61
+ (_b = actions[selectedIndex]) == null ? void 0 : _b.scrollIntoView({ block: "nearest" });
62
+ (_c = actions[selectedIndex]) == null ? void 0 : _c.setAttribute("data-selected", "true");
63
63
  setSelectedAction(selectedIndex, store);
64
64
  return selectedIndex;
65
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spotlight.store.mjs","sources":["../src/spotlight.store.ts"],"sourcesContent":["import { clamp } from '@mantine/hooks';\nimport { createStore, useStore, MantineStore } from '@mantine/store';\n\nexport interface SpotlightState {\n opened: boolean;\n selected: number;\n listId: string;\n query: string;\n empty: boolean;\n registeredActions: Set<string>;\n}\n\nexport type SpotlightStore = MantineStore<SpotlightState>;\n\nexport const createSpotlightStore = () =>\n createStore<SpotlightState>({\n opened: false,\n empty: false,\n selected: -1,\n listId: '',\n query: '',\n registeredActions: new Set(),\n });\n\nexport const useSpotlight = (store: SpotlightStore) => useStore(store);\n\nexport function updateSpotlightStateAction(\n update: (state: SpotlightState) => Partial<SpotlightState>,\n store: SpotlightStore\n) {\n const state = store.getState();\n store.setState({ ...state, ...update(store.getState()) });\n}\n\nexport function openSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ opened: true }), store);\n}\n\nexport function closeSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ opened: false }), store);\n}\n\nexport function toggleSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction((state) => ({ opened: !state.opened }), store);\n}\n\nexport function setSelectedAction(index: number, store: SpotlightStore) {\n store.updateState((state) => ({ ...state, selected: index }));\n}\n\nexport function setListId(id: string, store: SpotlightStore) {\n store.updateState((state) => ({ ...state, listId: id }));\n}\n\nexport function selectAction(index: number, store: SpotlightStore): number {\n const state = store.getState();\n const actionsList = document.getElementById(state.listId)!;\n const selected = actionsList.querySelector<HTMLButtonElement>('[data-selected]');\n const actions = actionsList.querySelectorAll<HTMLButtonElement>('[data-action]');\n const nextIndex = index === -1 ? actions.length - 1 : index === actions.length ? 0 : index;\n\n const selectedIndex = clamp(nextIndex, 0, actions.length - 1);\n selected?.removeAttribute('data-selected');\n actions[selectedIndex]?.scrollIntoView({ block: 'nearest' });\n actions[selectedIndex]?.setAttribute('data-selected', 'true');\n setSelectedAction(selectedIndex, store);\n\n return selectedIndex;\n}\n\nexport function selectNextAction(store: SpotlightStore) {\n return selectAction(store.getState().selected + 1, store);\n}\n\nexport function selectPreviousAction(store: SpotlightStore) {\n return selectAction(store.getState().selected - 1, store);\n}\n\nexport function triggerSelectedAction(store: SpotlightStore) {\n const state = store.getState();\n const selected = document.querySelector<HTMLButtonElement>(`#${state.listId} [data-selected]`);\n selected?.click();\n}\n\nexport function registerAction(id: string, store: SpotlightStore) {\n const state = store.getState();\n state.registeredActions.add(id);\n return () => {\n state.registeredActions.delete(id);\n };\n}\n\nexport function setQuery(query: string, store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ query }), store);\n Promise.resolve().then(() => {\n selectAction(0, store);\n updateSpotlightStateAction(\n (state) => ({\n empty: (state.query.trim().length > 0 && state.registeredActions.size === 0) || false,\n }),\n store\n );\n });\n}\n\nexport function clearSpotlightState(\n { clearQuery }: { clearQuery: boolean | undefined },\n store: SpotlightStore\n) {\n store.updateState((state) => ({\n ...state,\n selected: -1,\n query: clearQuery ? '' : state.query,\n empty: clearQuery ? false : state.empty,\n }));\n}\n\nexport const spotlightActions = {\n open: openSpotlightAction,\n close: closeSpotlightAction,\n toggle: toggleSpotlightAction,\n updateState: updateSpotlightStateAction,\n setSelectedAction,\n setListId,\n selectAction,\n selectNextAction,\n selectPreviousAction,\n triggerSelectedAction,\n registerAction,\n setQuery,\n clearSpotlightState,\n};\n\nexport function createSpotlight() {\n const store = createSpotlightStore();\n const actions = {\n open: () => openSpotlightAction(store),\n close: () => closeSpotlightAction(store),\n toggle: () => toggleSpotlightAction(store),\n };\n\n return [store, actions] as const;\n}\n\nexport const [spotlightStore, spotlight] = createSpotlight();\nexport const { open: openSpotlight, close: closeSpotlight, toggle: toggleSpotlight } = spotlight;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spotlight.store.mjs","sources":["../src/spotlight.store.ts"],"sourcesContent":["import { clamp } from '@mantine/hooks';\nimport { createStore, useStore, MantineStore } from '@mantine/store';\n\nexport interface SpotlightState {\n opened: boolean;\n selected: number;\n listId: string;\n query: string;\n empty: boolean;\n registeredActions: Set<string>;\n}\n\nexport type SpotlightStore = MantineStore<SpotlightState>;\n\nexport const createSpotlightStore = () =>\n createStore<SpotlightState>({\n opened: false,\n empty: false,\n selected: -1,\n listId: '',\n query: '',\n registeredActions: new Set(),\n });\n\nexport const useSpotlight = (store: SpotlightStore) => useStore(store);\n\nexport function updateSpotlightStateAction(\n update: (state: SpotlightState) => Partial<SpotlightState>,\n store: SpotlightStore\n) {\n const state = store.getState();\n store.setState({ ...state, ...update(store.getState()) });\n}\n\nexport function openSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ opened: true }), store);\n}\n\nexport function closeSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ opened: false }), store);\n}\n\nexport function toggleSpotlightAction(store: SpotlightStore) {\n updateSpotlightStateAction((state) => ({ opened: !state.opened }), store);\n}\n\nexport function setSelectedAction(index: number, store: SpotlightStore) {\n store.updateState((state) => ({ ...state, selected: index }));\n}\n\nexport function setListId(id: string, store: SpotlightStore) {\n store.updateState((state) => ({ ...state, listId: id }));\n}\n\nexport function selectAction(index: number, store: SpotlightStore): number {\n const state = store.getState();\n const actionsList = document.getElementById(state.listId);\n const selected = actionsList?.querySelector<HTMLButtonElement>('[data-selected]');\n const actions = actionsList?.querySelectorAll<HTMLButtonElement>('[data-action]') ?? [];\n const nextIndex = index === -1 ? actions.length - 1 : index === actions.length ? 0 : index;\n\n const selectedIndex = clamp(nextIndex, 0, actions.length - 1);\n selected?.removeAttribute('data-selected');\n actions[selectedIndex]?.scrollIntoView({ block: 'nearest' });\n actions[selectedIndex]?.setAttribute('data-selected', 'true');\n setSelectedAction(selectedIndex, store);\n\n return selectedIndex;\n}\n\nexport function selectNextAction(store: SpotlightStore) {\n return selectAction(store.getState().selected + 1, store);\n}\n\nexport function selectPreviousAction(store: SpotlightStore) {\n return selectAction(store.getState().selected - 1, store);\n}\n\nexport function triggerSelectedAction(store: SpotlightStore) {\n const state = store.getState();\n const selected = document.querySelector<HTMLButtonElement>(`#${state.listId} [data-selected]`);\n selected?.click();\n}\n\nexport function registerAction(id: string, store: SpotlightStore) {\n const state = store.getState();\n state.registeredActions.add(id);\n return () => {\n state.registeredActions.delete(id);\n };\n}\n\nexport function setQuery(query: string, store: SpotlightStore) {\n updateSpotlightStateAction(() => ({ query }), store);\n Promise.resolve().then(() => {\n selectAction(0, store);\n updateSpotlightStateAction(\n (state) => ({\n empty: (state.query.trim().length > 0 && state.registeredActions.size === 0) || false,\n }),\n store\n );\n });\n}\n\nexport function clearSpotlightState(\n { clearQuery }: { clearQuery: boolean | undefined },\n store: SpotlightStore\n) {\n store.updateState((state) => ({\n ...state,\n selected: -1,\n query: clearQuery ? '' : state.query,\n empty: clearQuery ? false : state.empty,\n }));\n}\n\nexport const spotlightActions = {\n open: openSpotlightAction,\n close: closeSpotlightAction,\n toggle: toggleSpotlightAction,\n updateState: updateSpotlightStateAction,\n setSelectedAction,\n setListId,\n selectAction,\n selectNextAction,\n selectPreviousAction,\n triggerSelectedAction,\n registerAction,\n setQuery,\n clearSpotlightState,\n};\n\nexport function createSpotlight() {\n const store = createSpotlightStore();\n const actions = {\n open: () => openSpotlightAction(store),\n close: () => closeSpotlightAction(store),\n toggle: () => toggleSpotlightAction(store),\n };\n\n return [store, actions] as const;\n}\n\nexport const [spotlightStore, spotlight] = createSpotlight();\nexport const { open: openSpotlight, close: closeSpotlight, toggle: toggleSpotlight } = spotlight;\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { SpotlightRootFactory } from './SpotlightRoot';
4
4
  import { SpotlightStore } from './spotlight.store';
5
5
  interface SpotlightContextValue {
6
6
  query: string;
7
- setQuery(query: string): void;
7
+ setQuery: (query: string) => void;
8
8
  getStyles: GetStylesApi<SpotlightRootFactory>;
9
9
  store: SpotlightStore;
10
10
  closeOnActionTrigger: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Spotlight.context.d.ts","sourceRoot":"","sources":["../src/Spotlight.context.ts"],"names":[],"mappings":";AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAC9C,KAAK,EAAE,cAAc,CAAC;IACtB,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3C;AAED,eAAO,MAAO,iBAAiB;;;+CAAE,mBAAmB,6BAEnD,CAAC"}
1
+ {"version":3,"file":"Spotlight.context.d.ts","sourceRoot":"","sources":["../src/Spotlight.context.ts"],"names":[],"mappings":";AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAC9C,KAAK,EAAE,cAAc,CAAC;IACtB,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3C;AAED,eAAO,MAAO,iBAAiB;;;+CAAE,mBAAmB,6BAEnD,CAAC"}
@@ -8,7 +8,7 @@ export interface SpotlightRootProps extends StylesApiProps<SpotlightRootFactory>
8
8
  /** Controlled Spotlight search query */
9
9
  query?: string;
10
10
  /** Called when query changes */
11
- onQueryChange?(query: string): void;
11
+ onQueryChange?: (query: string) => void;
12
12
  /** Determines whether the search query should be cleared when the spotlight is closed, `true` by default */
13
13
  clearQueryOnClose?: boolean;
14
14
  /** Keyboard shortcut or a list of shortcuts to trigger spotlight, `'mod + K'` by default */
@@ -20,9 +20,9 @@ export interface SpotlightRootProps extends StylesApiProps<SpotlightRootFactory>
20
20
  /** If set, spotlight will not be rendered */
21
21
  disabled?: boolean;
22
22
  /** Called when spotlight opens */
23
- onSpotlightOpen?(): void;
23
+ onSpotlightOpen?: () => void;
24
24
  /** Called when spotlight closes */
25
- onSpotlightClose?(): void;
25
+ onSpotlightClose?: () => void;
26
26
  /** Forces opened state, useful for tests */
27
27
  forceOpened?: boolean;
28
28
  /** Determines whether spotlight should be closed when one of the actions is triggered, `true` by default */
@@ -1 +1 @@
1
- {"version":3,"file":"SpotlightRoot.d.ts","sourceRoot":"","sources":["../src/SpotlightRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,cAAc,EAId,OAAO,EAEP,UAAU,EACV,gBAAgB,EAMjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAgB,cAAc,EAAoC,MAAM,mBAAmB,CAAC;AAInG,MAAM,MAAM,wBAAwB,GAChC,gBAAgB,GAChB,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,aAAa,GACb,mBAAmB,GACnB,eAAe,GACf,cAAc,CAAC;AAEnB,MAAM,WAAW,kBACf,SAAQ,cAAc,CAAC,oBAAoB,CAAC,EAC1C,IAAI,CACF,UAAU,EACR,QAAQ,GACR,YAAY,GACZ,MAAM,GACN,SAAS,GACT,QAAQ,GACR,SAAS,GACT,kBAAkB,GAClB,iBAAiB,CACpB;IACH,6EAA6E;IAC7E,KAAK,CAAC,EAAE,cAAc,CAAC;IAEvB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gCAAgC;IAChC,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpC,4GAA4G;IAC5G,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAEpC,kHAAkH;IAClH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,8FAA8F;IAC9F,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kCAAkC;IAClC,eAAe,CAAC,IAAI,IAAI,CAAC;IAEzB,mCAAmC;IACnC,gBAAgB,CAAC,IAAI,IAAI,CAAC;IAE1B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,4GAA4G;IAC5G,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,8FAA8F;IAC9F,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAE7C,uHAAuH;IACvH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,wBAAwB,CAAC;IACtC,QAAQ,EAAE,IAAI,CAAC;CAChB,CAAC,CAAC;AAgBH,eAAO,MAAM,aAAa;WApBjB,kBAAkB;SACpB,cAAc;iBACN,wBAAwB;cAC3B,IAAI;EAoHd,CAAC"}
1
+ {"version":3,"file":"SpotlightRoot.d.ts","sourceRoot":"","sources":["../src/SpotlightRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,cAAc,EAId,OAAO,EAEP,UAAU,EACV,gBAAgB,EAMjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAgB,cAAc,EAAoC,MAAM,mBAAmB,CAAC;AAInG,MAAM,MAAM,wBAAwB,GAChC,gBAAgB,GAChB,QAAQ,GACR,aAAa,GACb,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,YAAY,GACZ,aAAa,GACb,mBAAmB,GACnB,eAAe,GACf,cAAc,CAAC;AAEnB,MAAM,WAAW,kBACf,SAAQ,cAAc,CAAC,oBAAoB,CAAC,EAC1C,IAAI,CACF,UAAU,EACR,QAAQ,GACR,YAAY,GACZ,MAAM,GACN,SAAS,GACT,QAAQ,GACR,SAAS,GACT,kBAAkB,GAClB,iBAAiB,CACpB;IACH,6EAA6E;IAC7E,KAAK,CAAC,EAAE,cAAc,CAAC;IAEvB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gCAAgC;IAChC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC,4GAA4G;IAC5G,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IAEpC,kHAAkH;IAClH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,8FAA8F;IAC9F,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAE7B,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAE9B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,4GAA4G;IAC5G,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,8FAA8F;IAC9F,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAE7C,uHAAuH;IACvH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,wBAAwB,CAAC;IACtC,QAAQ,EAAE,IAAI,CAAC;CAChB,CAAC,CAAC;AAgBH,eAAO,MAAM,aAAa;WApBjB,kBAAkB;SACpB,cAAc;iBACN,wBAAwB;cAC3B,IAAI;EAoHd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantine/spotlight",
3
- "version": "7.1.2",
3
+ "version": "7.1.4",
4
4
  "main": "./cjs/index.js",
5
5
  "types": "./lib/index.d.ts",
6
6
  "module": "./esm/index.mjs",
@@ -40,13 +40,13 @@
40
40
  "command-center"
41
41
  ],
42
42
  "peerDependencies": {
43
- "@mantine/core": "7.1.2",
44
- "@mantine/hooks": "7.1.2",
43
+ "@mantine/core": "7.1.4",
44
+ "@mantine/hooks": "7.1.4",
45
45
  "react": "^18.2.0",
46
46
  "react-dom": "^18.2.0"
47
47
  },
48
48
  "dependencies": {
49
- "@mantine/store": "7.1.2"
49
+ "@mantine/store": "7.1.4"
50
50
  },
51
51
  "devDependencies": {}
52
52
  }