@mantine/spotlight 6.0.13 → 7.0.0-alpha.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/Spotlight.context.js +6 -11
- package/cjs/Spotlight.context.js.map +1 -1
- package/cjs/Spotlight.js +121 -0
- package/cjs/Spotlight.js.map +1 -0
- package/cjs/Spotlight.module.css.js +8 -0
- package/cjs/Spotlight.module.css.js.map +1 -0
- package/cjs/SpotlightAction.js +141 -0
- package/cjs/SpotlightAction.js.map +1 -0
- package/cjs/SpotlightActionsGroup.js +67 -0
- package/cjs/SpotlightActionsGroup.js.map +1 -0
- package/cjs/SpotlightActionsList.js +74 -0
- package/cjs/SpotlightActionsList.js.map +1 -0
- package/cjs/SpotlightEmpty.js +61 -0
- package/cjs/SpotlightEmpty.js.map +1 -0
- package/cjs/SpotlightFooter.js +61 -0
- package/cjs/SpotlightFooter.js.map +1 -0
- package/cjs/SpotlightRoot.js +178 -0
- package/cjs/SpotlightRoot.js.map +1 -0
- package/cjs/SpotlightSearch.js +89 -0
- package/cjs/SpotlightSearch.js.map +1 -0
- package/cjs/default-spotlight-filter.js +76 -0
- package/cjs/default-spotlight-filter.js.map +1 -0
- package/cjs/get-hotkeys.js +19 -0
- package/cjs/get-hotkeys.js.map +1 -0
- package/cjs/index.css +141 -0
- package/cjs/index.js +23 -12
- package/cjs/index.js.map +1 -1
- package/cjs/spotlight.store.js +155 -0
- package/cjs/spotlight.store.js.map +1 -0
- package/esm/Spotlight.context.js +5 -10
- package/esm/Spotlight.context.js.map +1 -1
- package/esm/Spotlight.js +113 -0
- package/esm/Spotlight.js.map +1 -0
- package/esm/Spotlight.module.css.js +4 -0
- package/esm/Spotlight.module.css.js.map +1 -0
- package/esm/SpotlightAction.js +133 -0
- package/esm/SpotlightAction.js.map +1 -0
- package/esm/SpotlightActionsGroup.js +59 -0
- package/esm/SpotlightActionsGroup.js.map +1 -0
- package/esm/SpotlightActionsList.js +66 -0
- package/esm/SpotlightActionsList.js.map +1 -0
- package/esm/SpotlightEmpty.js +53 -0
- package/esm/SpotlightEmpty.js.map +1 -0
- package/esm/SpotlightFooter.js +53 -0
- package/esm/SpotlightFooter.js.map +1 -0
- package/esm/SpotlightRoot.js +170 -0
- package/esm/SpotlightRoot.js.map +1 -0
- package/esm/SpotlightSearch.js +81 -0
- package/esm/SpotlightSearch.js.map +1 -0
- package/esm/default-spotlight-filter.js +72 -0
- package/esm/default-spotlight-filter.js.map +1 -0
- package/esm/get-hotkeys.js +15 -0
- package/esm/get-hotkeys.js.map +1 -0
- package/esm/index.css +141 -0
- package/esm/index.js +9 -3
- package/esm/index.js.map +1 -1
- package/esm/spotlight.store.js +130 -0
- package/esm/spotlight.store.js.map +1 -0
- package/lib/Spotlight.context.d.ts +13 -22
- package/lib/Spotlight.context.d.ts.map +1 -1
- package/lib/Spotlight.d.ts +68 -0
- package/lib/Spotlight.d.ts.map +1 -0
- package/lib/SpotlightAction.d.ts +38 -0
- package/lib/SpotlightAction.d.ts.map +1 -0
- package/lib/SpotlightActionsGroup.d.ts +22 -0
- package/lib/SpotlightActionsGroup.d.ts.map +1 -0
- package/lib/SpotlightActionsList.d.ts +17 -0
- package/lib/SpotlightActionsList.d.ts.map +1 -0
- package/lib/SpotlightEmpty.d.ts +17 -0
- package/lib/SpotlightEmpty.d.ts.map +1 -0
- package/lib/SpotlightFooter.d.ts +17 -0
- package/lib/SpotlightFooter.d.ts.map +1 -0
- package/lib/SpotlightRoot.d.ts +45 -0
- package/lib/SpotlightRoot.d.ts.map +1 -0
- package/lib/SpotlightSearch.d.ts +17 -0
- package/lib/SpotlightSearch.d.ts.map +1 -0
- package/lib/default-spotlight-filter.d.ts +3 -0
- package/lib/default-spotlight-filter.d.ts.map +1 -0
- package/lib/get-hotkeys.d.ts +4 -0
- package/lib/get-hotkeys.d.ts.map +1 -0
- package/lib/index.d.ts +17 -7
- package/lib/index.d.ts.map +1 -1
- package/lib/spotlight.store.d.ts +54 -0
- package/lib/spotlight.store.d.ts.map +1 -0
- package/package.json +29 -11
- package/cjs/ActionsList/ActionsList.js +0 -105
- package/cjs/ActionsList/ActionsList.js.map +0 -1
- package/cjs/ActionsList/ActionsList.styles.js +0 -23
- package/cjs/ActionsList/ActionsList.styles.js.map +0 -1
- package/cjs/DefaultAction/DefaultAction.js +0 -90
- package/cjs/DefaultAction/DefaultAction.js.map +0 -1
- package/cjs/DefaultAction/DefaultAction.styles.js +0 -66
- package/cjs/DefaultAction/DefaultAction.styles.js.map +0 -1
- package/cjs/Spotlight/Spotlight.js +0 -214
- package/cjs/Spotlight/Spotlight.js.map +0 -1
- package/cjs/Spotlight/Spotlight.styles.js +0 -24
- package/cjs/Spotlight/Spotlight.styles.js.map +0 -1
- package/cjs/Spotlight/filter-actions/filter-actions.js +0 -29
- package/cjs/Spotlight/filter-actions/filter-actions.js.map +0 -1
- package/cjs/SpotlightProvider.js +0 -131
- package/cjs/SpotlightProvider.js.map +0 -1
- package/cjs/events.js +0 -32
- package/cjs/events.js.map +0 -1
- package/cjs/use-actions-state/use-actions-state.js +0 -61
- package/cjs/use-actions-state/use-actions-state.js.map +0 -1
- package/cjs/use-spotlight-shortcuts/use-spotlight-shortcuts.js +0 -22
- package/cjs/use-spotlight-shortcuts/use-spotlight-shortcuts.js.map +0 -1
- package/esm/ActionsList/ActionsList.js +0 -97
- package/esm/ActionsList/ActionsList.js.map +0 -1
- package/esm/ActionsList/ActionsList.styles.js +0 -19
- package/esm/ActionsList/ActionsList.styles.js.map +0 -1
- package/esm/DefaultAction/DefaultAction.js +0 -82
- package/esm/DefaultAction/DefaultAction.js.map +0 -1
- package/esm/DefaultAction/DefaultAction.styles.js +0 -62
- package/esm/DefaultAction/DefaultAction.styles.js.map +0 -1
- package/esm/Spotlight/Spotlight.js +0 -206
- package/esm/Spotlight/Spotlight.js.map +0 -1
- package/esm/Spotlight/Spotlight.styles.js +0 -20
- package/esm/Spotlight/Spotlight.styles.js.map +0 -1
- package/esm/Spotlight/filter-actions/filter-actions.js +0 -25
- package/esm/Spotlight/filter-actions/filter-actions.js.map +0 -1
- package/esm/SpotlightProvider.js +0 -123
- package/esm/SpotlightProvider.js.map +0 -1
- package/esm/events.js +0 -20
- package/esm/events.js.map +0 -1
- package/esm/use-actions-state/use-actions-state.js +0 -57
- package/esm/use-actions-state/use-actions-state.js.map +0 -1
- package/esm/use-spotlight-shortcuts/use-spotlight-shortcuts.js +0 -17
- package/esm/use-spotlight-shortcuts/use-spotlight-shortcuts.js.map +0 -1
- package/lib/ActionsList/ActionsList.d.ts +0 -33
- package/lib/ActionsList/ActionsList.d.ts.map +0 -1
- package/lib/ActionsList/ActionsList.styles.d.ts +0 -11
- package/lib/ActionsList/ActionsList.styles.d.ts.map +0 -1
- package/lib/DefaultAction/DefaultAction.d.ts +0 -19
- package/lib/DefaultAction/DefaultAction.d.ts.map +0 -1
- package/lib/DefaultAction/DefaultAction.styles.d.ts +0 -17
- package/lib/DefaultAction/DefaultAction.styles.d.ts.map +0 -1
- package/lib/Spotlight/Spotlight.d.ts +0 -51
- package/lib/Spotlight/Spotlight.d.ts.map +0 -1
- package/lib/Spotlight/Spotlight.styles.d.ts +0 -10
- package/lib/Spotlight/Spotlight.styles.d.ts.map +0 -1
- package/lib/Spotlight/filter-actions/filter-actions.d.ts +0 -3
- package/lib/Spotlight/filter-actions/filter-actions.d.ts.map +0 -1
- package/lib/SpotlightProvider.d.ts +0 -34
- package/lib/SpotlightProvider.d.ts.map +0 -1
- package/lib/events.d.ts +0 -25
- package/lib/events.d.ts.map +0 -1
- package/lib/types.d.ts +0 -22
- package/lib/types.d.ts.map +0 -1
- package/lib/use-actions-state/use-actions-state.d.ts +0 -12
- package/lib/use-actions-state/use-actions-state.d.ts.map +0 -1
- package/lib/use-spotlight-shortcuts/use-spotlight-shortcuts.d.ts +0 -4
- 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
|
|
6
|
-
var
|
|
7
|
-
var
|
|
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.
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
14
|
-
exports.openSpotlight =
|
|
15
|
-
exports.
|
|
16
|
-
exports.
|
|
17
|
-
exports.
|
|
18
|
-
exports.
|
|
19
|
-
exports.
|
|
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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"}
|
package/esm/Spotlight.context.js
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createSafeContext } from '@mantine/core';
|
|
2
2
|
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
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 {
|
|
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 {
|
|
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;;;;"}
|
package/esm/Spotlight.js
ADDED
|
@@ -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":"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"}
|
|
@@ -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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"}
|