@bigbinary/neeto-tags-frontend 2.2.31 → 2.2.32
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/app/javascript/src/translations/en.json +3 -1
- package/dist/.ready +1 -1
- package/dist/cjs/v2/TagsComponent.js +303 -26
- package/dist/cjs/v2/TagsComponent.js.map +1 -1
- package/dist/cjs/v2/index.js +1 -0
- package/dist/cjs/v2/index.js.map +1 -1
- package/dist/v2/TagsComponent.js +307 -30
- package/dist/v2/TagsComponent.js.map +1 -1
- package/dist/v2/index.js +1 -0
- package/dist/v2/index.js.map +1 -1
- package/package.json +9 -9
- package/types.d.ts +1 -0
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"mergeTag_one": "Merge tag",
|
|
29
29
|
"mergeTag_other": "Merge tags",
|
|
30
30
|
"name": "Name",
|
|
31
|
+
"noTagsFound": "No tags found",
|
|
31
32
|
"style": "Style",
|
|
32
33
|
"tag_one": "Tag",
|
|
33
34
|
"tag_other": "Tags"
|
|
@@ -42,7 +43,8 @@
|
|
|
42
43
|
},
|
|
43
44
|
"placeholder": {
|
|
44
45
|
"selectOrCreateTag": "Select or create tag",
|
|
45
|
-
"searchTags": "Search tags"
|
|
46
|
+
"searchTags": "Search tags",
|
|
47
|
+
"searchOrCreateTags": "Search or create tags"
|
|
46
48
|
},
|
|
47
49
|
"link": {
|
|
48
50
|
"manageAllTags": "Manage all tags"
|
package/dist/.ready
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Built at 2026-
|
|
1
|
+
Built at 2026-09-09T04:39:41.859Z
|
|
@@ -14,6 +14,7 @@ var reactI18next = require('react-i18next');
|
|
|
14
14
|
var i18next = require('i18next');
|
|
15
15
|
var classNames = require('classnames');
|
|
16
16
|
var jsxRuntime = require('react/jsx-runtime');
|
|
17
|
+
var reactDom = require('react-dom');
|
|
17
18
|
var constants$1 = require('../../constants-BP1u7ku6.js');
|
|
18
19
|
|
|
19
20
|
var KEYBOARD_SHORTCUTS = {
|
|
@@ -22,9 +23,12 @@ var KEYBOARD_SHORTCUTS = {
|
|
|
22
23
|
description: i18next.t("neetoTags.shortcuts.addTag")
|
|
23
24
|
}
|
|
24
25
|
};
|
|
26
|
+
var POPOVER_PANEL_WIDTH = 256;
|
|
27
|
+
var POPOVER_VIEWPORT_MARGIN = 8;
|
|
28
|
+
var POPOVER_TRIGGER_GAP = 4;
|
|
25
29
|
|
|
26
|
-
function ownKeys$
|
|
27
|
-
function _objectSpread$
|
|
30
|
+
function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
31
|
+
function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
28
32
|
var Title = function Title(_ref) {
|
|
29
33
|
var _ref$titleProps = _ref.titleProps,
|
|
30
34
|
titleProps = _ref$titleProps === void 0 ? {} : _ref$titleProps,
|
|
@@ -56,7 +60,7 @@ var Title = function Title(_ref) {
|
|
|
56
60
|
}, [didStartUpdate, isUpdating]);
|
|
57
61
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
58
62
|
className: "flex items-center gap-2",
|
|
59
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, _objectSpread$
|
|
63
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, _objectSpread$5(_objectSpread$5({}, titleProps), {}, {
|
|
60
64
|
children: tagsTitle
|
|
61
65
|
})), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
62
66
|
className: "inline-flex h-6 items-center",
|
|
@@ -84,8 +88,8 @@ var TitleActionBlock = function TitleActionBlock(_ref) {
|
|
|
84
88
|
});
|
|
85
89
|
};
|
|
86
90
|
|
|
87
|
-
function ownKeys$
|
|
88
|
-
function _objectSpread$
|
|
91
|
+
function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
92
|
+
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
89
93
|
var Container = function Container(_ref) {
|
|
90
94
|
var isMetadataBlock = _ref.isMetadataBlock,
|
|
91
95
|
containerProps = _ref.containerProps,
|
|
@@ -95,12 +99,12 @@ var Container = function Container(_ref) {
|
|
|
95
99
|
isTagsBodyVisible = _ref.isTagsBodyVisible,
|
|
96
100
|
bodyProps = _ref.bodyProps;
|
|
97
101
|
if (isMetadataBlock) {
|
|
98
|
-
return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread$
|
|
102
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread$4(_objectSpread$4({
|
|
99
103
|
className: "space-y-4 rounded-lg border border-border bg-background p-4"
|
|
100
104
|
}, containerProps), {}, {
|
|
101
105
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
102
106
|
className: "flex items-center justify-between",
|
|
103
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Title, _objectSpread$
|
|
107
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Title, _objectSpread$4({}, titleComponentProps)), /*#__PURE__*/jsxRuntime.jsx(TitleActionBlock, _objectSpread$4({}, actionBlockProps))]
|
|
104
108
|
}), isTagsBodyVisible && children]
|
|
105
109
|
}));
|
|
106
110
|
}
|
|
@@ -109,14 +113,14 @@ var Container = function Container(_ref) {
|
|
|
109
113
|
var onHeaderClick = function onHeaderClick() {
|
|
110
114
|
!isDisabled && setIsTagsDropdownVisible(ramda.not);
|
|
111
115
|
};
|
|
112
|
-
return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread$
|
|
116
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread$4(_objectSpread$4({
|
|
113
117
|
className: "flex w-full flex-col items-start gap-2"
|
|
114
118
|
}, containerProps), {}, {
|
|
115
119
|
children: [titleComponentProps.showTitleBar && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
116
120
|
className: classNames("flex w-full cursor-pointer items-center justify-between gap-2 text-foreground", titleComponentProps.containerClassName),
|
|
117
121
|
onClick: onHeaderClick,
|
|
118
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Title, _objectSpread$
|
|
119
|
-
}), isTagsBodyVisible && /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$
|
|
122
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Title, _objectSpread$4({}, titleComponentProps)), titleComponentProps.showAddTagsOnTitle && /*#__PURE__*/jsxRuntime.jsx(TitleActionBlock, _objectSpread$4({}, actionBlockProps))]
|
|
123
|
+
}), isTagsBodyVisible && /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$4(_objectSpread$4({
|
|
120
124
|
className: "w-full rounded-lg border border-border bg-background p-4"
|
|
121
125
|
}, bodyProps), {}, {
|
|
122
126
|
children: children
|
|
@@ -124,6 +128,265 @@ var Container = function Container(_ref) {
|
|
|
124
128
|
}));
|
|
125
129
|
};
|
|
126
130
|
|
|
131
|
+
function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
132
|
+
function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
133
|
+
var PopoverTagsSelector = function PopoverTagsSelector(_ref) {
|
|
134
|
+
var _coords$top, _coords$left;
|
|
135
|
+
var open = _ref.open,
|
|
136
|
+
onOpenChange = _ref.onOpenChange,
|
|
137
|
+
tags = _ref.tags,
|
|
138
|
+
onChange = _ref.onChange,
|
|
139
|
+
onCreateOption = _ref.onCreateOption,
|
|
140
|
+
_ref$buttonProps = _ref.buttonProps,
|
|
141
|
+
buttonProps = _ref$buttonProps === void 0 ? {} : _ref$buttonProps,
|
|
142
|
+
_ref$isDisabled = _ref.isDisabled,
|
|
143
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled;
|
|
144
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
145
|
+
t = _useTranslation.t;
|
|
146
|
+
var triggerRef = react.useRef(null);
|
|
147
|
+
var panelRef = react.useRef(null);
|
|
148
|
+
var rafRef = react.useRef(null);
|
|
149
|
+
var listboxId = react.useId();
|
|
150
|
+
var _useState = react.useState(""),
|
|
151
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
152
|
+
query = _useState2[0],
|
|
153
|
+
setQuery = _useState2[1];
|
|
154
|
+
var _useState3 = react.useState(0),
|
|
155
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
156
|
+
activeIndex = _useState4[0],
|
|
157
|
+
setActiveIndex = _useState4[1];
|
|
158
|
+
// `null` until measured, so the panel stays hidden for its first paint and
|
|
159
|
+
// never flashes at the top-left corner before it is positioned.
|
|
160
|
+
var _useState5 = react.useState(null),
|
|
161
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
162
|
+
coords = _useState6[0],
|
|
163
|
+
setCoords = _useState6[1];
|
|
164
|
+
var trimmedQuery = query.trim();
|
|
165
|
+
var filteredTags = react.useMemo(function () {
|
|
166
|
+
if (!trimmedQuery) return tags;
|
|
167
|
+
var search = trimmedQuery.toLowerCase();
|
|
168
|
+
return tags.filter(function (_ref2) {
|
|
169
|
+
var label = _ref2.label;
|
|
170
|
+
return label.toLowerCase().includes(search);
|
|
171
|
+
});
|
|
172
|
+
}, [tags, trimmedQuery]);
|
|
173
|
+
var canCreate = neetoCist.isNotEmpty(trimmedQuery) && !tags.some(function (_ref3) {
|
|
174
|
+
var label = _ref3.label;
|
|
175
|
+
return label.toLowerCase() === trimmedQuery.toLowerCase();
|
|
176
|
+
});
|
|
177
|
+
var optionCount = filteredTags.length + (canCreate ? 1 : 0);
|
|
178
|
+
var optionId = function optionId(index) {
|
|
179
|
+
return "".concat(listboxId, "-option-").concat(index);
|
|
180
|
+
};
|
|
181
|
+
var focusTrigger = function focusTrigger() {
|
|
182
|
+
var _triggerRef$current;
|
|
183
|
+
return (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 || (_triggerRef$current = _triggerRef$current.querySelector("button")) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.focus({
|
|
184
|
+
preventScroll: true
|
|
185
|
+
});
|
|
186
|
+
};
|
|
187
|
+
var close = react.useCallback(function () {
|
|
188
|
+
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
189
|
+
_ref4$restoreFocus = _ref4.restoreFocus,
|
|
190
|
+
restoreFocus = _ref4$restoreFocus === void 0 ? false : _ref4$restoreFocus;
|
|
191
|
+
setQuery("");
|
|
192
|
+
setActiveIndex(0);
|
|
193
|
+
setCoords(null);
|
|
194
|
+
onOpenChange(false);
|
|
195
|
+
// Return focus to the trigger only for keyboard / selection dismissals;
|
|
196
|
+
// an outside click should leave focus wherever the user clicked.
|
|
197
|
+
if (restoreFocus) focusTrigger();
|
|
198
|
+
}, [onOpenChange]);
|
|
199
|
+
var handleSelect = function handleSelect(tag) {
|
|
200
|
+
onChange(tag);
|
|
201
|
+
close({
|
|
202
|
+
restoreFocus: true
|
|
203
|
+
});
|
|
204
|
+
};
|
|
205
|
+
var handleCreate = function handleCreate() {
|
|
206
|
+
onCreateOption(trimmedQuery);
|
|
207
|
+
close({
|
|
208
|
+
restoreFocus: true
|
|
209
|
+
});
|
|
210
|
+
};
|
|
211
|
+
var handleQueryChange = function handleQueryChange(event) {
|
|
212
|
+
setQuery(event.target.value);
|
|
213
|
+
setActiveIndex(0);
|
|
214
|
+
};
|
|
215
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
216
|
+
if (event.key === "Escape") {
|
|
217
|
+
event.preventDefault();
|
|
218
|
+
close({
|
|
219
|
+
restoreFocus: true
|
|
220
|
+
});
|
|
221
|
+
} else if (event.key === "ArrowDown" && optionCount > 0) {
|
|
222
|
+
event.preventDefault();
|
|
223
|
+
setActiveIndex(function (previous) {
|
|
224
|
+
return (previous + 1) % optionCount;
|
|
225
|
+
});
|
|
226
|
+
} else if (event.key === "ArrowUp" && optionCount > 0) {
|
|
227
|
+
event.preventDefault();
|
|
228
|
+
setActiveIndex(function (previous) {
|
|
229
|
+
return (previous - 1 + optionCount) % optionCount;
|
|
230
|
+
});
|
|
231
|
+
} else if (event.key === "Enter") {
|
|
232
|
+
event.preventDefault();
|
|
233
|
+
if (activeIndex < filteredTags.length) {
|
|
234
|
+
handleSelect(filteredTags[activeIndex]);
|
|
235
|
+
} else if (canCreate) {
|
|
236
|
+
handleCreate();
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
var updatePosition = react.useCallback(function () {
|
|
241
|
+
var _panelRef$current$off, _panelRef$current;
|
|
242
|
+
var trigger = triggerRef.current;
|
|
243
|
+
if (!trigger) return;
|
|
244
|
+
var rect = trigger.getBoundingClientRect();
|
|
245
|
+
var panelHeight = (_panelRef$current$off = (_panelRef$current = panelRef.current) === null || _panelRef$current === void 0 ? void 0 : _panelRef$current.offsetHeight) !== null && _panelRef$current$off !== void 0 ? _panelRef$current$off : 0;
|
|
246
|
+
var left = Math.max(POPOVER_VIEWPORT_MARGIN, Math.min(rect.left, window.innerWidth - POPOVER_PANEL_WIDTH - POPOVER_VIEWPORT_MARGIN));
|
|
247
|
+
var belowTop = rect.bottom + POPOVER_TRIGGER_GAP;
|
|
248
|
+
var overflowsBelow = belowTop + panelHeight + POPOVER_VIEWPORT_MARGIN > window.innerHeight;
|
|
249
|
+
var fitsAbove = rect.top - POPOVER_TRIGGER_GAP - panelHeight > POPOVER_VIEWPORT_MARGIN;
|
|
250
|
+
var top = overflowsBelow && fitsAbove ? rect.top - POPOVER_TRIGGER_GAP - panelHeight : belowTop;
|
|
251
|
+
setCoords({
|
|
252
|
+
top: top,
|
|
253
|
+
left: left
|
|
254
|
+
});
|
|
255
|
+
}, []);
|
|
256
|
+
|
|
257
|
+
// Position on open and whenever the panel's height changes (list filtering),
|
|
258
|
+
// synchronously before paint so the panel is never seen mispositioned.
|
|
259
|
+
react.useLayoutEffect(function () {
|
|
260
|
+
if (open) updatePosition();
|
|
261
|
+
}, [open, optionCount, updatePosition]);
|
|
262
|
+
react.useEffect(function () {
|
|
263
|
+
var _panelRef$current2;
|
|
264
|
+
if (!open) return undefined;
|
|
265
|
+
|
|
266
|
+
// Focus the search field without scrolling the surrounding column.
|
|
267
|
+
(_panelRef$current2 = panelRef.current) === null || _panelRef$current2 === void 0 || (_panelRef$current2 = _panelRef$current2.querySelector("input")) === null || _panelRef$current2 === void 0 || _panelRef$current2.focus({
|
|
268
|
+
preventScroll: true
|
|
269
|
+
});
|
|
270
|
+
var handleClickOutside = function handleClickOutside(event) {
|
|
271
|
+
var _triggerRef$current2, _panelRef$current3;
|
|
272
|
+
if ((_triggerRef$current2 = triggerRef.current) !== null && _triggerRef$current2 !== void 0 && _triggerRef$current2.contains(event.target)) return;
|
|
273
|
+
if ((_panelRef$current3 = panelRef.current) !== null && _panelRef$current3 !== void 0 && _panelRef$current3.contains(event.target)) return;
|
|
274
|
+
close();
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
// Coalesce scroll/resize repositioning into one measurement per frame to
|
|
278
|
+
// avoid layout thrashing on busy scroll containers.
|
|
279
|
+
var scheduleReposition = function scheduleReposition() {
|
|
280
|
+
if (rafRef.current) return;
|
|
281
|
+
rafRef.current = window.requestAnimationFrame(function () {
|
|
282
|
+
rafRef.current = null;
|
|
283
|
+
updatePosition();
|
|
284
|
+
});
|
|
285
|
+
};
|
|
286
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
287
|
+
window.addEventListener("resize", scheduleReposition);
|
|
288
|
+
window.addEventListener("scroll", scheduleReposition, true);
|
|
289
|
+
return function () {
|
|
290
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
291
|
+
window.removeEventListener("resize", scheduleReposition);
|
|
292
|
+
window.removeEventListener("scroll", scheduleReposition, true);
|
|
293
|
+
if (rafRef.current) window.cancelAnimationFrame(rafRef.current);
|
|
294
|
+
rafRef.current = null;
|
|
295
|
+
};
|
|
296
|
+
}, [open, close, updatePosition]);
|
|
297
|
+
var optionClassName = function optionClassName(isActive) {
|
|
298
|
+
return classNames("flex w-full cursor-pointer items-center gap-2 rounded px-2 py-1.5 text-start text-sm", isActive ? "bg-accent text-accent-foreground" : "hover:bg-accent");
|
|
299
|
+
};
|
|
300
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
301
|
+
className: "inline-block",
|
|
302
|
+
ref: triggerRef,
|
|
303
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, _objectSpread$3({
|
|
304
|
+
"aria-expanded": open,
|
|
305
|
+
"aria-haspopup": "listbox",
|
|
306
|
+
disabled: isDisabled,
|
|
307
|
+
icon: lucideReact.Plus,
|
|
308
|
+
label: t("neetoTags.button.addTag", constants.SINGULAR),
|
|
309
|
+
size: "sm",
|
|
310
|
+
variant: "link",
|
|
311
|
+
onClick: function onClick() {
|
|
312
|
+
return onOpenChange(!open);
|
|
313
|
+
}
|
|
314
|
+
}, buttonProps)), open && /*#__PURE__*/reactDom.createPortal(/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
315
|
+
className: "bg-popover text-popover-foreground border-border fixed z-50 overflow-hidden rounded-md border shadow-md",
|
|
316
|
+
ref: panelRef,
|
|
317
|
+
style: {
|
|
318
|
+
top: (_coords$top = coords === null || coords === void 0 ? void 0 : coords.top) !== null && _coords$top !== void 0 ? _coords$top : 0,
|
|
319
|
+
left: (_coords$left = coords === null || coords === void 0 ? void 0 : coords.left) !== null && _coords$left !== void 0 ? _coords$left : 0,
|
|
320
|
+
width: POPOVER_PANEL_WIDTH,
|
|
321
|
+
visibility: coords ? "visible" : "hidden"
|
|
322
|
+
},
|
|
323
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
324
|
+
className: "border-border border-b p-2",
|
|
325
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Input, {
|
|
326
|
+
"aria-autocomplete": "list",
|
|
327
|
+
"aria-controls": listboxId,
|
|
328
|
+
"aria-expanded": open,
|
|
329
|
+
placeholder: t("neetoTags.placeholder.searchOrCreateTags"),
|
|
330
|
+
prefix: /*#__PURE__*/jsxRuntime.jsx(lucideReact.Search, {
|
|
331
|
+
size: 14
|
|
332
|
+
}),
|
|
333
|
+
role: "combobox",
|
|
334
|
+
size: "small",
|
|
335
|
+
value: query,
|
|
336
|
+
"aria-activedescendant": optionCount > 0 ? optionId(activeIndex) : undefined,
|
|
337
|
+
onChange: handleQueryChange,
|
|
338
|
+
onKeyDown: handleKeyDown
|
|
339
|
+
})
|
|
340
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
341
|
+
className: "max-h-56 overflow-y-auto p-1",
|
|
342
|
+
id: listboxId,
|
|
343
|
+
role: "listbox",
|
|
344
|
+
children: [filteredTags.map(function (tag, index) {
|
|
345
|
+
return /*#__PURE__*/jsxRuntime.jsx("button", {
|
|
346
|
+
"aria-selected": index === activeIndex,
|
|
347
|
+
className: optionClassName(index === activeIndex),
|
|
348
|
+
id: optionId(index),
|
|
349
|
+
role: "option",
|
|
350
|
+
type: "button",
|
|
351
|
+
onClick: function onClick() {
|
|
352
|
+
return handleSelect(tag);
|
|
353
|
+
},
|
|
354
|
+
onMouseEnter: function onMouseEnter() {
|
|
355
|
+
return setActiveIndex(index);
|
|
356
|
+
},
|
|
357
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Badge, {
|
|
358
|
+
label: tag.label,
|
|
359
|
+
variant: constants$1.TAG_STYLE_TO_BADGE_VARIANT[tag.style] || "secondary"
|
|
360
|
+
})
|
|
361
|
+
}, tag.value);
|
|
362
|
+
}), canCreate && /*#__PURE__*/jsxRuntime.jsxs("button", {
|
|
363
|
+
"aria-selected": activeIndex === filteredTags.length,
|
|
364
|
+
id: optionId(filteredTags.length),
|
|
365
|
+
role: "option",
|
|
366
|
+
type: "button",
|
|
367
|
+
className: optionClassName(activeIndex === filteredTags.length),
|
|
368
|
+
onClick: handleCreate,
|
|
369
|
+
onMouseEnter: function onMouseEnter() {
|
|
370
|
+
return setActiveIndex(filteredTags.length);
|
|
371
|
+
},
|
|
372
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(lucideReact.Plus, {
|
|
373
|
+
size: 14
|
|
374
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
375
|
+
className: "truncate",
|
|
376
|
+
children: [t("neetoTags.button.createNewTag"), ": ", /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
377
|
+
className: "font-medium",
|
|
378
|
+
children: trimmedQuery
|
|
379
|
+
})]
|
|
380
|
+
})]
|
|
381
|
+
}), optionCount === 0 && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
382
|
+
className: "text-muted-foreground px-2 py-2 text-sm",
|
|
383
|
+
children: t("neetoTags.common.noTagsFound")
|
|
384
|
+
})]
|
|
385
|
+
})]
|
|
386
|
+
}), document.body)]
|
|
387
|
+
});
|
|
388
|
+
};
|
|
389
|
+
|
|
127
390
|
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
128
391
|
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
129
392
|
var TagsList = function TagsList(_ref) {
|
|
@@ -232,7 +495,9 @@ var Tags = function Tags(_ref) {
|
|
|
232
495
|
_ref$isDisabled = _ref.isDisabled,
|
|
233
496
|
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
|
|
234
497
|
_ref$isMetadataBlock = _ref.isMetadataBlock,
|
|
235
|
-
isMetadataBlock = _ref$isMetadataBlock === void 0 ? false : _ref$isMetadataBlock
|
|
498
|
+
isMetadataBlock = _ref$isMetadataBlock === void 0 ? false : _ref$isMetadataBlock,
|
|
499
|
+
_ref$pickerVariant = _ref.pickerVariant,
|
|
500
|
+
pickerVariant = _ref$pickerVariant === void 0 ? "inline" : _ref$pickerVariant;
|
|
236
501
|
var _useTranslation = reactI18next.useTranslation(),
|
|
237
502
|
t = _useTranslation.t;
|
|
238
503
|
var _useState = react.useState(false),
|
|
@@ -263,8 +528,13 @@ var Tags = function Tags(_ref) {
|
|
|
263
528
|
// @ts-ignore
|
|
264
529
|
showSuccessToastr && utils.showThumbsUpToastr();
|
|
265
530
|
};
|
|
531
|
+
var handleCreateTag = function handleCreateTag(tagName) {
|
|
532
|
+
setIsTagsDropdownVisible(false);
|
|
533
|
+
onTagCreate(tagName);
|
|
534
|
+
};
|
|
535
|
+
var isPopoverPicker = pickerVariant === "popover";
|
|
266
536
|
var isAddTagsButtonVisible = !showAddTagsOnTitle && !isTagsDropdownVisible;
|
|
267
|
-
var isTagsBodyVisible = neetoCist.isNotEmpty(selectedTags) || isTagsDropdownVisible || isAddTagsButtonVisible;
|
|
537
|
+
var isTagsBodyVisible = neetoCist.isNotEmpty(selectedTags) || isTagsDropdownVisible || isAddTagsButtonVisible || isPopoverPicker;
|
|
268
538
|
var titleComponentProps = {
|
|
269
539
|
isLoading: isLoading,
|
|
270
540
|
isUpdating: isUpdating,
|
|
@@ -287,10 +557,7 @@ var Tags = function Tags(_ref) {
|
|
|
287
557
|
defaultMenuIsOpen: showAddTagsOnTitle,
|
|
288
558
|
tags: tags,
|
|
289
559
|
onChange: handleAddExistingTag,
|
|
290
|
-
onCreateOption:
|
|
291
|
-
setIsTagsDropdownVisible(false);
|
|
292
|
-
onTagCreate(tagName);
|
|
293
|
-
},
|
|
560
|
+
onCreateOption: handleCreateTag,
|
|
294
561
|
selectProps: selectProps
|
|
295
562
|
};
|
|
296
563
|
return /*#__PURE__*/jsxRuntime.jsxs(Container, {
|
|
@@ -300,16 +567,26 @@ var Tags = function Tags(_ref) {
|
|
|
300
567
|
isMetadataBlock: isMetadataBlock,
|
|
301
568
|
isTagsBodyVisible: isTagsBodyVisible,
|
|
302
569
|
titleComponentProps: titleComponentProps,
|
|
303
|
-
children: [neetoCist.isNotEmpty(selectedTags) && /*#__PURE__*/jsxRuntime.jsx(TagsList, _objectSpread({}, tagsListProps)),
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
570
|
+
children: [neetoCist.isNotEmpty(selectedTags) && /*#__PURE__*/jsxRuntime.jsx(TagsList, _objectSpread({}, tagsListProps)), isPopoverPicker ? /*#__PURE__*/jsxRuntime.jsx(PopoverTagsSelector, {
|
|
571
|
+
buttonProps: buttonProps,
|
|
572
|
+
isDisabled: isDisabled,
|
|
573
|
+
tags: tags,
|
|
574
|
+
open: isTagsDropdownVisible,
|
|
575
|
+
onChange: handleAddExistingTag,
|
|
576
|
+
onCreateOption: handleCreateTag,
|
|
577
|
+
onOpenChange: setIsTagsDropdownVisible
|
|
578
|
+
}) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
579
|
+
children: [isTagsDropdownVisible && /*#__PURE__*/jsxRuntime.jsx(TagsSelector, _objectSpread({}, tagsSelectorProps)), isAddTagsButtonVisible && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, _objectSpread({
|
|
580
|
+
disabled: isDisabled,
|
|
581
|
+
icon: lucideReact.Plus,
|
|
582
|
+
label: t("neetoTags.button.addTag", constants.SINGULAR),
|
|
583
|
+
size: "sm",
|
|
584
|
+
variant: "link",
|
|
585
|
+
onClick: function onClick() {
|
|
586
|
+
return setIsTagsDropdownVisible(true);
|
|
587
|
+
}
|
|
588
|
+
}, buttonProps))]
|
|
589
|
+
})]
|
|
313
590
|
});
|
|
314
591
|
};
|
|
315
592
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagsComponent.js","sources":["../../../app/javascript/src/v2/components/Tags/constants.js","../../../app/javascript/src/v2/components/Tags/Title.jsx","../../../app/javascript/src/v2/components/Tags/TitleActionBlock.jsx","../../../app/javascript/src/v2/components/Tags/Container.jsx","../../../app/javascript/src/v2/components/Tags/TagsList.jsx","../../../app/javascript/src/v2/components/Tags/TagsSelector.jsx","../../../app/javascript/src/v2/components/Tags/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const KEYBOARD_SHORTCUTS = {\n addTag: {\n sequence: \"t\",\n description: t(\"neetoTags.shortcuts.addTag\"),\n },\n};\n","import { useEffect, useState } from \"react\";\n\nimport { Label, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { Check } from \"lucide-react\";\nimport { PLURAL } from \"neetocommons/v2/constants\";\nimport { useTranslation } from \"react-i18next\";\n\nconst Title = ({ titleProps = {}, title, isUpdating, isLoading }) => {\n const { t } = useTranslation();\n const tagsTitle = title || t(\"neetoTags.common.tag\", PLURAL);\n\n const [didStartUpdate, setDidStartUpdate] = useState(false);\n const [isCheckIconVisible, setIsCheckIconVisible] = useState(false);\n\n useEffect(() => {\n if (!isUpdating) return;\n\n setDidStartUpdate(true);\n }, [isUpdating]);\n\n useEffect(() => {\n if (isUpdating || !didStartUpdate) return;\n\n setIsCheckIconVisible(true);\n setDidStartUpdate(false);\n setTimeout(() => {\n setIsCheckIconVisible(false);\n }, 5000);\n }, [didStartUpdate, isUpdating]);\n\n return (\n <div className=\"flex items-center gap-2\">\n <Label {...titleProps}>{tagsTitle}</Label>\n <div className=\"inline-flex h-6 items-center\">\n {(isUpdating || isLoading) && <Spinner />}\n {!isUpdating && isCheckIconVisible && (\n <Check className=\"text-success-solid\" size={20} />\n )}\n </div>\n </div>\n );\n};\n\nexport default Title;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport { Settings } from \"lucide-react\";\nimport { not } from \"ramda\";\n\nconst TitleActionBlock = ({ isDisabled, setIsTagsDropdownVisible }) => (\n <Button\n data-testid=\"neeto-tags-add-tag-button\"\n disabled={isDisabled}\n icon={Settings}\n size=\"icon-sm\"\n variant=\"ghost\"\n onClick={event => {\n event.stopPropagation();\n setIsTagsDropdownVisible(not);\n }}\n />\n);\n\nexport default TitleActionBlock;\n","import classNames from \"classnames\";\nimport { not } from \"ramda\";\n\nimport Title from \"./Title\";\nimport TitleActionBlock from \"./TitleActionBlock\";\n\nconst Container = ({\n isMetadataBlock,\n containerProps,\n actionBlockProps,\n titleComponentProps,\n children,\n isTagsBodyVisible,\n bodyProps,\n}) => {\n if (isMetadataBlock) {\n return (\n <div\n className=\"space-y-4 rounded-lg border border-border bg-background p-4\"\n {...containerProps}\n >\n <div className=\"flex items-center justify-between\">\n <Title {...titleComponentProps} />\n <TitleActionBlock {...actionBlockProps} />\n </div>\n {isTagsBodyVisible && children}\n </div>\n );\n }\n\n const { isDisabled, setIsTagsDropdownVisible } = actionBlockProps;\n const onHeaderClick = () => {\n !isDisabled && setIsTagsDropdownVisible(not);\n };\n\n return (\n <div className=\"flex w-full flex-col items-start gap-2\" {...containerProps}>\n {titleComponentProps.showTitleBar && (\n <div\n className={classNames(\n \"flex w-full cursor-pointer items-center justify-between gap-2 text-foreground\",\n titleComponentProps.containerClassName\n )}\n onClick={onHeaderClick}\n >\n <Title {...titleComponentProps} />\n {titleComponentProps.showAddTagsOnTitle && (\n <TitleActionBlock {...actionBlockProps} />\n )}\n </div>\n )}\n {isTagsBodyVisible && (\n <div\n className=\"w-full rounded-lg border border-border bg-background p-4\"\n {...bodyProps}\n >\n {children}\n </div>\n )}\n </div>\n );\n};\n\nexport default Container;\n","import { Badge } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { isNotEmpty } from \"neetocist\";\n\nimport { TAG_STYLE_TO_BADGE_VARIANT } from \"v2/common/constants\";\n\nconst TagsList = ({ selectedTags, isDisabled, handleDeleteTag, tagProps }) => (\n <div\n className={classNames(\n \"flex flex-row flex-wrap items-start justify-start gap-2 break-all\",\n { \"mb-2\": isNotEmpty(selectedTags) }\n )}\n >\n {selectedTags?.map(tag => (\n <Badge\n disabled={isDisabled}\n key={tag.value}\n label={tag.label}\n variant={TAG_STYLE_TO_BADGE_VARIANT[tag.style] || \"secondary\"}\n className={classNames({\n \"cursor-not-allowed opacity-50\": isDisabled,\n })}\n onDismiss={isDisabled ? undefined : () => handleDeleteTag(tag)}\n {...tagProps}\n />\n ))}\n </div>\n);\n\nexport default TagsList;\n","import { useRef } from \"react\";\n\nimport { Badge, Select } from \"@bigbinary/neeto-atoms\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TAG_STYLE_TO_BADGE_VARIANT } from \"v2/common/constants\";\n\nconst renderTagOption = option => (\n <Badge\n label={option.label}\n variant={TAG_STYLE_TO_BADGE_VARIANT[option.style] || \"secondary\"}\n />\n);\n\nconst TagsSelector = ({\n defaultMenuIsOpen,\n tags,\n onChange,\n onCreateOption,\n selectProps,\n}) => {\n const isMenuOpen = useRef(defaultMenuIsOpen);\n\n const { t } = useTranslation();\n\n const handleOpenChange = open => {\n isMenuOpen.current = open;\n if (open) {\n selectProps.onMenuOpen?.();\n } else {\n selectProps.onMenuClose?.();\n }\n };\n\n const handleChange = value => {\n const selectedTag = tags.find(tag => tag.value === value);\n if (selectedTag) {\n onChange(selectedTag);\n }\n };\n\n return (\n <Select\n isCreatable\n isSearchable\n formatOptionLabel={renderTagOption}\n options={tags}\n placeholder={t(\"neetoTags.placeholder.selectOrCreateTag\")}\n {...{ ...selectProps, onCreateOption }}\n onChange={handleChange}\n onOpenChange={handleOpenChange}\n />\n );\n};\n\nexport default TagsSelector;\n","import { useMemo, useState } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { Plus } from \"lucide-react\";\nimport { isNotEmpty } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/v2/constants\";\nimport { showThumbsUpToastr } from \"neetocommons/v2/utils\";\nimport useHotkeys from \"neetohotkeys\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { KEYBOARD_SHORTCUTS } from \"./constants\";\nimport Container from \"./Container\";\nimport TagsList from \"./TagsList\";\nimport TagsSelector from \"./TagsSelector\";\n\n/**\n * A component that helps to manage tags.\n * Renders selected tags, has dropdown to list down available tags\n * and allows user to remove tags from the list.\n */\nconst Tags = ({\n title = \"\",\n allTags,\n selectedTags,\n onTagSelect,\n onTagCreate,\n onTagDelete,\n tagProps,\n selectProps = {},\n buttonProps,\n showSuccessToastr = false,\n titleProps,\n containerProps = {},\n isUpdating = false,\n showAddTagsOnTitle = true,\n isLoading = false,\n showTitleBar = true,\n bodyProps = {},\n isDisabled = false,\n isMetadataBlock = false,\n}) => {\n const { t } = useTranslation();\n\n const [isTagsDropdownVisible, setIsTagsDropdownVisible] = useState(false);\n\n useHotkeys(KEYBOARD_SHORTCUTS.addTag.sequence, event => {\n event.preventDefault();\n setIsTagsDropdownVisible(true);\n });\n\n const tags = useMemo(() => {\n if (!allTags) return [];\n\n if (!selectedTags) return allTags;\n\n const selectedTagValues = pluck(\"value\", selectedTags);\n\n return allTags.filter(({ value }) => !selectedTagValues.includes(value));\n }, [allTags, selectedTags]);\n\n const handleAddExistingTag = tag => {\n setIsTagsDropdownVisible(false);\n onTagSelect(tag);\n // @ts-ignore\n showSuccessToastr && showThumbsUpToastr();\n };\n\n const handleDeleteTag = tag => {\n onTagDelete(tag);\n // @ts-ignore\n showSuccessToastr && showThumbsUpToastr();\n };\n\n const isAddTagsButtonVisible = !showAddTagsOnTitle && !isTagsDropdownVisible;\n const isTagsBodyVisible =\n isNotEmpty(selectedTags) || isTagsDropdownVisible || isAddTagsButtonVisible;\n\n const titleComponentProps = {\n isLoading,\n isUpdating,\n showAddTagsOnTitle,\n title,\n titleProps,\n showTitleBar,\n };\n\n const actionBlockProps = { isDisabled, setIsTagsDropdownVisible };\n\n const tagsListProps = { handleDeleteTag, isDisabled, selectedTags, tagProps };\n\n const tagsSelectorProps = {\n defaultMenuIsOpen: showAddTagsOnTitle,\n tags,\n onChange: handleAddExistingTag,\n onCreateOption: tagName => {\n setIsTagsDropdownVisible(false);\n onTagCreate(tagName);\n },\n selectProps,\n };\n\n return (\n <Container\n {...{\n actionBlockProps,\n bodyProps,\n containerProps,\n isMetadataBlock,\n isTagsBodyVisible,\n titleComponentProps,\n }}\n >\n {isNotEmpty(selectedTags) && <TagsList {...tagsListProps} />}\n {isTagsDropdownVisible && <TagsSelector {...tagsSelectorProps} />}\n {isAddTagsButtonVisible && (\n <Button\n disabled={isDisabled}\n icon={Plus}\n label={t(\"neetoTags.button.addTag\", SINGULAR)}\n size=\"sm\"\n variant=\"link\"\n onClick={() => setIsTagsDropdownVisible(true)}\n {...buttonProps}\n />\n )}\n </Container>\n );\n};\n\nexport default Tags;\n"],"names":["KEYBOARD_SHORTCUTS","addTag","sequence","description","t","Title","_ref","_ref$titleProps","titleProps","title","isUpdating","isLoading","_useTranslation","useTranslation","tagsTitle","PLURAL","_useState","useState","_useState2","_slicedToArray","didStartUpdate","setDidStartUpdate","_useState3","_useState4","isCheckIconVisible","setIsCheckIconVisible","useEffect","setTimeout","_jsxs","className","children","_jsx","Label","_objectSpread","Spinner","Check","size","TitleActionBlock","isDisabled","setIsTagsDropdownVisible","Button","disabled","icon","Settings","variant","onClick","event","stopPropagation","not","Container","isMetadataBlock","containerProps","actionBlockProps","titleComponentProps","isTagsBodyVisible","bodyProps","onHeaderClick","showTitleBar","classNames","containerClassName","showAddTagsOnTitle","TagsList","selectedTags","handleDeleteTag","tagProps","isNotEmpty","map","tag","Badge","label","TAG_STYLE_TO_BADGE_VARIANT","style","onDismiss","undefined","value","renderTagOption","option","TagsSelector","defaultMenuIsOpen","tags","onChange","onCreateOption","selectProps","isMenuOpen","useRef","handleOpenChange","open","current","_selectProps$onMenuOp","onMenuOpen","call","_selectProps$onMenuCl","onMenuClose","handleChange","selectedTag","find","Select","isCreatable","isSearchable","formatOptionLabel","options","placeholder","onOpenChange","Tags","_ref$title","allTags","onTagSelect","onTagCreate","onTagDelete","_ref$selectProps","buttonProps","_ref$showSuccessToast","showSuccessToastr","_ref$containerProps","_ref$isUpdating","_ref$showAddTagsOnTit","_ref$isLoading","_ref$showTitleBar","_ref$bodyProps","_ref$isDisabled","_ref$isMetadataBlock","isTagsDropdownVisible","useHotkeys","preventDefault","useMemo","selectedTagValues","pluck","filter","_ref2","includes","handleAddExistingTag","showThumbsUpToastr","isAddTagsButtonVisible","tagsListProps","tagsSelectorProps","tagName","Plus","SINGULAR"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TagsComponent.js","sources":["../../../app/javascript/src/v2/components/Tags/constants.js","../../../app/javascript/src/v2/components/Tags/Title.jsx","../../../app/javascript/src/v2/components/Tags/TitleActionBlock.jsx","../../../app/javascript/src/v2/components/Tags/Container.jsx","../../../app/javascript/src/v2/components/Tags/PopoverTagsSelector.jsx","../../../app/javascript/src/v2/components/Tags/TagsList.jsx","../../../app/javascript/src/v2/components/Tags/TagsSelector.jsx","../../../app/javascript/src/v2/components/Tags/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const KEYBOARD_SHORTCUTS = {\n addTag: {\n sequence: \"t\",\n description: t(\"neetoTags.shortcuts.addTag\"),\n },\n};\n\nexport const POPOVER_PANEL_WIDTH = 256;\nexport const POPOVER_VIEWPORT_MARGIN = 8;\nexport const POPOVER_TRIGGER_GAP = 4;\n","import { useEffect, useState } from \"react\";\n\nimport { Label, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { Check } from \"lucide-react\";\nimport { PLURAL } from \"neetocommons/v2/constants\";\nimport { useTranslation } from \"react-i18next\";\n\nconst Title = ({ titleProps = {}, title, isUpdating, isLoading }) => {\n const { t } = useTranslation();\n const tagsTitle = title || t(\"neetoTags.common.tag\", PLURAL);\n\n const [didStartUpdate, setDidStartUpdate] = useState(false);\n const [isCheckIconVisible, setIsCheckIconVisible] = useState(false);\n\n useEffect(() => {\n if (!isUpdating) return;\n\n setDidStartUpdate(true);\n }, [isUpdating]);\n\n useEffect(() => {\n if (isUpdating || !didStartUpdate) return;\n\n setIsCheckIconVisible(true);\n setDidStartUpdate(false);\n setTimeout(() => {\n setIsCheckIconVisible(false);\n }, 5000);\n }, [didStartUpdate, isUpdating]);\n\n return (\n <div className=\"flex items-center gap-2\">\n <Label {...titleProps}>{tagsTitle}</Label>\n <div className=\"inline-flex h-6 items-center\">\n {(isUpdating || isLoading) && <Spinner />}\n {!isUpdating && isCheckIconVisible && (\n <Check className=\"text-success-solid\" size={20} />\n )}\n </div>\n </div>\n );\n};\n\nexport default Title;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport { Settings } from \"lucide-react\";\nimport { not } from \"ramda\";\n\nconst TitleActionBlock = ({ isDisabled, setIsTagsDropdownVisible }) => (\n <Button\n data-testid=\"neeto-tags-add-tag-button\"\n disabled={isDisabled}\n icon={Settings}\n size=\"icon-sm\"\n variant=\"ghost\"\n onClick={event => {\n event.stopPropagation();\n setIsTagsDropdownVisible(not);\n }}\n />\n);\n\nexport default TitleActionBlock;\n","import classNames from \"classnames\";\nimport { not } from \"ramda\";\n\nimport Title from \"./Title\";\nimport TitleActionBlock from \"./TitleActionBlock\";\n\nconst Container = ({\n isMetadataBlock,\n containerProps,\n actionBlockProps,\n titleComponentProps,\n children,\n isTagsBodyVisible,\n bodyProps,\n}) => {\n if (isMetadataBlock) {\n return (\n <div\n className=\"space-y-4 rounded-lg border border-border bg-background p-4\"\n {...containerProps}\n >\n <div className=\"flex items-center justify-between\">\n <Title {...titleComponentProps} />\n <TitleActionBlock {...actionBlockProps} />\n </div>\n {isTagsBodyVisible && children}\n </div>\n );\n }\n\n const { isDisabled, setIsTagsDropdownVisible } = actionBlockProps;\n const onHeaderClick = () => {\n !isDisabled && setIsTagsDropdownVisible(not);\n };\n\n return (\n <div className=\"flex w-full flex-col items-start gap-2\" {...containerProps}>\n {titleComponentProps.showTitleBar && (\n <div\n className={classNames(\n \"flex w-full cursor-pointer items-center justify-between gap-2 text-foreground\",\n titleComponentProps.containerClassName\n )}\n onClick={onHeaderClick}\n >\n <Title {...titleComponentProps} />\n {titleComponentProps.showAddTagsOnTitle && (\n <TitleActionBlock {...actionBlockProps} />\n )}\n </div>\n )}\n {isTagsBodyVisible && (\n <div\n className=\"w-full rounded-lg border border-border bg-background p-4\"\n {...bodyProps}\n >\n {children}\n </div>\n )}\n </div>\n );\n};\n\nexport default Container;\n","import {\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { Badge, Button, Input } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { Plus, Search } from \"lucide-react\";\nimport { isNotEmpty } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/v2/constants\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TAG_STYLE_TO_BADGE_VARIANT } from \"v2/common/constants\";\n\nimport {\n POPOVER_PANEL_WIDTH,\n POPOVER_TRIGGER_GAP,\n POPOVER_VIEWPORT_MARGIN,\n} from \"./constants\";\n\n// A compact tag picker whose search-and-create input lives inside the dropdown\n// panel, instead of expanding the row into a full-width select. Opt-in through\n// the `pickerVariant=\"popover\"` prop on the Tags component; the default inline\n// selector is left untouched. The panel is rendered in a portal with fixed,\n// viewport-clamped positioning so it never widens (and horizontally overflows)\n// the detail column it sits in.\nconst PopoverTagsSelector = ({\n open,\n onOpenChange,\n tags,\n onChange,\n onCreateOption,\n buttonProps = {},\n isDisabled = false,\n}) => {\n const { t } = useTranslation();\n\n const triggerRef = useRef(null);\n const panelRef = useRef(null);\n const rafRef = useRef(null);\n const listboxId = useId();\n\n const [query, setQuery] = useState(\"\");\n const [activeIndex, setActiveIndex] = useState(0);\n // `null` until measured, so the panel stays hidden for its first paint and\n // never flashes at the top-left corner before it is positioned.\n const [coords, setCoords] = useState(null);\n\n const trimmedQuery = query.trim();\n\n const filteredTags = useMemo(() => {\n if (!trimmedQuery) return tags;\n const search = trimmedQuery.toLowerCase();\n\n return tags.filter(({ label }) => label.toLowerCase().includes(search));\n }, [tags, trimmedQuery]);\n\n const canCreate =\n isNotEmpty(trimmedQuery) &&\n !tags.some(\n ({ label }) => label.toLowerCase() === trimmedQuery.toLowerCase()\n );\n\n const optionCount = filteredTags.length + (canCreate ? 1 : 0);\n const optionId = index => `${listboxId}-option-${index}`;\n\n const focusTrigger = () =>\n triggerRef.current?.querySelector(\"button\")?.focus({ preventScroll: true });\n\n const close = useCallback(\n ({ restoreFocus = false } = {}) => {\n setQuery(\"\");\n setActiveIndex(0);\n setCoords(null);\n onOpenChange(false);\n // Return focus to the trigger only for keyboard / selection dismissals;\n // an outside click should leave focus wherever the user clicked.\n if (restoreFocus) focusTrigger();\n },\n [onOpenChange]\n );\n\n const handleSelect = tag => {\n onChange(tag);\n close({ restoreFocus: true });\n };\n\n const handleCreate = () => {\n onCreateOption(trimmedQuery);\n close({ restoreFocus: true });\n };\n\n const handleQueryChange = event => {\n setQuery(event.target.value);\n setActiveIndex(0);\n };\n\n const handleKeyDown = event => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n close({ restoreFocus: true });\n } else if (event.key === \"ArrowDown\" && optionCount > 0) {\n event.preventDefault();\n setActiveIndex(previous => (previous + 1) % optionCount);\n } else if (event.key === \"ArrowUp\" && optionCount > 0) {\n event.preventDefault();\n setActiveIndex(previous => (previous - 1 + optionCount) % optionCount);\n } else if (event.key === \"Enter\") {\n event.preventDefault();\n if (activeIndex < filteredTags.length) {\n handleSelect(filteredTags[activeIndex]);\n } else if (canCreate) {\n handleCreate();\n }\n }\n };\n\n const updatePosition = useCallback(() => {\n const trigger = triggerRef.current;\n if (!trigger) return;\n\n const rect = trigger.getBoundingClientRect();\n const panelHeight = panelRef.current?.offsetHeight ?? 0;\n\n const left = Math.max(\n POPOVER_VIEWPORT_MARGIN,\n Math.min(\n rect.left,\n window.innerWidth - POPOVER_PANEL_WIDTH - POPOVER_VIEWPORT_MARGIN\n )\n );\n\n const belowTop = rect.bottom + POPOVER_TRIGGER_GAP;\n const overflowsBelow =\n belowTop + panelHeight + POPOVER_VIEWPORT_MARGIN > window.innerHeight;\n\n const fitsAbove =\n rect.top - POPOVER_TRIGGER_GAP - panelHeight > POPOVER_VIEWPORT_MARGIN;\n\n const top =\n overflowsBelow && fitsAbove\n ? rect.top - POPOVER_TRIGGER_GAP - panelHeight\n : belowTop;\n\n setCoords({ top, left });\n }, []);\n\n // Position on open and whenever the panel's height changes (list filtering),\n // synchronously before paint so the panel is never seen mispositioned.\n useLayoutEffect(() => {\n if (open) updatePosition();\n }, [open, optionCount, updatePosition]);\n\n useEffect(() => {\n if (!open) return undefined;\n\n // Focus the search field without scrolling the surrounding column.\n panelRef.current?.querySelector(\"input\")?.focus({ preventScroll: true });\n\n const handleClickOutside = event => {\n if (triggerRef.current?.contains(event.target)) return;\n\n if (panelRef.current?.contains(event.target)) return;\n close();\n };\n\n // Coalesce scroll/resize repositioning into one measurement per frame to\n // avoid layout thrashing on busy scroll containers.\n const scheduleReposition = () => {\n if (rafRef.current) return;\n rafRef.current = window.requestAnimationFrame(() => {\n rafRef.current = null;\n updatePosition();\n });\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n window.addEventListener(\"resize\", scheduleReposition);\n window.addEventListener(\"scroll\", scheduleReposition, true);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n window.removeEventListener(\"resize\", scheduleReposition);\n window.removeEventListener(\"scroll\", scheduleReposition, true);\n if (rafRef.current) window.cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n };\n }, [open, close, updatePosition]);\n\n const optionClassName = isActive =>\n classNames(\n \"flex w-full cursor-pointer items-center gap-2 rounded px-2 py-1.5 text-start text-sm\",\n isActive ? \"bg-accent text-accent-foreground\" : \"hover:bg-accent\"\n );\n\n return (\n <div className=\"inline-block\" ref={triggerRef}>\n <Button\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n disabled={isDisabled}\n icon={Plus}\n label={t(\"neetoTags.button.addTag\", SINGULAR)}\n size=\"sm\"\n variant=\"link\"\n onClick={() => onOpenChange(!open)}\n {...buttonProps}\n />\n {open &&\n createPortal(\n <div\n className=\"bg-popover text-popover-foreground border-border fixed z-50 overflow-hidden rounded-md border shadow-md\"\n ref={panelRef}\n style={{\n top: coords?.top ?? 0,\n left: coords?.left ?? 0,\n width: POPOVER_PANEL_WIDTH,\n visibility: coords ? \"visible\" : \"hidden\",\n }}\n >\n <div className=\"border-border border-b p-2\">\n <Input\n aria-autocomplete=\"list\"\n aria-controls={listboxId}\n aria-expanded={open}\n placeholder={t(\"neetoTags.placeholder.searchOrCreateTags\")}\n prefix={<Search size={14} />}\n role=\"combobox\"\n size=\"small\"\n value={query}\n aria-activedescendant={\n optionCount > 0 ? optionId(activeIndex) : undefined\n }\n onChange={handleQueryChange}\n onKeyDown={handleKeyDown}\n />\n </div>\n <div\n className=\"max-h-56 overflow-y-auto p-1\"\n id={listboxId}\n role=\"listbox\"\n >\n {filteredTags.map((tag, index) => (\n <button\n aria-selected={index === activeIndex}\n className={optionClassName(index === activeIndex)}\n id={optionId(index)}\n key={tag.value}\n role=\"option\"\n type=\"button\"\n onClick={() => handleSelect(tag)}\n onMouseEnter={() => setActiveIndex(index)}\n >\n <Badge\n label={tag.label}\n variant={\n TAG_STYLE_TO_BADGE_VARIANT[tag.style] || \"secondary\"\n }\n />\n </button>\n ))}\n {canCreate && (\n <button\n aria-selected={activeIndex === filteredTags.length}\n id={optionId(filteredTags.length)}\n role=\"option\"\n type=\"button\"\n className={optionClassName(\n activeIndex === filteredTags.length\n )}\n onClick={handleCreate}\n onMouseEnter={() => setActiveIndex(filteredTags.length)}\n >\n <Plus size={14} />\n <span className=\"truncate\">\n {t(\"neetoTags.button.createNewTag\")}\n {\": \"}\n <span className=\"font-medium\">{trimmedQuery}</span>\n </span>\n </button>\n )}\n {optionCount === 0 && (\n <div className=\"text-muted-foreground px-2 py-2 text-sm\">\n {t(\"neetoTags.common.noTagsFound\")}\n </div>\n )}\n </div>\n </div>,\n document.body\n )}\n </div>\n );\n};\n\nexport default PopoverTagsSelector;\n","import { Badge } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { isNotEmpty } from \"neetocist\";\n\nimport { TAG_STYLE_TO_BADGE_VARIANT } from \"v2/common/constants\";\n\nconst TagsList = ({ selectedTags, isDisabled, handleDeleteTag, tagProps }) => (\n <div\n className={classNames(\n \"flex flex-row flex-wrap items-start justify-start gap-2 break-all\",\n { \"mb-2\": isNotEmpty(selectedTags) }\n )}\n >\n {selectedTags?.map(tag => (\n <Badge\n disabled={isDisabled}\n key={tag.value}\n label={tag.label}\n variant={TAG_STYLE_TO_BADGE_VARIANT[tag.style] || \"secondary\"}\n className={classNames({\n \"cursor-not-allowed opacity-50\": isDisabled,\n })}\n onDismiss={isDisabled ? undefined : () => handleDeleteTag(tag)}\n {...tagProps}\n />\n ))}\n </div>\n);\n\nexport default TagsList;\n","import { useRef } from \"react\";\n\nimport { Badge, Select } from \"@bigbinary/neeto-atoms\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TAG_STYLE_TO_BADGE_VARIANT } from \"v2/common/constants\";\n\nconst renderTagOption = option => (\n <Badge\n label={option.label}\n variant={TAG_STYLE_TO_BADGE_VARIANT[option.style] || \"secondary\"}\n />\n);\n\nconst TagsSelector = ({\n defaultMenuIsOpen,\n tags,\n onChange,\n onCreateOption,\n selectProps,\n}) => {\n const isMenuOpen = useRef(defaultMenuIsOpen);\n\n const { t } = useTranslation();\n\n const handleOpenChange = open => {\n isMenuOpen.current = open;\n if (open) {\n selectProps.onMenuOpen?.();\n } else {\n selectProps.onMenuClose?.();\n }\n };\n\n const handleChange = value => {\n const selectedTag = tags.find(tag => tag.value === value);\n if (selectedTag) {\n onChange(selectedTag);\n }\n };\n\n return (\n <Select\n isCreatable\n isSearchable\n formatOptionLabel={renderTagOption}\n options={tags}\n placeholder={t(\"neetoTags.placeholder.selectOrCreateTag\")}\n {...{ ...selectProps, onCreateOption }}\n onChange={handleChange}\n onOpenChange={handleOpenChange}\n />\n );\n};\n\nexport default TagsSelector;\n","import { useMemo, useState } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { Plus } from \"lucide-react\";\nimport { isNotEmpty } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/v2/constants\";\nimport { showThumbsUpToastr } from \"neetocommons/v2/utils\";\nimport useHotkeys from \"neetohotkeys\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { KEYBOARD_SHORTCUTS } from \"./constants\";\nimport Container from \"./Container\";\nimport PopoverTagsSelector from \"./PopoverTagsSelector\";\nimport TagsList from \"./TagsList\";\nimport TagsSelector from \"./TagsSelector\";\n\n/**\n * A component that helps to manage tags.\n * Renders selected tags, has dropdown to list down available tags\n * and allows user to remove tags from the list.\n */\nconst Tags = ({\n title = \"\",\n allTags,\n selectedTags,\n onTagSelect,\n onTagCreate,\n onTagDelete,\n tagProps,\n selectProps = {},\n buttonProps,\n showSuccessToastr = false,\n titleProps,\n containerProps = {},\n isUpdating = false,\n showAddTagsOnTitle = true,\n isLoading = false,\n showTitleBar = true,\n bodyProps = {},\n isDisabled = false,\n isMetadataBlock = false,\n pickerVariant = \"inline\",\n}) => {\n const { t } = useTranslation();\n\n const [isTagsDropdownVisible, setIsTagsDropdownVisible] = useState(false);\n\n useHotkeys(KEYBOARD_SHORTCUTS.addTag.sequence, event => {\n event.preventDefault();\n setIsTagsDropdownVisible(true);\n });\n\n const tags = useMemo(() => {\n if (!allTags) return [];\n\n if (!selectedTags) return allTags;\n\n const selectedTagValues = pluck(\"value\", selectedTags);\n\n return allTags.filter(({ value }) => !selectedTagValues.includes(value));\n }, [allTags, selectedTags]);\n\n const handleAddExistingTag = tag => {\n setIsTagsDropdownVisible(false);\n onTagSelect(tag);\n // @ts-ignore\n showSuccessToastr && showThumbsUpToastr();\n };\n\n const handleDeleteTag = tag => {\n onTagDelete(tag);\n // @ts-ignore\n showSuccessToastr && showThumbsUpToastr();\n };\n\n const handleCreateTag = tagName => {\n setIsTagsDropdownVisible(false);\n onTagCreate(tagName);\n };\n\n const isPopoverPicker = pickerVariant === \"popover\";\n const isAddTagsButtonVisible = !showAddTagsOnTitle && !isTagsDropdownVisible;\n const isTagsBodyVisible =\n isNotEmpty(selectedTags) ||\n isTagsDropdownVisible ||\n isAddTagsButtonVisible ||\n isPopoverPicker;\n\n const titleComponentProps = {\n isLoading,\n isUpdating,\n showAddTagsOnTitle,\n title,\n titleProps,\n showTitleBar,\n };\n\n const actionBlockProps = { isDisabled, setIsTagsDropdownVisible };\n\n const tagsListProps = { handleDeleteTag, isDisabled, selectedTags, tagProps };\n\n const tagsSelectorProps = {\n defaultMenuIsOpen: showAddTagsOnTitle,\n tags,\n onChange: handleAddExistingTag,\n onCreateOption: handleCreateTag,\n selectProps,\n };\n\n return (\n <Container\n {...{\n actionBlockProps,\n bodyProps,\n containerProps,\n isMetadataBlock,\n isTagsBodyVisible,\n titleComponentProps,\n }}\n >\n {isNotEmpty(selectedTags) && <TagsList {...tagsListProps} />}\n {isPopoverPicker ? (\n <PopoverTagsSelector\n {...{ buttonProps, isDisabled, tags }}\n open={isTagsDropdownVisible}\n onChange={handleAddExistingTag}\n onCreateOption={handleCreateTag}\n onOpenChange={setIsTagsDropdownVisible}\n />\n ) : (\n <>\n {isTagsDropdownVisible && <TagsSelector {...tagsSelectorProps} />}\n {isAddTagsButtonVisible && (\n <Button\n disabled={isDisabled}\n icon={Plus}\n label={t(\"neetoTags.button.addTag\", SINGULAR)}\n size=\"sm\"\n variant=\"link\"\n onClick={() => setIsTagsDropdownVisible(true)}\n {...buttonProps}\n />\n )}\n </>\n )}\n </Container>\n );\n};\n\nexport default Tags;\n"],"names":["KEYBOARD_SHORTCUTS","addTag","sequence","description","t","POPOVER_PANEL_WIDTH","POPOVER_VIEWPORT_MARGIN","POPOVER_TRIGGER_GAP","Title","_ref","_ref$titleProps","titleProps","title","isUpdating","isLoading","_useTranslation","useTranslation","tagsTitle","PLURAL","_useState","useState","_useState2","_slicedToArray","didStartUpdate","setDidStartUpdate","_useState3","_useState4","isCheckIconVisible","setIsCheckIconVisible","useEffect","setTimeout","_jsxs","className","children","_jsx","Label","_objectSpread","Spinner","Check","size","TitleActionBlock","isDisabled","setIsTagsDropdownVisible","Button","disabled","icon","Settings","variant","onClick","event","stopPropagation","not","Container","isMetadataBlock","containerProps","actionBlockProps","titleComponentProps","isTagsBodyVisible","bodyProps","onHeaderClick","showTitleBar","classNames","containerClassName","showAddTagsOnTitle","PopoverTagsSelector","_coords$top","_coords$left","open","onOpenChange","tags","onChange","onCreateOption","_ref$buttonProps","buttonProps","_ref$isDisabled","triggerRef","useRef","panelRef","rafRef","listboxId","useId","query","setQuery","activeIndex","setActiveIndex","_useState5","_useState6","coords","setCoords","trimmedQuery","trim","filteredTags","useMemo","search","toLowerCase","filter","_ref2","label","includes","canCreate","isNotEmpty","some","_ref3","optionCount","length","optionId","index","concat","focusTrigger","_triggerRef$current","current","querySelector","focus","preventScroll","close","useCallback","_ref4","arguments","undefined","_ref4$restoreFocus","restoreFocus","handleSelect","tag","handleCreate","handleQueryChange","target","value","handleKeyDown","key","preventDefault","previous","updatePosition","_panelRef$current$off","_panelRef$current","trigger","rect","getBoundingClientRect","panelHeight","offsetHeight","left","Math","max","min","window","innerWidth","belowTop","bottom","overflowsBelow","innerHeight","fitsAbove","top","useLayoutEffect","_panelRef$current2","handleClickOutside","_triggerRef$current2","_panelRef$current3","contains","scheduleReposition","requestAnimationFrame","document","addEventListener","removeEventListener","cancelAnimationFrame","optionClassName","isActive","ref","Plus","SINGULAR","createPortal","style","width","visibility","Input","placeholder","prefix","Search","role","onKeyDown","id","map","type","onMouseEnter","Badge","TAG_STYLE_TO_BADGE_VARIANT","body","TagsList","selectedTags","handleDeleteTag","tagProps","onDismiss","renderTagOption","option","TagsSelector","defaultMenuIsOpen","selectProps","isMenuOpen","handleOpenChange","_selectProps$onMenuOp","onMenuOpen","call","_selectProps$onMenuCl","onMenuClose","handleChange","selectedTag","find","Select","isCreatable","isSearchable","formatOptionLabel","options","Tags","_ref$title","allTags","onTagSelect","onTagCreate","onTagDelete","_ref$selectProps","_ref$showSuccessToast","showSuccessToastr","_ref$containerProps","_ref$isUpdating","_ref$showAddTagsOnTit","_ref$isLoading","_ref$showTitleBar","_ref$bodyProps","_ref$isMetadataBlock","_ref$pickerVariant","pickerVariant","isTagsDropdownVisible","useHotkeys","selectedTagValues","pluck","handleAddExistingTag","showThumbsUpToastr","handleCreateTag","tagName","isPopoverPicker","isAddTagsButtonVisible","tagsListProps","tagsSelectorProps","_Fragment"],"mappings":"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"}
|
package/dist/cjs/v2/index.js
CHANGED
package/dist/cjs/v2/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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|