@epam/ai-dial-chat-shared 1.3.0-dev.98 → 1.3.0-rc.1
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/components/ActionMenu/ActionMenu.d.ts +26 -0
- package/components/ActionMenu/ActionMenu.d.ts.map +1 -0
- package/components/ActionMenu/ActionMenu.js +50 -0
- package/components/ConfirmationDialog/ConfirmationDialog.d.ts +6 -1
- package/components/ConfirmationDialog/ConfirmationDialog.d.ts.map +1 -1
- package/components/ConfirmationDialog/ConfirmationDialog.js +11 -9
- package/components/ConfirmationIdentityCard/ConfirmationIdentityCard.module.scss.js +5 -4
- package/components/ConfirmationIdentityRow/ConfirmationIdentityRow.js +2 -2
- package/components/ConfirmationIdentityRow/ConfirmationIdentityRow.module.scss.js +3 -2
- package/components/ConfirmationView/ConfirmationFooter.d.ts.map +1 -1
- package/components/ConfirmationView/ConfirmationFooter.js +24 -25
- package/components/ConfirmationView/ConfirmationView.d.ts +2 -0
- package/components/ConfirmationView/ConfirmationView.d.ts.map +1 -1
- package/components/ConfirmationView/ConfirmationView.js +12 -12
- package/components/ConfirmationView/ConfirmationView.module.scss.js +6 -5
- package/components/DeleteConfirmationDrawer/DeleteConfirmationDrawer.d.ts +31 -0
- package/components/DeleteConfirmationDrawer/DeleteConfirmationDrawer.d.ts.map +1 -0
- package/components/DeleteConfirmationDrawer/DeleteConfirmationDrawer.js +36 -0
- package/components/DeleteConfirmationView/DeleteConfirmationView.d.ts +3 -0
- package/components/DeleteConfirmationView/DeleteConfirmationView.d.ts.map +1 -1
- package/components/DeleteConfirmationView/DeleteConfirmationView.js +36 -27
- package/components/DeleteConfirmationView/DeleteConfirmationView.module.scss.js +5 -4
- package/components/DeploymentIcon/DeploymentIcon.module.scss.js +3 -2
- package/components/EntityHeader/EntityHeader.js +1 -1
- package/components/InitialsAvatar/InitialsAvatar.d.ts +3 -0
- package/components/InitialsAvatar/InitialsAvatar.d.ts.map +1 -1
- package/components/InitialsAvatar/InitialsAvatar.js +4 -3
- package/components/ItemHeader/ItemHeader.module.scss.js +5 -4
- package/components/MarkdownRenderer/CodeBlock/CodeBlock.d.ts +6 -2
- package/components/MarkdownRenderer/CodeBlock/CodeBlock.d.ts.map +1 -1
- package/components/MarkdownRenderer/CodeBlock/CodeBlock.js +58 -58
- package/components/MarkdownRenderer/CodeBlock/CodeBlock.module.scss.js +9 -8
- package/components/MarkdownRenderer/CodeBlock/syntax-theme.d.ts.map +1 -1
- package/components/MarkdownRenderer/MarkdownRenderer.d.ts +6 -0
- package/components/MarkdownRenderer/MarkdownRenderer.d.ts.map +1 -1
- package/components/MarkdownRenderer/MarkdownRenderer.js +29 -24
- package/components/MarkdownRenderer/MarkdownRenderer.module.scss.js +9 -8
- package/components/MarkdownRenderer/Math/MarkdownMathBlock.module.scss.js +5 -4
- package/components/MarkdownRenderer/PlainTextRenderer.js +1 -1
- package/components/MarkdownRenderer/Table/MarkdownTable.d.ts +4 -0
- package/components/MarkdownRenderer/Table/MarkdownTable.d.ts.map +1 -1
- package/components/MarkdownRenderer/Table/MarkdownTable.js +68 -63
- package/components/MarkdownRenderer/Table/MarkdownTable.module.scss.js +15 -13
- package/components/MarkdownRenderer/Table/TableHeader.module.scss.js +3 -2
- package/components/MarkdownRenderer/markdown-whitespace.js +2 -6
- package/components/NewVersionAlert/NewVersionAlert.d.ts +27 -0
- package/components/NewVersionAlert/NewVersionAlert.d.ts.map +1 -0
- package/components/NewVersionAlert/NewVersionAlert.js +28 -0
- package/components/NewVersionAlert/NewVersionAlert.module.scss.js +4 -0
- package/components/NotificationStack/NotificationStack.d.ts +48 -0
- package/components/NotificationStack/NotificationStack.d.ts.map +1 -0
- package/components/NotificationStack/NotificationStack.js +111 -0
- package/components/PanelEmptyState/PanelEmptyState.d.ts +12 -2
- package/components/PanelEmptyState/PanelEmptyState.d.ts.map +1 -1
- package/components/PanelEmptyState/PanelEmptyState.js +19 -9
- package/components/PanelEmptyState/PanelEmptyState.module.scss.js +6 -2
- package/components/ResourceSummary/ResourceSummary.module.scss.js +5 -4
- package/components/TextRefinementField/TextRefinementField.d.ts +4 -2
- package/components/TextRefinementField/TextRefinementField.d.ts.map +1 -1
- package/components/TextRefinementField/TextRefinementField.js +84 -55
- package/components/UnsavedChangesProvider/UnsavedChangesProvider.d.ts +22 -0
- package/components/UnsavedChangesProvider/UnsavedChangesProvider.d.ts.map +1 -0
- package/components/UnsavedChangesProvider/UnsavedChangesProvider.js +57 -0
- package/components/UnsavedChangesProvider/unsaved-changes-context.d.ts +44 -0
- package/components/UnsavedChangesProvider/unsaved-changes-context.d.ts.map +1 -0
- package/components/UnsavedChangesProvider/unsaved-changes-context.js +13 -0
- package/constants/breakpoint.d.ts +6 -0
- package/constants/breakpoint.d.ts.map +1 -1
- package/constants/breakpoint.js +2 -2
- package/conversation-transfer/conversation-transfer-queue.d.ts +16 -0
- package/conversation-transfer/conversation-transfer-queue.d.ts.map +1 -0
- package/conversation-transfer/conversation-transfer-queue.js +24 -0
- package/file-manager/DialFileManagerShell/DialFileManagerShell.d.ts +9 -0
- package/file-manager/DialFileManagerShell/DialFileManagerShell.d.ts.map +1 -1
- package/file-manager/DialFileManagerShell/DialFileManagerShell.js +330 -269
- package/file-manager/DialFileManagerShell/DialFileManagerShell.module.scss.js +8 -0
- package/file-manager/FileManagerAttachModal/FileManagerAttachModal.d.ts +23 -0
- package/file-manager/FileManagerAttachModal/FileManagerAttachModal.d.ts.map +1 -1
- package/file-manager/FileManagerAttachModal/FileManagerAttachModal.js +86 -80
- package/file-manager/FileManagerAttachModal/FileManagerAttachModal.module.scss.js +7 -0
- package/file-manager/OperationLoaderModal/OperationLoaderModal.d.ts +5 -0
- package/file-manager/OperationLoaderModal/OperationLoaderModal.d.ts.map +1 -1
- package/file-manager/OperationLoaderModal/OperationLoaderModal.js +25 -20
- package/file-manager/OperationLoaderModal/OperationLoaderModal.module.scss.js +4 -0
- package/file-manager/file-manager-controller.d.ts +11 -3
- package/file-manager/file-manager-controller.d.ts.map +1 -1
- package/file-manager/index.d.ts +1 -0
- package/file-manager/index.d.ts.map +1 -1
- package/file-manager/labels.d.ts +21 -2
- package/file-manager/labels.d.ts.map +1 -1
- package/file-manager/shell-styles.d.ts +37 -0
- package/file-manager/shell-styles.d.ts.map +1 -0
- package/file-manager/upload-batch.d.ts +46 -0
- package/file-manager/upload-batch.d.ts.map +1 -1
- package/file-manager/upload-batch.js +6 -2
- package/file-manager/upload-queue.d.ts +44 -4
- package/file-manager/upload-queue.d.ts.map +1 -1
- package/file-manager/upload-queue.js +45 -13
- package/file-manager.js +4 -4
- package/hooks/useAvailableHeightCap.js +1 -1
- package/hooks/useControlErrorAssociation.d.ts +3 -0
- package/hooks/useControlErrorAssociation.d.ts.map +1 -0
- package/hooks/useControlErrorAssociation.js +12 -0
- package/hooks/useIsMobile.js +1 -1
- package/hooks/useIsPhone.d.ts +3 -0
- package/hooks/useIsPhone.d.ts.map +1 -0
- package/hooks/useIsPhone.js +13 -0
- package/hooks/useIsTablet.d.ts +3 -0
- package/hooks/useIsTablet.d.ts.map +1 -0
- package/hooks/useIsTablet.js +13 -0
- package/hooks/useIsTextClipped.d.ts +26 -0
- package/hooks/useIsTextClipped.d.ts.map +1 -0
- package/hooks/useIsTextClipped.js +25 -0
- package/hooks/useIsVerticallyClamped.d.ts +16 -0
- package/hooks/useIsVerticallyClamped.d.ts.map +1 -0
- package/hooks/useIsVerticallyClamped.js +20 -0
- package/hooks/useTextRefinement.d.ts +1 -1
- package/hooks/useTextRefinement.d.ts.map +1 -1
- package/hooks/useTextRefinement.js +4 -4
- package/hooks/useUnsavedChangesGuard.js +1 -5
- package/hooks/useUnsavedChangesLeaveConfirmation.d.ts +12 -0
- package/hooks/useUnsavedChangesLeaveConfirmation.d.ts.map +1 -0
- package/hooks/useUnsavedChangesLeaveConfirmation.js +22 -0
- package/hooks/useUnsavedChangesLeaveGuard.d.ts +24 -0
- package/hooks/useUnsavedChangesLeaveGuard.d.ts.map +1 -0
- package/hooks/useUnsavedChangesLeaveGuard.js +24 -0
- package/index.css +2 -2
- package/index.d.ts +15 -0
- package/index.d.ts.map +1 -1
- package/index.js +93 -78
- package/models/auth.d.ts +2 -0
- package/models/auth.d.ts.map +1 -1
- package/models/chat.d.ts +19 -0
- package/models/chat.d.ts.map +1 -1
- package/models/conversation-classification.d.ts +5 -0
- package/models/conversation-classification.d.ts.map +1 -1
- package/models/conversation-classification.js +3 -1
- package/models/text-refinement.d.ts +6 -2
- package/models/text-refinement.d.ts.map +1 -1
- package/package.json +10 -17
- package/types/mime-type.d.ts +30 -0
- package/types/mime-type.d.ts.map +1 -1
- package/types/mime-type.js +1 -1
- package/utils/dom.d.ts +8 -0
- package/utils/dom.d.ts.map +1 -0
- package/utils/dom.js +10 -0
- package/utils/format-price.js +10 -10
- package/utils/inline-segments.js +1 -1
- package/utils/latex.d.ts +4 -3
- package/utils/latex.d.ts.map +1 -1
- package/utils/latex.js +47 -41
- package/utils/message-attachment-to-display.js +1 -1
- package/utils/mime-type.js +1 -1
- package/utils/prompt-variables.js +5 -9
- package/utils/syntax-highlighting.js +8 -8
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
//#region src/file-manager/upload-batch.ts
|
|
2
2
|
var e = /* @__PURE__ */ function(e) {
|
|
3
3
|
return e.Queued = "queued", e.Uploading = "uploading", e.Completed = "completed", e.Failed = "failed", e.Cancelled = "cancelled", e;
|
|
4
|
-
}({}), t =
|
|
4
|
+
}({}), t = /* @__PURE__ */ function(e) {
|
|
5
|
+
return e.Conflict = "conflict", e.TooLarge = "tooLarge", e.Forbidden = "forbidden", e.Unavailable = "unavailable", e.Network = "network", e.Unknown = "unknown", e;
|
|
6
|
+
}({}), n = /* @__PURE__ */ function(e) {
|
|
7
|
+
return e.Downloading = "downloading", e.Completed = "completed", e.Failed = "failed", e.Cancelled = "cancelled", e;
|
|
8
|
+
}({}), r = (e) => e?.files.some((e) => e.status === "downloading") ?? !1, i = (e) => e?.files.some((e) => e.status === "queued" || e.status === "uploading") ?? !1;
|
|
5
9
|
//#endregion
|
|
6
|
-
export { e as FileUploadStatus,
|
|
10
|
+
export { n as FileDownloadStatus, t as FileUploadFailureReason, e as FileUploadStatus, r as isDownloadInProgress, i as isUploadInProgress };
|
|
@@ -1,5 +1,45 @@
|
|
|
1
|
-
import { TransferQueueItem } from '@epam/ai-dial-ui-kit';
|
|
2
|
-
import { FileUploadEntry } from './upload-batch';
|
|
3
|
-
/** Maps upload entries onto the UI kit's `TransferQueue` rows. */
|
|
4
|
-
export declare const toUploadQueueItems: (files: FileUploadEntry[]) => TransferQueueItem[];
|
|
1
|
+
import { TransferQueueItem, TransferQueueLabels } from '@epam/ai-dial-ui-kit';
|
|
2
|
+
import { FileDownloadBatchState, FileUploadBatchState, FileUploadEntry, FileUploadFailureReason } from './upload-batch';
|
|
3
|
+
/** Maps upload entries onto the UI kit's `TransferQueue` rows; a failed row's `message` is the host text for its reason, when there is one. */
|
|
4
|
+
export declare const toUploadQueueItems: (files: FileUploadEntry[], failureMessages?: Partial<Record<FileUploadFailureReason, string>>) => TransferQueueItem[];
|
|
5
|
+
/** Kind of a transfer-queue row, carried as its id prefix so cancel routes to the right batch. */
|
|
6
|
+
export declare enum TransferQueueRowKind {
|
|
7
|
+
Upload = "upload",
|
|
8
|
+
Download = "download"
|
|
9
|
+
}
|
|
10
|
+
/** Builds the id of a transfer-queue row from its kind and its batch entry id. */
|
|
11
|
+
export declare const toTransferQueueRowId: (kind: TransferQueueRowKind, entryId: string) => string;
|
|
12
|
+
/** Splits a transfer-queue row id back into its kind and batch entry id; `undefined` for an id of neither kind. */
|
|
13
|
+
export declare const parseTransferQueueRowId: (rowId: string) => {
|
|
14
|
+
kind: TransferQueueRowKind;
|
|
15
|
+
entryId: string;
|
|
16
|
+
} | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Maps the upload and download batches onto one UI kit `TransferQueue`:
|
|
19
|
+
* upload rows first, then download rows, each id prefixed by its kind.
|
|
20
|
+
*/
|
|
21
|
+
export declare const toTransferQueueItems: (uploadBatch: FileUploadBatchState | null, downloadBatch: FileDownloadBatchState | null, failureMessages?: Partial<Record<FileUploadFailureReason, string>>) => TransferQueueItem[];
|
|
22
|
+
/** Row wording for a download row, as `DialFileManagerShellLabels.downloadQueueLabels` carries it. */
|
|
23
|
+
type DownloadRowLabels = Partial<Pick<TransferQueueLabels, 'cancelItemAriaLabel' | 'itemProgressAriaLabel' | 'queueProgressAriaLabel'>>;
|
|
24
|
+
/** Inputs of {@link buildTransferQueueLabels}. */
|
|
25
|
+
interface TransferQueueLabelSources {
|
|
26
|
+
/** The upload queue's labels, used for every upload row and as the base. */
|
|
27
|
+
uploadLabels?: Partial<TransferQueueLabels>;
|
|
28
|
+
/** Download-row wording; without it the queue keeps the upload labels. */
|
|
29
|
+
downloadLabels?: DownloadRowLabels;
|
|
30
|
+
/** Name of the aggregate bar while both kinds run. */
|
|
31
|
+
mixedProgressLabel?: string;
|
|
32
|
+
/** File names of the upload rows. */
|
|
33
|
+
uploadNames: ReadonlySet<string>;
|
|
34
|
+
/** File names of the download rows. */
|
|
35
|
+
downloadNames: ReadonlySet<string>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The queue's labels with each row's cancel and progress names worded for its
|
|
39
|
+
* own kind (uploading / downloading), since the kit labels a whole queue
|
|
40
|
+
* rather than a row. A name present in both kinds keeps the upload wording.
|
|
41
|
+
* The aggregate bar is named for downloads, uploads, or both.
|
|
42
|
+
*/
|
|
43
|
+
export declare const buildTransferQueueLabels: ({ uploadLabels, downloadLabels, mixedProgressLabel, uploadNames, downloadNames, }: TransferQueueLabelSources) => Partial<TransferQueueLabels> | undefined;
|
|
44
|
+
export {};
|
|
5
45
|
//# sourceMappingURL=upload-queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-queue.d.ts","sourceRoot":"","sources":["../../src/file-manager/upload-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"upload-queue.d.ts","sourceRoot":"","sources":["../../src/file-manager/upload-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,sBAAsB,EAG3B,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAE7B,MAAM,gBAAgB,CAAC;AAexB,+IAA+I;AAC/I,eAAO,MAAM,kBAAkB,GAC7B,OAAO,eAAe,EAAE,EACxB,kBAAkB,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,KACjE,iBAAiB,EAWf,CAAC;AAYN,kGAAkG;AAClG,oBAAY,oBAAoB;IAC9B,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,oBAAoB,EAC1B,SAAS,MAAM,KACd,MAA8B,CAAC;AAElC,mHAAmH;AACnH,eAAO,MAAM,uBAAuB,GAClC,OAAO,MAAM,KACZ;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAUpD,CAAC;AAgBF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,oBAAoB,GAAG,IAAI,EACxC,eAAe,sBAAsB,GAAG,IAAI,EAC5C,kBAAkB,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC,KACjE,iBAAiB,EAUnB,CAAC;AAEF,sGAAsG;AACtG,KAAK,iBAAiB,GAAG,OAAO,CAC9B,IAAI,CACF,mBAAmB,EACnB,qBAAqB,GAAG,uBAAuB,GAAG,wBAAwB,CAC3E,CACF,CAAC;AAEF,kDAAkD;AAClD,UAAU,yBAAyB;IACjC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5C,0EAA0E;IAC1E,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qCAAqC;IACrC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,uCAAuC;IACvC,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GAAI,mFAMtC,yBAAyB,KAAG,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAoC7D,CAAC"}
|
|
@@ -1,17 +1,49 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { TransferQueueItemStatus as
|
|
1
|
+
import { FileDownloadStatus as e, FileUploadStatus as t } from "./upload-batch.js";
|
|
2
|
+
import { TransferQueueItemStatus as n } from "@epam/ai-dial-ui-kit";
|
|
3
3
|
//#region src/file-manager/upload-queue.ts
|
|
4
|
-
var
|
|
5
|
-
[
|
|
6
|
-
[
|
|
7
|
-
[
|
|
8
|
-
[
|
|
9
|
-
[
|
|
10
|
-
},
|
|
4
|
+
var r = {
|
|
5
|
+
[t.Queued]: n.InProgress,
|
|
6
|
+
[t.Uploading]: n.InProgress,
|
|
7
|
+
[t.Completed]: n.Success,
|
|
8
|
+
[t.Failed]: n.Failed,
|
|
9
|
+
[t.Cancelled]: n.Canceled
|
|
10
|
+
}, i = (e, n) => e.map((e) => ({
|
|
11
11
|
id: e.id,
|
|
12
12
|
name: e.name,
|
|
13
|
-
status:
|
|
14
|
-
percent: e.percent
|
|
15
|
-
|
|
13
|
+
status: r[e.status],
|
|
14
|
+
percent: e.percent,
|
|
15
|
+
message: e.status === t.Failed && e.failureReason != null ? n?.[e.failureReason] : void 0
|
|
16
|
+
})), a = {
|
|
17
|
+
[e.Downloading]: n.InProgress,
|
|
18
|
+
[e.Completed]: n.Success,
|
|
19
|
+
[e.Failed]: n.Failed,
|
|
20
|
+
[e.Cancelled]: n.Canceled
|
|
21
|
+
}, o = /* @__PURE__ */ function(e) {
|
|
22
|
+
return e.Upload = "upload", e.Download = "download", e;
|
|
23
|
+
}({}), s = (e, t) => `${e}:${t}`, c = (e) => {
|
|
24
|
+
let t = e.indexOf(":"), n = e.slice(0, t);
|
|
25
|
+
if (n === "upload" || n === "download") return {
|
|
26
|
+
kind: n,
|
|
27
|
+
entryId: e.slice(t + 1)
|
|
28
|
+
};
|
|
29
|
+
}, l = (t, n) => ({
|
|
30
|
+
id: s("download", t.id),
|
|
31
|
+
name: t.name,
|
|
32
|
+
status: a[t.status],
|
|
33
|
+
percent: t.percent,
|
|
34
|
+
message: t.status === e.Failed && t.failureReason != null ? n?.[t.failureReason] : void 0
|
|
35
|
+
}), u = (e, t, n) => [...i(e?.files ?? [], n).map((e) => ({
|
|
36
|
+
...e,
|
|
37
|
+
id: s("upload", e.id)
|
|
38
|
+
})), ...(t?.files ?? []).map((e) => l(e, n))], d = ({ uploadLabels: e, downloadLabels: t, mixedProgressLabel: n, uploadNames: r, downloadNames: i }) => {
|
|
39
|
+
if (!t || i.size === 0) return e;
|
|
40
|
+
let a = (e) => i.has(e) && !r.has(e), o = (e, t) => e && t ? (n) => a(n) ? t(n) : e(n) : e ?? t, s = r.size === 0 ? t.queueProgressAriaLabel ?? e?.queueProgressAriaLabel : n ?? e?.queueProgressAriaLabel, c = o(e?.cancelItemAriaLabel, t.cancelItemAriaLabel), l = o(e?.itemProgressAriaLabel, t.itemProgressAriaLabel);
|
|
41
|
+
return {
|
|
42
|
+
...e,
|
|
43
|
+
...c ? { cancelItemAriaLabel: c } : {},
|
|
44
|
+
...l ? { itemProgressAriaLabel: l } : {},
|
|
45
|
+
...s ? { queueProgressAriaLabel: s } : {}
|
|
46
|
+
};
|
|
47
|
+
};
|
|
16
48
|
//#endregion
|
|
17
|
-
export {
|
|
49
|
+
export { o as TransferQueueRowKind, d as buildTransferQueueLabels, c as parseTransferQueueRowId, u as toTransferQueueItems, s as toTransferQueueRowId, i as toUploadQueueItems };
|
package/file-manager.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DialFileManagerShell as
|
|
3
|
-
import { FileManagerAttachModal as
|
|
4
|
-
export {
|
|
1
|
+
import { TransferQueueRowKind as e, buildTransferQueueLabels as t, parseTransferQueueRowId as n, toTransferQueueItems as r, toTransferQueueRowId as i, toUploadQueueItems as a } from "./file-manager/upload-queue.js";
|
|
2
|
+
import { DialFileManagerShell as o } from "./file-manager/DialFileManagerShell/DialFileManagerShell.js";
|
|
3
|
+
import { FileManagerAttachModal as s } from "./file-manager/FileManagerAttachModal/FileManagerAttachModal.js";
|
|
4
|
+
export { o as DialFileManagerShell, s as FileManagerAttachModal, e as TransferQueueRowKind, t as buildTransferQueueLabels, n as parseTransferQueueRowId, r as toTransferQueueItems, i as toTransferQueueRowId, a as toUploadQueueItems };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RESIZABLE_FIELD_MAX_HEIGHT_CSS_VARIABLE as e } from "../constants/resizable-fields.js";
|
|
2
2
|
import { useCallback as t, useLayoutEffect as n, useRef as r } from "react";
|
|
3
3
|
//#region src/hooks/useAvailableHeightCap.ts
|
|
4
|
-
var i = 16, a = 200, o = new Set([
|
|
4
|
+
var i = 16, a = 200, o = /* @__PURE__ */ new Set([
|
|
5
5
|
"auto",
|
|
6
6
|
"scroll",
|
|
7
7
|
"overlay"
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Adds `errorId` to the `aria-describedby` of the element `getControl` returns and sets `aria-invalid` while `hasError` is true. */
|
|
2
|
+
export declare const useControlErrorAssociation: (getControl: () => Element | null, errorId: string, hasError: boolean) => void;
|
|
3
|
+
//# sourceMappingURL=useControlErrorAssociation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useControlErrorAssociation.d.ts","sourceRoot":"","sources":["../../src/hooks/useControlErrorAssociation.ts"],"names":[],"mappings":"AASA,qIAAqI;AACrI,eAAO,MAAM,0BAA0B,GACrC,YAAY,MAAM,OAAO,GAAG,IAAI,EAChC,SAAS,MAAM,EACf,UAAU,OAAO,KAChB,IAqBF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useLayoutEffect as e } from "react";
|
|
2
|
+
//#region src/hooks/useControlErrorAssociation.ts
|
|
3
|
+
var t = (t, n, r) => {
|
|
4
|
+
e(() => {
|
|
5
|
+
let e = t();
|
|
6
|
+
if (!e) return;
|
|
7
|
+
let i = (e.getAttribute("aria-describedby") ?? "").split(/\s+/).filter((e) => e !== "" && e !== n);
|
|
8
|
+
r ? (i.push(n), e.setAttribute("aria-invalid", "true")) : e.removeAttribute("aria-invalid"), i.length > 0 ? e.setAttribute("aria-describedby", i.join(" ")) : e.removeAttribute("aria-describedby");
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { t as useControlErrorAssociation };
|
package/hooks/useIsMobile.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MOBILE_MEDIA_QUERY as e } from "../constants/breakpoint.js";
|
|
2
2
|
import { useEffect as t, useState as n } from "react";
|
|
3
3
|
//#region src/hooks/useIsMobile.ts
|
|
4
|
-
var r = () => typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia(
|
|
4
|
+
var r = () => typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(max-width: 1279px)").matches, i = () => {
|
|
5
5
|
let [i, a] = n(r);
|
|
6
6
|
return t(() => {
|
|
7
7
|
if (typeof window > "u" || typeof window.matchMedia != "function") return;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsPhone.d.ts","sourceRoot":"","sources":["../../src/hooks/useIsPhone.ts"],"names":[],"mappings":"AAQA,oFAAoF;AACpF,eAAO,MAAM,UAAU,QAAO,OAiB7B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PHONE_MEDIA_QUERY as e } from "../constants/breakpoint.js";
|
|
2
|
+
import { useEffect as t, useState as n } from "react";
|
|
3
|
+
//#region src/hooks/useIsPhone.ts
|
|
4
|
+
var r = () => typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(width < 768px)").matches, i = () => {
|
|
5
|
+
let [i, a] = n(r);
|
|
6
|
+
return t(() => {
|
|
7
|
+
if (typeof window > "u" || typeof window.matchMedia != "function") return;
|
|
8
|
+
let t = window.matchMedia(e), n = () => a(t.matches);
|
|
9
|
+
return n(), t.addEventListener("change", n), () => t.removeEventListener("change", n);
|
|
10
|
+
}, []), i;
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { i as useIsPhone };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsTablet.d.ts","sourceRoot":"","sources":["../../src/hooks/useIsTablet.ts"],"names":[],"mappings":"AAQA,qFAAqF;AACrF,eAAO,MAAM,WAAW,QAAO,OAiB9B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TABLET_MEDIA_QUERY as e } from "../constants/breakpoint.js";
|
|
2
|
+
import { useEffect as t, useState as n } from "react";
|
|
3
|
+
//#region src/hooks/useIsTablet.ts
|
|
4
|
+
var r = () => typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(768px <= width < 1280px)").matches, i = () => {
|
|
5
|
+
let [i, a] = n(r);
|
|
6
|
+
return t(() => {
|
|
7
|
+
if (typeof window > "u" || typeof window.matchMedia != "function") return;
|
|
8
|
+
let t = window.matchMedia(e), n = () => a(t.matches);
|
|
9
|
+
return n(), t.addEventListener("change", n), () => t.removeEventListener("change", n);
|
|
10
|
+
}, []), i;
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { i as useIsTablet };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
/** Return value of `useIsTextClipped`. */
|
|
3
|
+
export interface UseIsTextClippedResult<TElement extends HTMLElement> {
|
|
4
|
+
/** Ref attached to the element whose text may be clipped. */
|
|
5
|
+
ref: RefObject<TElement | null>;
|
|
6
|
+
/** Whether the element's text overflows its box horizontally. */
|
|
7
|
+
isClipped: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Reports whether an element's text overflows horizontally, so a caller can
|
|
11
|
+
* offer a way to reveal the hidden part only when something is actually
|
|
12
|
+
* hidden.
|
|
13
|
+
*
|
|
14
|
+
* `isMeasuring` exists because the answer is only meaningful while the element
|
|
15
|
+
* is in its clipped state: once the caller lets the text wrap, nothing
|
|
16
|
+
* overflows any more, and re-measuring there would retract the very control
|
|
17
|
+
* the reader just used. The last measurement taken while clipped is kept
|
|
18
|
+
* instead.
|
|
19
|
+
*
|
|
20
|
+
* @param isMeasuring - Whether the element is currently in its clipped state.
|
|
21
|
+
* @param contentKey - Text whose change should force a re-measure. A
|
|
22
|
+
* ResizeObserver does not fire for it: clipped text keeps the same box when
|
|
23
|
+
* its content grows.
|
|
24
|
+
*/
|
|
25
|
+
export declare const useIsTextClipped: <TElement extends HTMLElement>(isMeasuring: boolean, contentKey: string) => UseIsTextClippedResult<TElement>;
|
|
26
|
+
//# sourceMappingURL=useIsTextClipped.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsTextClipped.d.ts","sourceRoot":"","sources":["../../src/hooks/useIsTextClipped.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,0CAA0C;AAC1C,MAAM,WAAW,sBAAsB,CAAC,QAAQ,SAAS,WAAW;IAClE,6DAA6D;IAC7D,GAAG,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAChC,iEAAiE;IACjE,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,WAAW,EAC3D,aAAa,OAAO,EACpB,YAAY,MAAM,KACjB,sBAAsB,CAAC,QAAQ,CA8BjC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { useCallback as e, useLayoutEffect as t, useRef as n, useState as r } from "react";
|
|
2
|
+
//#region src/hooks/useIsTextClipped.ts
|
|
3
|
+
var i = 1, a = (a, o) => {
|
|
4
|
+
let s = n(null), [c, l] = r(!1), u = e(() => {
|
|
5
|
+
let e = s.current;
|
|
6
|
+
e && l(e.scrollWidth - e.clientWidth > i);
|
|
7
|
+
}, []);
|
|
8
|
+
return t(() => {
|
|
9
|
+
if (!a) return;
|
|
10
|
+
u();
|
|
11
|
+
let e = s.current;
|
|
12
|
+
if (!e || typeof ResizeObserver > "u") return;
|
|
13
|
+
let t = new ResizeObserver(u);
|
|
14
|
+
return t.observe(e), () => t.disconnect();
|
|
15
|
+
}, [
|
|
16
|
+
a,
|
|
17
|
+
o,
|
|
18
|
+
u
|
|
19
|
+
]), {
|
|
20
|
+
ref: s,
|
|
21
|
+
isClipped: c
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
export { a as useIsTextClipped };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
/** Return value of `useIsVerticallyClamped`. */
|
|
3
|
+
export interface UseIsVerticallyClampedResult<TElement extends HTMLElement> {
|
|
4
|
+
/** Ref attached to the clamped element whose overflow is measured. */
|
|
5
|
+
ref: RefObject<TElement | null>;
|
|
6
|
+
/** Whether the element, or one of its direct children, is taller inside than its visible box. */
|
|
7
|
+
isClamped: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Tracks whether a `line-clamp-*` (or any `overflow: hidden`) element hides
|
|
11
|
+
* part of its content, so a caller can reveal the rest — e.g. in a tooltip —
|
|
12
|
+
* only when something is actually cut off. Re-measures on every resize of the
|
|
13
|
+
* element and whenever `content` changes.
|
|
14
|
+
*/
|
|
15
|
+
export declare const useIsVerticallyClamped: <TElement extends HTMLElement>(content: unknown) => UseIsVerticallyClampedResult<TElement>;
|
|
16
|
+
//# sourceMappingURL=useIsVerticallyClamped.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsVerticallyClamped.d.ts","sourceRoot":"","sources":["../../src/hooks/useIsVerticallyClamped.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,gDAAgD;AAChD,MAAM,WAAW,4BAA4B,CAAC,QAAQ,SAAS,WAAW;IACxE,sEAAsE;IACtE,GAAG,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAChC,iGAAiG;IACjG,SAAS,EAAE,OAAO,CAAC;CACpB;AAKD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,SAAS,WAAW,EACjE,SAAS,OAAO,KACf,4BAA4B,CAAC,QAAQ,CAiCvC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useCallback as e, useLayoutEffect as t, useRef as n, useState as r } from "react";
|
|
2
|
+
//#region src/hooks/useIsVerticallyClamped.ts
|
|
3
|
+
var i = 1, a = (e) => e.scrollHeight - e.clientHeight > i, o = (i) => {
|
|
4
|
+
let o = n(null), [s, c] = r(!1), l = e(() => {
|
|
5
|
+
let e = o.current;
|
|
6
|
+
e && c(a(e) || Array.from(e.children).some(a));
|
|
7
|
+
}, []);
|
|
8
|
+
return t(() => {
|
|
9
|
+
l();
|
|
10
|
+
let e = o.current;
|
|
11
|
+
if (!e || typeof ResizeObserver > "u") return;
|
|
12
|
+
let t = new ResizeObserver(l);
|
|
13
|
+
return t.observe(e), () => t.disconnect();
|
|
14
|
+
}, [l, i]), {
|
|
15
|
+
ref: o,
|
|
16
|
+
isClamped: s
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export { o as useIsVerticallyClamped };
|
|
@@ -32,7 +32,7 @@ export interface TextRefinementResult {
|
|
|
32
32
|
canRefine: boolean;
|
|
33
33
|
/** Whether an original baseline can be restored. */
|
|
34
34
|
canUndo: boolean;
|
|
35
|
-
/** Refines the latest committed value; duplicate activation is ignored. */
|
|
35
|
+
/** Refines the latest committed value, or the Undo baseline when one exists; duplicate activation is ignored. */
|
|
36
36
|
refine: () => Promise<void>;
|
|
37
37
|
/** Restores the baseline from before the first successful refinement. */
|
|
38
38
|
undo: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTextRefinement.d.ts","sourceRoot":"","sources":["../../src/hooks/useTextRefinement.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,6CAA6C;AAC7C,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,qEAAqE;AACrE,MAAM,WAAW,wBAAwB;IACvC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,mEAAmE;IACnE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,gDAAgD;AAChD,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"useTextRefinement.d.ts","sourceRoot":"","sources":["../../src/hooks/useTextRefinement.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG,CACnC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB,6CAA6C;AAC7C,oBAAY,mBAAmB;IAC7B,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,qEAAqE;AACrE,MAAM,WAAW,wBAAwB;IACvC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,mEAAmE;IACnE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,gDAAgD;AAChD,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,KAAK,EAAE,mBAAmB,CAAC;IAC3B,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,iHAAiH;IACjH,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,yEAAyE;IACzE,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,6EAA6E;IAC7E,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB,GAC5B,SAAS,wBAAwB,KAChC,oBAiJF,CAAC"}
|
|
@@ -29,11 +29,11 @@ var i = /* @__PURE__ */ function(e) {
|
|
|
29
29
|
if (!u.current || !e.onRefine || e.disabled || !e.value.trim() || t.controller || t.expected !== void 0) return;
|
|
30
30
|
let n = new AbortController();
|
|
31
31
|
t.controller = n;
|
|
32
|
-
let r = ++t.generation, i = e.value, a = () => u.current && r === t.generation && !n.signal.aborted && l.current.value === i;
|
|
32
|
+
let r = ++t.generation, i = e.value, a = t.baseline ?? i, s = () => u.current && r === t.generation && !n.signal.aborted && l.current.value === i;
|
|
33
33
|
o("pending");
|
|
34
34
|
try {
|
|
35
|
-
let r = await e.onRefine(
|
|
36
|
-
if (!
|
|
35
|
+
let r = await e.onRefine(a, n.signal);
|
|
36
|
+
if (!s()) return;
|
|
37
37
|
if (typeof r != "string" || !r.trim()) throw Error("Empty refinement");
|
|
38
38
|
if (r === i) {
|
|
39
39
|
o("unchanged");
|
|
@@ -41,7 +41,7 @@ var i = /* @__PURE__ */ function(e) {
|
|
|
41
41
|
}
|
|
42
42
|
t.baseline ??= i, t.expected = r, c(!0), o("success"), l.current.onChange(r);
|
|
43
43
|
} catch (e) {
|
|
44
|
-
if (!
|
|
44
|
+
if (!s()) return;
|
|
45
45
|
typeof e == "object" && e && "name" in e && e.name === "AbortError" ? o("idle") : o("error");
|
|
46
46
|
} finally {
|
|
47
47
|
r === t.generation && (t.controller = void 0);
|
|
@@ -10,11 +10,7 @@ var i = (i) => {
|
|
|
10
10
|
return window.addEventListener("beforeunload", e), () => window.removeEventListener("beforeunload", e);
|
|
11
11
|
}, [i]), {
|
|
12
12
|
guard: e((e) => {
|
|
13
|
-
|
|
14
|
-
e();
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
s.current = e, o(!0);
|
|
13
|
+
i ? (s.current = e, o(!0)) : e();
|
|
18
14
|
}, [i]),
|
|
19
15
|
isConfirmOpen: a,
|
|
20
16
|
confirm: e(() => {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Options of {@link useUnsavedChangesLeaveConfirmation}. */
|
|
2
|
+
export interface UnsavedChangesLeaveConfirmationOptions {
|
|
3
|
+
/** Whether a transition is currently held by the host's blocker. */
|
|
4
|
+
isBlocked: boolean;
|
|
5
|
+
/** Lets the held transition continue; runs on Discard changes. */
|
|
6
|
+
onDiscard: () => void;
|
|
7
|
+
/** Drops the held transition; runs on Keep editing or any dismissal. */
|
|
8
|
+
onKeep: () => void;
|
|
9
|
+
}
|
|
10
|
+
/** Opens the `UnsavedChangesProvider` dialog while a transition is blocked, and closes it unanswered once the transition is gone or the caller unmounts. */
|
|
11
|
+
export declare const useUnsavedChangesLeaveConfirmation: ({ isBlocked, onDiscard, onKeep, }: UnsavedChangesLeaveConfirmationOptions) => void;
|
|
12
|
+
//# sourceMappingURL=useUnsavedChangesLeaveConfirmation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUnsavedChangesLeaveConfirmation.d.ts","sourceRoot":"","sources":["../../src/hooks/useUnsavedChangesLeaveConfirmation.ts"],"names":[],"mappings":"AAGA,6DAA6D;AAC7D,MAAM,WAAW,sCAAsC;IACrD,oEAAoE;IACpE,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,wEAAwE;IACxE,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,4JAA4J;AAC5J,eAAO,MAAM,kCAAkC,GAAI,mCAIhD,sCAAsC,KAAG,IAyB3C,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useUnsavedChangesInternal as e } from "../components/UnsavedChangesProvider/unsaved-changes-context.js";
|
|
2
|
+
import { useEffect as t, useLayoutEffect as n, useRef as r } from "react";
|
|
3
|
+
//#region src/hooks/useUnsavedChangesLeaveConfirmation.ts
|
|
4
|
+
var i = ({ isBlocked: i, onDiscard: a, onKeep: o }) => {
|
|
5
|
+
let { open: s } = e(), c = r({
|
|
6
|
+
onDiscard: a,
|
|
7
|
+
onKeep: o
|
|
8
|
+
});
|
|
9
|
+
n(() => {
|
|
10
|
+
c.current = {
|
|
11
|
+
onDiscard: a,
|
|
12
|
+
onKeep: o
|
|
13
|
+
};
|
|
14
|
+
}, [a, o]), t(() => {
|
|
15
|
+
if (i) return s({
|
|
16
|
+
onDiscard: () => c.current.onDiscard(),
|
|
17
|
+
onKeep: () => c.current.onKeep()
|
|
18
|
+
});
|
|
19
|
+
}, [i, s]);
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { i as useUnsavedChangesLeaveConfirmation };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Options of {@link useUnsavedChangesLeaveGuard}. */
|
|
2
|
+
export interface UnsavedChangesLeaveGuardOptions {
|
|
3
|
+
/** Whether the form currently holds edits that leaving would discard. */
|
|
4
|
+
isDirty: boolean;
|
|
5
|
+
}
|
|
6
|
+
/** Result of {@link useUnsavedChangesLeaveGuard}. */
|
|
7
|
+
export interface UnsavedChangesLeaveGuardResult {
|
|
8
|
+
/**
|
|
9
|
+
* Returns whether a transition must be blocked: `isLeaving` (the host's own
|
|
10
|
+
* "this transition leaves the form" decision) while the form is dirty,
|
|
11
|
+
* unless `allowNextNavigation` armed a bypass, which this call consumes.
|
|
12
|
+
* Stable across renders and reads the latest `isDirty`.
|
|
13
|
+
*/
|
|
14
|
+
shouldBlockLeave: (isLeaving: boolean) => boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Lets exactly one following transition through unblocked. Call it right
|
|
17
|
+
* before the form's own post-save exit, while `isDirty` may still be `true`
|
|
18
|
+
* because the clean state has not re-rendered yet.
|
|
19
|
+
*/
|
|
20
|
+
allowNextNavigation: () => void;
|
|
21
|
+
}
|
|
22
|
+
/** Registers the form's dirty state with `UnsavedChangesProvider`, warns before the page unloads while dirty, and returns a router-agnostic block predicate with a one-shot bypass. */
|
|
23
|
+
export declare const useUnsavedChangesLeaveGuard: ({ isDirty, }: UnsavedChangesLeaveGuardOptions) => UnsavedChangesLeaveGuardResult;
|
|
24
|
+
//# sourceMappingURL=useUnsavedChangesLeaveGuard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUnsavedChangesLeaveGuard.d.ts","sourceRoot":"","sources":["../../src/hooks/useUnsavedChangesLeaveGuard.ts"],"names":[],"mappings":"AAGA,sDAAsD;AACtD,MAAM,WAAW,+BAA+B;IAC9C,yEAAyE;IACzE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qDAAqD;AACrD,MAAM,WAAW,8BAA8B;IAC7C;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC;IAClD;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,uLAAuL;AACvL,eAAO,MAAM,2BAA2B,GAAI,cAEzC,+BAA+B,KAAG,8BAuCpC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useUnsavedChangesInternal as e } from "../components/UnsavedChangesProvider/unsaved-changes-context.js";
|
|
2
|
+
import { useCallback as t, useEffect as n, useLayoutEffect as r, useRef as i } from "react";
|
|
3
|
+
//#region src/hooks/useUnsavedChangesLeaveGuard.ts
|
|
4
|
+
var a = ({ isDirty: a }) => {
|
|
5
|
+
let { register: o, unloadAllowedRef: s } = e(), c = i(a), l = i(!1);
|
|
6
|
+
r(() => {
|
|
7
|
+
c.current = a;
|
|
8
|
+
}, [a]), n(() => o(a), [o, a]);
|
|
9
|
+
let u = t((e) => l.current ? (l.current = !1, !1) : c.current && e, []);
|
|
10
|
+
return n(() => {
|
|
11
|
+
if (!a) return;
|
|
12
|
+
let e = (e) => {
|
|
13
|
+
s.current || e.preventDefault();
|
|
14
|
+
};
|
|
15
|
+
return window.addEventListener("beforeunload", e), () => window.removeEventListener("beforeunload", e);
|
|
16
|
+
}, [a, s]), {
|
|
17
|
+
shouldBlockLeave: u,
|
|
18
|
+
allowNextNavigation: t(() => {
|
|
19
|
+
l.current = !0;
|
|
20
|
+
}, [])
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
export { a as useUnsavedChangesLeaveGuard };
|
package/index.css
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
.
|
|
1
|
+
._text_89yo1_1{color:var(--olm-text,var(--text-secondary,#57647a))}._surface_t5bi8_1{background:var(--dfms-surface,var(--bg-layer-base,#f5f7fa))}._tree_t5bi8_5{border-color:var(--dfms-tree-border,var(--stroke-tertiary,#e0e6f0));background:var(--dfms-tree-bg,var(--bg-layer-raised,#fcfcfc));box-shadow:4px 0 8px 0 var(--dfms-tree-shadow,#2764d91a);clip-path:inset(0 -12px 0 0)}[dir=rtl] ._tree_t5bi8_5{box-shadow:-4px 0 8px 0 var(--dfms-tree-shadow,#2764d91a);clip-path:inset(0 0 0 -12px)}._overlay_t5bi8_20{background:var(--dfms-overlay-backdrop,var(--bg-backdrop,#161b2d4d))}._popup_1d7g5_2{box-shadow:0 8px 32px 0 var(--fmam-shadow,#00000029);background:var(--fmam-bg,var(--bg-layer-raised,#fcfcfc))!important}._title_1d7g5_8{color:var(--fmam-title,var(--text-primary,#161b2d))}._agentIconBadge_147d2_1{background:var(--di-icon-bg,var(--bg-entity-icon,var(--bg-layer-sunken,#eef1f7)))}._label_1qwvo_1{color:var(--pes-label-color,var(--text-primary,#161b2d))}._description_1qwvo_5{color:var(--pes-description-color,var(--text-secondary,#57647a))}._icon_18yqy_1{color:var(--nva-icon,var(--text-accent,#1d4ed8))}._title_11w3i_1{color:var(--ih-title-color,var(--text-primary,#161b2d))}._count_11w3i_5{color:var(--ih-count-color,var(--text-secondary,#57647a))}._row_1csuq_1{border-color:var(--rs-border,var(--stroke-tertiary,#e0e6f0));background:var(--rs-bg,var(--bg-layer-sunken,#eef1f7))}._versionTag_1csuq_7{border-color:var(--rs-version-tag-border,var(--stroke-tertiary,#e0e6f0))!important;background:var(--rs-version-tag-bg,var(--bg-control-accent-alpha,#2764d90f))!important;color:var(--rs-version-tag-text,var(--text-accent,#1d4ed8))!important}._info_pkxew_1{--rs-bg:var(--bg-info,#e1eaf9)}._danger_pkxew_5{--rs-bg:var(--bg-control-error-alpha-active,#f7646433);--rs-border:var(--stroke-error-alpha,#ae2f2f73)}._typeLabel_17nhs_1{color:var(--cir-type-label-text,var(--text-secondary,#57647a))}._message_1iqfi_1{color:var(--cfm-message-text,var(--text-primary,#161b2d))}._consequences_1iqfi_5{color:var(--cfm-consequence-text,var(--text-secondary,#57647a))}._footer_1iqfi_9{border-block-start:1px solid var(--cfm-footer-border,var(--stroke-tertiary,#e0e6f0))}._names_g31v4_1{color:var(--cfm-message-text,var(--text-primary,#161b2d))}._more_g31v4_5{color:var(--cfm-consequence-text,var(--text-secondary,#57647a))}._tableHeader_1qvg8_1{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-markdown-border,var(--cm-code-block-border,var(--stroke-secondary,#d1dbea)))}._container_sqe5k_1{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-code-block-border,var(--stroke-secondary,#d1dbea))}._containerLight_sqe5k_6{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc))}._header_sqe5k_10{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-code-block-border,var(--stroke-secondary,#d1dbea))}._languageLabel_sqe5k_15{color:var(--cm-code-block-language,var(--text-secondary,#57647a))}._copiedIcon_sqe5k_19{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_sqe5k_23 .token.table,._scrollContainer_sqe5k_23 .token.table-header-row,._scrollContainer_sqe5k_23 .token.table-line,._scrollContainer_sqe5k_23 .token.table-data-rows{display:inline}._scrollContainer_sqe5k_23{scrollbar-width:thin;scrollbar-color:var(--cm-code-block-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_sqe5k_23::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_sqe5k_23::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_sqe5k_23::-webkit-scrollbar-thumb{background-color:var(--cm-code-block-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._tableContainer_82t2b_1{background:var(--cm-code-block-bg,var(--bg-layer-raised,#fcfcfc));border-color:var(--cm-markdown-border,var(--cm-code-block-border,var(--stroke-secondary,#d1dbea)))}._tableContainerLight_82t2b_6{background:var(--cm-code-block-bg,var(--bg-layer-base,#f5f7fa))}._actions_82t2b_10{border-color:var(--cm-table-actions-border,var(--stroke-tertiary,#e0e6f0));background:var(--cm-table-actions-bg,var(--bg-layer-raised,#fcfcfc))}._copiedIcon_82t2b_15{color:var(--cm-code-block-copied,var(--text-success,#007274))}._scrollContainer_82t2b_19{scrollbar-width:thin;scrollbar-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_82t2b_19::-webkit-scrollbar{width:4px;height:4px}._scrollContainer_82t2b_19::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_82t2b_19::-webkit-scrollbar-thumb{background-color:var(--cm-table-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._tableHeaderCell_82t2b_35{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc));height:3rem;color:var(--cm-table-header-text,var(--text-secondary,#57647a))}._sectionRow_82t2b_42 td{background:var(--cm-code-block-header-bg,var(--bg-layer-raised,#fcfcfc))}._rowDivider_82t2b_46{border-block-end:.5px solid var(--cm-table-row-divider,var(--stroke-tertiary,#e0e6f0))}tbody ._row_82t2b_46:hover td{background:var(--cm-table-row-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._tableScrollFadeEnd_82t2b_56{-webkit-mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%)}[dir=rtl] ._tableScrollFadeEnd_82t2b_56{-webkit-mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to left, var(--cm-table-fade,var(--stroke-black,#161b2d)) 0, var(--cm-table-fade,var(--stroke-black,#161b2d)) calc(100% - 1rem), transparent 100%)}._tableScrollFadeStart_82t2b_64{-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%)}[dir=rtl] ._tableScrollFadeStart_82t2b_64{-webkit-mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%);mask-image:linear-gradient(to left, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 100%)}._tableScrollFadeBoth_82t2b_72{-webkit-mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%);mask-image:linear-gradient(to right, transparent 0, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) 1rem, var(--cm-table-fade,var(--stroke-focus-black,#161b2d)) calc(100% - 1rem), transparent 100%)}@keyframes _cm-shimmer_1ql91_1{0%{background-position:200%}to{background-position:-200%}}._thinking_1ql91_9{background:linear-gradient(270deg, var(--cm-thinking-inverted,var(--text-primary,#161b2d)) 0%, var(--cm-thinking-secondary,var(--text-secondary,#57647a)) 40%, var(--cm-thinking-inverted,var(--text-primary,#161b2d)) 80%);color:#0000;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:2s linear infinite _cm-shimmer_1ql91_1}._h6_1ql91_18{color:var(--cm-h6-text,var(--text-secondary,#57647a))}._codeInline_1ql91_22{background:var(--cm-code-inline-bg,var(--bg-layer-raised,#fcfcfc));color:var(--cm-code-inline-text,var(--text-primary,#161b2d))}._secondaryBorder_1ql91_27{border-color:var(--cm-markdown-border,var(--stroke-secondary,#d1dbea))}._blockquote_1ql91_31{border-color:var(--cm-blockquote-border,var(--stroke-primary,#57647a));color:var(--cm-blockquote-text,var(--text-secondary,#57647a))}._link_1ql91_36{color:var(--cm-link-text,var(--text-accent,#1d4ed8))}._link_1ql91_36:focus-visible{outline-color:var(--cm-link-focus,var(--stroke-focus,#161b2d))}._scrollContainer_n2oom_1{scrollbar-width:thin;scrollbar-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a)) transparent}._scrollContainer_n2oom_1::-webkit-scrollbar{height:4px}._scrollContainer_n2oom_1::-webkit-scrollbar-track{background-color:#0000}._scrollContainer_n2oom_1::-webkit-scrollbar-thumb{background-color:var(--cm-math-scrollbar,var(--stroke-primary,#57647a));border-radius:4px}._scrollContainer_n2oom_1:focus-visible{outline:1px solid var(--cm-math-focus,var(--stroke-focus,#161b2d));outline-offset:2px}._mathContent_n2oom_24{width:max-content;min-width:100%;display:block}
|
|
2
2
|
/*$vite$:1*//*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
3
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.end-0{inset-inline-end:0}.end-2{inset-inline-end:.5rem}.end-4{inset-inline-end:1rem}.top-0{top:0}.top-2{top:.5rem}.top-\[-6px\]{top:-6px}.bottom-4{bottom:1rem}.z-10{z-index:10}.z-\[2\]{z-index:2}.z-\[52\]{z-index:52}.z-\[70\]{z-index:70}.mx-0\.5{margin-inline:.125rem}.my-4{margin-block:1rem}.my-5{margin-block:1.25rem}.ms-auto{margin-inline-start:auto}.me-1\.5{margin-inline-end:.375rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-full{width:100%;height:100%}.\!h-\[min\(900px\,100dvh\)\]{height:min(900px,100dvh)!important}.\!h-fit{height:fit-content!important}.h-0{height:0}.h-\[24px\]{height:24px}.h-full{height:100%}.\!max-h-full{max-height:100%!important}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[344px\]{max-height:344px}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.\!w-\[400px\]{width:400px!important}.w-\[360px\]{width:360px}.w-full{width:100%}.w-max{width:max-content}.\!max-w-\[1600px\]{max-width:1600px!important}.max-w-96{max-width:24rem}.max-w-\[30\%\]{max-width:30%}.max-w-\[45\%\]{max-width:45%}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-full{min-width:100%}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.25rem * var(--tw-space-y-reverse));margin-block-end:calc(.25rem * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:.75rem}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[overflow\:clip\]{overflow:clip}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:4px}.rounded-\[14px\]{border-radius:14px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-tertiary{border-color:var(--stroke-tertiary,#e0e6f0)}.\!bg-layer-base{background-color:var(--bg-layer-base,#f5f7fa)!important}.bg-backdrop{background-color:var(--bg-backdrop,#161b2d4d)}.bg-layer-base{background-color:var(--bg-layer-base,#f5f7fa)}.bg-layer-raised{background-color:var(--bg-layer-raised,#fcfcfc)}.bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)}.object-contain{object-fit:contain}.p-0{padding:0}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-inline:0}.px-1{padding-inline:.25rem}.px-1\.5{padding-inline:.375rem}.px-2{padding-inline:.5rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-6{padding-inline:1.5rem}.py-0{padding-block:0}.py-0\.5{padding-block:.125rem}.py-1{padding-block:.25rem}.py-2{padding-block:.5rem}.py-2\.5{padding-block:.625rem}.py-4{padding-block:1rem}.py-\[7px\]{padding-block:7px}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-\[2em\]{padding-inline-start:2em}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pb-0{padding-bottom:0}.text-center{text-align:center}.text-end{text-align:end}.text-start{text-align:start}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.\[text-wrap\:balance\]{text-wrap:balance}.\[text-wrap\:pretty\]{text-wrap:pretty}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-primary{color:var(--text-primary,#161b2d)}.text-secondary{color:var(--text-secondary,#57647a)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-current\/60{text-decoration-color:currentColor}@supports (color:color-mix(in lab, red, red)){.decoration-current\/60{-webkit-text-decoration-color:color-mix(in oklab, currentcolor 60%, transparent);-webkit-text-decoration-color:color-mix(in oklab, currentcolor 60%, transparent);text-decoration-color:color-mix(in oklab, currentcolor 60%, transparent)}}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-chat-button{--tw-shadow:0 2px 12px 0 var(--tw-shadow-color,var(--shadow-xs-1,#2764d933)), 0 2px 6px 0 var(--tw-shadow-color,var(--shadow-xs-2,#161b2d08));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 8px 10px 0 var(--tw-shadow-color,var(--shadow-sm,#2764d914));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 4px 0 var(--tw-shadow-color,var(--shadow-xs-1,#2764d933)), 0 1px 2px 0 var(--tw-shadow-color,var(--shadow-xs-2,#161b2d08));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}@media (hover:hover){.group-hover\/table\:opacity-100:is(:where(.group\/table):hover *){opacity:1}}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:decoration-current:hover{text-decoration-color:currentColor}}.focus-visible\:outline:focus-visible,.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.rtl\:flex-row-reverse:where(:dir(rtl),[dir=rtl],[dir=rtl] *){flex-direction:row-reverse}.rtl\:justify-start:where(:dir(rtl),[dir=rtl],[dir=rtl] *){justify-content:flex-start}@media (max-width:1279px){.mobile\:\!h-full{height:100%!important}.mobile\:\!max-w-full{max-width:100%!important}.mobile\:flex-1{flex:1}.mobile\:rounded-none{border-radius:0}.mobile\:p-0{padding:0}}@media (min-width:1280px){.desktop\:p-4{padding:1rem}.desktop\:px-6{padding-inline:1.5rem}}.\[\&_\.w-md-editor\:not\(\.w-md-editor-fullscreen\)\]\:\!h-\[var\(--resizable-field-max-height\,70vh\)\] .w-md-editor:not(.w-md-editor-fullscreen){height:var(--resizable-field-max-height,70vh)!important}.\[\&_\.w-md-editor\:not\(\.w-md-editor-fullscreen\)\]\:max-h-\[var\(--resizable-field-max-height\,70vh\)\] .w-md-editor:not(.w-md-editor-fullscreen){max-height:var(--resizable-field-max-height,70vh)}.\[\&_\.wmde-markdown_ul\]\:list-disc .wmde-markdown ul{list-style-type:disc}.\[\&_\.wmde-markdown_ul_ul\]\:list-\[circle\] .wmde-markdown ul ul{list-style-type:circle}.\[\&_\.wmde-markdown_ul_ul_ul\]\:list-\[square\] .wmde-markdown ul ul ul{list-style-type:square}.\[\&_\.wmde-markdown\>ol\]\:list-decimal .wmde-markdown>ol{list-style-type:decimal}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
|
|
3
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-e-0{inset-inline-end:0}.inset-e-2{inset-inline-end:.5rem}.inset-e-4{inset-inline-end:1rem}.top-0{top:0}.top-2{top:.5rem}.top-\[-6px\]{top:-6px}.bottom-4{bottom:1rem}.bottom-\[calc\(1\.5rem\+env\(safe-area-inset-bottom\)\)\]{bottom:calc(1.5rem + env(safe-area-inset-bottom))}.z-1{z-index:1}.z-2{z-index:2}.z-10{z-index:10}.z-51{z-index:51}.z-52{z-index:52}.z-70{z-index:70}.mx-0\.5{margin-inline:.125rem}.my-4{margin-block:1rem}.my-5{margin-block:1.25rem}.ms-auto{margin-inline-start:auto}.me-1\.5{margin-inline-end:.375rem}.mt-1{margin-top:.25rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.size-full{width:100%;height:100%}.h-0{height:0}.h-\[24px\]{height:24px}.h-\[min\(900px\,100dvh\)\]\!{height:min(900px,100dvh)!important}.h-fit\!{height:fit-content!important}.h-full{height:100%}.max-h-\[30vh\]{max-height:30vh}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[344px\]{max-height:344px}.max-h-\[calc\(100dvh-3rem\)\]{max-height:calc(100dvh - 3rem)}.max-h-full\!{max-height:100%!important}.min-h-0{min-height:0}.min-h-10{min-height:2.5rem}.w-\[360px\]{width:360px}.w-\[400px\]\!{width:400px!important}.w-full{width:100%}.w-max{width:max-content}.max-w-96{max-width:24rem}.max-w-\[30\%\]{max-width:30%}.max-w-\[45\%\]{max-width:45%}.max-w-\[1330px\]\!{max-width:1330px!important}.max-w-\[1600px\]\!{max-width:1600px!important}.max-w-\[min\(600px\,100\%\)\]{max-width:min(600px,100%)}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-full{min-width:100%}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.25rem * var(--tw-space-y-reverse));margin-block-end:calc(.25rem * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:.75rem}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:4px}.rounded-2xl{border-radius:1rem}.rounded-\[14px\]{border-radius:14px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-s-2{border-inline-start-style:var(--tw-border-style);border-inline-start-width:2px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.bg-layer-raised{background-color:var(--bg-layer-raised,#fcfcfc)}.bg-layer-sunken{background-color:var(--bg-layer-sunken,#eef1f7)}.object-contain{object-fit:contain}.p-0{padding:0}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-inline:0}.px-1{padding-inline:.25rem}.px-1\.5{padding-inline:.375rem}.px-2{padding-inline:.5rem}.px-3{padding-inline:.75rem}.px-4{padding-inline:1rem}.px-6{padding-inline:1.5rem}.py-0{padding-block:0}.py-0\.5{padding-block:.125rem}.py-1{padding-block:.25rem}.py-2{padding-block:.5rem}.py-2\.5{padding-block:.625rem}.py-4{padding-block:1rem}.py-\[7px\]{padding-block:7px}.ps-4{padding-inline-start:1rem}.ps-5{padding-inline-start:1.25rem}.ps-\[2em\]{padding-inline-start:2em}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pb-0{padding-bottom:0}.pb-4{padding-bottom:1rem}.text-center{text-align:center}.text-end{text-align:end}.text-start{text-align:start}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.\[text-wrap\:balance\]{text-wrap:balance}.\[text-wrap\:pretty\]{text-wrap:pretty}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.wrap-anywhere{overflow-wrap:anywhere}.wrap-break-word{overflow-wrap:break-word}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.decoration-current\/60{text-decoration-color:currentColor}@supports (color:color-mix(in lab, red, red)){.decoration-current\/60{-webkit-text-decoration-color:color-mix(in oklab, currentcolor 60%, transparent);-webkit-text-decoration-color:color-mix(in oklab, currentcolor 60%, transparent);text-decoration-color:color-mix(in oklab, currentcolor 60%, transparent)}}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-chat-button{--tw-shadow:0 2px 12px 0 var(--tw-shadow-color,var(--shadow-xs-1,#2764d933)), 0 2px 6px 0 var(--tw-shadow-color,var(--shadow-xs-2,#161b2d08));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xs{--tw-shadow:0 0 8px 1px var(--tw-shadow-color,var(--shadow-xs-1,#2764d933));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}@media (hover:hover){.group-hover\/table\:opacity-100:is(:where(.group\/table):hover *){opacity:1}}.first\:mt-0:first-child{margin-top:0}.last\:mb-0:last-child{margin-bottom:0}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:decoration-current:hover{text-decoration-color:currentColor}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.rtl\:flex-row-reverse:where(:dir(rtl),[dir=rtl],[dir=rtl] *){flex-direction:row-reverse}.rtl\:justify-start:where(:dir(rtl),[dir=rtl],[dir=rtl] *){justify-content:flex-start}@media (max-width:1279px){.mobile\:h-full\!{height:100%!important}.mobile\:max-w-full\!{max-width:100%!important}.mobile\:flex-1{flex:1}.mobile\:rounded-none{border-radius:0}.mobile\:p-0{padding:0}}@media (min-width:1280px){.desktop\:inset-s-auto{inset-inline-start:auto}.desktop\:me-6{margin-inline-end:1.5rem}.desktop\:w-\[min\(600px\,calc\(100vw-3rem\)\)\]{width:min(600px,100vw - 3rem)}.desktop\:w-auto{width:auto}.desktop\:items-end{align-items:flex-end}.desktop\:p-4{padding:1rem}.desktop\:px-0{padding-inline:0}.desktop\:px-6{padding-inline:1.5rem}}.\[\&_\.w-md-editor\:not\(\.w-md-editor-fullscreen\)\]\:\!h-\[var\(--resizable-field-max-height\,70vh\)\] .w-md-editor:not(.w-md-editor-fullscreen){height:var(--resizable-field-max-height,70vh)!important}.\[\&_\.w-md-editor\:not\(\.w-md-editor-fullscreen\)\]\:max-h-\[var\(--resizable-field-max-height\,70vh\)\] .w-md-editor:not(.w-md-editor-fullscreen){max-height:var(--resizable-field-max-height,70vh)}.\[\&_\.wmde-markdown_ul\]\:list-disc .wmde-markdown ul{list-style-type:disc}.\[\&_\.wmde-markdown_ul_ul\]\:list-\[circle\] .wmde-markdown ul ul{list-style-type:circle}.\[\&_\.wmde-markdown_ul_ul_ul\]\:list-\[square\] .wmde-markdown ul ul ul{list-style-type:square}.\[\&_\.wmde-markdown\>ol\]\:list-decimal .wmde-markdown>ol{list-style-type:decimal}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
|