@arbidocs/blocks 0.4.84 → 0.4.86
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/dist/MailBodyEditor-5PIQLYVY.js +217 -0
- package/dist/MailBodyEditor-5PIQLYVY.js.map +1 -0
- package/dist/MailBodyEditor-D7MGJMLH.cjs +223 -0
- package/dist/MailBodyEditor-D7MGJMLH.cjs.map +1 -0
- package/dist/agents/index.cjs +282 -281
- package/dist/agents/index.js +7 -6
- package/dist/agents/workflows/StepBarFrame.d.ts +3 -1
- package/dist/agents/workflows/WorkflowRunner.d.ts +10 -1
- package/dist/agents/workflows/run.d.ts +24 -3
- package/dist/agents/workflows/stepWindow.d.ts +4 -2
- package/dist/agents/workflows/types.d.ts +5 -0
- package/dist/agents/workflows/useWorkflowView.d.ts +16 -1
- package/dist/chat/index.cjs +1 -1
- package/dist/chat/index.js +1 -1
- package/dist/chunk-3R6XBYL7.cjs +576 -0
- package/dist/chunk-3R6XBYL7.cjs.map +1 -0
- package/dist/{chunk-CKB64Z4R.js → chunk-4XJZ6AAY.js} +6 -245
- package/dist/chunk-4XJZ6AAY.js.map +1 -0
- package/dist/{chunk-B3WCKBJ7.cjs → chunk-5YXG342J.cjs} +6 -18
- package/dist/chunk-5YXG342J.cjs.map +1 -0
- package/dist/{chunk-SB5ZKOYN.js → chunk-7C35WXYB.js} +4 -63
- package/dist/chunk-7C35WXYB.js.map +1 -0
- package/dist/chunk-7RJTEWYM.js +362 -0
- package/dist/chunk-7RJTEWYM.js.map +1 -0
- package/dist/chunk-AFSOUS5X.cjs +253 -0
- package/dist/chunk-AFSOUS5X.cjs.map +1 -0
- package/dist/{chunk-F4RUCUXF.cjs → chunk-C2HRZSAT.cjs} +2 -63
- package/dist/chunk-C2HRZSAT.cjs.map +1 -0
- package/dist/{chunk-XA5S4776.cjs → chunk-IHYVK6F7.cjs} +52 -51
- package/dist/chunk-IHYVK6F7.cjs.map +1 -0
- package/dist/{chunk-CONIA2ZA.js → chunk-KHY4PYU7.js} +246 -146
- package/dist/chunk-KHY4PYU7.js.map +1 -0
- package/dist/chunk-LGX6UFYG.js +557 -0
- package/dist/chunk-LGX6UFYG.js.map +1 -0
- package/dist/chunk-O4YPVYPO.cjs +373 -0
- package/dist/chunk-O4YPVYPO.cjs.map +1 -0
- package/dist/chunk-R26OHONI.js +250 -0
- package/dist/chunk-R26OHONI.js.map +1 -0
- package/dist/{chunk-RYYYHPFU.cjs → chunk-RZUMQM7W.cjs} +246 -146
- package/dist/chunk-RZUMQM7W.cjs.map +1 -0
- package/dist/{chunk-RX35SMPR.js → chunk-S2NFD4QV.js} +8 -7
- package/dist/chunk-S2NFD4QV.js.map +1 -0
- package/dist/{chunk-YJQVLVBJ.cjs → chunk-S5HZBXZA.cjs} +2 -243
- package/dist/chunk-S5HZBXZA.cjs.map +1 -0
- package/dist/{chunk-GJV2G4FC.js → chunk-W7NZRZ54.js} +6 -18
- package/dist/chunk-W7NZRZ54.js.map +1 -0
- package/dist/{chunk-ZQYE7J3J.cjs → chunk-WRSBM6QN.cjs} +332 -94
- package/dist/chunk-WRSBM6QN.cjs.map +1 -0
- package/dist/{chunk-RSKSXEPW.js → chunk-X23U6QEJ.js} +324 -88
- package/dist/chunk-X23U6QEJ.js.map +1 -0
- package/dist/collaboration/index.cjs +100 -49
- package/dist/collaboration/index.js +4 -1
- package/dist/collaboration/mail/MailBodyEditor.d.ts +7 -0
- package/dist/collaboration/mail/MailDeliveryList.d.ts +8 -0
- package/dist/collaboration/mail/MailDocumentPicker.d.ts +15 -0
- package/dist/collaboration/mail/MailGrid.d.ts +17 -0
- package/dist/collaboration/mail/MailMessageView.d.ts +27 -0
- package/dist/collaboration/mail/PlainMailBodyEditor.d.ts +12 -0
- package/dist/collaboration/mail/index.d.ts +6 -0
- package/dist/collaboration/mail/mailCompose.d.ts +24 -0
- package/dist/connect/index.cjs +1673 -96
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +2 -1
- package/dist/connect/index.js +1634 -63
- package/dist/connect/index.js.map +1 -1
- package/dist/connection/ConnectedSettings.d.ts +1 -4
- package/dist/connection/ConnectedTagTable.d.ts +32 -0
- package/dist/connection/mail/ConnectedMailAccounts.d.ts +21 -0
- package/dist/connection/mail/ConnectedMailComposer.d.ts +40 -0
- package/dist/connection/mail/ConnectedMailSetup.d.ts +16 -0
- package/dist/connection/mail/ConnectedMailbox.d.ts +65 -0
- package/dist/connection/mail/MailComposerForm.d.ts +25 -0
- package/dist/connection/mail/attachments.d.ts +13 -0
- package/dist/connection/mail/index.d.ts +6 -0
- package/dist/connection/mail/mailbox.d.ts +6 -0
- package/dist/connection/mail/types.d.ts +92 -0
- package/dist/connection/useConnectedWorkNotifications.d.ts +6 -0
- package/dist/connection/useWorkflowThread.d.ts +7 -2
- package/dist/facts/index.cjs +3 -3
- package/dist/facts/index.js +3 -3
- package/dist/files/index.cjs +48 -368
- package/dist/files/index.cjs.map +1 -1
- package/dist/files/index.js +11 -361
- package/dist/files/index.js.map +1 -1
- package/dist/home/index.cjs +1 -1
- package/dist/home/index.js +1 -1
- package/dist/index.cjs +496 -437
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +23 -20
- package/dist/index.js.map +1 -1
- package/dist/settings/PasswordChangeDialog.d.ts +9 -12
- package/dist/settings/index.cjs +44 -43
- package/dist/settings/index.cjs.map +1 -1
- package/dist/settings/index.js +3 -2
- package/dist/settings/index.js.map +1 -1
- package/dist/shell/index.cjs +2 -2
- package/dist/shell/index.js +2 -2
- package/dist/studio/index.cjs +1 -1
- package/dist/studio/index.js +1 -1
- package/dist/tags/TagColumnsEditor.d.ts +34 -0
- package/dist/tags/TagDetail.d.ts +13 -11
- package/dist/tags/TagTable.d.ts +99 -0
- package/dist/tags/TagsNav.d.ts +2 -2
- package/dist/tags/index.d.ts +7 -5
- package/dist/tags/{tagMatrixDocx.d.ts → tagTableDocx.d.ts} +12 -12
- package/dist/tags/tagTableModel.d.ts +47 -0
- package/dist/workflow-canvas/index.cjs +50 -49
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/dist/workflow-canvas/index.js +7 -6
- package/dist/workflow-canvas/index.js.map +1 -1
- package/package.json +29 -4
- package/dist/chunk-B3WCKBJ7.cjs.map +0 -1
- package/dist/chunk-CKB64Z4R.js.map +0 -1
- package/dist/chunk-CONIA2ZA.js.map +0 -1
- package/dist/chunk-F4RUCUXF.cjs.map +0 -1
- package/dist/chunk-GJV2G4FC.js.map +0 -1
- package/dist/chunk-RSKSXEPW.js.map +0 -1
- package/dist/chunk-RX35SMPR.js.map +0 -1
- package/dist/chunk-RYYYHPFU.cjs.map +0 -1
- package/dist/chunk-SB5ZKOYN.js.map +0 -1
- package/dist/chunk-XA5S4776.cjs.map +0 -1
- package/dist/chunk-YJQVLVBJ.cjs.map +0 -1
- package/dist/chunk-ZQYE7J3J.cjs.map +0 -1
- package/dist/connection/ConnectedTagMatrix.d.ts +0 -23
- package/dist/tags/TagMatrix.d.ts +0 -87
- package/dist/tags/tagMatrixModel.d.ts +0 -43
|
@@ -223,245 +223,6 @@ function DocumentPicker({
|
|
|
223
223
|
] })
|
|
224
224
|
] });
|
|
225
225
|
}
|
|
226
|
-
var DEFAULT_TRI_STATE_FILTER_MENU_LABELS = { clear: "Clear" };
|
|
227
|
-
function TriStateFilterMenu({
|
|
228
|
-
testId,
|
|
229
|
-
open,
|
|
230
|
-
onOpenChange,
|
|
231
|
-
title,
|
|
232
|
-
filterStates,
|
|
233
|
-
onFiltersChange,
|
|
234
|
-
options,
|
|
235
|
-
groups,
|
|
236
|
-
topContent,
|
|
237
|
-
groupTopContent,
|
|
238
|
-
folderContent,
|
|
239
|
-
bottomContent,
|
|
240
|
-
triggerLabel,
|
|
241
|
-
hasExternalActiveState = false,
|
|
242
|
-
suppressTriggerActiveStyle = false,
|
|
243
|
-
triggerClassName,
|
|
244
|
-
renderChevron = false,
|
|
245
|
-
disableHoverOpen = false,
|
|
246
|
-
align = "center",
|
|
247
|
-
onHoverHandlers,
|
|
248
|
-
labels
|
|
249
|
-
}) {
|
|
250
|
-
const l = { ...DEFAULT_TRI_STATE_FILTER_MENU_LABELS, ...labels };
|
|
251
|
-
const [collapsedGroups, setCollapsedGroups] = React.useState(
|
|
252
|
-
() => new Set((groups ?? []).filter((g) => g.collapsible).map((g) => g.label))
|
|
253
|
-
);
|
|
254
|
-
const [isClickOpen, setIsClickOpen] = React.useState(false);
|
|
255
|
-
const hoverTimeoutRef = React.useRef(null);
|
|
256
|
-
const cancelPendingClose = () => {
|
|
257
|
-
if (hoverTimeoutRef.current) {
|
|
258
|
-
clearTimeout(hoverTimeoutRef.current);
|
|
259
|
-
hoverTimeoutRef.current = null;
|
|
260
|
-
}
|
|
261
|
-
};
|
|
262
|
-
const handleMouseEnter = () => {
|
|
263
|
-
if (disableHoverOpen) return;
|
|
264
|
-
cancelPendingClose();
|
|
265
|
-
if (!isClickOpen) onOpenChange(true);
|
|
266
|
-
};
|
|
267
|
-
const handleMouseLeave = () => {
|
|
268
|
-
if (disableHoverOpen || isClickOpen) return;
|
|
269
|
-
hoverTimeoutRef.current = setTimeout(() => {
|
|
270
|
-
if (!isClickOpen) onOpenChange(false);
|
|
271
|
-
}, 150);
|
|
272
|
-
};
|
|
273
|
-
const handleTriggerClick = () => {
|
|
274
|
-
setIsClickOpen(!isClickOpen);
|
|
275
|
-
onOpenChange(!isClickOpen);
|
|
276
|
-
};
|
|
277
|
-
React.useEffect(() => {
|
|
278
|
-
onHoverHandlers?.({ onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave });
|
|
279
|
-
}, []);
|
|
280
|
-
React.useEffect(() => cancelPendingClose, []);
|
|
281
|
-
const optionMap = React.useMemo(() => new Map(options.map((o) => [o.id, o])), [options]);
|
|
282
|
-
const handleFilterToggle = (filterId) => {
|
|
283
|
-
const next = new Map(filterStates);
|
|
284
|
-
const current = next.get(filterId) ?? null;
|
|
285
|
-
next.set(filterId, current === null ? "include" : current === "include" ? "exclude" : null);
|
|
286
|
-
onFiltersChange(next);
|
|
287
|
-
};
|
|
288
|
-
const handleClearFilters = (e) => {
|
|
289
|
-
e.stopPropagation();
|
|
290
|
-
const cleared = new Map(filterStates);
|
|
291
|
-
options.forEach((opt) => cleared.set(opt.id, null));
|
|
292
|
-
onFiltersChange(cleared);
|
|
293
|
-
};
|
|
294
|
-
const clearButton = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
295
|
-
ui.Button,
|
|
296
|
-
{
|
|
297
|
-
variant: "ghost",
|
|
298
|
-
size: "default",
|
|
299
|
-
onClick: handleClearFilters,
|
|
300
|
-
className: "ml-auto h-8 px-3 text-sm text-primary hover:text-primary pointer-coarse:h-11",
|
|
301
|
-
children: [
|
|
302
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.FunnelX, { className: "mr-1.5 h-4 w-4 text-primary" }),
|
|
303
|
-
l.clear
|
|
304
|
-
]
|
|
305
|
-
}
|
|
306
|
-
);
|
|
307
|
-
const hasActiveFilters = React.useMemo(() => {
|
|
308
|
-
const ids = new Set(options.map((o) => o.id));
|
|
309
|
-
return hasExternalActiveState || Array.from(filterStates.entries()).some(([k, v]) => ids.has(k) && v !== null);
|
|
310
|
-
}, [filterStates, options, hasExternalActiveState]);
|
|
311
|
-
const isActive = !suppressTriggerActiveStyle && hasActiveFilters;
|
|
312
|
-
const showInlineClear = !title && hasActiveFilters && !suppressTriggerActiveStyle && !!groups && groups.length > 0 && !groups[0].collapsible;
|
|
313
|
-
const renderTriStateItem = (option) => {
|
|
314
|
-
const state = filterStates.get(option.id) ?? null;
|
|
315
|
-
const badgeClass = state === null ? "bg-card border-border text-foreground hover:bg-muted" : state === "include" ? "bg-primary text-primary-foreground border-primary hover:bg-primary" : "bg-card text-red-text border-red-text hover:bg-red-bg";
|
|
316
|
-
const stateIcon = state === null ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "size-3.5 rounded-sm border-2 border-border bg-transparent" }) : state === "include" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { className: "size-3", strokeWidth: 3 }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Ban, { className: "size-3 text-red-text", strokeWidth: 3 });
|
|
317
|
-
const depthPadding = option.depth ? option.depth * 16 : 0;
|
|
318
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
319
|
-
ui.DropdownMenuItem,
|
|
320
|
-
{
|
|
321
|
-
onClick: () => handleFilterToggle(option.id),
|
|
322
|
-
onSelect: (e) => e.preventDefault(),
|
|
323
|
-
disabled: option.disabled,
|
|
324
|
-
className: "cursor-pointer p-1",
|
|
325
|
-
style: depthPadding ? { paddingLeft: `${depthPadding + 4}px` } : void 0,
|
|
326
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
327
|
-
ui.Badge,
|
|
328
|
-
{
|
|
329
|
-
variant: "outline",
|
|
330
|
-
className: ui.cn(
|
|
331
|
-
"flex w-full items-center gap-2 px-3 py-1.5 text-sm pointer-coarse:min-h-11",
|
|
332
|
-
badgeClass
|
|
333
|
-
),
|
|
334
|
-
children: [
|
|
335
|
-
stateIcon,
|
|
336
|
-
option.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "[&>svg]:size-3.5", children: option.icon }),
|
|
337
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: option.label }),
|
|
338
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto font-semibold", children: option.count })
|
|
339
|
-
]
|
|
340
|
-
}
|
|
341
|
-
)
|
|
342
|
-
},
|
|
343
|
-
option.id
|
|
344
|
-
);
|
|
345
|
-
};
|
|
346
|
-
const toggleGroupCollapse = (label) => {
|
|
347
|
-
setCollapsedGroups((prev) => {
|
|
348
|
-
const next = new Set(prev);
|
|
349
|
-
if (!next.delete(label)) next.add(label);
|
|
350
|
-
return next;
|
|
351
|
-
});
|
|
352
|
-
};
|
|
353
|
-
const renderOptions = () => {
|
|
354
|
-
if (!groups || groups.length === 0) return options.map(renderTriStateItem);
|
|
355
|
-
return groups.map((group, groupIndex) => {
|
|
356
|
-
const isCollapsed = !!group.collapsible && collapsedGroups.has(group.label);
|
|
357
|
-
const activeCount = group.collapsible ? group.options.filter((id) => filterStates.get(id) !== null).length : 0;
|
|
358
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
|
|
359
|
-
groupIndex > 0 && /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {}),
|
|
360
|
-
groupTopContent?.[group.label] && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
361
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 py-1.5", children: groupTopContent[group.label] }),
|
|
362
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {})
|
|
363
|
-
] }),
|
|
364
|
-
group.collapsible ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
365
|
-
"button",
|
|
366
|
-
{
|
|
367
|
-
type: "button",
|
|
368
|
-
onClick: () => toggleGroupCollapse(group.label),
|
|
369
|
-
"aria-expanded": !isCollapsed,
|
|
370
|
-
className: "flex w-full cursor-pointer items-center gap-1 rounded-sm px-2 py-1.5 text-sm font-semibold text-primary hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11",
|
|
371
|
-
children: [
|
|
372
|
-
isCollapsed ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "size-3.5" }),
|
|
373
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: group.label }),
|
|
374
|
-
isCollapsed && activeCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
375
|
-
ui.Badge,
|
|
376
|
-
{
|
|
377
|
-
variant: "outline",
|
|
378
|
-
className: "ml-auto flex h-4 min-w-4 items-center justify-center rounded-md px-1 text-xs leading-none",
|
|
379
|
-
children: activeCount
|
|
380
|
-
}
|
|
381
|
-
)
|
|
382
|
-
]
|
|
383
|
-
}
|
|
384
|
-
) : groupIndex === 0 && showInlineClear ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between pr-1", children: [
|
|
385
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuLabel, { className: "text-primary", children: group.label }),
|
|
386
|
-
clearButton
|
|
387
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuLabel, { className: "text-primary", children: group.label }),
|
|
388
|
-
!isCollapsed && group.options.map((id) => optionMap.get(id)).filter((opt) => opt !== void 0).map(renderTriStateItem)
|
|
389
|
-
] }, group.label);
|
|
390
|
-
});
|
|
391
|
-
};
|
|
392
|
-
const tone = isActive ? "text-primary" : "text-muted-foreground";
|
|
393
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(ui.DropdownMenu, { modal: false, open, onOpenChange, children: [
|
|
394
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
395
|
-
"span",
|
|
396
|
-
{
|
|
397
|
-
role: "button",
|
|
398
|
-
tabIndex: 0,
|
|
399
|
-
"data-slot": "tri-state-filter-trigger",
|
|
400
|
-
className: triggerClassName ?? "inline-flex cursor-pointer items-center gap-1 rounded-sm px-1.5 py-0.5 text-sm font-medium transition-colors hover:bg-foreground/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:h-11! pointer-coarse:min-w-11 pointer-coarse:justify-center",
|
|
401
|
-
"data-testid": testId,
|
|
402
|
-
onMouseEnter: handleMouseEnter,
|
|
403
|
-
onMouseLeave: handleMouseLeave,
|
|
404
|
-
onClick: handleTriggerClick,
|
|
405
|
-
children: [
|
|
406
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
407
|
-
lucideReact.Filter,
|
|
408
|
-
{
|
|
409
|
-
className: ui.cn(
|
|
410
|
-
"size-3 transition-colors",
|
|
411
|
-
isActive ? "fill-primary text-primary" : tone
|
|
412
|
-
)
|
|
413
|
-
}
|
|
414
|
-
),
|
|
415
|
-
triggerLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: tone, children: triggerLabel }),
|
|
416
|
-
renderChevron ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: ui.cn("size-3 transition-colors", tone) }) : triggerLabel && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreVertical, { className: ui.cn("size-3 transition-colors", tone) })
|
|
417
|
-
]
|
|
418
|
-
}
|
|
419
|
-
) }),
|
|
420
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
421
|
-
ui.DropdownMenuContent,
|
|
422
|
-
{
|
|
423
|
-
align,
|
|
424
|
-
className: "w-80 border-0 bg-muted",
|
|
425
|
-
onCloseAutoFocus: (e) => e.preventDefault(),
|
|
426
|
-
onMouseEnter: cancelPendingClose,
|
|
427
|
-
onMouseLeave: () => {
|
|
428
|
-
if (!isClickOpen) onOpenChange(false);
|
|
429
|
-
},
|
|
430
|
-
onPointerDownOutside: (e) => {
|
|
431
|
-
if (!isClickOpen) return;
|
|
432
|
-
if (!e.target.closest('[role="menu"]')) {
|
|
433
|
-
setIsClickOpen(false);
|
|
434
|
-
onOpenChange(false);
|
|
435
|
-
} else {
|
|
436
|
-
e.preventDefault();
|
|
437
|
-
}
|
|
438
|
-
},
|
|
439
|
-
children: [
|
|
440
|
-
(title || hasActiveFilters && !suppressTriggerActiveStyle && !showInlineClear) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
441
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-2 py-1.5", children: [
|
|
442
|
-
title && /* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuLabel, { className: "p-0 text-primary", children: title }),
|
|
443
|
-
hasActiveFilters && !showInlineClear && clearButton
|
|
444
|
-
] }),
|
|
445
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {})
|
|
446
|
-
] }),
|
|
447
|
-
topContent && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
448
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 py-1.5", children: topContent }),
|
|
449
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {})
|
|
450
|
-
] }),
|
|
451
|
-
folderContent && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
452
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-1 py-0.5", children: folderContent }),
|
|
453
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {})
|
|
454
|
-
] }),
|
|
455
|
-
renderOptions(),
|
|
456
|
-
bottomContent && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
457
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DropdownMenuSeparator, {}),
|
|
458
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-2 py-1.5", children: bottomContent })
|
|
459
|
-
] })
|
|
460
|
-
]
|
|
461
|
-
}
|
|
462
|
-
)
|
|
463
|
-
] });
|
|
464
|
-
}
|
|
465
226
|
var MultiSelect = React__namespace.forwardRef(
|
|
466
227
|
({
|
|
467
228
|
data,
|
|
@@ -663,9 +424,7 @@ var MultiSelect = React__namespace.forwardRef(
|
|
|
663
424
|
MultiSelect.displayName = "MultiSelect";
|
|
664
425
|
|
|
665
426
|
exports.DEFAULT_DOCUMENT_PICKER_LABELS = DEFAULT_DOCUMENT_PICKER_LABELS;
|
|
666
|
-
exports.DEFAULT_TRI_STATE_FILTER_MENU_LABELS = DEFAULT_TRI_STATE_FILTER_MENU_LABELS;
|
|
667
427
|
exports.DocumentPicker = DocumentPicker;
|
|
668
428
|
exports.MultiSelect = MultiSelect;
|
|
669
|
-
|
|
670
|
-
//# sourceMappingURL=chunk-
|
|
671
|
-
//# sourceMappingURL=chunk-YJQVLVBJ.cjs.map
|
|
429
|
+
//# sourceMappingURL=chunk-S5HZBXZA.cjs.map
|
|
430
|
+
//# sourceMappingURL=chunk-S5HZBXZA.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/settings/DocumentPicker.tsx","../src/settings/MultiSelect.tsx"],"names":["useMemo","useState","useEffect","useRef","jsx","Checkbox","Check","cn","jsxs","Fragment","CommandEmpty","CommandGroup","CommandItem","Command","Popover","PopoverAnchor","Search","CommandPrimitive","PopoverContent","CommandList","PopoverTrigger","ChevronsUpDown","CommandInput","TriangleAlert","React","Button","ChevronDown","CheckIcon","CommandSeparator","Separator","WandSparkles"],"mappings":"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","file":"chunk-S5HZBXZA.cjs","sourcesContent":["import { useEffect, useMemo, useRef, useState, type ReactNode } from 'react'\nimport { Check, ChevronsUpDown, Search, TriangleAlert } from 'lucide-react'\nimport { Command as CommandPrimitive } from 'cmdk'\nimport {\n Checkbox,\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n Popover,\n PopoverAnchor,\n PopoverContent,\n PopoverTrigger,\n cn,\n getDocIcon,\n} from '@arbidocs/react/ui'\n\nconst TOKEN_WARNING_THRESHOLD = 150_000\nconst TOKEN_DANGER_THRESHOLD = 190_000\n\n/** A document the picker can offer. `pages`/`tokens` are null for images and unparsed files. */\nexport interface PickerDocument {\n id: string\n title: string\n fileName?: string | null\n pages?: number | null\n tokens?: number | null\n}\n\n/** A heading with its documents, already sorted. A group without heading is unlabeled. */\nexport interface PickerGroup {\n id: string\n heading?: string\n docs: PickerDocument[]\n}\n\n/** Every fixed string of the document picker. */\nexport interface DocumentPickerLabels {\n placeholder: string\n searchDocuments: string\n noDocuments: string\n selectedAsSource: string\n selectAsSource: string\n largeDocument: string\n tooLong: string\n pages: (n: number) => string\n tokens: (n: number) => string\n}\n\nexport const DEFAULT_DOCUMENT_PICKER_LABELS: DocumentPickerLabels = {\n placeholder: 'Select a document',\n searchDocuments: 'Search documents...',\n noDocuments: 'No documents found.',\n selectedAsSource: 'Selected as source',\n selectAsSource: 'Select as source',\n largeDocument: 'Large document — may take longer to process',\n tooLong: 'Document is too long to be read in its entirety',\n pages: (n) => `${n.toLocaleString()} pages`,\n tokens: (n) => `${n.toLocaleString()} tokens`,\n}\n\nexport interface DocumentPickerProps {\n groups: PickerGroup[]\n /** The picked document (single mode). */\n value: string\n onValueChange: (id: string) => void\n /** The picked document's details, shown under the picker (pages, tokens, size warnings). */\n selected?: PickerDocument\n /**\n * Ids already chosen. Supplying this switches to MULTI mode: the search box is inline, the\n * list stays open on select and ticks what is in.\n */\n selectedIds?: string[]\n /**\n * Splits each row in two: a click OPENS the document (this callback) and a leading checkbox\n * selects it as a source via `onValueChange`. Requires `selectedIds`.\n */\n onOpenDocument?: (id: string) => void\n /** The document open in the viewer: its row is inverted (multi mode). */\n viewingId?: string | null\n /** While true the list is shut (a neighbouring popup must not overlay it). */\n forceClosed?: boolean\n /** Extra classes of the results list, e.g. a taller `max-h-*` when the picker is the surface. */\n listClassName?: string\n labels?: Partial<DocumentPickerLabels>\n}\n\n/**\n * Searchable document picker. Single mode is a button that opens a searchable list; multi mode\n * puts the search inline. After a pick it shows page/token counts with size warnings.\n */\nexport function DocumentPicker({\n groups,\n value,\n onValueChange,\n selected,\n selectedIds,\n onOpenDocument,\n viewingId,\n forceClosed = false,\n listClassName,\n labels,\n}: DocumentPickerProps) {\n const l = useMemo(() => ({ ...DEFAULT_DOCUMENT_PICKER_LABELS, ...labels }), [labels])\n const multi = selectedIds !== undefined\n const isChosen = (id: string) => (multi ? selectedIds.includes(id) : value === id)\n const [open, setOpen] = useState(false)\n useEffect(() => {\n if (forceClosed) setOpen(false)\n }, [forceClosed])\n const anchorRef = useRef<HTMLDivElement>(null)\n\n // A real checkbox when rows open on click; otherwise the tick that mirrors the pick.\n const leadingControl = (id: string): ReactNode =>\n onOpenDocument ? (\n // cmdk selects a row on click and prevents its mousedown (to keep input focus), which would\n // swallow a checkbox press. Stopping the events lets the checkbox toggle on its own.\n <span\n className=\"mr-2 flex items-center\"\n onClick={(e) => e.stopPropagation()}\n onMouseDown={(e) => e.stopPropagation()}\n onPointerDown={(e) => e.stopPropagation()}\n >\n <Checkbox\n checked={isChosen(id)}\n onCheckedChange={() => onValueChange(id)}\n aria-label={isChosen(id) ? l.selectedAsSource : l.selectAsSource}\n data-testid={`document-combobox-select-${id}`}\n />\n </span>\n ) : (\n <Check className={cn('mr-2 size-4', isChosen(id) ? 'opacity-100' : 'opacity-0')} />\n )\n\n const itemClass = (id: string) =>\n cn(\n onOpenDocument && 'cursor-pointer',\n onOpenDocument && isChosen(id) && 'bg-primary/10 aria-selected:bg-primary/15',\n // Inverted so the open one is unmistakable, over cmdk's own hover tint.\n viewingId === id &&\n 'bg-foreground text-background data-[selected=true]:bg-foreground data-[selected=true]:text-background'\n )\n\n const renderGroups = () => (\n <>\n <CommandEmpty>{l.noDocuments}</CommandEmpty>\n {groups.map((group) => (\n <CommandGroup key={group.id} heading={group.heading}>\n {group.docs.map((doc) => (\n <CommandItem\n key={doc.id}\n // Identity is the id: two documents can share a name, and a title-valued item would\n // make cmdk treat them as one. The title stays searchable via keywords.\n value={doc.id}\n keywords={[doc.title]}\n className={itemClass(doc.id)}\n onSelect={() => {\n if (onOpenDocument) {\n onOpenDocument(doc.id)\n return\n }\n onValueChange(doc.id)\n if (!multi) setOpen(false)\n }}\n >\n {leadingControl(doc.id)}\n <span className=\"mr-2 flex shrink-0 items-center\">\n {getDocIcon(doc.fileName ?? undefined)}\n </span>\n <span className={cn('truncate', onOpenDocument && 'hover:underline')}>\n {doc.title}\n </span>\n </CommandItem>\n ))}\n </CommandGroup>\n ))}\n </>\n )\n\n const contentClass = 'w-[var(--radix-popover-trigger-width)] border-0 bg-muted p-0 shadow-md'\n const tokens = selected?.tokens ?? null\n const pages = selected?.pages ?? null\n const isDanger = tokens != null && tokens > TOKEN_DANGER_THRESHOLD\n const isWarning = tokens != null && tokens > TOKEN_WARNING_THRESHOLD && !isDanger\n\n return (\n <div data-slot=\"document-picker\">\n {multi ? (\n // The input IS the anchor: the list opens beneath the row as soon as it is focused or\n // typed into. cmdk's context reaches the portaled list, so arrows/Enter still drive it.\n <Command>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverAnchor asChild>\n <div\n ref={anchorRef}\n className=\"flex h-9 w-full items-center gap-2 rounded-md border border-input bg-transparent px-3 shadow-sm transition-colors focus-within:ring-1 focus-within:ring-ring pointer-coarse:h-11\"\n data-testid=\"document-combobox-trigger\"\n >\n <Search className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n placeholder={l.placeholder}\n aria-expanded={open}\n className=\"h-full w-full bg-transparent text-base outline-none placeholder:text-muted-foreground md:text-sm\"\n onFocus={() => setOpen(true)}\n onValueChange={() => setOpen(true)}\n onKeyDown={(e) => {\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') setOpen(true)\n if (e.key === 'Escape') setOpen(false)\n }}\n data-testid=\"document-combobox-search\"\n />\n </div>\n </PopoverAnchor>\n <PopoverContent\n className={contentClass}\n align=\"start\"\n // Focus stays in the inline input, and opening a document hands focus to the viewer:\n // neither may count as an outside click. Pointer-downs in the viewer, dialogs and\n // poppers are ignored; Escape and any other outside click still close the list.\n onOpenAutoFocus={(e) => e.preventDefault()}\n onFocusOutside={(e) => e.preventDefault()}\n onInteractOutside={(e) => {\n const target = e.target as Element | null\n if (\n anchorRef.current?.contains(target) ||\n target?.closest(\n '[data-testid=\"parsed-viewer\"], [role=\"dialog\"], [data-radix-popper-content-wrapper]'\n )\n ) {\n e.preventDefault()\n }\n }}\n >\n <CommandList className={listClassName}>{renderGroups()}</CommandList>\n </PopoverContent>\n </Popover>\n </Command>\n ) : (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n role=\"combobox\"\n aria-expanded={open}\n className={cn(\n 'flex h-9 w-full items-center justify-between rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring md:text-sm pointer-coarse:h-11',\n !value && 'text-muted-foreground'\n )}\n data-testid=\"document-combobox-trigger\"\n >\n <span className=\"truncate\">{selected?.title || l.placeholder}</span>\n <ChevronsUpDown className=\"ml-2 size-4 shrink-0 opacity-50\" />\n </button>\n </PopoverTrigger>\n <PopoverContent className={contentClass} align=\"start\">\n <Command>\n <CommandInput placeholder={l.searchDocuments} />\n <CommandList className={listClassName}>{renderGroups()}</CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )}\n\n {selected && (\n <div className=\"mt-2 space-y-1\" data-testid=\"document-combobox-info\">\n <p className=\"text-sm text-muted-foreground\">\n {pages != null && <span>{l.pages(pages)}</span>}\n {pages != null && tokens != null && <span> · </span>}\n {tokens != null && <span>{l.tokens(tokens)}</span>}\n </p>\n {isWarning && (\n <p\n className=\"flex items-center gap-1.5 text-sm text-yellow-text\"\n data-testid=\"document-combobox-warning\"\n >\n <TriangleAlert className=\"size-3.5 shrink-0\" />\n {l.largeDocument}\n </p>\n )}\n {isDanger && (\n <p\n className=\"flex items-center gap-1.5 text-sm text-red-text\"\n data-testid=\"document-combobox-danger\"\n >\n <TriangleAlert className=\"size-3.5 shrink-0\" />\n {l.tooLong}\n </p>\n )}\n </div>\n )}\n </div>\n )\n}\n","import * as React from 'react'\nimport { CheckIcon, ChevronDown, WandSparkles } from 'lucide-react'\n\nimport {\n Button,\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n Popover,\n PopoverContent,\n PopoverTrigger,\n Separator,\n cn,\n} from '@arbidocs/react/ui'\n\n/**\n * Variants for the multi-select component to handle different styles.\n * Uses class-variance-authority (cva) to define different styles based on \"variant\" prop.\n */\n\n/**\n * Props for MultiSelect component\n */\ninterface MultiSelectProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {\n /**\n * An array of option objects to be displayed in the multi-select component.\n * Each option object has a label, value, and an optional icon.\n */\n data: {\n /** The text to display for the option. */\n label: string\n /** The unique value associated with the option. */\n value: string\n /** Optional icon component to display alongside the option. */\n icon?: React.ComponentType<{ className?: string }>\n }[]\n\n /**\n * Current selected values.\n */\n value: string[]\n\n /**\n * Callback function triggered when the selected values change.\n * Receives an array of the new selected values.\n */\n onChange: (value: string[]) => void\n\n /**\n * Current search value for filtering options.\n */\n searchValue?: string\n\n /**\n * Callback function triggered when the search value changes.\n */\n onSearchChange?: (value: string) => void\n\n /**\n * Placeholder text to be displayed when no values are selected.\n * Optional, defaults to \"Select options\".\n */\n placeholder?: string\n\n /**\n * Whether the component is searchable.\n */\n searchable?: boolean\n\n /**\n * Whether the component is clearable.\n */\n clearable?: boolean\n\n /**\n * Size of the component.\n */\n size?: 'sm' | 'md' | 'lg'\n\n /**\n * Whether the component should auto focus.\n */\n autoFocus?: boolean\n\n /**\n * Callback triggered when dropdown opens.\n */\n onDropdownOpen?: () => void\n\n /**\n * Callback triggered when dropdown closes.\n */\n onDropdownClose?: () => void\n\n /**\n * Custom render function for options.\n */\n renderOption?: (params: {\n option: { label: string; value: string; icon?: React.ComponentType<{ className?: string }> }\n checked: boolean\n }) => React.ReactNode\n\n /**\n * Animation duration in seconds for the visual effects (e.g., bouncing badges).\n * Optional, defaults to 0 (no animation).\n */\n animation?: number\n\n /**\n * Maximum number of items to display. Extra selected items will be summarized.\n * Optional, defaults to 3.\n */\n maxCount?: number\n\n /**\n * The modality of the popover. When set to true, interaction with outside elements\n * will be disabled and only popover content will be visible to screen readers.\n * Optional, defaults to false.\n */\n modalPopover?: boolean\n\n /**\n * If true, renders the multi-select component as a child of another component.\n * Optional, defaults to false.\n */\n asChild?: boolean\n\n /**\n * Additional class names to apply custom styles to the multi-select component.\n * Optional, can be used to add custom styles.\n */\n className?: string\n}\n\nexport const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(\n (\n {\n data,\n value,\n onChange,\n searchValue,\n onSearchChange,\n placeholder = 'Select options',\n searchable = false,\n clearable = false,\n size = 'md',\n autoFocus = false,\n onDropdownOpen,\n onDropdownClose,\n renderOption,\n animation = 0,\n modalPopover = false,\n className,\n ...props\n },\n ref\n ) => {\n const [isPopoverOpen, setIsPopoverOpen] = React.useState(false)\n const [internalSearchValue, setInternalSearchValue] = React.useState('')\n\n const currentSearchValue = searchValue ?? internalSearchValue\n\n React.useEffect(() => {\n if (isPopoverOpen && onDropdownOpen) {\n onDropdownOpen()\n } else if (!isPopoverOpen && onDropdownClose) {\n onDropdownClose()\n }\n }, [isPopoverOpen, onDropdownOpen, onDropdownClose])\n\n // Handle autoFocus - open dropdown immediately when component mounts\n React.useEffect(() => {\n if (autoFocus) {\n setIsPopoverOpen(true)\n }\n }, [autoFocus])\n\n const handleSearchValueChange = (newValue: string) => {\n if (onSearchChange) {\n onSearchChange(newValue)\n } else {\n setInternalSearchValue(newValue)\n }\n }\n\n const getSizeClasses = () => {\n switch (size) {\n case 'sm':\n return 'min-h-8 text-sm'\n case 'lg':\n return 'min-h-12 text-base'\n default:\n return 'min-h-10 text-sm'\n }\n }\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n setIsPopoverOpen(true)\n } else if (event.key === 'Backspace' && !event.currentTarget.value) {\n const newSelectedValues = [...value]\n newSelectedValues.pop()\n onChange(newSelectedValues)\n }\n }\n\n const toggleOption = (optionValue: string) => {\n const newSelectedValues = value.includes(optionValue)\n ? value.filter((v) => v !== optionValue)\n : [...value, optionValue]\n onChange(newSelectedValues)\n }\n\n const handleClear = () => {\n onChange([])\n }\n\n const toggleAll = () => {\n if (value.length === data.length) {\n handleClear()\n } else {\n const allValues = data.map((option) => option.value)\n onChange(allValues)\n }\n }\n\n return (\n <Popover open={isPopoverOpen} onOpenChange={setIsPopoverOpen} modal={modalPopover}>\n <PopoverTrigger asChild>\n <Button\n ref={ref}\n {...props}\n variant=\"outline\"\n className={cn(\n 'flex w-full p-1 rounded-md border h-auto items-center justify-between bg-background hover:bg-accent [&_svg]:pointer-events-auto',\n getSizeClasses(),\n className\n )}\n data-testid=\"multi-select-trigger\"\n >\n <div className=\"flex items-center justify-between w-full mx-auto\">\n <span className=\"text-sm text-muted-foreground mx-3\">{placeholder}</span>\n <ChevronDown className=\"h-4 cursor-pointer text-muted-foreground mx-2\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-[var(--radix-popover-trigger-width)] p-0\"\n align=\"start\"\n side=\"bottom\"\n sideOffset={4}\n >\n <Command shouldFilter={true}>\n {searchable && (\n <CommandInput\n placeholder=\"Search...\"\n value={currentSearchValue}\n onValueChange={handleSearchValueChange}\n onKeyDown={handleInputKeyDown}\n autoFocus={autoFocus}\n />\n )}\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n <CommandGroup>\n <CommandItem\n key=\"all\"\n onSelect={toggleAll}\n className=\"cursor-pointer\"\n data-testid=\"multi-select-all-option\"\n >\n <div\n className={cn(\n 'mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary',\n value.length === data.length\n ? 'bg-primary text-primary-foreground'\n : 'opacity-50 [&_svg]:invisible'\n )}\n >\n <CheckIcon className=\"h-4 w-4\" />\n </div>\n <span>(Select All)</span>\n </CommandItem>\n {data.map((option) => {\n const isSelected = value.includes(option.value)\n return (\n <CommandItem\n key={option.value}\n value={option.label}\n onSelect={() => toggleOption(option.value)}\n className=\"cursor-pointer\"\n data-testid={`multi-select-option-${option.value}`}\n >\n {renderOption ? (\n renderOption({ option, checked: isSelected })\n ) : (\n <>\n <div\n className={cn(\n 'mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary',\n isSelected\n ? 'bg-primary text-primary-foreground'\n : 'opacity-50 [&_svg]:invisible'\n )}\n >\n <CheckIcon className=\"h-4 w-4\" />\n </div>\n {option.icon && (\n <option.icon className=\"mr-2 h-4 w-4 text-muted-foreground\" />\n )}\n <span>{option.label}</span>\n </>\n )}\n </CommandItem>\n )\n })}\n </CommandGroup>\n <CommandSeparator />\n <CommandGroup>\n <div className=\"flex items-center justify-between\">\n {clearable && value.length > 0 && (\n <>\n <CommandItem\n onSelect={handleClear}\n className=\"flex-1 justify-center cursor-pointer\"\n data-testid=\"multi-select-clear-button\"\n >\n Clear\n </CommandItem>\n <Separator orientation=\"vertical\" className=\"flex min-h-6 h-full\" />\n </>\n )}\n <CommandItem\n onSelect={() => setIsPopoverOpen(false)}\n className=\"flex-1 justify-center cursor-pointer max-w-full\"\n data-testid=\"multi-select-close-button\"\n >\n Close\n </CommandItem>\n </div>\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n {animation > 0 && value.length > 0 && (\n <WandSparkles className=\"cursor-pointer my-2 text-muted-foreground bg-background w-3 h-3\" />\n )}\n </Popover>\n )\n }\n)\n\nMultiSelect.displayName = 'MultiSelect'\n"]}
|
|
@@ -704,6 +704,7 @@ var DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS = {
|
|
|
704
704
|
recoveryDescription: "Set a new password for your recovered account",
|
|
705
705
|
changeDescription: "Change your master password dialog",
|
|
706
706
|
passwordChanged: "Password changed",
|
|
707
|
+
recoveryKeyUnchanged: "Your recovery key is unchanged: the one you saved still recovers this account.",
|
|
707
708
|
done: "Done",
|
|
708
709
|
recoverySuccessful: "Recovery successful. Set a new master password to continue.",
|
|
709
710
|
currentPassword: "Current Password",
|
|
@@ -712,7 +713,6 @@ var DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS = {
|
|
|
712
713
|
newPassword: "New Password",
|
|
713
714
|
confirmPassword: "Confirm Password",
|
|
714
715
|
confirmNewPassword: "Confirm New Password",
|
|
715
|
-
workspacesRekeyed: (count) => `${formatCount(count, { one: "workspace", other: "workspaces" })} will be re-keyed with your new password.`,
|
|
716
716
|
cancel: "Cancel",
|
|
717
717
|
settingPassword: "Setting Password...",
|
|
718
718
|
changingPassword: "Changing Password...",
|
|
@@ -730,11 +730,11 @@ function PasswordChangeDialog({
|
|
|
730
730
|
confirmPassword,
|
|
731
731
|
onConfirmPasswordChange,
|
|
732
732
|
getUnmetRequirement,
|
|
733
|
-
workspaceCount,
|
|
734
733
|
error,
|
|
735
734
|
isProcessing,
|
|
736
735
|
isSubmitDisabled,
|
|
737
736
|
onSubmit,
|
|
737
|
+
isChanged,
|
|
738
738
|
success,
|
|
739
739
|
onDone,
|
|
740
740
|
labels,
|
|
@@ -760,11 +760,12 @@ function PasswordChangeDialog({
|
|
|
760
760
|
/* @__PURE__ */ jsx(DialogTitle, { children: recoveryMode ? l.setNewPasswordTitle : l.changeMasterPasswordTitle }),
|
|
761
761
|
/* @__PURE__ */ jsx(DialogDescription, { className: "sr-only", children: recoveryMode ? l.recoveryDescription : l.changeDescription })
|
|
762
762
|
] }),
|
|
763
|
-
|
|
763
|
+
isChanged ? /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
764
764
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-green-text", children: [
|
|
765
765
|
/* @__PURE__ */ jsx(CheckCircle2, { className: "h-5 w-5" }),
|
|
766
766
|
/* @__PURE__ */ jsx("span", { className: "font-medium", children: l.passwordChanged })
|
|
767
767
|
] }),
|
|
768
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: l.recoveryKeyUnchanged }),
|
|
768
769
|
success,
|
|
769
770
|
/* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(
|
|
770
771
|
Button,
|
|
@@ -817,19 +818,6 @@ function PasswordChangeDialog({
|
|
|
817
818
|
getUnmetRequirement
|
|
818
819
|
}
|
|
819
820
|
),
|
|
820
|
-
workspaceCount > 0 && /* @__PURE__ */ jsx(
|
|
821
|
-
"div",
|
|
822
|
-
{
|
|
823
|
-
className: "rounded-md bg-green-bg p-3",
|
|
824
|
-
"data-testid": testIdOr(testIds?.workspaceCount, {
|
|
825
|
-
testId: "change-password-workspace-count"
|
|
826
|
-
}),
|
|
827
|
-
children: /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
828
|
-
/* @__PURE__ */ jsx(CheckCircle2, { className: "h-5 w-5 flex-shrink-0 text-green-text" }),
|
|
829
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-green-text", children: l.workspacesRekeyed(workspaceCount) })
|
|
830
|
-
] })
|
|
831
|
-
}
|
|
832
|
-
),
|
|
833
821
|
error && /* @__PURE__ */ jsx(
|
|
834
822
|
"div",
|
|
835
823
|
{
|
|
@@ -1421,5 +1409,5 @@ function toNotificationCategories(checked, defs = EMAIL_NOTIFICATION_CATEGORIES)
|
|
|
1421
1409
|
}
|
|
1422
1410
|
|
|
1423
1411
|
export { ActiveSessionsDialog, AvatarPicker, DEFAULT_ACTIVE_SESSIONS_DIALOG_LABELS, DEFAULT_AVATAR_PICKER_LABELS, DEFAULT_DELETE_ACCOUNT_DIALOG_LABELS, DEFAULT_IDENTITY_VERIFICATION_LABELS, DEFAULT_LOGOUT_DIALOG_LABELS, DEFAULT_PASSWORD_CHANGE_DIALOG_LABELS, DEFAULT_PROFILE_CARD_LABELS, DEFAULT_SETTINGS_DANGER_ZONE_LABELS, DeleteAccountDialog, EMAIL_NOTIFICATION_CATEGORIES, EMAIL_NOTIFICATION_KEYS, IdentityVerificationCard, IdentityVerificationDialog, LogoutDialog, NotificationCategoryList, PasswordChangeDialog, ProfileCard, RequireVerified, SettingsActionRow, SettingsCard, SettingsDangerZone, SettingsPanel, SettingsRow, SettingsSection, SettingsSwitchGroup, SettingsSwitchRow, formatSessionTtl, toActiveSessionViews, toDeleteBlockerViews, toLogoutSessionViews, toNotificationCategories };
|
|
1424
|
-
//# sourceMappingURL=chunk-
|
|
1425
|
-
//# sourceMappingURL=chunk-
|
|
1412
|
+
//# sourceMappingURL=chunk-W7NZRZ54.js.map
|
|
1413
|
+
//# sourceMappingURL=chunk-W7NZRZ54.js.map
|