@mantine/spotlight 6.0.15 → 7.0.0-alpha.15

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 (153) hide show
  1. package/cjs/Spotlight.context.js +6 -11
  2. package/cjs/Spotlight.context.js.map +1 -1
  3. package/cjs/Spotlight.js +121 -0
  4. package/cjs/Spotlight.js.map +1 -0
  5. package/cjs/Spotlight.module.css.js +8 -0
  6. package/cjs/Spotlight.module.css.js.map +1 -0
  7. package/cjs/SpotlightAction.js +141 -0
  8. package/cjs/SpotlightAction.js.map +1 -0
  9. package/cjs/SpotlightActionsGroup.js +67 -0
  10. package/cjs/SpotlightActionsGroup.js.map +1 -0
  11. package/cjs/SpotlightActionsList.js +74 -0
  12. package/cjs/SpotlightActionsList.js.map +1 -0
  13. package/cjs/SpotlightEmpty.js +61 -0
  14. package/cjs/SpotlightEmpty.js.map +1 -0
  15. package/cjs/SpotlightFooter.js +61 -0
  16. package/cjs/SpotlightFooter.js.map +1 -0
  17. package/cjs/SpotlightRoot.js +178 -0
  18. package/cjs/SpotlightRoot.js.map +1 -0
  19. package/cjs/SpotlightSearch.js +89 -0
  20. package/cjs/SpotlightSearch.js.map +1 -0
  21. package/cjs/default-spotlight-filter.js +76 -0
  22. package/cjs/default-spotlight-filter.js.map +1 -0
  23. package/cjs/get-hotkeys.js +19 -0
  24. package/cjs/get-hotkeys.js.map +1 -0
  25. package/cjs/index.css +141 -0
  26. package/cjs/index.js +23 -12
  27. package/cjs/index.js.map +1 -1
  28. package/cjs/spotlight.store.js +155 -0
  29. package/cjs/spotlight.store.js.map +1 -0
  30. package/esm/Spotlight.context.js +5 -10
  31. package/esm/Spotlight.context.js.map +1 -1
  32. package/esm/Spotlight.js +113 -0
  33. package/esm/Spotlight.js.map +1 -0
  34. package/esm/Spotlight.module.css.js +4 -0
  35. package/esm/Spotlight.module.css.js.map +1 -0
  36. package/esm/SpotlightAction.js +133 -0
  37. package/esm/SpotlightAction.js.map +1 -0
  38. package/esm/SpotlightActionsGroup.js +59 -0
  39. package/esm/SpotlightActionsGroup.js.map +1 -0
  40. package/esm/SpotlightActionsList.js +66 -0
  41. package/esm/SpotlightActionsList.js.map +1 -0
  42. package/esm/SpotlightEmpty.js +53 -0
  43. package/esm/SpotlightEmpty.js.map +1 -0
  44. package/esm/SpotlightFooter.js +53 -0
  45. package/esm/SpotlightFooter.js.map +1 -0
  46. package/esm/SpotlightRoot.js +170 -0
  47. package/esm/SpotlightRoot.js.map +1 -0
  48. package/esm/SpotlightSearch.js +81 -0
  49. package/esm/SpotlightSearch.js.map +1 -0
  50. package/esm/default-spotlight-filter.js +72 -0
  51. package/esm/default-spotlight-filter.js.map +1 -0
  52. package/esm/get-hotkeys.js +15 -0
  53. package/esm/get-hotkeys.js.map +1 -0
  54. package/esm/index.css +141 -0
  55. package/esm/index.js +9 -3
  56. package/esm/index.js.map +1 -1
  57. package/esm/spotlight.store.js +130 -0
  58. package/esm/spotlight.store.js.map +1 -0
  59. package/lib/Spotlight.context.d.ts +13 -21
  60. package/lib/Spotlight.context.d.ts.map +1 -1
  61. package/lib/Spotlight.d.ts +68 -0
  62. package/lib/Spotlight.d.ts.map +1 -0
  63. package/lib/SpotlightAction.d.ts +38 -0
  64. package/lib/SpotlightAction.d.ts.map +1 -0
  65. package/lib/SpotlightActionsGroup.d.ts +22 -0
  66. package/lib/SpotlightActionsGroup.d.ts.map +1 -0
  67. package/lib/SpotlightActionsList.d.ts +17 -0
  68. package/lib/SpotlightActionsList.d.ts.map +1 -0
  69. package/lib/SpotlightEmpty.d.ts +17 -0
  70. package/lib/SpotlightEmpty.d.ts.map +1 -0
  71. package/lib/SpotlightFooter.d.ts +17 -0
  72. package/lib/SpotlightFooter.d.ts.map +1 -0
  73. package/lib/SpotlightRoot.d.ts +45 -0
  74. package/lib/SpotlightRoot.d.ts.map +1 -0
  75. package/lib/SpotlightSearch.d.ts +17 -0
  76. package/lib/SpotlightSearch.d.ts.map +1 -0
  77. package/lib/default-spotlight-filter.d.ts +3 -0
  78. package/lib/default-spotlight-filter.d.ts.map +1 -0
  79. package/lib/get-hotkeys.d.ts +4 -0
  80. package/lib/get-hotkeys.d.ts.map +1 -0
  81. package/lib/index.d.ts +17 -7
  82. package/lib/index.d.ts.map +1 -1
  83. package/lib/spotlight.store.d.ts +54 -0
  84. package/lib/spotlight.store.d.ts.map +1 -0
  85. package/package.json +29 -11
  86. package/cjs/ActionsList/ActionsList.js +0 -105
  87. package/cjs/ActionsList/ActionsList.js.map +0 -1
  88. package/cjs/ActionsList/ActionsList.styles.js +0 -23
  89. package/cjs/ActionsList/ActionsList.styles.js.map +0 -1
  90. package/cjs/DefaultAction/DefaultAction.js +0 -90
  91. package/cjs/DefaultAction/DefaultAction.js.map +0 -1
  92. package/cjs/DefaultAction/DefaultAction.styles.js +0 -66
  93. package/cjs/DefaultAction/DefaultAction.styles.js.map +0 -1
  94. package/cjs/Spotlight/Spotlight.js +0 -214
  95. package/cjs/Spotlight/Spotlight.js.map +0 -1
  96. package/cjs/Spotlight/Spotlight.styles.js +0 -24
  97. package/cjs/Spotlight/Spotlight.styles.js.map +0 -1
  98. package/cjs/Spotlight/filter-actions/filter-actions.js +0 -29
  99. package/cjs/Spotlight/filter-actions/filter-actions.js.map +0 -1
  100. package/cjs/SpotlightProvider.js +0 -131
  101. package/cjs/SpotlightProvider.js.map +0 -1
  102. package/cjs/events.js +0 -32
  103. package/cjs/events.js.map +0 -1
  104. package/cjs/use-actions-state/use-actions-state.js +0 -63
  105. package/cjs/use-actions-state/use-actions-state.js.map +0 -1
  106. package/cjs/use-spotlight-shortcuts/use-spotlight-shortcuts.js +0 -22
  107. package/cjs/use-spotlight-shortcuts/use-spotlight-shortcuts.js.map +0 -1
  108. package/esm/ActionsList/ActionsList.js +0 -97
  109. package/esm/ActionsList/ActionsList.js.map +0 -1
  110. package/esm/ActionsList/ActionsList.styles.js +0 -19
  111. package/esm/ActionsList/ActionsList.styles.js.map +0 -1
  112. package/esm/DefaultAction/DefaultAction.js +0 -82
  113. package/esm/DefaultAction/DefaultAction.js.map +0 -1
  114. package/esm/DefaultAction/DefaultAction.styles.js +0 -62
  115. package/esm/DefaultAction/DefaultAction.styles.js.map +0 -1
  116. package/esm/Spotlight/Spotlight.js +0 -206
  117. package/esm/Spotlight/Spotlight.js.map +0 -1
  118. package/esm/Spotlight/Spotlight.styles.js +0 -20
  119. package/esm/Spotlight/Spotlight.styles.js.map +0 -1
  120. package/esm/Spotlight/filter-actions/filter-actions.js +0 -25
  121. package/esm/Spotlight/filter-actions/filter-actions.js.map +0 -1
  122. package/esm/SpotlightProvider.js +0 -123
  123. package/esm/SpotlightProvider.js.map +0 -1
  124. package/esm/events.js +0 -20
  125. package/esm/events.js.map +0 -1
  126. package/esm/use-actions-state/use-actions-state.js +0 -59
  127. package/esm/use-actions-state/use-actions-state.js.map +0 -1
  128. package/esm/use-spotlight-shortcuts/use-spotlight-shortcuts.js +0 -17
  129. package/esm/use-spotlight-shortcuts/use-spotlight-shortcuts.js.map +0 -1
  130. package/lib/ActionsList/ActionsList.d.ts +0 -33
  131. package/lib/ActionsList/ActionsList.d.ts.map +0 -1
  132. package/lib/ActionsList/ActionsList.styles.d.ts +0 -11
  133. package/lib/ActionsList/ActionsList.styles.d.ts.map +0 -1
  134. package/lib/DefaultAction/DefaultAction.d.ts +0 -19
  135. package/lib/DefaultAction/DefaultAction.d.ts.map +0 -1
  136. package/lib/DefaultAction/DefaultAction.styles.d.ts +0 -17
  137. package/lib/DefaultAction/DefaultAction.styles.d.ts.map +0 -1
  138. package/lib/Spotlight/Spotlight.d.ts +0 -51
  139. package/lib/Spotlight/Spotlight.d.ts.map +0 -1
  140. package/lib/Spotlight/Spotlight.styles.d.ts +0 -10
  141. package/lib/Spotlight/Spotlight.styles.d.ts.map +0 -1
  142. package/lib/Spotlight/filter-actions/filter-actions.d.ts +0 -3
  143. package/lib/Spotlight/filter-actions/filter-actions.d.ts.map +0 -1
  144. package/lib/SpotlightProvider.d.ts +0 -34
  145. package/lib/SpotlightProvider.d.ts.map +0 -1
  146. package/lib/events.d.ts +0 -25
  147. package/lib/events.d.ts.map +0 -1
  148. package/lib/types.d.ts +0 -22
  149. package/lib/types.d.ts.map +0 -1
  150. package/lib/use-actions-state/use-actions-state.d.ts +0 -12
  151. package/lib/use-actions-state/use-actions-state.d.ts.map +0 -1
  152. package/lib/use-spotlight-shortcuts/use-spotlight-shortcuts.d.ts +0 -4
  153. package/lib/use-spotlight-shortcuts/use-spotlight-shortcuts.d.ts.map +0 -1
package/cjs/index.js CHANGED
@@ -1,20 +1,31 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, '__esModule', { value: true });
4
5
 
5
- var Spotlight_context = require('./Spotlight.context.js');
6
- var SpotlightProvider = require('./SpotlightProvider.js');
7
- var events = require('./events.js');
6
+ var spotlight_store = require('./spotlight.store.js');
7
+ var Spotlight = require('./Spotlight.js');
8
+ var SpotlightAction = require('./SpotlightAction.js');
9
+ var SpotlightActionsGroup = require('./SpotlightActionsGroup.js');
10
+ var SpotlightActionsList = require('./SpotlightActionsList.js');
11
+ var SpotlightEmpty = require('./SpotlightEmpty.js');
12
+ var SpotlightFooter = require('./SpotlightFooter.js');
13
+ var SpotlightSearch = require('./SpotlightSearch.js');
8
14
 
9
15
 
10
16
 
11
- exports.useSpotlight = Spotlight_context.useSpotlight;
12
- exports.SpotlightProvider = SpotlightProvider.SpotlightProvider;
13
- exports.closeSpotlight = events.closeSpotlight;
14
- exports.openSpotlight = events.openSpotlight;
15
- exports.registerSpotlightActions = events.registerSpotlightActions;
16
- exports.removeSpotlightActions = events.removeSpotlightActions;
17
- exports.spotlight = events.spotlight;
18
- exports.toggleSpotlight = events.toggleSpotlight;
19
- exports.triggerSpotlightAction = events.triggerSpotlightAction;
17
+ exports.closeSpotlight = spotlight_store.closeSpotlight;
18
+ exports.createSpotlight = spotlight_store.createSpotlight;
19
+ exports.createSpotlightStore = spotlight_store.createSpotlightStore;
20
+ exports.openSpotlight = spotlight_store.openSpotlight;
21
+ exports.spotlight = spotlight_store.spotlight;
22
+ exports.toggleSpotlight = spotlight_store.toggleSpotlight;
23
+ exports.useSpotlight = spotlight_store.useSpotlight;
24
+ exports.Spotlight = Spotlight.Spotlight;
25
+ exports.SpotlightAction = SpotlightAction.SpotlightAction;
26
+ exports.SpotlightActionsGroup = SpotlightActionsGroup.SpotlightActionsGroup;
27
+ exports.SpotlightActionsList = SpotlightActionsList.SpotlightActionsList;
28
+ exports.SpotlightEmpty = SpotlightEmpty.SpotlightEmpty;
29
+ exports.SpotlightFooter = SpotlightFooter.SpotlightFooter;
30
+ exports.SpotlightSearch = SpotlightSearch.SpotlightSearch;
20
31
  //# sourceMappingURL=index.js.map
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,155 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var hooks = require('@mantine/hooks');
6
+ var store = require('@mantine/store');
7
+
8
+ var __defProp = Object.defineProperty;
9
+ var __defProps = Object.defineProperties;
10
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
11
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
14
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __spreadValues = (a, b) => {
16
+ for (var prop in b || (b = {}))
17
+ if (__hasOwnProp.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ if (__getOwnPropSymbols)
20
+ for (var prop of __getOwnPropSymbols(b)) {
21
+ if (__propIsEnum.call(b, prop))
22
+ __defNormalProp(a, prop, b[prop]);
23
+ }
24
+ return a;
25
+ };
26
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
27
+ const createSpotlightStore = () => store.createStore({
28
+ opened: false,
29
+ empty: false,
30
+ selected: -1,
31
+ listId: "",
32
+ query: "",
33
+ registeredActions: /* @__PURE__ */ new Set()
34
+ });
35
+ const useSpotlight = (store$1) => store.useStore(store$1);
36
+ function updateSpotlightStateAction(update, store) {
37
+ const state = store.getState();
38
+ store.setState(__spreadValues(__spreadValues({}, state), update(store.getState())));
39
+ }
40
+ function openSpotlightAction(store) {
41
+ updateSpotlightStateAction(() => ({ opened: true }), store);
42
+ }
43
+ function closeSpotlightAction(store) {
44
+ updateSpotlightStateAction(() => ({ opened: false }), store);
45
+ }
46
+ function toggleSpotlightAction(store) {
47
+ updateSpotlightStateAction((state) => ({ opened: !state.opened }), store);
48
+ }
49
+ function setSelectedAction(index, store) {
50
+ store.updateState((state) => __spreadProps(__spreadValues({}, state), { selected: index }));
51
+ }
52
+ function setListId(id, store) {
53
+ store.updateState((state) => __spreadProps(__spreadValues({}, state), { listId: id }));
54
+ }
55
+ function selectAction(index, store) {
56
+ var _a, _b;
57
+ const state = store.getState();
58
+ const actionsList = document.getElementById(state.listId);
59
+ const selected = actionsList.querySelector("[data-selected]");
60
+ const actions = actionsList.querySelectorAll("[data-action]");
61
+ const nextIndex = index === -1 ? actions.length - 1 : index === actions.length ? 0 : index;
62
+ const selectedIndex = hooks.clamp(nextIndex, 0, actions.length - 1);
63
+ selected == null ? void 0 : selected.removeAttribute("data-selected");
64
+ (_a = actions[selectedIndex]) == null ? void 0 : _a.scrollIntoView({ block: "nearest" });
65
+ (_b = actions[selectedIndex]) == null ? void 0 : _b.setAttribute("data-selected", "true");
66
+ setSelectedAction(selectedIndex, store);
67
+ return selectedIndex;
68
+ }
69
+ function selectNextAction(store) {
70
+ return selectAction(store.getState().selected + 1, store);
71
+ }
72
+ function selectPreviousAction(store) {
73
+ return selectAction(store.getState().selected - 1, store);
74
+ }
75
+ function triggerSelectedAction(store) {
76
+ const state = store.getState();
77
+ const selected = document.querySelector(`#${state.listId} [data-selected]`);
78
+ selected == null ? void 0 : selected.click();
79
+ }
80
+ function registerAction(id, store) {
81
+ const state = store.getState();
82
+ state.registeredActions.add(id);
83
+ return () => {
84
+ state.registeredActions.delete(id);
85
+ };
86
+ }
87
+ function setQuery(query, store) {
88
+ updateSpotlightStateAction(() => ({ query }), store);
89
+ Promise.resolve().then(() => {
90
+ selectAction(0, store);
91
+ updateSpotlightStateAction(
92
+ (state) => ({
93
+ empty: state.query.trim().length > 0 && state.registeredActions.size === 0 || false
94
+ }),
95
+ store
96
+ );
97
+ });
98
+ }
99
+ function clearSpotlightState({ clearQuery }, store) {
100
+ store.updateState((state) => __spreadProps(__spreadValues({}, state), {
101
+ selected: -1,
102
+ query: clearQuery ? "" : state.query,
103
+ empty: clearQuery ? false : state.empty
104
+ }));
105
+ }
106
+ const spotlightActions = {
107
+ open: openSpotlightAction,
108
+ close: closeSpotlightAction,
109
+ toggle: toggleSpotlightAction,
110
+ updateState: updateSpotlightStateAction,
111
+ setSelectedAction,
112
+ setListId,
113
+ selectAction,
114
+ selectNextAction,
115
+ selectPreviousAction,
116
+ triggerSelectedAction,
117
+ registerAction,
118
+ setQuery,
119
+ clearSpotlightState
120
+ };
121
+ function createSpotlight() {
122
+ const store = createSpotlightStore();
123
+ const actions = {
124
+ open: () => openSpotlightAction(store),
125
+ close: () => closeSpotlightAction(store),
126
+ toggle: () => toggleSpotlightAction(store)
127
+ };
128
+ return [store, actions];
129
+ }
130
+ const [spotlightStore, spotlight] = createSpotlight();
131
+ const { open: openSpotlight, close: closeSpotlight, toggle: toggleSpotlight } = spotlight;
132
+
133
+ exports.clearSpotlightState = clearSpotlightState;
134
+ exports.closeSpotlight = closeSpotlight;
135
+ exports.closeSpotlightAction = closeSpotlightAction;
136
+ exports.createSpotlight = createSpotlight;
137
+ exports.createSpotlightStore = createSpotlightStore;
138
+ exports.openSpotlight = openSpotlight;
139
+ exports.openSpotlightAction = openSpotlightAction;
140
+ exports.registerAction = registerAction;
141
+ exports.selectAction = selectAction;
142
+ exports.selectNextAction = selectNextAction;
143
+ exports.selectPreviousAction = selectPreviousAction;
144
+ exports.setListId = setListId;
145
+ exports.setQuery = setQuery;
146
+ exports.setSelectedAction = setSelectedAction;
147
+ exports.spotlight = spotlight;
148
+ exports.spotlightActions = spotlightActions;
149
+ exports.spotlightStore = spotlightStore;
150
+ exports.toggleSpotlight = toggleSpotlight;
151
+ exports.toggleSpotlightAction = toggleSpotlightAction;
152
+ exports.triggerSelectedAction = triggerSelectedAction;
153
+ exports.updateSpotlightStateAction = updateSpotlightStateAction;
154
+ exports.useSpotlight = useSpotlight;
155
+ //# sourceMappingURL=spotlight.store.js.map
@@ -0,0 +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,13 +1,8 @@
1
- import { createContext, useContext } from 'react';
1
+ import { createSafeContext } from '@mantine/core';
2
2
 
3
- const SpotlightContext = createContext(null);
4
- function useSpotlight() {
5
- const ctx = useContext(SpotlightContext);
6
- if (!ctx) {
7
- throw new Error("[@mantine/spotlight] SpotlightProvider was not found in tree");
8
- }
9
- return ctx;
10
- }
3
+ const [SpotlightProvider, useSpotlightContext] = createSafeContext(
4
+ "Spotlight component was not found in tree"
5
+ );
11
6
 
12
- export { SpotlightContext, useSpotlight };
7
+ export { SpotlightProvider, useSpotlightContext };
13
8
  //# sourceMappingURL=Spotlight.context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spotlight.context.js","sources":["../src/Spotlight.context.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport type { SpotlightAction } from './types';\n\nexport interface SpotlightContextValue {\n /** Opens spotlight */\n openSpotlight(): void;\n\n /** Closes spotlight */\n closeSpotlight(): void;\n\n /** Toggles spotlight opened state */\n toggleSpotlight(): void;\n\n /** Triggers action with given id */\n triggerAction(actionId: string): void;\n\n /** Registers additional actions */\n registerActions(actions: SpotlightAction[]): void;\n\n /** Removes actions with given ids */\n removeActions(actionIds: string[]): void;\n\n /** Current opened state */\n opened: boolean;\n\n /** List of registered actions */\n actions: SpotlightAction[];\n\n /** Search query */\n query: string;\n}\n\nexport const SpotlightContext = createContext<SpotlightContextValue>(null);\n\nexport function useSpotlight() {\n const ctx = useContext(SpotlightContext);\n\n if (!ctx) {\n throw new Error('[@mantine/spotlight] SpotlightProvider was not found in tree');\n }\n\n return ctx;\n}\n"],"names":[],"mappings":";;AACY,MAAC,gBAAgB,GAAG,aAAa,CAAC,IAAI,EAAE;AAC7C,SAAS,YAAY,GAAG;AAC/B,EAAE,MAAM,GAAG,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,IAAI,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;AACpF,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb;;;;"}
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":[],"mappings":";;AACY,MAAC,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,GAAG,iBAAiB;AACzE,EAAE,2CAA2C;AAC7C;;;;"}
@@ -0,0 +1,113 @@
1
+ import React from 'react';
2
+ import { useUncontrolled } from '@mantine/hooks';
3
+ import { getDefaultZIndex, factory, useProps } from '@mantine/core';
4
+ import { spotlightStore, spotlight } from './spotlight.store.js';
5
+ import { SpotlightSearch } from './SpotlightSearch.js';
6
+ import { SpotlightActionsList } from './SpotlightActionsList.js';
7
+ import { SpotlightAction } from './SpotlightAction.js';
8
+ import { SpotlightEmpty } from './SpotlightEmpty.js';
9
+ import { SpotlightFooter } from './SpotlightFooter.js';
10
+ import { SpotlightActionsGroup } from './SpotlightActionsGroup.js';
11
+ import { SpotlightRoot } from './SpotlightRoot.js';
12
+ import classes from './Spotlight.module.css.js';
13
+ import { defaultSpotlightFilter } from './default-spotlight-filter.js';
14
+
15
+ var __defProp = Object.defineProperty;
16
+ var __defProps = Object.defineProperties;
17
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
18
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
19
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
20
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
21
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
22
+ var __spreadValues = (a, b) => {
23
+ for (var prop in b || (b = {}))
24
+ if (__hasOwnProp.call(b, prop))
25
+ __defNormalProp(a, prop, b[prop]);
26
+ if (__getOwnPropSymbols)
27
+ for (var prop of __getOwnPropSymbols(b)) {
28
+ if (__propIsEnum.call(b, prop))
29
+ __defNormalProp(a, prop, b[prop]);
30
+ }
31
+ return a;
32
+ };
33
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
34
+ var __objRest = (source, exclude) => {
35
+ var target = {};
36
+ for (var prop in source)
37
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
38
+ target[prop] = source[prop];
39
+ if (source != null && __getOwnPropSymbols)
40
+ for (var prop of __getOwnPropSymbols(source)) {
41
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
42
+ target[prop] = source[prop];
43
+ }
44
+ return target;
45
+ };
46
+ function isGroup(item) {
47
+ return item.group !== void 0;
48
+ }
49
+ const defaultProps = {
50
+ size: 600,
51
+ yOffset: 80,
52
+ zIndex: getDefaultZIndex("max"),
53
+ overlayProps: { backgroundOpacity: 0.35, blur: 7 },
54
+ transitionProps: { duration: 200, transition: "pop" },
55
+ store: spotlightStore,
56
+ filter: defaultSpotlightFilter,
57
+ clearQueryOnClose: true,
58
+ closeOnActionTrigger: true,
59
+ shortcut: "mod + K",
60
+ highlightQuery: false
61
+ };
62
+ const Spotlight = factory((_props, ref) => {
63
+ const props = useProps("Spotlight", defaultProps, _props);
64
+ const _a = props, {
65
+ searchProps,
66
+ filter,
67
+ query,
68
+ onQueryChange,
69
+ actions,
70
+ nothingFound,
71
+ highlightQuery
72
+ } = _a, others = __objRest(_a, [
73
+ "searchProps",
74
+ "filter",
75
+ "query",
76
+ "onQueryChange",
77
+ "actions",
78
+ "nothingFound",
79
+ "highlightQuery"
80
+ ]);
81
+ const [_query, setQuery] = useUncontrolled({
82
+ value: query,
83
+ defaultValue: "",
84
+ finalValue: "",
85
+ onChange: onQueryChange
86
+ });
87
+ const filteredActions = filter(_query, actions).map((item) => {
88
+ if (isGroup(item)) {
89
+ const items = item.actions.map((_a2) => {
90
+ var _b = _a2, { id } = _b, actionData = __objRest(_b, ["id"]);
91
+ return /* @__PURE__ */ React.createElement(SpotlightAction, __spreadValues({ key: id, highlightQuery }, actionData));
92
+ });
93
+ return /* @__PURE__ */ React.createElement(SpotlightActionsGroup, { key: item.group, label: item.group }, items);
94
+ }
95
+ return /* @__PURE__ */ React.createElement(SpotlightAction, __spreadValues({ key: item.id, highlightQuery }, item));
96
+ });
97
+ return /* @__PURE__ */ React.createElement(SpotlightRoot, __spreadProps(__spreadValues({}, others), { query: _query, onQueryChange: setQuery, ref }), /* @__PURE__ */ React.createElement(SpotlightSearch, __spreadValues({}, searchProps)), /* @__PURE__ */ React.createElement(SpotlightActionsList, null, filteredActions, filteredActions.length === 0 && nothingFound && /* @__PURE__ */ React.createElement(SpotlightEmpty, null, nothingFound)));
98
+ });
99
+ Spotlight.classes = classes;
100
+ Spotlight.displayName = "@mantine/spotlight/Spotlight";
101
+ Spotlight.Search = SpotlightSearch;
102
+ Spotlight.ActionsList = SpotlightActionsList;
103
+ Spotlight.Action = SpotlightAction;
104
+ Spotlight.Empty = SpotlightEmpty;
105
+ Spotlight.ActionsGroup = SpotlightActionsGroup;
106
+ Spotlight.Footer = SpotlightFooter;
107
+ Spotlight.Root = SpotlightRoot;
108
+ Spotlight.open = spotlight.open;
109
+ Spotlight.close = spotlight.close;
110
+ Spotlight.toggle = spotlight.toggle;
111
+
112
+ export { Spotlight };
113
+ //# sourceMappingURL=Spotlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spotlight.js","sources":["../src/Spotlight.tsx"],"sourcesContent":["import React from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { factory, useProps, Factory, getDefaultZIndex } from '@mantine/core';\nimport { spotlightStore, spotlight } from './spotlight.store';\nimport { SpotlightSearch, SpotlightSearchProps } from './SpotlightSearch';\nimport { SpotlightActionsList } from './SpotlightActionsList';\nimport { SpotlightAction, SpotlightActionProps } from './SpotlightAction';\nimport { SpotlightEmpty } from './SpotlightEmpty';\nimport { SpotlightFooter } from './SpotlightFooter';\nimport { SpotlightActionsGroup } from './SpotlightActionsGroup';\nimport { SpotlightRoot, SpotlightRootProps, SpotlightRootStylesNames } from './SpotlightRoot';\nimport classes from './Spotlight.module.css';\nimport { defaultSpotlightFilter } from './default-spotlight-filter';\n\nexport type SpotlightFilterFunction = (\n query: string,\n actions: SpotlightActions[]\n) => SpotlightActions[];\n\nexport interface SpotlightActionData extends SpotlightActionProps {\n id: string;\n group?: string;\n}\n\nexport interface SpotlightActionGroupData {\n group: string;\n actions: SpotlightActionData[];\n}\n\nexport type SpotlightActions = SpotlightActionData | SpotlightActionGroupData;\n\nfunction isGroup(\n item: SpotlightActionData | SpotlightActionGroupData\n): item is SpotlightActionGroupData {\n return (item as SpotlightActionGroupData).group !== undefined;\n}\n\nexport type SpotlightStylesNames = SpotlightRootStylesNames;\n\nexport interface SpotlightProps extends SpotlightRootProps {\n /** Props passed down to the `Spotlight.Search` */\n searchProps?: SpotlightSearchProps;\n\n /** Actions data, passed down to `Spotlight.Action` component */\n actions: SpotlightActions[];\n\n /** Function to filter actions data based on search query, by default actions are filtered by title, description and keywords */\n filter?: SpotlightFilterFunction;\n\n /** Message displayed when none of the actions match given `filter` */\n nothingFound?: React.ReactNode;\n\n /** Determines whether search query should be highlighted in action label, `false` by default */\n highlightQuery?: boolean;\n}\n\nexport type SpotlightFactory = Factory<{\n props: SpotlightProps;\n ref: HTMLDivElement;\n stylesNames: SpotlightStylesNames;\n staticComponents: {\n Search: typeof SpotlightSearch;\n ActionsList: typeof SpotlightActionsList;\n Action: typeof SpotlightAction;\n Empty: typeof SpotlightEmpty;\n Footer: typeof SpotlightFooter;\n ActionsGroup: typeof SpotlightActionsGroup;\n Root: typeof SpotlightRoot;\n open: typeof spotlight.open;\n close: typeof spotlight.close;\n toggle: typeof spotlight.toggle;\n };\n}>;\n\nconst defaultProps: Partial<SpotlightProps> = {\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 filter: defaultSpotlightFilter,\n clearQueryOnClose: true,\n closeOnActionTrigger: true,\n shortcut: 'mod + K',\n highlightQuery: false,\n};\n\nexport const Spotlight = factory<SpotlightFactory>((_props, ref) => {\n const props = useProps('Spotlight', defaultProps, _props);\n const {\n searchProps,\n filter,\n query,\n onQueryChange,\n actions,\n nothingFound,\n highlightQuery,\n ...others\n } = props;\n\n const [_query, setQuery] = useUncontrolled({\n value: query,\n defaultValue: '',\n finalValue: '',\n onChange: onQueryChange,\n });\n\n const filteredActions = filter!(_query, actions).map((item) => {\n if (isGroup(item)) {\n const items = item.actions.map(({ id, ...actionData }) => (\n <SpotlightAction key={id} highlightQuery={highlightQuery} {...actionData} />\n ));\n\n return (\n <SpotlightActionsGroup key={item.group} label={item.group}>\n {items}\n </SpotlightActionsGroup>\n );\n }\n\n return <SpotlightAction key={item.id} highlightQuery={highlightQuery} {...item} />;\n });\n\n return (\n <SpotlightRoot {...others} query={_query} onQueryChange={setQuery} ref={ref}>\n <SpotlightSearch {...searchProps} />\n <SpotlightActionsList>\n {filteredActions}\n {filteredActions.length === 0 && nothingFound && (\n <SpotlightEmpty>{nothingFound}</SpotlightEmpty>\n )}\n </SpotlightActionsList>\n </SpotlightRoot>\n );\n});\n\nSpotlight.classes = classes;\nSpotlight.displayName = '@mantine/spotlight/Spotlight';\nSpotlight.Search = SpotlightSearch;\nSpotlight.ActionsList = SpotlightActionsList;\nSpotlight.Action = SpotlightAction;\nSpotlight.Empty = SpotlightEmpty;\nSpotlight.ActionsGroup = SpotlightActionsGroup;\nSpotlight.Footer = SpotlightFooter;\nSpotlight.Root = SpotlightRoot;\nSpotlight.open = spotlight.open;\nSpotlight.close = spotlight.close;\nSpotlight.toggle = spotlight.toggle;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var classes = {"content":"mantine-oGSwC9x","body":"mantine-Fe2lxBl","search":"mantine-hZL9kbl","actionsList":"mantine-wb4sUqR","action":"mantine-E9Jobyg","actionBody":"mantine-H88WHeq","actionSection":"mantine-qjilEb4","actionLabel":"mantine-B0huk7i","actionDescription":"mantine-LuXNfaT","empty":"mantine-QuaaZgR","footer":"mantine-UGR-82u","actionsGroup":"mantine-cEuV4u5"};
2
+
3
+ export default classes;
4
+ //# sourceMappingURL=Spotlight.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spotlight.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,133 @@
1
+ import React from 'react';
2
+ import { factory, useProps, Highlight, UnstyledButton, Box } from '@mantine/core';
3
+ import classes from './Spotlight.module.css.js';
4
+ import { useSpotlightContext } from './Spotlight.context.js';
5
+ import { spotlightActions } from './spotlight.store.js';
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __defProps = Object.defineProperties;
9
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
10
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
13
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
+ var __spreadValues = (a, b) => {
15
+ for (var prop in b || (b = {}))
16
+ if (__hasOwnProp.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ if (__getOwnPropSymbols)
19
+ for (var prop of __getOwnPropSymbols(b)) {
20
+ if (__propIsEnum.call(b, prop))
21
+ __defNormalProp(a, prop, b[prop]);
22
+ }
23
+ return a;
24
+ };
25
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
+ var __objRest = (source, exclude) => {
27
+ var target = {};
28
+ for (var prop in source)
29
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
30
+ target[prop] = source[prop];
31
+ if (source != null && __getOwnPropSymbols)
32
+ for (var prop of __getOwnPropSymbols(source)) {
33
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
34
+ target[prop] = source[prop];
35
+ }
36
+ return target;
37
+ };
38
+ const defaultProps = {
39
+ dimmedSections: true,
40
+ highlightQuery: false
41
+ };
42
+ const SpotlightAction = factory((_props, ref) => {
43
+ const props = useProps("SpotlightAction", defaultProps, _props);
44
+ const _a = props, {
45
+ className,
46
+ style,
47
+ classNames,
48
+ styles,
49
+ id,
50
+ description,
51
+ label,
52
+ leftSection,
53
+ rightSection,
54
+ children,
55
+ dimmedSections,
56
+ highlightQuery,
57
+ highlightColor,
58
+ closeSpotlightOnTrigger,
59
+ onClick,
60
+ onMouseDown,
61
+ keywords,
62
+ vars
63
+ } = _a, others = __objRest(_a, [
64
+ "className",
65
+ "style",
66
+ "classNames",
67
+ "styles",
68
+ "id",
69
+ "description",
70
+ "label",
71
+ "leftSection",
72
+ "rightSection",
73
+ "children",
74
+ "dimmedSections",
75
+ "highlightQuery",
76
+ "highlightColor",
77
+ "closeSpotlightOnTrigger",
78
+ "onClick",
79
+ "onMouseDown",
80
+ "keywords",
81
+ "vars"
82
+ ]);
83
+ const ctx = useSpotlightContext();
84
+ const stylesApi = { classNames, styles };
85
+ const labelNode = highlightQuery && typeof label === "string" ? /* @__PURE__ */ React.createElement(
86
+ Highlight,
87
+ __spreadValues({
88
+ component: "span",
89
+ highlight: ctx.query,
90
+ color: highlightColor
91
+ }, ctx.getStyles("actionLabel", stylesApi)),
92
+ label
93
+ ) : /* @__PURE__ */ React.createElement("span", __spreadValues({}, ctx.getStyles("actionLabel", stylesApi)), label);
94
+ return /* @__PURE__ */ React.createElement(
95
+ UnstyledButton,
96
+ __spreadProps(__spreadValues(__spreadValues({
97
+ ref,
98
+ "data-action": true
99
+ }, ctx.getStyles("action", __spreadValues({ className, style }, stylesApi))), others), {
100
+ onMouseDown: (event) => {
101
+ event.preventDefault();
102
+ onMouseDown == null ? void 0 : onMouseDown(event);
103
+ },
104
+ onClick: (event) => {
105
+ onClick == null ? void 0 : onClick(event);
106
+ if (closeSpotlightOnTrigger != null ? closeSpotlightOnTrigger : ctx.closeOnActionTrigger) {
107
+ spotlightActions.close(ctx.store);
108
+ }
109
+ },
110
+ tabIndex: -1
111
+ }),
112
+ children || /* @__PURE__ */ React.createElement(React.Fragment, null, leftSection && /* @__PURE__ */ React.createElement(
113
+ Box,
114
+ __spreadValues({
115
+ component: "span",
116
+ mod: { position: "left", dimmed: dimmedSections }
117
+ }, ctx.getStyles("actionSection", stylesApi)),
118
+ leftSection
119
+ ), /* @__PURE__ */ React.createElement("span", __spreadValues({}, ctx.getStyles("actionBody", stylesApi)), labelNode, /* @__PURE__ */ React.createElement("span", __spreadValues({}, ctx.getStyles("actionDescription", stylesApi)), description)), rightSection && /* @__PURE__ */ React.createElement(
120
+ Box,
121
+ __spreadValues({
122
+ component: "span",
123
+ mod: { position: "right", dimmed: dimmedSections }
124
+ }, ctx.getStyles("actionSection", stylesApi)),
125
+ rightSection
126
+ ))
127
+ );
128
+ });
129
+ SpotlightAction.classes = classes;
130
+ SpotlightAction.displayName = "@mantine/spotlight/SpotlightAction";
131
+
132
+ export { SpotlightAction };
133
+ //# sourceMappingURL=SpotlightAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpotlightAction.js","sources":["../src/SpotlightAction.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n UnstyledButton,\n MantineColor,\n Highlight,\n} from '@mantine/core';\nimport classes from './Spotlight.module.css';\nimport { useSpotlightContext } from './Spotlight.context';\nimport { spotlightActions } from './spotlight.store';\n\nexport type SpotlightActionStylesNames =\n | 'action'\n | 'actionLabel'\n | 'actionDescription'\n | 'actionSection'\n | 'actionBody';\n\nexport interface SpotlightActionProps\n extends BoxProps,\n StylesApiProps<SpotlightActionFactory>,\n ElementProps<'button'> {\n /** Action label, pass string to use in default filter */\n label?: string;\n\n /** Action description, pass string to use in default filter */\n description?: string;\n\n /** Section displayed on the left side of the label, for example, icon */\n leftSection?: React.ReactNode;\n\n /** Section displayed on the right side of the label, for example, hotkey */\n rightSection?: React.ReactNode;\n\n /** Children override default action elements, if passed, label, description and sections are hidden */\n children?: React.ReactNode;\n\n /** Determines whether left and right sections should have dimmed styles, `true` by default */\n dimmedSections?: boolean;\n\n /** Determines whether search query should be highlighted in action label, `false` by default */\n highlightQuery?: boolean;\n\n /** Key of `theme.colors` of any valid CSS color that will be used to highlight search query, `'yellow'` by default */\n highlightColor?: MantineColor;\n\n /** Determines whether the spotlight should be closed when action is triggered, overrides `closeOnActionTrigger` prop set on `Spotlight` */\n closeSpotlightOnTrigger?: boolean;\n\n /** Keywords that are used for default filtering, not displayed anywhere, can be a string: \"react,router,javascript\" or an array: ['react', 'router', 'javascript'] */\n keywords?: string | string[];\n}\n\nexport type SpotlightActionFactory = Factory<{\n props: SpotlightActionProps;\n ref: HTMLButtonElement;\n stylesNames: SpotlightActionStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<SpotlightActionProps> = {\n dimmedSections: true,\n highlightQuery: false,\n};\n\nexport const SpotlightAction = factory<SpotlightActionFactory>((_props, ref) => {\n const props = useProps('SpotlightAction', defaultProps, _props);\n const {\n className,\n style,\n classNames,\n styles,\n id,\n description,\n label,\n leftSection,\n rightSection,\n children,\n dimmedSections,\n highlightQuery,\n highlightColor,\n closeSpotlightOnTrigger,\n onClick,\n onMouseDown,\n keywords,\n vars,\n ...others\n } = props;\n\n const ctx = useSpotlightContext();\n\n const stylesApi = { classNames, styles };\n\n const labelNode =\n highlightQuery && typeof label === 'string' ? (\n <Highlight\n component=\"span\"\n highlight={ctx.query}\n color={highlightColor}\n {...ctx.getStyles('actionLabel', stylesApi)}\n >\n {label}\n </Highlight>\n ) : (\n <span {...ctx.getStyles('actionLabel', stylesApi)}>{label}</span>\n );\n\n return (\n <UnstyledButton\n ref={ref}\n data-action\n {...ctx.getStyles('action', { className, style, ...stylesApi })}\n {...others}\n onMouseDown={(event) => {\n event.preventDefault();\n onMouseDown?.(event);\n }}\n onClick={(event) => {\n onClick?.(event);\n if (closeSpotlightOnTrigger ?? ctx.closeOnActionTrigger) {\n spotlightActions.close(ctx.store);\n }\n }}\n tabIndex={-1}\n >\n {children || (\n <>\n {leftSection && (\n <Box\n component=\"span\"\n mod={{ position: 'left', dimmed: dimmedSections }}\n {...ctx.getStyles('actionSection', stylesApi)}\n >\n {leftSection}\n </Box>\n )}\n\n <span {...ctx.getStyles('actionBody', stylesApi)}>\n {labelNode}\n <span {...ctx.getStyles('actionDescription', stylesApi)}>{description}</span>\n </span>\n\n {rightSection && (\n <Box\n component=\"span\"\n mod={{ position: 'right', dimmed: dimmedSections }}\n {...ctx.getStyles('actionSection', stylesApi)}\n >\n {rightSection}\n </Box>\n )}\n </>\n )}\n </UnstyledButton>\n );\n});\n\nSpotlightAction.classes = classes;\nSpotlightAction.displayName = '@mantine/spotlight/SpotlightAction';\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;AAYF,MAAM,YAAY,GAAG;AACrB,EAAE,cAAc,EAAE,IAAI;AACtB,EAAE,cAAc,EAAE,KAAK;AACvB,CAAC,CAAC;AACU,MAAC,eAAe,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AACxD,EAAE,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;AAClE,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;AACpB,IAAI,SAAS;AACb,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,EAAE;AACN,IAAI,WAAW;AACf,IAAI,KAAK;AACT,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,cAAc;AAClB,IAAI,cAAc;AAClB,IAAI,cAAc;AAClB,IAAI,uBAAuB;AAC3B,IAAI,OAAO;AACX,IAAI,WAAW;AACf,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,IAAI;AACR,IAAI,aAAa;AACjB,IAAI,OAAO;AACX,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,UAAU;AACd,IAAI,gBAAgB;AACpB,IAAI,gBAAgB;AACpB,IAAI,gBAAgB;AACpB,IAAI,yBAAyB;AAC7B,IAAI,SAAS;AACb,IAAI,aAAa;AACjB,IAAI,UAAU;AACd,IAAI,MAAM;AACV,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;AACpC,EAAE,MAAM,SAAS,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAC3C,EAAE,MAAM,SAAS,GAAG,cAAc,IAAI,OAAO,KAAK,KAAK,QAAQ,mBAAmB,KAAK,CAAC,aAAa;AACrG,IAAI,SAAS;AACb,IAAI,cAAc,CAAC;AACnB,MAAM,SAAS,EAAE,MAAM;AACvB,MAAM,SAAS,EAAE,GAAG,CAAC,KAAK;AAC1B,MAAM,KAAK,EAAE,cAAc;AAC3B,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AAC/C,IAAI,KAAK;AACT,GAAG,mBAAmB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtH,EAAE,uBAAuB,KAAK,CAAC,aAAa;AAC5C,IAAI,cAAc;AAClB,IAAI,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC;AAChD,MAAM,GAAG;AACT,MAAM,aAAa,EAAE,IAAI;AACzB,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;AAC3F,MAAM,WAAW,EAAE,CAAC,KAAK,KAAK;AAC9B,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AAC1D,OAAO;AACP,MAAM,OAAO,EAAE,CAAC,KAAK,KAAK;AAC1B,QAAQ,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAClD,QAAQ,IAAI,uBAAuB,IAAI,IAAI,GAAG,uBAAuB,GAAG,GAAG,CAAC,oBAAoB,EAAE;AAClG,UAAU,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5C,SAAS;AACT,OAAO;AACP,MAAM,QAAQ,EAAE,CAAC,CAAC;AAClB,KAAK,CAAC;AACN,IAAI,QAAQ,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,oBAAoB,KAAK,CAAC,aAAa;AAC5H,MAAM,GAAG;AACT,MAAM,cAAc,CAAC;AACrB,QAAQ,SAAS,EAAE,MAAM;AACzB,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE;AACzD,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;AACnD,MAAM,WAAW;AACjB,KAAK,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,YAAY,oBAAoB,KAAK,CAAC,aAAa;AAC3S,MAAM,GAAG;AACT,MAAM,cAAc,CAAC;AACrB,QAAQ,SAAS,EAAE,MAAM;AACzB,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE;AAC1D,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;AACnD,MAAM,YAAY;AAClB,KAAK,CAAC;AACN,GAAG,CAAC;AACJ,CAAC,EAAE;AACH,eAAe,CAAC,OAAO,GAAG,OAAO,CAAC;AAClC,eAAe,CAAC,WAAW,GAAG,oCAAoC;;;;"}
@@ -0,0 +1,59 @@
1
+ import React from 'react';
2
+ import { factory, useProps, Box } from '@mantine/core';
3
+ import classes from './Spotlight.module.css.js';
4
+ import { useSpotlightContext } from './Spotlight.context.js';
5
+
6
+ var __defProp = Object.defineProperty;
7
+ var __defProps = Object.defineProperties;
8
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
9
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
+ var __spreadValues = (a, b) => {
14
+ for (var prop in b || (b = {}))
15
+ if (__hasOwnProp.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ if (__getOwnPropSymbols)
18
+ for (var prop of __getOwnPropSymbols(b)) {
19
+ if (__propIsEnum.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ }
22
+ return a;
23
+ };
24
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
37
+ const defaultProps = {};
38
+ const SpotlightActionsGroup = factory((props, ref) => {
39
+ const _a = useProps(
40
+ "SpotlightActionsGroup",
41
+ defaultProps,
42
+ props
43
+ ), { className, style, styles, classNames, label, children } = _a, others = __objRest(_a, ["className", "style", "styles", "classNames", "label", "children"]);
44
+ const ctx = useSpotlightContext();
45
+ return /* @__PURE__ */ React.createElement(
46
+ Box,
47
+ __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, ctx.getStyles("actionsGroup", { className, style, classNames, styles })), {
48
+ ref
49
+ }), others), {
50
+ __vars: { "--spotlight-label": `'${label}'` }
51
+ }),
52
+ children
53
+ );
54
+ });
55
+ SpotlightActionsGroup.classes = classes;
56
+ SpotlightActionsGroup.displayName = "@mantine/core/SpotlightActionsGroup";
57
+
58
+ export { SpotlightActionsGroup };
59
+ //# sourceMappingURL=SpotlightActionsGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpotlightActionsGroup.js","sources":["../src/SpotlightActionsGroup.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n BoxProps,\n StylesApiProps,\n factory,\n ElementProps,\n useProps,\n Factory,\n} from '@mantine/core';\nimport classes from './Spotlight.module.css';\nimport { useSpotlightContext } from './Spotlight.context';\n\nexport type SpotlightActionsGroupStylesNames = 'actionsGroup';\n\nexport interface SpotlightActionsGroupProps\n extends BoxProps,\n StylesApiProps<SpotlightActionsGroupFactory>,\n ElementProps<'div'> {\n /** `Spotlight.Action` components */\n children?: React.ReactNode;\n\n /** Group label */\n label?: React.ReactNode;\n}\n\nexport type SpotlightActionsGroupFactory = Factory<{\n props: SpotlightActionsGroupProps;\n ref: HTMLDivElement;\n stylesNames: SpotlightActionsGroupStylesNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<SpotlightActionsGroupProps> = {};\n\nexport const SpotlightActionsGroup = factory<SpotlightActionsGroupFactory>((props, ref) => {\n const { className, style, styles, classNames, label, children, ...others } = useProps(\n 'SpotlightActionsGroup',\n defaultProps,\n props\n );\n const ctx = useSpotlightContext();\n\n return (\n <Box\n {...ctx.getStyles('actionsGroup', { className, style, classNames, styles })}\n ref={ref}\n {...others}\n __vars={{ '--spotlight-label': `'${label}'` }}\n >\n {children}\n </Box>\n );\n});\n\nSpotlightActionsGroup.classes = classes;\nSpotlightActionsGroup.displayName = '@mantine/core/SpotlightActionsGroup';\n"],"names":[],"mappings":"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"}